mirror of
https://gitlab.silvrtree.co.uk/martind2000/obrand-admin-server.git
synced 2025-02-19 06:59:16 +00:00
7286 lines
362 KiB
JavaScript
7286 lines
362 KiB
JavaScript
/** vim: et:ts=4:sw=4:sts=4
|
|
* @license RequireJS 2.1.22 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
|
|
* Available via the MIT or new BSD license.
|
|
* see: http://github.com/jrburke/requirejs for details
|
|
*/
|
|
var requirejs, require, define;
|
|
|
|
/*!
|
|
* Bootstrap v3.1.1 (http://getbootstrap.com)
|
|
* Copyright 2011-2014 Twitter, Inc.
|
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
*/
|
|
if (function(global) {
|
|
function isFunction(e) {
|
|
return "[object Function]" === ostring.call(e);
|
|
}
|
|
function isArray(e) {
|
|
return "[object Array]" === ostring.call(e);
|
|
}
|
|
function each(e, t) {
|
|
if (e) {
|
|
var n;
|
|
for (n = 0; n < e.length && (!e[n] || !t(e[n], n, e)); n += 1) ;
|
|
}
|
|
}
|
|
function eachReverse(e, t) {
|
|
if (e) {
|
|
var n;
|
|
for (n = e.length - 1; n > -1 && (!e[n] || !t(e[n], n, e)); n -= 1) ;
|
|
}
|
|
}
|
|
function hasProp(e, t) {
|
|
return hasOwn.call(e, t);
|
|
}
|
|
function getOwn(e, t) {
|
|
return hasProp(e, t) && e[t];
|
|
}
|
|
function eachProp(e, t) {
|
|
var n;
|
|
for (n in e) if (hasProp(e, n) && t(e[n], n)) break;
|
|
}
|
|
function mixin(e, t, n, i) {
|
|
return t && eachProp(t, function(t, r) {
|
|
(n || !hasProp(e, r)) && (!i || "object" != typeof t || !t || isArray(t) || isFunction(t) || t instanceof RegExp ? e[r] = t : (e[r] || (e[r] = {}),
|
|
mixin(e[r], t, n, i)));
|
|
}), e;
|
|
}
|
|
function bind(e, t) {
|
|
return function() {
|
|
return t.apply(e, arguments);
|
|
};
|
|
}
|
|
function scripts() {
|
|
return document.getElementsByTagName("script");
|
|
}
|
|
function defaultOnError(e) {
|
|
throw e;
|
|
}
|
|
function getGlobal(e) {
|
|
if (!e) return e;
|
|
var t = global;
|
|
return each(e.split("."), function(e) {
|
|
t = t[e];
|
|
}), t;
|
|
}
|
|
function makeError(e, t, n, i) {
|
|
var r = new Error(t + "\nhttp://requirejs.org/docs/errors.html#" + e);
|
|
return r.requireType = e, r.requireModules = i, n && (r.originalError = n), r;
|
|
}
|
|
function newContext(e) {
|
|
function t(e) {
|
|
var t, n;
|
|
for (t = 0; t < e.length; t++) if (n = e[t], "." === n) e.splice(t, 1), t -= 1; else if (".." === n) {
|
|
if (0 === t || 1 === t && ".." === e[2] || ".." === e[t - 1]) continue;
|
|
t > 0 && (e.splice(t - 1, 2), t -= 2);
|
|
}
|
|
}
|
|
function n(e, n, i) {
|
|
var r, o, a, s, u, l, c, f, p, d, h, g, m = n && n.split("/"), v = k.map, y = v && v["*"];
|
|
if (e && (e = e.split("/"), c = e.length - 1, k.nodeIdCompat && jsSuffixRegExp.test(e[c]) && (e[c] = e[c].replace(jsSuffixRegExp, "")),
|
|
"." === e[0].charAt(0) && m && (g = m.slice(0, m.length - 1), e = g.concat(e)),
|
|
t(e), e = e.join("/")), i && v && (m || y)) {
|
|
a = e.split("/");
|
|
e: for (s = a.length; s > 0; s -= 1) {
|
|
if (l = a.slice(0, s).join("/"), m) for (u = m.length; u > 0; u -= 1) if (o = getOwn(v, m.slice(0, u).join("/")),
|
|
o && (o = getOwn(o, l))) {
|
|
f = o, p = s;
|
|
break e;
|
|
}
|
|
!d && y && getOwn(y, l) && (d = getOwn(y, l), h = s);
|
|
}
|
|
!f && d && (f = d, p = h), f && (a.splice(0, p, f), e = a.join("/"));
|
|
}
|
|
return r = getOwn(k.pkgs, e), r ? r : e;
|
|
}
|
|
function i(e) {
|
|
isBrowser && each(scripts(), function(t) {
|
|
return t.getAttribute("data-requiremodule") === e && t.getAttribute("data-requirecontext") === x.contextName ? (t.parentNode.removeChild(t),
|
|
!0) : void 0;
|
|
});
|
|
}
|
|
function r(e) {
|
|
var t = getOwn(k.paths, e);
|
|
return t && isArray(t) && t.length > 1 ? (t.shift(), x.require.undef(e), x.makeRequire(null, {
|
|
skipMap: !0
|
|
})([ e ]), !0) : void 0;
|
|
}
|
|
function o(e) {
|
|
var t, n = e ? e.indexOf("!") : -1;
|
|
return n > -1 && (t = e.substring(0, n), e = e.substring(n + 1, e.length)), [ t, e ];
|
|
}
|
|
function a(e, t, i, r) {
|
|
var a, s, u, l, c = null, f = t ? t.name : null, p = e, d = !0, h = "";
|
|
return e || (d = !1, e = "_@r" + (O += 1)), l = o(e), c = l[0], e = l[1], c && (c = n(c, f, r),
|
|
s = getOwn(_, c)), e && (c ? h = s && s.normalize ? s.normalize(e, function(e) {
|
|
return n(e, f, r);
|
|
}) : -1 === e.indexOf("!") ? n(e, f, r) : e : (h = n(e, f, r), l = o(h), c = l[0],
|
|
h = l[1], i = !0, a = x.nameToUrl(h))), u = !c || s || i ? "" : "_unnormalized" + ($ += 1),
|
|
{
|
|
prefix: c,
|
|
name: h,
|
|
parentMap: t,
|
|
unnormalized: !!u,
|
|
url: a,
|
|
originalName: p,
|
|
isDefine: d,
|
|
id: (c ? c + "!" + h : h) + u
|
|
};
|
|
}
|
|
function s(e) {
|
|
var t = e.id, n = getOwn(T, t);
|
|
return n || (n = T[t] = new x.Module(e)), n;
|
|
}
|
|
function u(e, t, n) {
|
|
var i = e.id, r = getOwn(T, i);
|
|
!hasProp(_, i) || r && !r.defineEmitComplete ? (r = s(e), r.error && "error" === t ? n(r.error) : r.on(t, n)) : "defined" === t && n(_[i]);
|
|
}
|
|
function l(e, t) {
|
|
var n = e.requireModules, i = !1;
|
|
t ? t(e) : (each(n, function(t) {
|
|
var n = getOwn(T, t);
|
|
n && (n.error = e, n.events.error && (i = !0, n.emit("error", e)));
|
|
}), i || req.onError(e));
|
|
}
|
|
function c() {
|
|
globalDefQueue.length && (each(globalDefQueue, function(e) {
|
|
var t = e[0];
|
|
"string" == typeof t && (x.defQueueMap[t] = !0), N.push(e);
|
|
}), globalDefQueue = []);
|
|
}
|
|
function f(e) {
|
|
delete T[e], delete E[e];
|
|
}
|
|
function p(e, t, n) {
|
|
var i = e.map.id;
|
|
e.error ? e.emit("error", e.error) : (t[i] = !0, each(e.depMaps, function(i, r) {
|
|
var o = i.id, a = getOwn(T, o);
|
|
!a || e.depMatched[r] || n[o] || (getOwn(t, o) ? (e.defineDep(r, _[o]), e.check()) : p(a, t, n));
|
|
}), n[i] = !0);
|
|
}
|
|
function d() {
|
|
var e, t, n = 1e3 * k.waitSeconds, o = n && x.startTime + n < new Date().getTime(), a = [], s = [], u = !1, c = !0;
|
|
if (!y) {
|
|
if (y = !0, eachProp(E, function(e) {
|
|
var n = e.map, l = n.id;
|
|
if (e.enabled && (n.isDefine || s.push(e), !e.error)) if (!e.inited && o) r(l) ? (t = !0,
|
|
u = !0) : (a.push(l), i(l)); else if (!e.inited && e.fetched && n.isDefine && (u = !0,
|
|
!n.prefix)) return c = !1;
|
|
}), o && a.length) return e = makeError("timeout", "Load timeout for modules: " + a, null, a),
|
|
e.contextName = x.contextName, l(e);
|
|
c && each(s, function(e) {
|
|
p(e, {}, {});
|
|
}), o && !t || !u || !isBrowser && !isWebWorker || C || (C = setTimeout(function() {
|
|
C = 0, d();
|
|
}, 50)), y = !1;
|
|
}
|
|
}
|
|
function h(e) {
|
|
hasProp(_, e[0]) || s(a(e[0], null, !0)).init(e[1], e[2]);
|
|
}
|
|
function g(e, t, n, i) {
|
|
e.detachEvent && !isOpera ? i && e.detachEvent(i, t) : e.removeEventListener(n, t, !1);
|
|
}
|
|
function m(e) {
|
|
var t = e.currentTarget || e.srcElement;
|
|
return g(t, x.onScriptLoad, "load", "onreadystatechange"), g(t, x.onScriptError, "error"),
|
|
{
|
|
node: t,
|
|
id: t && t.getAttribute("data-requiremodule")
|
|
};
|
|
}
|
|
function v() {
|
|
var e;
|
|
for (c(); N.length; ) {
|
|
if (e = N.shift(), null === e[0]) return l(makeError("mismatch", "Mismatched anonymous define() module: " + e[e.length - 1]));
|
|
h(e);
|
|
}
|
|
x.defQueueMap = {};
|
|
}
|
|
var y, b, x, w, C, k = {
|
|
waitSeconds: 7,
|
|
baseUrl: "./",
|
|
paths: {},
|
|
bundles: {},
|
|
pkgs: {},
|
|
shim: {},
|
|
config: {}
|
|
}, T = {}, E = {}, S = {}, N = [], _ = {}, A = {}, D = {}, O = 1, $ = 1;
|
|
return w = {
|
|
require: function(e) {
|
|
return e.require ? e.require : e.require = x.makeRequire(e.map);
|
|
},
|
|
exports: function(e) {
|
|
return e.usingExports = !0, e.map.isDefine ? e.exports ? _[e.map.id] = e.exports : e.exports = _[e.map.id] = {} : void 0;
|
|
},
|
|
module: function(e) {
|
|
return e.module ? e.module : e.module = {
|
|
id: e.map.id,
|
|
uri: e.map.url,
|
|
config: function() {
|
|
return getOwn(k.config, e.map.id) || {};
|
|
},
|
|
exports: e.exports || (e.exports = {})
|
|
};
|
|
}
|
|
}, b = function(e) {
|
|
this.events = getOwn(S, e.id) || {}, this.map = e, this.shim = getOwn(k.shim, e.id),
|
|
this.depExports = [], this.depMaps = [], this.depMatched = [], this.pluginMaps = {},
|
|
this.depCount = 0;
|
|
}, b.prototype = {
|
|
init: function(e, t, n, i) {
|
|
i = i || {}, this.inited || (this.factory = t, n ? this.on("error", n) : this.events.error && (n = bind(this, function(e) {
|
|
this.emit("error", e);
|
|
})), this.depMaps = e && e.slice(0), this.errback = n, this.inited = !0, this.ignore = i.ignore,
|
|
i.enabled || this.enabled ? this.enable() : this.check());
|
|
},
|
|
defineDep: function(e, t) {
|
|
this.depMatched[e] || (this.depMatched[e] = !0, this.depCount -= 1, this.depExports[e] = t);
|
|
},
|
|
fetch: function() {
|
|
if (!this.fetched) {
|
|
this.fetched = !0, x.startTime = new Date().getTime();
|
|
var e = this.map;
|
|
return this.shim ? void x.makeRequire(this.map, {
|
|
enableBuildCallback: !0
|
|
})(this.shim.deps || [], bind(this, function() {
|
|
return e.prefix ? this.callPlugin() : this.load();
|
|
})) : e.prefix ? this.callPlugin() : this.load();
|
|
}
|
|
},
|
|
load: function() {
|
|
var e = this.map.url;
|
|
A[e] || (A[e] = !0, x.load(this.map.id, e));
|
|
},
|
|
check: function() {
|
|
if (this.enabled && !this.enabling) {
|
|
var e, t, n = this.map.id, i = this.depExports, r = this.exports, o = this.factory;
|
|
if (this.inited) {
|
|
if (this.error) this.emit("error", this.error); else if (!this.defining) {
|
|
if (this.defining = !0, this.depCount < 1 && !this.defined) {
|
|
if (isFunction(o)) {
|
|
try {
|
|
r = x.execCb(n, o, i, r);
|
|
} catch (a) {
|
|
e = a;
|
|
}
|
|
if (this.map.isDefine && void 0 === r && (t = this.module, t ? r = t.exports : this.usingExports && (r = this.exports)),
|
|
e) {
|
|
if (this.events.error && this.map.isDefine || req.onError !== defaultOnError) return e.requireMap = this.map,
|
|
e.requireModules = this.map.isDefine ? [ this.map.id ] : null, e.requireType = this.map.isDefine ? "define" : "require",
|
|
l(this.error = e);
|
|
"undefined" != typeof console && console.error ? console.error(e) : req.onError(e);
|
|
}
|
|
} else r = o;
|
|
if (this.exports = r, this.map.isDefine && !this.ignore && (_[n] = r, req.onResourceLoad)) {
|
|
var s = [];
|
|
each(this.depMaps, function(e) {
|
|
s.push(e.normalizedMap || e);
|
|
}), req.onResourceLoad(x, this.map, s);
|
|
}
|
|
f(n), this.defined = !0;
|
|
}
|
|
this.defining = !1, this.defined && !this.defineEmitted && (this.defineEmitted = !0,
|
|
this.emit("defined", this.exports), this.defineEmitComplete = !0);
|
|
}
|
|
} else hasProp(x.defQueueMap, n) || this.fetch();
|
|
}
|
|
},
|
|
callPlugin: function() {
|
|
var e = this.map, t = e.id, i = a(e.prefix);
|
|
this.depMaps.push(i), u(i, "defined", bind(this, function(i) {
|
|
var r, o, c, p = getOwn(D, this.map.id), d = this.map.name, h = this.map.parentMap ? this.map.parentMap.name : null, g = x.makeRequire(e.parentMap, {
|
|
enableBuildCallback: !0
|
|
});
|
|
return this.map.unnormalized ? (i.normalize && (d = i.normalize(d, function(e) {
|
|
return n(e, h, !0);
|
|
}) || ""), o = a(e.prefix + "!" + d, this.map.parentMap), u(o, "defined", bind(this, function(e) {
|
|
this.map.normalizedMap = o, this.init([], function() {
|
|
return e;
|
|
}, null, {
|
|
enabled: !0,
|
|
ignore: !0
|
|
});
|
|
})), c = getOwn(T, o.id), void (c && (this.depMaps.push(o), this.events.error && c.on("error", bind(this, function(e) {
|
|
this.emit("error", e);
|
|
})), c.enable()))) : p ? (this.map.url = x.nameToUrl(p), void this.load()) : (r = bind(this, function(e) {
|
|
this.init([], function() {
|
|
return e;
|
|
}, null, {
|
|
enabled: !0
|
|
});
|
|
}), r.error = bind(this, function(e) {
|
|
this.inited = !0, this.error = e, e.requireModules = [ t ], eachProp(T, function(e) {
|
|
0 === e.map.id.indexOf(t + "_unnormalized") && f(e.map.id);
|
|
}), l(e);
|
|
}), r.fromText = bind(this, function(n, i) {
|
|
var o = e.name, u = a(o), c = useInteractive;
|
|
i && (n = i), c && (useInteractive = !1), s(u), hasProp(k.config, t) && (k.config[o] = k.config[t]);
|
|
try {
|
|
req.exec(n);
|
|
} catch (f) {
|
|
return l(makeError("fromtexteval", "fromText eval for " + t + " failed: " + f, f, [ t ]));
|
|
}
|
|
c && (useInteractive = !0), this.depMaps.push(u), x.completeLoad(o), g([ o ], r);
|
|
}), void i.load(e.name, g, r, k));
|
|
})), x.enable(i, this), this.pluginMaps[i.id] = i;
|
|
},
|
|
enable: function() {
|
|
E[this.map.id] = this, this.enabled = !0, this.enabling = !0, each(this.depMaps, bind(this, function(e, t) {
|
|
var n, i, r;
|
|
if ("string" == typeof e) {
|
|
if (e = a(e, this.map.isDefine ? this.map : this.map.parentMap, !1, !this.skipMap),
|
|
this.depMaps[t] = e, r = getOwn(w, e.id)) return void (this.depExports[t] = r(this));
|
|
this.depCount += 1, u(e, "defined", bind(this, function(e) {
|
|
this.undefed || (this.defineDep(t, e), this.check());
|
|
})), this.errback ? u(e, "error", bind(this, this.errback)) : this.events.error && u(e, "error", bind(this, function(e) {
|
|
this.emit("error", e);
|
|
}));
|
|
}
|
|
n = e.id, i = T[n], hasProp(w, n) || !i || i.enabled || x.enable(e, this);
|
|
})), eachProp(this.pluginMaps, bind(this, function(e) {
|
|
var t = getOwn(T, e.id);
|
|
t && !t.enabled && x.enable(e, this);
|
|
})), this.enabling = !1, this.check();
|
|
},
|
|
on: function(e, t) {
|
|
var n = this.events[e];
|
|
n || (n = this.events[e] = []), n.push(t);
|
|
},
|
|
emit: function(e, t) {
|
|
each(this.events[e], function(e) {
|
|
e(t);
|
|
}), "error" === e && delete this.events[e];
|
|
}
|
|
}, x = {
|
|
config: k,
|
|
contextName: e,
|
|
registry: T,
|
|
defined: _,
|
|
urlFetched: A,
|
|
defQueue: N,
|
|
defQueueMap: {},
|
|
Module: b,
|
|
makeModuleMap: a,
|
|
nextTick: req.nextTick,
|
|
onError: l,
|
|
configure: function(e) {
|
|
e.baseUrl && "/" !== e.baseUrl.charAt(e.baseUrl.length - 1) && (e.baseUrl += "/");
|
|
var t = k.shim, n = {
|
|
paths: !0,
|
|
bundles: !0,
|
|
config: !0,
|
|
map: !0
|
|
};
|
|
eachProp(e, function(e, t) {
|
|
n[t] ? (k[t] || (k[t] = {}), mixin(k[t], e, !0, !0)) : k[t] = e;
|
|
}), e.bundles && eachProp(e.bundles, function(e, t) {
|
|
each(e, function(e) {
|
|
e !== t && (D[e] = t);
|
|
});
|
|
}), e.shim && (eachProp(e.shim, function(e, n) {
|
|
isArray(e) && (e = {
|
|
deps: e
|
|
}), !e.exports && !e.init || e.exportsFn || (e.exportsFn = x.makeShimExports(e)),
|
|
t[n] = e;
|
|
}), k.shim = t), e.packages && each(e.packages, function(e) {
|
|
var t, n;
|
|
e = "string" == typeof e ? {
|
|
name: e
|
|
} : e, n = e.name, t = e.location, t && (k.paths[n] = e.location), k.pkgs[n] = e.name + "/" + (e.main || "main").replace(currDirRegExp, "").replace(jsSuffixRegExp, "");
|
|
}), eachProp(T, function(e, t) {
|
|
e.inited || e.map.unnormalized || (e.map = a(t, null, !0));
|
|
}), (e.deps || e.callback) && x.require(e.deps || [], e.callback);
|
|
},
|
|
makeShimExports: function(e) {
|
|
function t() {
|
|
var t;
|
|
return e.init && (t = e.init.apply(global, arguments)), t || e.exports && getGlobal(e.exports);
|
|
}
|
|
return t;
|
|
},
|
|
makeRequire: function(t, r) {
|
|
function o(n, i, u) {
|
|
var c, f, p;
|
|
return r.enableBuildCallback && i && isFunction(i) && (i.__requireJsBuild = !0),
|
|
"string" == typeof n ? isFunction(i) ? l(makeError("requireargs", "Invalid require call"), u) : t && hasProp(w, n) ? w[n](T[t.id]) : req.get ? req.get(x, n, t, o) : (f = a(n, t, !1, !0),
|
|
c = f.id, hasProp(_, c) ? _[c] : l(makeError("notloaded", 'Module name "' + c + '" has not been loaded yet for context: ' + e + (t ? "" : ". Use require([])")))) : (v(),
|
|
x.nextTick(function() {
|
|
v(), p = s(a(null, t)), p.skipMap = r.skipMap, p.init(n, i, u, {
|
|
enabled: !0
|
|
}), d();
|
|
}), o);
|
|
}
|
|
return r = r || {}, mixin(o, {
|
|
isBrowser: isBrowser,
|
|
toUrl: function(e) {
|
|
var i, r = e.lastIndexOf("."), o = e.split("/")[0], a = "." === o || ".." === o;
|
|
return -1 !== r && (!a || r > 1) && (i = e.substring(r, e.length), e = e.substring(0, r)),
|
|
x.nameToUrl(n(e, t && t.id, !0), i, !0);
|
|
},
|
|
defined: function(e) {
|
|
return hasProp(_, a(e, t, !1, !0).id);
|
|
},
|
|
specified: function(e) {
|
|
return e = a(e, t, !1, !0).id, hasProp(_, e) || hasProp(T, e);
|
|
}
|
|
}), t || (o.undef = function(e) {
|
|
c();
|
|
var n = a(e, t, !0), r = getOwn(T, e);
|
|
r.undefed = !0, i(e), delete _[e], delete A[n.url], delete S[e], eachReverse(N, function(t, n) {
|
|
t[0] === e && N.splice(n, 1);
|
|
}), delete x.defQueueMap[e], r && (r.events.defined && (S[e] = r.events), f(e));
|
|
}), o;
|
|
},
|
|
enable: function(e) {
|
|
var t = getOwn(T, e.id);
|
|
t && s(e).enable();
|
|
},
|
|
completeLoad: function(e) {
|
|
var t, n, i, o = getOwn(k.shim, e) || {}, a = o.exports;
|
|
for (c(); N.length; ) {
|
|
if (n = N.shift(), null === n[0]) {
|
|
if (n[0] = e, t) break;
|
|
t = !0;
|
|
} else n[0] === e && (t = !0);
|
|
h(n);
|
|
}
|
|
if (x.defQueueMap = {}, i = getOwn(T, e), !t && !hasProp(_, e) && i && !i.inited) {
|
|
if (!(!k.enforceDefine || a && getGlobal(a))) return r(e) ? void 0 : l(makeError("nodefine", "No define call for " + e, null, [ e ]));
|
|
h([ e, o.deps || [], o.exportsFn ]);
|
|
}
|
|
d();
|
|
},
|
|
nameToUrl: function(e, t, n) {
|
|
var i, r, o, a, s, u, l, c = getOwn(k.pkgs, e);
|
|
if (c && (e = c), l = getOwn(D, e)) return x.nameToUrl(l, t, n);
|
|
if (req.jsExtRegExp.test(e)) s = e + (t || ""); else {
|
|
for (i = k.paths, r = e.split("/"), o = r.length; o > 0; o -= 1) if (a = r.slice(0, o).join("/"),
|
|
u = getOwn(i, a)) {
|
|
isArray(u) && (u = u[0]), r.splice(0, o, u);
|
|
break;
|
|
}
|
|
s = r.join("/"), s += t || (/^data\:|\?/.test(s) || n ? "" : ".js"), s = ("/" === s.charAt(0) || s.match(/^[\w\+\.\-]+:/) ? "" : k.baseUrl) + s;
|
|
}
|
|
return k.urlArgs ? s + ((-1 === s.indexOf("?") ? "?" : "&") + k.urlArgs) : s;
|
|
},
|
|
load: function(e, t) {
|
|
req.load(x, e, t);
|
|
},
|
|
execCb: function(e, t, n, i) {
|
|
return t.apply(i, n);
|
|
},
|
|
onScriptLoad: function(e) {
|
|
if ("load" === e.type || readyRegExp.test((e.currentTarget || e.srcElement).readyState)) {
|
|
interactiveScript = null;
|
|
var t = m(e);
|
|
x.completeLoad(t.id);
|
|
}
|
|
},
|
|
onScriptError: function(e) {
|
|
var t = m(e);
|
|
if (!r(t.id)) {
|
|
var n = [];
|
|
return eachProp(T, function(e, i) {
|
|
0 !== i.indexOf("_@r") && each(e.depMaps, function(e) {
|
|
return e.id === t.id && n.push(i), !0;
|
|
});
|
|
}), l(makeError("scripterror", 'Script error for "' + t.id + (n.length ? '", needed by: ' + n.join(", ") : '"'), e, [ t.id ]));
|
|
}
|
|
}
|
|
}, x.require = x.makeRequire(), x;
|
|
}
|
|
function getInteractiveScript() {
|
|
return interactiveScript && "interactive" === interactiveScript.readyState ? interactiveScript : (eachReverse(scripts(), function(e) {
|
|
return "interactive" === e.readyState ? interactiveScript = e : void 0;
|
|
}), interactiveScript);
|
|
}
|
|
var req, s, head, baseElement, dataMain, src, interactiveScript, currentlyAddingScript, mainScript, subPath, version = "2.1.22", commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm, cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g, jsSuffixRegExp = /\.js$/, currDirRegExp = /^\.\//, op = Object.prototype, ostring = op.toString, hasOwn = op.hasOwnProperty, ap = Array.prototype, isBrowser = !("undefined" == typeof window || "undefined" == typeof navigator || !window.document), isWebWorker = !isBrowser && "undefined" != typeof importScripts, readyRegExp = isBrowser && "PLAYSTATION 3" === navigator.platform ? /^complete$/ : /^(complete|loaded)$/, defContextName = "_", isOpera = "undefined" != typeof opera && "[object Opera]" === opera.toString(), contexts = {}, cfg = {}, globalDefQueue = [], useInteractive = !1;
|
|
if ("undefined" == typeof define) {
|
|
if ("undefined" != typeof requirejs) {
|
|
if (isFunction(requirejs)) return;
|
|
cfg = requirejs, requirejs = void 0;
|
|
}
|
|
"undefined" == typeof require || isFunction(require) || (cfg = require, require = void 0),
|
|
req = requirejs = function(e, t, n, i) {
|
|
var r, o, a = defContextName;
|
|
return isArray(e) || "string" == typeof e || (o = e, isArray(t) ? (e = t, t = n,
|
|
n = i) : e = []), o && o.context && (a = o.context), r = getOwn(contexts, a), r || (r = contexts[a] = req.s.newContext(a)),
|
|
o && r.configure(o), r.require(e, t, n);
|
|
}, req.config = function(e) {
|
|
return req(e);
|
|
}, req.nextTick = "undefined" != typeof setTimeout ? function(e) {
|
|
setTimeout(e, 4);
|
|
} : function(e) {
|
|
e();
|
|
}, require || (require = req), req.version = version, req.jsExtRegExp = /^\/|:|\?|\.js$/,
|
|
req.isBrowser = isBrowser, s = req.s = {
|
|
contexts: contexts,
|
|
newContext: newContext
|
|
}, req({}), each([ "toUrl", "undef", "defined", "specified" ], function(e) {
|
|
req[e] = function() {
|
|
var t = contexts[defContextName];
|
|
return t.require[e].apply(t, arguments);
|
|
};
|
|
}), isBrowser && (head = s.head = document.getElementsByTagName("head")[0], baseElement = document.getElementsByTagName("base")[0],
|
|
baseElement && (head = s.head = baseElement.parentNode)), req.onError = defaultOnError,
|
|
req.createNode = function(e, t, n) {
|
|
var i = e.xhtml ? document.createElementNS("http://www.w3.org/1999/xhtml", "html:script") : document.createElement("script");
|
|
return i.type = e.scriptType || "text/javascript", i.charset = "utf-8", i.async = !0,
|
|
i;
|
|
}, req.load = function(e, t, n) {
|
|
var i, r = e && e.config || {};
|
|
if (isBrowser) return i = req.createNode(r, t, n), r.onNodeCreated && r.onNodeCreated(i, r, t, n),
|
|
i.setAttribute("data-requirecontext", e.contextName), i.setAttribute("data-requiremodule", t),
|
|
!i.attachEvent || i.attachEvent.toString && i.attachEvent.toString().indexOf("[native code") < 0 || isOpera ? (i.addEventListener("load", e.onScriptLoad, !1),
|
|
i.addEventListener("error", e.onScriptError, !1)) : (useInteractive = !0, i.attachEvent("onreadystatechange", e.onScriptLoad)),
|
|
i.src = n, currentlyAddingScript = i, baseElement ? head.insertBefore(i, baseElement) : head.appendChild(i),
|
|
currentlyAddingScript = null, i;
|
|
if (isWebWorker) try {
|
|
importScripts(n), e.completeLoad(t);
|
|
} catch (o) {
|
|
e.onError(makeError("importscripts", "importScripts failed for " + t + " at " + n, o, [ t ]));
|
|
}
|
|
}, isBrowser && !cfg.skipDataMain && eachReverse(scripts(), function(e) {
|
|
return head || (head = e.parentNode), dataMain = e.getAttribute("data-main"), dataMain ? (mainScript = dataMain,
|
|
cfg.baseUrl || (src = mainScript.split("/"), mainScript = src.pop(), subPath = src.length ? src.join("/") + "/" : "./",
|
|
cfg.baseUrl = subPath), mainScript = mainScript.replace(jsSuffixRegExp, ""), req.jsExtRegExp.test(mainScript) && (mainScript = dataMain),
|
|
cfg.deps = cfg.deps ? cfg.deps.concat(mainScript) : [ mainScript ], !0) : void 0;
|
|
}), define = function(e, t, n) {
|
|
var i, r;
|
|
"string" != typeof e && (n = t, t = e, e = null), isArray(t) || (n = t, t = null),
|
|
!t && isFunction(n) && (t = [], n.length && (n.toString().replace(commentRegExp, "").replace(cjsRequireRegExp, function(e, n) {
|
|
t.push(n);
|
|
}), t = (1 === n.length ? [ "require" ] : [ "require", "exports", "module" ]).concat(t))),
|
|
useInteractive && (i = currentlyAddingScript || getInteractiveScript(), i && (e || (e = i.getAttribute("data-requiremodule")),
|
|
r = contexts[i.getAttribute("data-requirecontext")])), r ? (r.defQueue.push([ e, t, n ]),
|
|
r.defQueueMap[e] = !0) : globalDefQueue.push([ e, t, n ]);
|
|
}, define.amd = {
|
|
jQuery: !0
|
|
}, req.exec = function(text) {
|
|
return eval(text);
|
|
}, req(cfg);
|
|
}
|
|
}(this), define("requireLib", function() {}), /*!
|
|
* jQuery JavaScript Library v2.2.3
|
|
* http://jquery.com/
|
|
*
|
|
* Includes Sizzle.js
|
|
* http://sizzlejs.com/
|
|
*
|
|
* Copyright jQuery Foundation and other contributors
|
|
* Released under the MIT license
|
|
* http://jquery.org/license
|
|
*
|
|
* Date: 2016-04-05T19:26Z
|
|
*/
|
|
function(e, t) {
|
|
"object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) {
|
|
if (!e.document) throw new Error("jQuery requires a window with a document");
|
|
return t(e);
|
|
} : t(e);
|
|
}("undefined" != typeof window ? window : this, function(e, t) {
|
|
function n(e) {
|
|
var t = !!e && "length" in e && e.length, n = oe.type(e);
|
|
return "function" === n || oe.isWindow(e) ? !1 : "array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e;
|
|
}
|
|
function i(e, t, n) {
|
|
if (oe.isFunction(t)) return oe.grep(e, function(e, i) {
|
|
return !!t.call(e, i, e) !== n;
|
|
});
|
|
if (t.nodeType) return oe.grep(e, function(e) {
|
|
return e === t !== n;
|
|
});
|
|
if ("string" == typeof t) {
|
|
if (ge.test(t)) return oe.filter(t, e, n);
|
|
t = oe.filter(t, e);
|
|
}
|
|
return oe.grep(e, function(e) {
|
|
return Z.call(t, e) > -1 !== n;
|
|
});
|
|
}
|
|
function r(e, t) {
|
|
for (;(e = e[t]) && 1 !== e.nodeType; ) ;
|
|
return e;
|
|
}
|
|
function o(e) {
|
|
var t = {};
|
|
return oe.each(e.match(we) || [], function(e, n) {
|
|
t[n] = !0;
|
|
}), t;
|
|
}
|
|
function a() {
|
|
J.removeEventListener("DOMContentLoaded", a), e.removeEventListener("load", a),
|
|
oe.ready();
|
|
}
|
|
function s() {
|
|
this.expando = oe.expando + s.uid++;
|
|
}
|
|
function u(e, t, n) {
|
|
var i;
|
|
if (void 0 === n && 1 === e.nodeType) if (i = "data-" + t.replace(_e, "-$&").toLowerCase(),
|
|
n = e.getAttribute(i), "string" == typeof n) {
|
|
try {
|
|
n = "true" === n ? !0 : "false" === n ? !1 : "null" === n ? null : +n + "" === n ? +n : Ne.test(n) ? oe.parseJSON(n) : n;
|
|
} catch (r) {}
|
|
Se.set(e, t, n);
|
|
} else n = void 0;
|
|
return n;
|
|
}
|
|
function l(e, t, n, i) {
|
|
var r, o = 1, a = 20, s = i ? function() {
|
|
return i.cur();
|
|
} : function() {
|
|
return oe.css(e, t, "");
|
|
}, u = s(), l = n && n[3] || (oe.cssNumber[t] ? "" : "px"), c = (oe.cssNumber[t] || "px" !== l && +u) && De.exec(oe.css(e, t));
|
|
if (c && c[3] !== l) {
|
|
l = l || c[3], n = n || [], c = +u || 1;
|
|
do o = o || ".5", c /= o, oe.style(e, t, c + l); while (o !== (o = s() / u) && 1 !== o && --a);
|
|
}
|
|
return n && (c = +c || +u || 0, r = n[1] ? c + (n[1] + 1) * n[2] : +n[2], i && (i.unit = l,
|
|
i.start = c, i.end = r)), r;
|
|
}
|
|
function c(e, t) {
|
|
var n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [];
|
|
return void 0 === t || t && oe.nodeName(e, t) ? oe.merge([ e ], n) : n;
|
|
}
|
|
function f(e, t) {
|
|
for (var n = 0, i = e.length; i > n; n++) Ee.set(e[n], "globalEval", !t || Ee.get(t[n], "globalEval"));
|
|
}
|
|
function p(e, t, n, i, r) {
|
|
for (var o, a, s, u, l, p, d = t.createDocumentFragment(), h = [], g = 0, m = e.length; m > g; g++) if (o = e[g],
|
|
o || 0 === o) if ("object" === oe.type(o)) oe.merge(h, o.nodeType ? [ o ] : o); else if (Le.test(o)) {
|
|
for (a = a || d.appendChild(t.createElement("div")), s = (qe.exec(o) || [ "", "" ])[1].toLowerCase(),
|
|
u = Me[s] || Me._default, a.innerHTML = u[1] + oe.htmlPrefilter(o) + u[2], p = u[0]; p--; ) a = a.lastChild;
|
|
oe.merge(h, a.childNodes), a = d.firstChild, a.textContent = "";
|
|
} else h.push(t.createTextNode(o));
|
|
for (d.textContent = "", g = 0; o = h[g++]; ) if (i && oe.inArray(o, i) > -1) r && r.push(o); else if (l = oe.contains(o.ownerDocument, o),
|
|
a = c(d.appendChild(o), "script"), l && f(a), n) for (p = 0; o = a[p++]; ) Re.test(o.type || "") && n.push(o);
|
|
return d;
|
|
}
|
|
function d() {
|
|
return !0;
|
|
}
|
|
function h() {
|
|
return !1;
|
|
}
|
|
function g() {
|
|
try {
|
|
return J.activeElement;
|
|
} catch (e) {}
|
|
}
|
|
function m(e, t, n, i, r, o) {
|
|
var a, s;
|
|
if ("object" == typeof t) {
|
|
"string" != typeof n && (i = i || n, n = void 0);
|
|
for (s in t) m(e, s, n, i, t[s], o);
|
|
return e;
|
|
}
|
|
if (null == i && null == r ? (r = n, i = n = void 0) : null == r && ("string" == typeof n ? (r = i,
|
|
i = void 0) : (r = i, i = n, n = void 0)), r === !1) r = h; else if (!r) return e;
|
|
return 1 === o && (a = r, r = function(e) {
|
|
return oe().off(e), a.apply(this, arguments);
|
|
}, r.guid = a.guid || (a.guid = oe.guid++)), e.each(function() {
|
|
oe.event.add(this, t, r, i, n);
|
|
});
|
|
}
|
|
function v(e, t) {
|
|
return oe.nodeName(e, "table") && oe.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e;
|
|
}
|
|
function y(e) {
|
|
return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e;
|
|
}
|
|
function b(e) {
|
|
var t = Ue.exec(e.type);
|
|
return t ? e.type = t[1] : e.removeAttribute("type"), e;
|
|
}
|
|
function x(e, t) {
|
|
var n, i, r, o, a, s, u, l;
|
|
if (1 === t.nodeType) {
|
|
if (Ee.hasData(e) && (o = Ee.access(e), a = Ee.set(t, o), l = o.events)) {
|
|
delete a.handle, a.events = {};
|
|
for (r in l) for (n = 0, i = l[r].length; i > n; n++) oe.event.add(t, r, l[r][n]);
|
|
}
|
|
Se.hasData(e) && (s = Se.access(e), u = oe.extend({}, s), Se.set(t, u));
|
|
}
|
|
}
|
|
function w(e, t) {
|
|
var n = t.nodeName.toLowerCase();
|
|
"input" === n && je.test(e.type) ? t.checked = e.checked : ("input" === n || "textarea" === n) && (t.defaultValue = e.defaultValue);
|
|
}
|
|
function C(e, t, n, i) {
|
|
t = Y.apply([], t);
|
|
var r, o, a, s, u, l, f = 0, d = e.length, h = d - 1, g = t[0], m = oe.isFunction(g);
|
|
if (m || d > 1 && "string" == typeof g && !ie.checkClone && We.test(g)) return e.each(function(r) {
|
|
var o = e.eq(r);
|
|
m && (t[0] = g.call(this, r, o.html())), C(o, t, n, i);
|
|
});
|
|
if (d && (r = p(t, e[0].ownerDocument, !1, e, i), o = r.firstChild, 1 === r.childNodes.length && (r = o),
|
|
o || i)) {
|
|
for (a = oe.map(c(r, "script"), y), s = a.length; d > f; f++) u = r, f !== h && (u = oe.clone(u, !0, !0),
|
|
s && oe.merge(a, c(u, "script"))), n.call(e[f], u, f);
|
|
if (s) for (l = a[a.length - 1].ownerDocument, oe.map(a, b), f = 0; s > f; f++) u = a[f],
|
|
Re.test(u.type || "") && !Ee.access(u, "globalEval") && oe.contains(l, u) && (u.src ? oe._evalUrl && oe._evalUrl(u.src) : oe.globalEval(u.textContent.replace(ze, "")));
|
|
}
|
|
return e;
|
|
}
|
|
function k(e, t, n) {
|
|
for (var i, r = t ? oe.filter(t, e) : e, o = 0; null != (i = r[o]); o++) n || 1 !== i.nodeType || oe.cleanData(c(i)),
|
|
i.parentNode && (n && oe.contains(i.ownerDocument, i) && f(c(i, "script")), i.parentNode.removeChild(i));
|
|
return e;
|
|
}
|
|
function T(e, t) {
|
|
var n = oe(t.createElement(e)).appendTo(t.body), i = oe.css(n[0], "display");
|
|
return n.detach(), i;
|
|
}
|
|
function E(e) {
|
|
var t = J, n = Xe[e];
|
|
return n || (n = T(e, t), "none" !== n && n || (Ve = (Ve || oe("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),
|
|
t = Ve[0].contentDocument, t.write(), t.close(), n = T(e, t), Ve.detach()), Xe[e] = n),
|
|
n;
|
|
}
|
|
function S(e, t, n) {
|
|
var i, r, o, a, s = e.style;
|
|
return n = n || Ge(e), a = n ? n.getPropertyValue(t) || n[t] : void 0, "" !== a && void 0 !== a || oe.contains(e.ownerDocument, e) || (a = oe.style(e, t)),
|
|
n && !ie.pixelMarginRight() && Je.test(a) && Qe.test(t) && (i = s.width, r = s.minWidth,
|
|
o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = i,
|
|
s.minWidth = r, s.maxWidth = o), void 0 !== a ? a + "" : a;
|
|
}
|
|
function N(e, t) {
|
|
return {
|
|
get: function() {
|
|
return e() ? void delete this.get : (this.get = t).apply(this, arguments);
|
|
}
|
|
};
|
|
}
|
|
function _(e) {
|
|
if (e in it) return e;
|
|
for (var t = e[0].toUpperCase() + e.slice(1), n = nt.length; n--; ) if (e = nt[n] + t,
|
|
e in it) return e;
|
|
}
|
|
function A(e, t, n) {
|
|
var i = De.exec(t);
|
|
return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || "px") : t;
|
|
}
|
|
function D(e, t, n, i, r) {
|
|
for (var o = n === (i ? "border" : "content") ? 4 : "width" === t ? 1 : 0, a = 0; 4 > o; o += 2) "margin" === n && (a += oe.css(e, n + Oe[o], !0, r)),
|
|
i ? ("content" === n && (a -= oe.css(e, "padding" + Oe[o], !0, r)), "margin" !== n && (a -= oe.css(e, "border" + Oe[o] + "Width", !0, r))) : (a += oe.css(e, "padding" + Oe[o], !0, r),
|
|
"padding" !== n && (a += oe.css(e, "border" + Oe[o] + "Width", !0, r)));
|
|
return a;
|
|
}
|
|
function O(t, n, i) {
|
|
var r = !0, o = "width" === n ? t.offsetWidth : t.offsetHeight, a = Ge(t), s = "border-box" === oe.css(t, "boxSizing", !1, a);
|
|
if (J.msFullscreenElement && e.top !== e && t.getClientRects().length && (o = Math.round(100 * t.getBoundingClientRect()[n])),
|
|
0 >= o || null == o) {
|
|
if (o = S(t, n, a), (0 > o || null == o) && (o = t.style[n]), Je.test(o)) return o;
|
|
r = s && (ie.boxSizingReliable() || o === t.style[n]), o = parseFloat(o) || 0;
|
|
}
|
|
return o + D(t, n, i || (s ? "border" : "content"), r, a) + "px";
|
|
}
|
|
function $(e, t) {
|
|
for (var n, i, r, o = [], a = 0, s = e.length; s > a; a++) i = e[a], i.style && (o[a] = Ee.get(i, "olddisplay"),
|
|
n = i.style.display, t ? (o[a] || "none" !== n || (i.style.display = ""), "" === i.style.display && $e(i) && (o[a] = Ee.access(i, "olddisplay", E(i.nodeName)))) : (r = $e(i),
|
|
"none" === n && r || Ee.set(i, "olddisplay", r ? n : oe.css(i, "display"))));
|
|
for (a = 0; s > a; a++) i = e[a], i.style && (t && "none" !== i.style.display && "" !== i.style.display || (i.style.display = t ? o[a] || "" : "none"));
|
|
return e;
|
|
}
|
|
function j(e, t, n, i, r) {
|
|
return new j.prototype.init(e, t, n, i, r);
|
|
}
|
|
function q() {
|
|
return e.setTimeout(function() {
|
|
rt = void 0;
|
|
}), rt = oe.now();
|
|
}
|
|
function R(e, t) {
|
|
var n, i = 0, r = {
|
|
height: e
|
|
};
|
|
for (t = t ? 1 : 0; 4 > i; i += 2 - t) n = Oe[i], r["margin" + n] = r["padding" + n] = e;
|
|
return t && (r.opacity = r.width = e), r;
|
|
}
|
|
function M(e, t, n) {
|
|
for (var i, r = (I.tweeners[t] || []).concat(I.tweeners["*"]), o = 0, a = r.length; a > o; o++) if (i = r[o].call(n, t, e)) return i;
|
|
}
|
|
function L(e, t, n) {
|
|
var i, r, o, a, s, u, l, c, f = this, p = {}, d = e.style, h = e.nodeType && $e(e), g = Ee.get(e, "fxshow");
|
|
n.queue || (s = oe._queueHooks(e, "fx"), null == s.unqueued && (s.unqueued = 0,
|
|
u = s.empty.fire, s.empty.fire = function() {
|
|
s.unqueued || u();
|
|
}), s.unqueued++, f.always(function() {
|
|
f.always(function() {
|
|
s.unqueued--, oe.queue(e, "fx").length || s.empty.fire();
|
|
});
|
|
})), 1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [ d.overflow, d.overflowX, d.overflowY ],
|
|
l = oe.css(e, "display"), c = "none" === l ? Ee.get(e, "olddisplay") || E(e.nodeName) : l,
|
|
"inline" === c && "none" === oe.css(e, "float") && (d.display = "inline-block")),
|
|
n.overflow && (d.overflow = "hidden", f.always(function() {
|
|
d.overflow = n.overflow[0], d.overflowX = n.overflow[1], d.overflowY = n.overflow[2];
|
|
}));
|
|
for (i in t) if (r = t[i], at.exec(r)) {
|
|
if (delete t[i], o = o || "toggle" === r, r === (h ? "hide" : "show")) {
|
|
if ("show" !== r || !g || void 0 === g[i]) continue;
|
|
h = !0;
|
|
}
|
|
p[i] = g && g[i] || oe.style(e, i);
|
|
} else l = void 0;
|
|
if (oe.isEmptyObject(p)) "inline" === ("none" === l ? E(e.nodeName) : l) && (d.display = l); else {
|
|
g ? "hidden" in g && (h = g.hidden) : g = Ee.access(e, "fxshow", {}), o && (g.hidden = !h),
|
|
h ? oe(e).show() : f.done(function() {
|
|
oe(e).hide();
|
|
}), f.done(function() {
|
|
var t;
|
|
Ee.remove(e, "fxshow");
|
|
for (t in p) oe.style(e, t, p[t]);
|
|
});
|
|
for (i in p) a = M(h ? g[i] : 0, i, f), i in g || (g[i] = a.start, h && (a.end = a.start,
|
|
a.start = "width" === i || "height" === i ? 1 : 0));
|
|
}
|
|
}
|
|
function P(e, t) {
|
|
var n, i, r, o, a;
|
|
for (n in e) if (i = oe.camelCase(n), r = t[i], o = e[n], oe.isArray(o) && (r = o[1],
|
|
o = e[n] = o[0]), n !== i && (e[i] = o, delete e[n]), a = oe.cssHooks[i], a && "expand" in a) {
|
|
o = a.expand(o), delete e[i];
|
|
for (n in o) n in e || (e[n] = o[n], t[n] = r);
|
|
} else t[i] = r;
|
|
}
|
|
function I(e, t, n) {
|
|
var i, r, o = 0, a = I.prefilters.length, s = oe.Deferred().always(function() {
|
|
delete u.elem;
|
|
}), u = function() {
|
|
if (r) return !1;
|
|
for (var t = rt || q(), n = Math.max(0, l.startTime + l.duration - t), i = n / l.duration || 0, o = 1 - i, a = 0, u = l.tweens.length; u > a; a++) l.tweens[a].run(o);
|
|
return s.notifyWith(e, [ l, o, n ]), 1 > o && u ? n : (s.resolveWith(e, [ l ]),
|
|
!1);
|
|
}, l = s.promise({
|
|
elem: e,
|
|
props: oe.extend({}, t),
|
|
opts: oe.extend(!0, {
|
|
specialEasing: {},
|
|
easing: oe.easing._default
|
|
}, n),
|
|
originalProperties: t,
|
|
originalOptions: n,
|
|
startTime: rt || q(),
|
|
duration: n.duration,
|
|
tweens: [],
|
|
createTween: function(t, n) {
|
|
var i = oe.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing);
|
|
return l.tweens.push(i), i;
|
|
},
|
|
stop: function(t) {
|
|
var n = 0, i = t ? l.tweens.length : 0;
|
|
if (r) return this;
|
|
for (r = !0; i > n; n++) l.tweens[n].run(1);
|
|
return t ? (s.notifyWith(e, [ l, 1, 0 ]), s.resolveWith(e, [ l, t ])) : s.rejectWith(e, [ l, t ]),
|
|
this;
|
|
}
|
|
}), c = l.props;
|
|
for (P(c, l.opts.specialEasing); a > o; o++) if (i = I.prefilters[o].call(l, e, c, l.opts)) return oe.isFunction(i.stop) && (oe._queueHooks(l.elem, l.opts.queue).stop = oe.proxy(i.stop, i)),
|
|
i;
|
|
return oe.map(c, M, l), oe.isFunction(l.opts.start) && l.opts.start.call(e, l),
|
|
oe.fx.timer(oe.extend(u, {
|
|
elem: e,
|
|
anim: l,
|
|
queue: l.opts.queue
|
|
})), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always);
|
|
}
|
|
function F(e) {
|
|
return e.getAttribute && e.getAttribute("class") || "";
|
|
}
|
|
function B(e) {
|
|
return function(t, n) {
|
|
"string" != typeof t && (n = t, t = "*");
|
|
var i, r = 0, o = t.toLowerCase().match(we) || [];
|
|
if (oe.isFunction(n)) for (;i = o[r++]; ) "+" === i[0] ? (i = i.slice(1) || "*",
|
|
(e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(n);
|
|
};
|
|
}
|
|
function H(e, t, n, i) {
|
|
function r(s) {
|
|
var u;
|
|
return o[s] = !0, oe.each(e[s] || [], function(e, s) {
|
|
var l = s(t, n, i);
|
|
return "string" != typeof l || a || o[l] ? a ? !(u = l) : void 0 : (t.dataTypes.unshift(l),
|
|
r(l), !1);
|
|
}), u;
|
|
}
|
|
var o = {}, a = e === St;
|
|
return r(t.dataTypes[0]) || !o["*"] && r("*");
|
|
}
|
|
function W(e, t) {
|
|
var n, i, r = oe.ajaxSettings.flatOptions || {};
|
|
for (n in t) void 0 !== t[n] && ((r[n] ? e : i || (i = {}))[n] = t[n]);
|
|
return i && oe.extend(!0, e, i), e;
|
|
}
|
|
function U(e, t, n) {
|
|
for (var i, r, o, a, s = e.contents, u = e.dataTypes; "*" === u[0]; ) u.shift(),
|
|
void 0 === i && (i = e.mimeType || t.getResponseHeader("Content-Type"));
|
|
if (i) for (r in s) if (s[r] && s[r].test(i)) {
|
|
u.unshift(r);
|
|
break;
|
|
}
|
|
if (u[0] in n) o = u[0]; else {
|
|
for (r in n) {
|
|
if (!u[0] || e.converters[r + " " + u[0]]) {
|
|
o = r;
|
|
break;
|
|
}
|
|
a || (a = r);
|
|
}
|
|
o = o || a;
|
|
}
|
|
return o ? (o !== u[0] && u.unshift(o), n[o]) : void 0;
|
|
}
|
|
function z(e, t, n, i) {
|
|
var r, o, a, s, u, l = {}, c = e.dataTypes.slice();
|
|
if (c[1]) for (a in e.converters) l[a.toLowerCase()] = e.converters[a];
|
|
for (o = c.shift(); o; ) if (e.responseFields[o] && (n[e.responseFields[o]] = t),
|
|
!u && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift()) if ("*" === o) o = u; else if ("*" !== u && u !== o) {
|
|
if (a = l[u + " " + o] || l["* " + o], !a) for (r in l) if (s = r.split(" "), s[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) {
|
|
a === !0 ? a = l[r] : l[r] !== !0 && (o = s[0], c.unshift(s[1]));
|
|
break;
|
|
}
|
|
if (a !== !0) if (a && e["throws"]) t = a(t); else try {
|
|
t = a(t);
|
|
} catch (f) {
|
|
return {
|
|
state: "parsererror",
|
|
error: a ? f : "No conversion from " + u + " to " + o
|
|
};
|
|
}
|
|
}
|
|
return {
|
|
state: "success",
|
|
data: t
|
|
};
|
|
}
|
|
function V(e, t, n, i) {
|
|
var r;
|
|
if (oe.isArray(t)) oe.each(t, function(t, r) {
|
|
n || Dt.test(e) ? i(e, r) : V(e + "[" + ("object" == typeof r && null != r ? t : "") + "]", r, n, i);
|
|
}); else if (n || "object" !== oe.type(t)) i(e, t); else for (r in t) V(e + "[" + r + "]", t[r], n, i);
|
|
}
|
|
function X(e) {
|
|
return oe.isWindow(e) ? e : 9 === e.nodeType && e.defaultView;
|
|
}
|
|
var Q = [], J = e.document, G = Q.slice, Y = Q.concat, K = Q.push, Z = Q.indexOf, ee = {}, te = ee.toString, ne = ee.hasOwnProperty, ie = {}, re = "2.2.3", oe = function(e, t) {
|
|
return new oe.fn.init(e, t);
|
|
}, ae = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, se = /^-ms-/, ue = /-([\da-z])/gi, le = function(e, t) {
|
|
return t.toUpperCase();
|
|
};
|
|
oe.fn = oe.prototype = {
|
|
jquery: re,
|
|
constructor: oe,
|
|
selector: "",
|
|
length: 0,
|
|
toArray: function() {
|
|
return G.call(this);
|
|
},
|
|
get: function(e) {
|
|
return null != e ? 0 > e ? this[e + this.length] : this[e] : G.call(this);
|
|
},
|
|
pushStack: function(e) {
|
|
var t = oe.merge(this.constructor(), e);
|
|
return t.prevObject = this, t.context = this.context, t;
|
|
},
|
|
each: function(e) {
|
|
return oe.each(this, e);
|
|
},
|
|
map: function(e) {
|
|
return this.pushStack(oe.map(this, function(t, n) {
|
|
return e.call(t, n, t);
|
|
}));
|
|
},
|
|
slice: function() {
|
|
return this.pushStack(G.apply(this, arguments));
|
|
},
|
|
first: function() {
|
|
return this.eq(0);
|
|
},
|
|
last: function() {
|
|
return this.eq(-1);
|
|
},
|
|
eq: function(e) {
|
|
var t = this.length, n = +e + (0 > e ? t : 0);
|
|
return this.pushStack(n >= 0 && t > n ? [ this[n] ] : []);
|
|
},
|
|
end: function() {
|
|
return this.prevObject || this.constructor();
|
|
},
|
|
push: K,
|
|
sort: Q.sort,
|
|
splice: Q.splice
|
|
}, oe.extend = oe.fn.extend = function() {
|
|
var e, t, n, i, r, o, a = arguments[0] || {}, s = 1, u = arguments.length, l = !1;
|
|
for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || oe.isFunction(a) || (a = {}),
|
|
s === u && (a = this, s--); u > s; s++) if (null != (e = arguments[s])) for (t in e) n = a[t],
|
|
i = e[t], a !== i && (l && i && (oe.isPlainObject(i) || (r = oe.isArray(i))) ? (r ? (r = !1,
|
|
o = n && oe.isArray(n) ? n : []) : o = n && oe.isPlainObject(n) ? n : {}, a[t] = oe.extend(l, o, i)) : void 0 !== i && (a[t] = i));
|
|
return a;
|
|
}, oe.extend({
|
|
expando: "jQuery" + (re + Math.random()).replace(/\D/g, ""),
|
|
isReady: !0,
|
|
error: function(e) {
|
|
throw new Error(e);
|
|
},
|
|
noop: function() {},
|
|
isFunction: function(e) {
|
|
return "function" === oe.type(e);
|
|
},
|
|
isArray: Array.isArray,
|
|
isWindow: function(e) {
|
|
return null != e && e === e.window;
|
|
},
|
|
isNumeric: function(e) {
|
|
var t = e && e.toString();
|
|
return !oe.isArray(e) && t - parseFloat(t) + 1 >= 0;
|
|
},
|
|
isPlainObject: function(e) {
|
|
var t;
|
|
if ("object" !== oe.type(e) || e.nodeType || oe.isWindow(e)) return !1;
|
|
if (e.constructor && !ne.call(e, "constructor") && !ne.call(e.constructor.prototype || {}, "isPrototypeOf")) return !1;
|
|
for (t in e) ;
|
|
return void 0 === t || ne.call(e, t);
|
|
},
|
|
isEmptyObject: function(e) {
|
|
var t;
|
|
for (t in e) return !1;
|
|
return !0;
|
|
},
|
|
type: function(e) {
|
|
return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? ee[te.call(e)] || "object" : typeof e;
|
|
},
|
|
globalEval: function(e) {
|
|
var t, n = eval;
|
|
e = oe.trim(e), e && (1 === e.indexOf("use strict") ? (t = J.createElement("script"),
|
|
t.text = e, J.head.appendChild(t).parentNode.removeChild(t)) : n(e));
|
|
},
|
|
camelCase: function(e) {
|
|
return e.replace(se, "ms-").replace(ue, le);
|
|
},
|
|
nodeName: function(e, t) {
|
|
return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
|
|
},
|
|
each: function(e, t) {
|
|
var i, r = 0;
|
|
if (n(e)) for (i = e.length; i > r && t.call(e[r], r, e[r]) !== !1; r++) ; else for (r in e) if (t.call(e[r], r, e[r]) === !1) break;
|
|
return e;
|
|
},
|
|
trim: function(e) {
|
|
return null == e ? "" : (e + "").replace(ae, "");
|
|
},
|
|
makeArray: function(e, t) {
|
|
var i = t || [];
|
|
return null != e && (n(Object(e)) ? oe.merge(i, "string" == typeof e ? [ e ] : e) : K.call(i, e)),
|
|
i;
|
|
},
|
|
inArray: function(e, t, n) {
|
|
return null == t ? -1 : Z.call(t, e, n);
|
|
},
|
|
merge: function(e, t) {
|
|
for (var n = +t.length, i = 0, r = e.length; n > i; i++) e[r++] = t[i];
|
|
return e.length = r, e;
|
|
},
|
|
grep: function(e, t, n) {
|
|
for (var i, r = [], o = 0, a = e.length, s = !n; a > o; o++) i = !t(e[o], o), i !== s && r.push(e[o]);
|
|
return r;
|
|
},
|
|
map: function(e, t, i) {
|
|
var r, o, a = 0, s = [];
|
|
if (n(e)) for (r = e.length; r > a; a++) o = t(e[a], a, i), null != o && s.push(o); else for (a in e) o = t(e[a], a, i),
|
|
null != o && s.push(o);
|
|
return Y.apply([], s);
|
|
},
|
|
guid: 1,
|
|
proxy: function(e, t) {
|
|
var n, i, r;
|
|
return "string" == typeof t && (n = e[t], t = e, e = n), oe.isFunction(e) ? (i = G.call(arguments, 2),
|
|
r = function() {
|
|
return e.apply(t || this, i.concat(G.call(arguments)));
|
|
}, r.guid = e.guid = e.guid || oe.guid++, r) : void 0;
|
|
},
|
|
now: Date.now,
|
|
support: ie
|
|
}), "function" == typeof Symbol && (oe.fn[Symbol.iterator] = Q[Symbol.iterator]),
|
|
oe.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
|
|
ee["[object " + t + "]"] = t.toLowerCase();
|
|
});
|
|
var ce = /*!
|
|
* Sizzle CSS Selector Engine v2.2.1
|
|
* http://sizzlejs.com/
|
|
*
|
|
* Copyright jQuery Foundation and other contributors
|
|
* Released under the MIT license
|
|
* http://jquery.org/license
|
|
*
|
|
* Date: 2015-10-17
|
|
*/
|
|
function(e) {
|
|
function t(e, t, n, i) {
|
|
var r, o, a, s, u, l, f, d, h = t && t.ownerDocument, g = t ? t.nodeType : 9;
|
|
if (n = n || [], "string" != typeof e || !e || 1 !== g && 9 !== g && 11 !== g) return n;
|
|
if (!i && ((t ? t.ownerDocument || t : F) !== $ && O(t), t = t || $, q)) {
|
|
if (11 !== g && (l = ve.exec(e))) if (r = l[1]) {
|
|
if (9 === g) {
|
|
if (!(a = t.getElementById(r))) return n;
|
|
if (a.id === r) return n.push(a), n;
|
|
} else if (h && (a = h.getElementById(r)) && P(t, a) && a.id === r) return n.push(a),
|
|
n;
|
|
} else {
|
|
if (l[2]) return K.apply(n, t.getElementsByTagName(e)), n;
|
|
if ((r = l[3]) && w.getElementsByClassName && t.getElementsByClassName) return K.apply(n, t.getElementsByClassName(r)),
|
|
n;
|
|
}
|
|
if (w.qsa && !z[e + " "] && (!R || !R.test(e))) {
|
|
if (1 !== g) h = t, d = e; else if ("object" !== t.nodeName.toLowerCase()) {
|
|
for ((s = t.getAttribute("id")) ? s = s.replace(be, "\\$&") : t.setAttribute("id", s = I),
|
|
f = E(e), o = f.length, u = pe.test(s) ? "#" + s : "[id='" + s + "']"; o--; ) f[o] = u + " " + p(f[o]);
|
|
d = f.join(","), h = ye.test(e) && c(t.parentNode) || t;
|
|
}
|
|
if (d) try {
|
|
return K.apply(n, h.querySelectorAll(d)), n;
|
|
} catch (m) {} finally {
|
|
s === I && t.removeAttribute("id");
|
|
}
|
|
}
|
|
}
|
|
return N(e.replace(se, "$1"), t, n, i);
|
|
}
|
|
function n() {
|
|
function e(n, i) {
|
|
return t.push(n + " ") > C.cacheLength && delete e[t.shift()], e[n + " "] = i;
|
|
}
|
|
var t = [];
|
|
return e;
|
|
}
|
|
function i(e) {
|
|
return e[I] = !0, e;
|
|
}
|
|
function r(e) {
|
|
var t = $.createElement("div");
|
|
try {
|
|
return !!e(t);
|
|
} catch (n) {
|
|
return !1;
|
|
} finally {
|
|
t.parentNode && t.parentNode.removeChild(t), t = null;
|
|
}
|
|
}
|
|
function o(e, t) {
|
|
for (var n = e.split("|"), i = n.length; i--; ) C.attrHandle[n[i]] = t;
|
|
}
|
|
function a(e, t) {
|
|
var n = t && e, i = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || X) - (~e.sourceIndex || X);
|
|
if (i) return i;
|
|
if (n) for (;n = n.nextSibling; ) if (n === t) return -1;
|
|
return e ? 1 : -1;
|
|
}
|
|
function s(e) {
|
|
return function(t) {
|
|
var n = t.nodeName.toLowerCase();
|
|
return "input" === n && t.type === e;
|
|
};
|
|
}
|
|
function u(e) {
|
|
return function(t) {
|
|
var n = t.nodeName.toLowerCase();
|
|
return ("input" === n || "button" === n) && t.type === e;
|
|
};
|
|
}
|
|
function l(e) {
|
|
return i(function(t) {
|
|
return t = +t, i(function(n, i) {
|
|
for (var r, o = e([], n.length, t), a = o.length; a--; ) n[r = o[a]] && (n[r] = !(i[r] = n[r]));
|
|
});
|
|
});
|
|
}
|
|
function c(e) {
|
|
return e && "undefined" != typeof e.getElementsByTagName && e;
|
|
}
|
|
function f() {}
|
|
function p(e) {
|
|
for (var t = 0, n = e.length, i = ""; n > t; t++) i += e[t].value;
|
|
return i;
|
|
}
|
|
function d(e, t, n) {
|
|
var i = t.dir, r = n && "parentNode" === i, o = H++;
|
|
return t.first ? function(t, n, o) {
|
|
for (;t = t[i]; ) if (1 === t.nodeType || r) return e(t, n, o);
|
|
} : function(t, n, a) {
|
|
var s, u, l, c = [ B, o ];
|
|
if (a) {
|
|
for (;t = t[i]; ) if ((1 === t.nodeType || r) && e(t, n, a)) return !0;
|
|
} else for (;t = t[i]; ) if (1 === t.nodeType || r) {
|
|
if (l = t[I] || (t[I] = {}), u = l[t.uniqueID] || (l[t.uniqueID] = {}), (s = u[i]) && s[0] === B && s[1] === o) return c[2] = s[2];
|
|
if (u[i] = c, c[2] = e(t, n, a)) return !0;
|
|
}
|
|
};
|
|
}
|
|
function h(e) {
|
|
return e.length > 1 ? function(t, n, i) {
|
|
for (var r = e.length; r--; ) if (!e[r](t, n, i)) return !1;
|
|
return !0;
|
|
} : e[0];
|
|
}
|
|
function g(e, n, i) {
|
|
for (var r = 0, o = n.length; o > r; r++) t(e, n[r], i);
|
|
return i;
|
|
}
|
|
function m(e, t, n, i, r) {
|
|
for (var o, a = [], s = 0, u = e.length, l = null != t; u > s; s++) (o = e[s]) && (!n || n(o, i, r)) && (a.push(o),
|
|
l && t.push(s));
|
|
return a;
|
|
}
|
|
function v(e, t, n, r, o, a) {
|
|
return r && !r[I] && (r = v(r)), o && !o[I] && (o = v(o, a)), i(function(i, a, s, u) {
|
|
var l, c, f, p = [], d = [], h = a.length, v = i || g(t || "*", s.nodeType ? [ s ] : s, []), y = !e || !i && t ? v : m(v, p, e, s, u), b = n ? o || (i ? e : h || r) ? [] : a : y;
|
|
if (n && n(y, b, s, u), r) for (l = m(b, d), r(l, [], s, u), c = l.length; c--; ) (f = l[c]) && (b[d[c]] = !(y[d[c]] = f));
|
|
if (i) {
|
|
if (o || e) {
|
|
if (o) {
|
|
for (l = [], c = b.length; c--; ) (f = b[c]) && l.push(y[c] = f);
|
|
o(null, b = [], l, u);
|
|
}
|
|
for (c = b.length; c--; ) (f = b[c]) && (l = o ? ee(i, f) : p[c]) > -1 && (i[l] = !(a[l] = f));
|
|
}
|
|
} else b = m(b === a ? b.splice(h, b.length) : b), o ? o(null, a, b, u) : K.apply(a, b);
|
|
});
|
|
}
|
|
function y(e) {
|
|
for (var t, n, i, r = e.length, o = C.relative[e[0].type], a = o || C.relative[" "], s = o ? 1 : 0, u = d(function(e) {
|
|
return e === t;
|
|
}, a, !0), l = d(function(e) {
|
|
return ee(t, e) > -1;
|
|
}, a, !0), c = [ function(e, n, i) {
|
|
var r = !o && (i || n !== _) || ((t = n).nodeType ? u(e, n, i) : l(e, n, i));
|
|
return t = null, r;
|
|
} ]; r > s; s++) if (n = C.relative[e[s].type]) c = [ d(h(c), n) ]; else {
|
|
if (n = C.filter[e[s].type].apply(null, e[s].matches), n[I]) {
|
|
for (i = ++s; r > i && !C.relative[e[i].type]; i++) ;
|
|
return v(s > 1 && h(c), s > 1 && p(e.slice(0, s - 1).concat({
|
|
value: " " === e[s - 2].type ? "*" : ""
|
|
})).replace(se, "$1"), n, i > s && y(e.slice(s, i)), r > i && y(e = e.slice(i)), r > i && p(e));
|
|
}
|
|
c.push(n);
|
|
}
|
|
return h(c);
|
|
}
|
|
function b(e, n) {
|
|
var r = n.length > 0, o = e.length > 0, a = function(i, a, s, u, l) {
|
|
var c, f, p, d = 0, h = "0", g = i && [], v = [], y = _, b = i || o && C.find.TAG("*", l), x = B += null == y ? 1 : Math.random() || .1, w = b.length;
|
|
for (l && (_ = a === $ || a || l); h !== w && null != (c = b[h]); h++) {
|
|
if (o && c) {
|
|
for (f = 0, a || c.ownerDocument === $ || (O(c), s = !q); p = e[f++]; ) if (p(c, a || $, s)) {
|
|
u.push(c);
|
|
break;
|
|
}
|
|
l && (B = x);
|
|
}
|
|
r && ((c = !p && c) && d--, i && g.push(c));
|
|
}
|
|
if (d += h, r && h !== d) {
|
|
for (f = 0; p = n[f++]; ) p(g, v, a, s);
|
|
if (i) {
|
|
if (d > 0) for (;h--; ) g[h] || v[h] || (v[h] = G.call(u));
|
|
v = m(v);
|
|
}
|
|
K.apply(u, v), l && !i && v.length > 0 && d + n.length > 1 && t.uniqueSort(u);
|
|
}
|
|
return l && (B = x, _ = y), g;
|
|
};
|
|
return r ? i(a) : a;
|
|
}
|
|
var x, w, C, k, T, E, S, N, _, A, D, O, $, j, q, R, M, L, P, I = "sizzle" + 1 * new Date(), F = e.document, B = 0, H = 0, W = n(), U = n(), z = n(), V = function(e, t) {
|
|
return e === t && (D = !0), 0;
|
|
}, X = 1 << 31, Q = {}.hasOwnProperty, J = [], G = J.pop, Y = J.push, K = J.push, Z = J.slice, ee = function(e, t) {
|
|
for (var n = 0, i = e.length; i > n; n++) if (e[n] === t) return n;
|
|
return -1;
|
|
}, te = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", ne = "[\\x20\\t\\r\\n\\f]", ie = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", re = "\\[" + ne + "*(" + ie + ")(?:" + ne + "*([*^$|!~]?=)" + ne + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + ie + "))|)" + ne + "*\\]", oe = ":(" + ie + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + re + ")*)|.*)\\)|)", ae = new RegExp(ne + "+", "g"), se = new RegExp("^" + ne + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ne + "+$", "g"), ue = new RegExp("^" + ne + "*," + ne + "*"), le = new RegExp("^" + ne + "*([>+~]|" + ne + ")" + ne + "*"), ce = new RegExp("=" + ne + "*([^\\]'\"]*?)" + ne + "*\\]", "g"), fe = new RegExp(oe), pe = new RegExp("^" + ie + "$"), de = {
|
|
ID: new RegExp("^#(" + ie + ")"),
|
|
CLASS: new RegExp("^\\.(" + ie + ")"),
|
|
TAG: new RegExp("^(" + ie + "|[*])"),
|
|
ATTR: new RegExp("^" + re),
|
|
PSEUDO: new RegExp("^" + oe),
|
|
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ne + "*(even|odd|(([+-]|)(\\d*)n|)" + ne + "*(?:([+-]|)" + ne + "*(\\d+)|))" + ne + "*\\)|)", "i"),
|
|
bool: new RegExp("^(?:" + te + ")$", "i"),
|
|
needsContext: new RegExp("^" + ne + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ne + "*((?:-\\d)?\\d*)" + ne + "*\\)|)(?=[^-]|$)", "i")
|
|
}, he = /^(?:input|select|textarea|button)$/i, ge = /^h\d$/i, me = /^[^{]+\{\s*\[native \w/, ve = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ye = /[+~]/, be = /'|\\/g, xe = new RegExp("\\\\([\\da-f]{1,6}" + ne + "?|(" + ne + ")|.)", "ig"), we = function(e, t, n) {
|
|
var i = "0x" + t - 65536;
|
|
return i !== i || n ? t : 0 > i ? String.fromCharCode(i + 65536) : String.fromCharCode(i >> 10 | 55296, 1023 & i | 56320);
|
|
}, Ce = function() {
|
|
O();
|
|
};
|
|
try {
|
|
K.apply(J = Z.call(F.childNodes), F.childNodes), J[F.childNodes.length].nodeType;
|
|
} catch (ke) {
|
|
K = {
|
|
apply: J.length ? function(e, t) {
|
|
Y.apply(e, Z.call(t));
|
|
} : function(e, t) {
|
|
for (var n = e.length, i = 0; e[n++] = t[i++]; ) ;
|
|
e.length = n - 1;
|
|
}
|
|
};
|
|
}
|
|
w = t.support = {}, T = t.isXML = function(e) {
|
|
var t = e && (e.ownerDocument || e).documentElement;
|
|
return t ? "HTML" !== t.nodeName : !1;
|
|
}, O = t.setDocument = function(e) {
|
|
var t, n, i = e ? e.ownerDocument || e : F;
|
|
return i !== $ && 9 === i.nodeType && i.documentElement ? ($ = i, j = $.documentElement,
|
|
q = !T($), (n = $.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", Ce, !1) : n.attachEvent && n.attachEvent("onunload", Ce)),
|
|
w.attributes = r(function(e) {
|
|
return e.className = "i", !e.getAttribute("className");
|
|
}), w.getElementsByTagName = r(function(e) {
|
|
return e.appendChild($.createComment("")), !e.getElementsByTagName("*").length;
|
|
}), w.getElementsByClassName = me.test($.getElementsByClassName), w.getById = r(function(e) {
|
|
return j.appendChild(e).id = I, !$.getElementsByName || !$.getElementsByName(I).length;
|
|
}), w.getById ? (C.find.ID = function(e, t) {
|
|
if ("undefined" != typeof t.getElementById && q) {
|
|
var n = t.getElementById(e);
|
|
return n ? [ n ] : [];
|
|
}
|
|
}, C.filter.ID = function(e) {
|
|
var t = e.replace(xe, we);
|
|
return function(e) {
|
|
return e.getAttribute("id") === t;
|
|
};
|
|
}) : (delete C.find.ID, C.filter.ID = function(e) {
|
|
var t = e.replace(xe, we);
|
|
return function(e) {
|
|
var n = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id");
|
|
return n && n.value === t;
|
|
};
|
|
}), C.find.TAG = w.getElementsByTagName ? function(e, t) {
|
|
return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : w.qsa ? t.querySelectorAll(e) : void 0;
|
|
} : function(e, t) {
|
|
var n, i = [], r = 0, o = t.getElementsByTagName(e);
|
|
if ("*" === e) {
|
|
for (;n = o[r++]; ) 1 === n.nodeType && i.push(n);
|
|
return i;
|
|
}
|
|
return o;
|
|
}, C.find.CLASS = w.getElementsByClassName && function(e, t) {
|
|
return "undefined" != typeof t.getElementsByClassName && q ? t.getElementsByClassName(e) : void 0;
|
|
}, M = [], R = [], (w.qsa = me.test($.querySelectorAll)) && (r(function(e) {
|
|
j.appendChild(e).innerHTML = "<a id='" + I + "'></a><select id='" + I + "-\r\\' msallowcapture=''><option selected=''></option></select>",
|
|
e.querySelectorAll("[msallowcapture^='']").length && R.push("[*^$]=" + ne + "*(?:''|\"\")"),
|
|
e.querySelectorAll("[selected]").length || R.push("\\[" + ne + "*(?:value|" + te + ")"),
|
|
e.querySelectorAll("[id~=" + I + "-]").length || R.push("~="), e.querySelectorAll(":checked").length || R.push(":checked"),
|
|
e.querySelectorAll("a#" + I + "+*").length || R.push(".#.+[+~]");
|
|
}), r(function(e) {
|
|
var t = $.createElement("input");
|
|
t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && R.push("name" + ne + "*[*^$|!~]?="),
|
|
e.querySelectorAll(":enabled").length || R.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"),
|
|
R.push(",.*:");
|
|
})), (w.matchesSelector = me.test(L = j.matches || j.webkitMatchesSelector || j.mozMatchesSelector || j.oMatchesSelector || j.msMatchesSelector)) && r(function(e) {
|
|
w.disconnectedMatch = L.call(e, "div"), L.call(e, "[s!='']:x"), M.push("!=", oe);
|
|
}), R = R.length && new RegExp(R.join("|")), M = M.length && new RegExp(M.join("|")),
|
|
t = me.test(j.compareDocumentPosition), P = t || me.test(j.contains) ? function(e, t) {
|
|
var n = 9 === e.nodeType ? e.documentElement : e, i = t && t.parentNode;
|
|
return e === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(i)));
|
|
} : function(e, t) {
|
|
if (t) for (;t = t.parentNode; ) if (t === e) return !0;
|
|
return !1;
|
|
}, V = t ? function(e, t) {
|
|
if (e === t) return D = !0, 0;
|
|
var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
|
|
return n ? n : (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1,
|
|
1 & n || !w.sortDetached && t.compareDocumentPosition(e) === n ? e === $ || e.ownerDocument === F && P(F, e) ? -1 : t === $ || t.ownerDocument === F && P(F, t) ? 1 : A ? ee(A, e) - ee(A, t) : 0 : 4 & n ? -1 : 1);
|
|
} : function(e, t) {
|
|
if (e === t) return D = !0, 0;
|
|
var n, i = 0, r = e.parentNode, o = t.parentNode, s = [ e ], u = [ t ];
|
|
if (!r || !o) return e === $ ? -1 : t === $ ? 1 : r ? -1 : o ? 1 : A ? ee(A, e) - ee(A, t) : 0;
|
|
if (r === o) return a(e, t);
|
|
for (n = e; n = n.parentNode; ) s.unshift(n);
|
|
for (n = t; n = n.parentNode; ) u.unshift(n);
|
|
for (;s[i] === u[i]; ) i++;
|
|
return i ? a(s[i], u[i]) : s[i] === F ? -1 : u[i] === F ? 1 : 0;
|
|
}, $) : $;
|
|
}, t.matches = function(e, n) {
|
|
return t(e, null, null, n);
|
|
}, t.matchesSelector = function(e, n) {
|
|
if ((e.ownerDocument || e) !== $ && O(e), n = n.replace(ce, "='$1']"), w.matchesSelector && q && !z[n + " "] && (!M || !M.test(n)) && (!R || !R.test(n))) try {
|
|
var i = L.call(e, n);
|
|
if (i || w.disconnectedMatch || e.document && 11 !== e.document.nodeType) return i;
|
|
} catch (r) {}
|
|
return t(n, $, null, [ e ]).length > 0;
|
|
}, t.contains = function(e, t) {
|
|
return (e.ownerDocument || e) !== $ && O(e), P(e, t);
|
|
}, t.attr = function(e, t) {
|
|
(e.ownerDocument || e) !== $ && O(e);
|
|
var n = C.attrHandle[t.toLowerCase()], i = n && Q.call(C.attrHandle, t.toLowerCase()) ? n(e, t, !q) : void 0;
|
|
return void 0 !== i ? i : w.attributes || !q ? e.getAttribute(t) : (i = e.getAttributeNode(t)) && i.specified ? i.value : null;
|
|
}, t.error = function(e) {
|
|
throw new Error("Syntax error, unrecognized expression: " + e);
|
|
}, t.uniqueSort = function(e) {
|
|
var t, n = [], i = 0, r = 0;
|
|
if (D = !w.detectDuplicates, A = !w.sortStable && e.slice(0), e.sort(V), D) {
|
|
for (;t = e[r++]; ) t === e[r] && (i = n.push(r));
|
|
for (;i--; ) e.splice(n[i], 1);
|
|
}
|
|
return A = null, e;
|
|
}, k = t.getText = function(e) {
|
|
var t, n = "", i = 0, r = e.nodeType;
|
|
if (r) {
|
|
if (1 === r || 9 === r || 11 === r) {
|
|
if ("string" == typeof e.textContent) return e.textContent;
|
|
for (e = e.firstChild; e; e = e.nextSibling) n += k(e);
|
|
} else if (3 === r || 4 === r) return e.nodeValue;
|
|
} else for (;t = e[i++]; ) n += k(t);
|
|
return n;
|
|
}, C = t.selectors = {
|
|
cacheLength: 50,
|
|
createPseudo: i,
|
|
match: de,
|
|
attrHandle: {},
|
|
find: {},
|
|
relative: {
|
|
">": {
|
|
dir: "parentNode",
|
|
first: !0
|
|
},
|
|
" ": {
|
|
dir: "parentNode"
|
|
},
|
|
"+": {
|
|
dir: "previousSibling",
|
|
first: !0
|
|
},
|
|
"~": {
|
|
dir: "previousSibling"
|
|
}
|
|
},
|
|
preFilter: {
|
|
ATTR: function(e) {
|
|
return e[1] = e[1].replace(xe, we), e[3] = (e[3] || e[4] || e[5] || "").replace(xe, we),
|
|
"~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4);
|
|
},
|
|
CHILD: function(e) {
|
|
return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || t.error(e[0]),
|
|
e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && t.error(e[0]),
|
|
e;
|
|
},
|
|
PSEUDO: function(e) {
|
|
var t, n = !e[6] && e[2];
|
|
return de.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && fe.test(n) && (t = E(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t),
|
|
e[2] = n.slice(0, t)), e.slice(0, 3));
|
|
}
|
|
},
|
|
filter: {
|
|
TAG: function(e) {
|
|
var t = e.replace(xe, we).toLowerCase();
|
|
return "*" === e ? function() {
|
|
return !0;
|
|
} : function(e) {
|
|
return e.nodeName && e.nodeName.toLowerCase() === t;
|
|
};
|
|
},
|
|
CLASS: function(e) {
|
|
var t = W[e + " "];
|
|
return t || (t = new RegExp("(^|" + ne + ")" + e + "(" + ne + "|$)")) && W(e, function(e) {
|
|
return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "");
|
|
});
|
|
},
|
|
ATTR: function(e, n, i) {
|
|
return function(r) {
|
|
var o = t.attr(r, e);
|
|
return null == o ? "!=" === n : n ? (o += "", "=" === n ? o === i : "!=" === n ? o !== i : "^=" === n ? i && 0 === o.indexOf(i) : "*=" === n ? i && o.indexOf(i) > -1 : "$=" === n ? i && o.slice(-i.length) === i : "~=" === n ? (" " + o.replace(ae, " ") + " ").indexOf(i) > -1 : "|=" === n ? o === i || o.slice(0, i.length + 1) === i + "-" : !1) : !0;
|
|
};
|
|
},
|
|
CHILD: function(e, t, n, i, r) {
|
|
var o = "nth" !== e.slice(0, 3), a = "last" !== e.slice(-4), s = "of-type" === t;
|
|
return 1 === i && 0 === r ? function(e) {
|
|
return !!e.parentNode;
|
|
} : function(t, n, u) {
|
|
var l, c, f, p, d, h, g = o !== a ? "nextSibling" : "previousSibling", m = t.parentNode, v = s && t.nodeName.toLowerCase(), y = !u && !s, b = !1;
|
|
if (m) {
|
|
if (o) {
|
|
for (;g; ) {
|
|
for (p = t; p = p[g]; ) if (s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) return !1;
|
|
h = g = "only" === e && !h && "nextSibling";
|
|
}
|
|
return !0;
|
|
}
|
|
if (h = [ a ? m.firstChild : m.lastChild ], a && y) {
|
|
for (p = m, f = p[I] || (p[I] = {}), c = f[p.uniqueID] || (f[p.uniqueID] = {}),
|
|
l = c[e] || [], d = l[0] === B && l[1], b = d && l[2], p = d && m.childNodes[d]; p = ++d && p && p[g] || (b = d = 0) || h.pop(); ) if (1 === p.nodeType && ++b && p === t) {
|
|
c[e] = [ B, d, b ];
|
|
break;
|
|
}
|
|
} else if (y && (p = t, f = p[I] || (p[I] = {}), c = f[p.uniqueID] || (f[p.uniqueID] = {}),
|
|
l = c[e] || [], d = l[0] === B && l[1], b = d), b === !1) for (;(p = ++d && p && p[g] || (b = d = 0) || h.pop()) && ((s ? p.nodeName.toLowerCase() !== v : 1 !== p.nodeType) || !++b || (y && (f = p[I] || (p[I] = {}),
|
|
c = f[p.uniqueID] || (f[p.uniqueID] = {}), c[e] = [ B, b ]), p !== t)); ) ;
|
|
return b -= r, b === i || b % i === 0 && b / i >= 0;
|
|
}
|
|
};
|
|
},
|
|
PSEUDO: function(e, n) {
|
|
var r, o = C.pseudos[e] || C.setFilters[e.toLowerCase()] || t.error("unsupported pseudo: " + e);
|
|
return o[I] ? o(n) : o.length > 1 ? (r = [ e, e, "", n ], C.setFilters.hasOwnProperty(e.toLowerCase()) ? i(function(e, t) {
|
|
for (var i, r = o(e, n), a = r.length; a--; ) i = ee(e, r[a]), e[i] = !(t[i] = r[a]);
|
|
}) : function(e) {
|
|
return o(e, 0, r);
|
|
}) : o;
|
|
}
|
|
},
|
|
pseudos: {
|
|
not: i(function(e) {
|
|
var t = [], n = [], r = S(e.replace(se, "$1"));
|
|
return r[I] ? i(function(e, t, n, i) {
|
|
for (var o, a = r(e, null, i, []), s = e.length; s--; ) (o = a[s]) && (e[s] = !(t[s] = o));
|
|
}) : function(e, i, o) {
|
|
return t[0] = e, r(t, null, o, n), t[0] = null, !n.pop();
|
|
};
|
|
}),
|
|
has: i(function(e) {
|
|
return function(n) {
|
|
return t(e, n).length > 0;
|
|
};
|
|
}),
|
|
contains: i(function(e) {
|
|
return e = e.replace(xe, we), function(t) {
|
|
return (t.textContent || t.innerText || k(t)).indexOf(e) > -1;
|
|
};
|
|
}),
|
|
lang: i(function(e) {
|
|
return pe.test(e || "") || t.error("unsupported lang: " + e), e = e.replace(xe, we).toLowerCase(),
|
|
function(t) {
|
|
var n;
|
|
do if (n = q ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return n = n.toLowerCase(),
|
|
n === e || 0 === n.indexOf(e + "-"); while ((t = t.parentNode) && 1 === t.nodeType);
|
|
return !1;
|
|
};
|
|
}),
|
|
target: function(t) {
|
|
var n = e.location && e.location.hash;
|
|
return n && n.slice(1) === t.id;
|
|
},
|
|
root: function(e) {
|
|
return e === j;
|
|
},
|
|
focus: function(e) {
|
|
return e === $.activeElement && (!$.hasFocus || $.hasFocus()) && !!(e.type || e.href || ~e.tabIndex);
|
|
},
|
|
enabled: function(e) {
|
|
return e.disabled === !1;
|
|
},
|
|
disabled: function(e) {
|
|
return e.disabled === !0;
|
|
},
|
|
checked: function(e) {
|
|
var t = e.nodeName.toLowerCase();
|
|
return "input" === t && !!e.checked || "option" === t && !!e.selected;
|
|
},
|
|
selected: function(e) {
|
|
return e.parentNode && e.parentNode.selectedIndex, e.selected === !0;
|
|
},
|
|
empty: function(e) {
|
|
for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1;
|
|
return !0;
|
|
},
|
|
parent: function(e) {
|
|
return !C.pseudos.empty(e);
|
|
},
|
|
header: function(e) {
|
|
return ge.test(e.nodeName);
|
|
},
|
|
input: function(e) {
|
|
return he.test(e.nodeName);
|
|
},
|
|
button: function(e) {
|
|
var t = e.nodeName.toLowerCase();
|
|
return "input" === t && "button" === e.type || "button" === t;
|
|
},
|
|
text: function(e) {
|
|
var t;
|
|
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase());
|
|
},
|
|
first: l(function() {
|
|
return [ 0 ];
|
|
}),
|
|
last: l(function(e, t) {
|
|
return [ t - 1 ];
|
|
}),
|
|
eq: l(function(e, t, n) {
|
|
return [ 0 > n ? n + t : n ];
|
|
}),
|
|
even: l(function(e, t) {
|
|
for (var n = 0; t > n; n += 2) e.push(n);
|
|
return e;
|
|
}),
|
|
odd: l(function(e, t) {
|
|
for (var n = 1; t > n; n += 2) e.push(n);
|
|
return e;
|
|
}),
|
|
lt: l(function(e, t, n) {
|
|
for (var i = 0 > n ? n + t : n; --i >= 0; ) e.push(i);
|
|
return e;
|
|
}),
|
|
gt: l(function(e, t, n) {
|
|
for (var i = 0 > n ? n + t : n; ++i < t; ) e.push(i);
|
|
return e;
|
|
})
|
|
}
|
|
}, C.pseudos.nth = C.pseudos.eq;
|
|
for (x in {
|
|
radio: !0,
|
|
checkbox: !0,
|
|
file: !0,
|
|
password: !0,
|
|
image: !0
|
|
}) C.pseudos[x] = s(x);
|
|
for (x in {
|
|
submit: !0,
|
|
reset: !0
|
|
}) C.pseudos[x] = u(x);
|
|
return f.prototype = C.filters = C.pseudos, C.setFilters = new f(), E = t.tokenize = function(e, n) {
|
|
var i, r, o, a, s, u, l, c = U[e + " "];
|
|
if (c) return n ? 0 : c.slice(0);
|
|
for (s = e, u = [], l = C.preFilter; s; ) {
|
|
(!i || (r = ue.exec(s))) && (r && (s = s.slice(r[0].length) || s), u.push(o = [])),
|
|
i = !1, (r = le.exec(s)) && (i = r.shift(), o.push({
|
|
value: i,
|
|
type: r[0].replace(se, " ")
|
|
}), s = s.slice(i.length));
|
|
for (a in C.filter) !(r = de[a].exec(s)) || l[a] && !(r = l[a](r)) || (i = r.shift(),
|
|
o.push({
|
|
value: i,
|
|
type: a,
|
|
matches: r
|
|
}), s = s.slice(i.length));
|
|
if (!i) break;
|
|
}
|
|
return n ? s.length : s ? t.error(e) : U(e, u).slice(0);
|
|
}, S = t.compile = function(e, t) {
|
|
var n, i = [], r = [], o = z[e + " "];
|
|
if (!o) {
|
|
for (t || (t = E(e)), n = t.length; n--; ) o = y(t[n]), o[I] ? i.push(o) : r.push(o);
|
|
o = z(e, b(r, i)), o.selector = e;
|
|
}
|
|
return o;
|
|
}, N = t.select = function(e, t, n, i) {
|
|
var r, o, a, s, u, l = "function" == typeof e && e, f = !i && E(e = l.selector || e);
|
|
if (n = n || [], 1 === f.length) {
|
|
if (o = f[0] = f[0].slice(0), o.length > 2 && "ID" === (a = o[0]).type && w.getById && 9 === t.nodeType && q && C.relative[o[1].type]) {
|
|
if (t = (C.find.ID(a.matches[0].replace(xe, we), t) || [])[0], !t) return n;
|
|
l && (t = t.parentNode), e = e.slice(o.shift().value.length);
|
|
}
|
|
for (r = de.needsContext.test(e) ? 0 : o.length; r-- && (a = o[r], !C.relative[s = a.type]); ) if ((u = C.find[s]) && (i = u(a.matches[0].replace(xe, we), ye.test(o[0].type) && c(t.parentNode) || t))) {
|
|
if (o.splice(r, 1), e = i.length && p(o), !e) return K.apply(n, i), n;
|
|
break;
|
|
}
|
|
}
|
|
return (l || S(e, f))(i, t, !q, n, !t || ye.test(e) && c(t.parentNode) || t), n;
|
|
}, w.sortStable = I.split("").sort(V).join("") === I, w.detectDuplicates = !!D,
|
|
O(), w.sortDetached = r(function(e) {
|
|
return 1 & e.compareDocumentPosition($.createElement("div"));
|
|
}), r(function(e) {
|
|
return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href");
|
|
}) || o("type|href|height|width", function(e, t, n) {
|
|
return n ? void 0 : e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2);
|
|
}), w.attributes && r(function(e) {
|
|
return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value");
|
|
}) || o("value", function(e, t, n) {
|
|
return n || "input" !== e.nodeName.toLowerCase() ? void 0 : e.defaultValue;
|
|
}), r(function(e) {
|
|
return null == e.getAttribute("disabled");
|
|
}) || o(te, function(e, t, n) {
|
|
var i;
|
|
return n ? void 0 : e[t] === !0 ? t.toLowerCase() : (i = e.getAttributeNode(t)) && i.specified ? i.value : null;
|
|
}), t;
|
|
}(e);
|
|
oe.find = ce, oe.expr = ce.selectors, oe.expr[":"] = oe.expr.pseudos, oe.uniqueSort = oe.unique = ce.uniqueSort,
|
|
oe.text = ce.getText, oe.isXMLDoc = ce.isXML, oe.contains = ce.contains;
|
|
var fe = function(e, t, n) {
|
|
for (var i = [], r = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; ) if (1 === e.nodeType) {
|
|
if (r && oe(e).is(n)) break;
|
|
i.push(e);
|
|
}
|
|
return i;
|
|
}, pe = function(e, t) {
|
|
for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
|
|
return n;
|
|
}, de = oe.expr.match.needsContext, he = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/, ge = /^.[^:#\[\.,]*$/;
|
|
oe.filter = function(e, t, n) {
|
|
var i = t[0];
|
|
return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === i.nodeType ? oe.find.matchesSelector(i, e) ? [ i ] : [] : oe.find.matches(e, oe.grep(t, function(e) {
|
|
return 1 === e.nodeType;
|
|
}));
|
|
}, oe.fn.extend({
|
|
find: function(e) {
|
|
var t, n = this.length, i = [], r = this;
|
|
if ("string" != typeof e) return this.pushStack(oe(e).filter(function() {
|
|
for (t = 0; n > t; t++) if (oe.contains(r[t], this)) return !0;
|
|
}));
|
|
for (t = 0; n > t; t++) oe.find(e, r[t], i);
|
|
return i = this.pushStack(n > 1 ? oe.unique(i) : i), i.selector = this.selector ? this.selector + " " + e : e,
|
|
i;
|
|
},
|
|
filter: function(e) {
|
|
return this.pushStack(i(this, e || [], !1));
|
|
},
|
|
not: function(e) {
|
|
return this.pushStack(i(this, e || [], !0));
|
|
},
|
|
is: function(e) {
|
|
return !!i(this, "string" == typeof e && de.test(e) ? oe(e) : e || [], !1).length;
|
|
}
|
|
});
|
|
var me, ve = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, ye = oe.fn.init = function(e, t, n) {
|
|
var i, r;
|
|
if (!e) return this;
|
|
if (n = n || me, "string" == typeof e) {
|
|
if (i = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [ null, e, null ] : ve.exec(e),
|
|
!i || !i[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
|
|
if (i[1]) {
|
|
if (t = t instanceof oe ? t[0] : t, oe.merge(this, oe.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : J, !0)),
|
|
he.test(i[1]) && oe.isPlainObject(t)) for (i in t) oe.isFunction(this[i]) ? this[i](t[i]) : this.attr(i, t[i]);
|
|
return this;
|
|
}
|
|
return r = J.getElementById(i[2]), r && r.parentNode && (this.length = 1, this[0] = r),
|
|
this.context = J, this.selector = e, this;
|
|
}
|
|
return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : oe.isFunction(e) ? void 0 !== n.ready ? n.ready(e) : e(oe) : (void 0 !== e.selector && (this.selector = e.selector,
|
|
this.context = e.context), oe.makeArray(e, this));
|
|
};
|
|
ye.prototype = oe.fn, me = oe(J);
|
|
var be = /^(?:parents|prev(?:Until|All))/, xe = {
|
|
children: !0,
|
|
contents: !0,
|
|
next: !0,
|
|
prev: !0
|
|
};
|
|
oe.fn.extend({
|
|
has: function(e) {
|
|
var t = oe(e, this), n = t.length;
|
|
return this.filter(function() {
|
|
for (var e = 0; n > e; e++) if (oe.contains(this, t[e])) return !0;
|
|
});
|
|
},
|
|
closest: function(e, t) {
|
|
for (var n, i = 0, r = this.length, o = [], a = de.test(e) || "string" != typeof e ? oe(e, t || this.context) : 0; r > i; i++) for (n = this[i]; n && n !== t; n = n.parentNode) if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && oe.find.matchesSelector(n, e))) {
|
|
o.push(n);
|
|
break;
|
|
}
|
|
return this.pushStack(o.length > 1 ? oe.uniqueSort(o) : o);
|
|
},
|
|
index: function(e) {
|
|
return e ? "string" == typeof e ? Z.call(oe(e), this[0]) : Z.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1;
|
|
},
|
|
add: function(e, t) {
|
|
return this.pushStack(oe.uniqueSort(oe.merge(this.get(), oe(e, t))));
|
|
},
|
|
addBack: function(e) {
|
|
return this.add(null == e ? this.prevObject : this.prevObject.filter(e));
|
|
}
|
|
}), oe.each({
|
|
parent: function(e) {
|
|
var t = e.parentNode;
|
|
return t && 11 !== t.nodeType ? t : null;
|
|
},
|
|
parents: function(e) {
|
|
return fe(e, "parentNode");
|
|
},
|
|
parentsUntil: function(e, t, n) {
|
|
return fe(e, "parentNode", n);
|
|
},
|
|
next: function(e) {
|
|
return r(e, "nextSibling");
|
|
},
|
|
prev: function(e) {
|
|
return r(e, "previousSibling");
|
|
},
|
|
nextAll: function(e) {
|
|
return fe(e, "nextSibling");
|
|
},
|
|
prevAll: function(e) {
|
|
return fe(e, "previousSibling");
|
|
},
|
|
nextUntil: function(e, t, n) {
|
|
return fe(e, "nextSibling", n);
|
|
},
|
|
prevUntil: function(e, t, n) {
|
|
return fe(e, "previousSibling", n);
|
|
},
|
|
siblings: function(e) {
|
|
return pe((e.parentNode || {}).firstChild, e);
|
|
},
|
|
children: function(e) {
|
|
return pe(e.firstChild);
|
|
},
|
|
contents: function(e) {
|
|
return e.contentDocument || oe.merge([], e.childNodes);
|
|
}
|
|
}, function(e, t) {
|
|
oe.fn[e] = function(n, i) {
|
|
var r = oe.map(this, t, n);
|
|
return "Until" !== e.slice(-5) && (i = n), i && "string" == typeof i && (r = oe.filter(i, r)),
|
|
this.length > 1 && (xe[e] || oe.uniqueSort(r), be.test(e) && r.reverse()), this.pushStack(r);
|
|
};
|
|
});
|
|
var we = /\S+/g;
|
|
oe.Callbacks = function(e) {
|
|
e = "string" == typeof e ? o(e) : oe.extend({}, e);
|
|
var t, n, i, r, a = [], s = [], u = -1, l = function() {
|
|
for (r = e.once, i = t = !0; s.length; u = -1) for (n = s.shift(); ++u < a.length; ) a[u].apply(n[0], n[1]) === !1 && e.stopOnFalse && (u = a.length,
|
|
n = !1);
|
|
e.memory || (n = !1), t = !1, r && (a = n ? [] : "");
|
|
}, c = {
|
|
add: function() {
|
|
return a && (n && !t && (u = a.length - 1, s.push(n)), function i(t) {
|
|
oe.each(t, function(t, n) {
|
|
oe.isFunction(n) ? e.unique && c.has(n) || a.push(n) : n && n.length && "string" !== oe.type(n) && i(n);
|
|
});
|
|
}(arguments), n && !t && l()), this;
|
|
},
|
|
remove: function() {
|
|
return oe.each(arguments, function(e, t) {
|
|
for (var n; (n = oe.inArray(t, a, n)) > -1; ) a.splice(n, 1), u >= n && u--;
|
|
}), this;
|
|
},
|
|
has: function(e) {
|
|
return e ? oe.inArray(e, a) > -1 : a.length > 0;
|
|
},
|
|
empty: function() {
|
|
return a && (a = []), this;
|
|
},
|
|
disable: function() {
|
|
return r = s = [], a = n = "", this;
|
|
},
|
|
disabled: function() {
|
|
return !a;
|
|
},
|
|
lock: function() {
|
|
return r = s = [], n || (a = n = ""), this;
|
|
},
|
|
locked: function() {
|
|
return !!r;
|
|
},
|
|
fireWith: function(e, n) {
|
|
return r || (n = n || [], n = [ e, n.slice ? n.slice() : n ], s.push(n), t || l()),
|
|
this;
|
|
},
|
|
fire: function() {
|
|
return c.fireWith(this, arguments), this;
|
|
},
|
|
fired: function() {
|
|
return !!i;
|
|
}
|
|
};
|
|
return c;
|
|
}, oe.extend({
|
|
Deferred: function(e) {
|
|
var t = [ [ "resolve", "done", oe.Callbacks("once memory"), "resolved" ], [ "reject", "fail", oe.Callbacks("once memory"), "rejected" ], [ "notify", "progress", oe.Callbacks("memory") ] ], n = "pending", i = {
|
|
state: function() {
|
|
return n;
|
|
},
|
|
always: function() {
|
|
return r.done(arguments).fail(arguments), this;
|
|
},
|
|
then: function() {
|
|
var e = arguments;
|
|
return oe.Deferred(function(n) {
|
|
oe.each(t, function(t, o) {
|
|
var a = oe.isFunction(e[t]) && e[t];
|
|
r[o[1]](function() {
|
|
var e = a && a.apply(this, arguments);
|
|
e && oe.isFunction(e.promise) ? e.promise().progress(n.notify).done(n.resolve).fail(n.reject) : n[o[0] + "With"](this === i ? n.promise() : this, a ? [ e ] : arguments);
|
|
});
|
|
}), e = null;
|
|
}).promise();
|
|
},
|
|
promise: function(e) {
|
|
return null != e ? oe.extend(e, i) : i;
|
|
}
|
|
}, r = {};
|
|
return i.pipe = i.then, oe.each(t, function(e, o) {
|
|
var a = o[2], s = o[3];
|
|
i[o[1]] = a.add, s && a.add(function() {
|
|
n = s;
|
|
}, t[1 ^ e][2].disable, t[2][2].lock), r[o[0]] = function() {
|
|
return r[o[0] + "With"](this === r ? i : this, arguments), this;
|
|
}, r[o[0] + "With"] = a.fireWith;
|
|
}), i.promise(r), e && e.call(r, r), r;
|
|
},
|
|
when: function(e) {
|
|
var t, n, i, r = 0, o = G.call(arguments), a = o.length, s = 1 !== a || e && oe.isFunction(e.promise) ? a : 0, u = 1 === s ? e : oe.Deferred(), l = function(e, n, i) {
|
|
return function(r) {
|
|
n[e] = this, i[e] = arguments.length > 1 ? G.call(arguments) : r, i === t ? u.notifyWith(n, i) : --s || u.resolveWith(n, i);
|
|
};
|
|
};
|
|
if (a > 1) for (t = new Array(a), n = new Array(a), i = new Array(a); a > r; r++) o[r] && oe.isFunction(o[r].promise) ? o[r].promise().progress(l(r, n, t)).done(l(r, i, o)).fail(u.reject) : --s;
|
|
return s || u.resolveWith(i, o), u.promise();
|
|
}
|
|
});
|
|
var Ce;
|
|
oe.fn.ready = function(e) {
|
|
return oe.ready.promise().done(e), this;
|
|
}, oe.extend({
|
|
isReady: !1,
|
|
readyWait: 1,
|
|
holdReady: function(e) {
|
|
e ? oe.readyWait++ : oe.ready(!0);
|
|
},
|
|
ready: function(e) {
|
|
(e === !0 ? --oe.readyWait : oe.isReady) || (oe.isReady = !0, e !== !0 && --oe.readyWait > 0 || (Ce.resolveWith(J, [ oe ]),
|
|
oe.fn.triggerHandler && (oe(J).triggerHandler("ready"), oe(J).off("ready"))));
|
|
}
|
|
}), oe.ready.promise = function(t) {
|
|
return Ce || (Ce = oe.Deferred(), "complete" === J.readyState || "loading" !== J.readyState && !J.documentElement.doScroll ? e.setTimeout(oe.ready) : (J.addEventListener("DOMContentLoaded", a),
|
|
e.addEventListener("load", a))), Ce.promise(t);
|
|
}, oe.ready.promise();
|
|
var ke = function(e, t, n, i, r, o, a) {
|
|
var s = 0, u = e.length, l = null == n;
|
|
if ("object" === oe.type(n)) {
|
|
r = !0;
|
|
for (s in n) ke(e, t, s, n[s], !0, o, a);
|
|
} else if (void 0 !== i && (r = !0, oe.isFunction(i) || (a = !0), l && (a ? (t.call(e, i),
|
|
t = null) : (l = t, t = function(e, t, n) {
|
|
return l.call(oe(e), n);
|
|
})), t)) for (;u > s; s++) t(e[s], n, a ? i : i.call(e[s], s, t(e[s], n)));
|
|
return r ? e : l ? t.call(e) : u ? t(e[0], n) : o;
|
|
}, Te = function(e) {
|
|
return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType;
|
|
};
|
|
s.uid = 1, s.prototype = {
|
|
register: function(e, t) {
|
|
var n = t || {};
|
|
return e.nodeType ? e[this.expando] = n : Object.defineProperty(e, this.expando, {
|
|
value: n,
|
|
writable: !0,
|
|
configurable: !0
|
|
}), e[this.expando];
|
|
},
|
|
cache: function(e) {
|
|
if (!Te(e)) return {};
|
|
var t = e[this.expando];
|
|
return t || (t = {}, Te(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
|
|
value: t,
|
|
configurable: !0
|
|
}))), t;
|
|
},
|
|
set: function(e, t, n) {
|
|
var i, r = this.cache(e);
|
|
if ("string" == typeof t) r[t] = n; else for (i in t) r[i] = t[i];
|
|
return r;
|
|
},
|
|
get: function(e, t) {
|
|
return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][t];
|
|
},
|
|
access: function(e, t, n) {
|
|
var i;
|
|
return void 0 === t || t && "string" == typeof t && void 0 === n ? (i = this.get(e, t),
|
|
void 0 !== i ? i : this.get(e, oe.camelCase(t))) : (this.set(e, t, n), void 0 !== n ? n : t);
|
|
},
|
|
remove: function(e, t) {
|
|
var n, i, r, o = e[this.expando];
|
|
if (void 0 !== o) {
|
|
if (void 0 === t) this.register(e); else {
|
|
oe.isArray(t) ? i = t.concat(t.map(oe.camelCase)) : (r = oe.camelCase(t), t in o ? i = [ t, r ] : (i = r,
|
|
i = i in o ? [ i ] : i.match(we) || [])), n = i.length;
|
|
for (;n--; ) delete o[i[n]];
|
|
}
|
|
(void 0 === t || oe.isEmptyObject(o)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]);
|
|
}
|
|
},
|
|
hasData: function(e) {
|
|
var t = e[this.expando];
|
|
return void 0 !== t && !oe.isEmptyObject(t);
|
|
}
|
|
};
|
|
var Ee = new s(), Se = new s(), Ne = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, _e = /[A-Z]/g;
|
|
oe.extend({
|
|
hasData: function(e) {
|
|
return Se.hasData(e) || Ee.hasData(e);
|
|
},
|
|
data: function(e, t, n) {
|
|
return Se.access(e, t, n);
|
|
},
|
|
removeData: function(e, t) {
|
|
Se.remove(e, t);
|
|
},
|
|
_data: function(e, t, n) {
|
|
return Ee.access(e, t, n);
|
|
},
|
|
_removeData: function(e, t) {
|
|
Ee.remove(e, t);
|
|
}
|
|
}), oe.fn.extend({
|
|
data: function(e, t) {
|
|
var n, i, r, o = this[0], a = o && o.attributes;
|
|
if (void 0 === e) {
|
|
if (this.length && (r = Se.get(o), 1 === o.nodeType && !Ee.get(o, "hasDataAttrs"))) {
|
|
for (n = a.length; n--; ) a[n] && (i = a[n].name, 0 === i.indexOf("data-") && (i = oe.camelCase(i.slice(5)),
|
|
u(o, i, r[i])));
|
|
Ee.set(o, "hasDataAttrs", !0);
|
|
}
|
|
return r;
|
|
}
|
|
return "object" == typeof e ? this.each(function() {
|
|
Se.set(this, e);
|
|
}) : ke(this, function(t) {
|
|
var n, i;
|
|
if (o && void 0 === t) {
|
|
if (n = Se.get(o, e) || Se.get(o, e.replace(_e, "-$&").toLowerCase()), void 0 !== n) return n;
|
|
if (i = oe.camelCase(e), n = Se.get(o, i), void 0 !== n) return n;
|
|
if (n = u(o, i, void 0), void 0 !== n) return n;
|
|
} else i = oe.camelCase(e), this.each(function() {
|
|
var n = Se.get(this, i);
|
|
Se.set(this, i, t), e.indexOf("-") > -1 && void 0 !== n && Se.set(this, e, t);
|
|
});
|
|
}, null, t, arguments.length > 1, null, !0);
|
|
},
|
|
removeData: function(e) {
|
|
return this.each(function() {
|
|
Se.remove(this, e);
|
|
});
|
|
}
|
|
}), oe.extend({
|
|
queue: function(e, t, n) {
|
|
var i;
|
|
return e ? (t = (t || "fx") + "queue", i = Ee.get(e, t), n && (!i || oe.isArray(n) ? i = Ee.access(e, t, oe.makeArray(n)) : i.push(n)),
|
|
i || []) : void 0;
|
|
},
|
|
dequeue: function(e, t) {
|
|
t = t || "fx";
|
|
var n = oe.queue(e, t), i = n.length, r = n.shift(), o = oe._queueHooks(e, t), a = function() {
|
|
oe.dequeue(e, t);
|
|
};
|
|
"inprogress" === r && (r = n.shift(), i--), r && ("fx" === t && n.unshift("inprogress"),
|
|
delete o.stop, r.call(e, a, o)), !i && o && o.empty.fire();
|
|
},
|
|
_queueHooks: function(e, t) {
|
|
var n = t + "queueHooks";
|
|
return Ee.get(e, n) || Ee.access(e, n, {
|
|
empty: oe.Callbacks("once memory").add(function() {
|
|
Ee.remove(e, [ t + "queue", n ]);
|
|
})
|
|
});
|
|
}
|
|
}), oe.fn.extend({
|
|
queue: function(e, t) {
|
|
var n = 2;
|
|
return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? oe.queue(this[0], e) : void 0 === t ? this : this.each(function() {
|
|
var n = oe.queue(this, e, t);
|
|
oe._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && oe.dequeue(this, e);
|
|
});
|
|
},
|
|
dequeue: function(e) {
|
|
return this.each(function() {
|
|
oe.dequeue(this, e);
|
|
});
|
|
},
|
|
clearQueue: function(e) {
|
|
return this.queue(e || "fx", []);
|
|
},
|
|
promise: function(e, t) {
|
|
var n, i = 1, r = oe.Deferred(), o = this, a = this.length, s = function() {
|
|
--i || r.resolveWith(o, [ o ]);
|
|
};
|
|
for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; a--; ) n = Ee.get(o[a], e + "queueHooks"),
|
|
n && n.empty && (i++, n.empty.add(s));
|
|
return s(), r.promise(t);
|
|
}
|
|
});
|
|
var Ae = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, De = new RegExp("^(?:([+-])=|)(" + Ae + ")([a-z%]*)$", "i"), Oe = [ "Top", "Right", "Bottom", "Left" ], $e = function(e, t) {
|
|
return e = t || e, "none" === oe.css(e, "display") || !oe.contains(e.ownerDocument, e);
|
|
}, je = /^(?:checkbox|radio)$/i, qe = /<([\w:-]+)/, Re = /^$|\/(?:java|ecma)script/i, Me = {
|
|
option: [ 1, "<select multiple='multiple'>", "</select>" ],
|
|
thead: [ 1, "<table>", "</table>" ],
|
|
col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
|
|
tr: [ 2, "<table><tbody>", "</tbody></table>" ],
|
|
td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
|
|
_default: [ 0, "", "" ]
|
|
};
|
|
Me.optgroup = Me.option, Me.tbody = Me.tfoot = Me.colgroup = Me.caption = Me.thead,
|
|
Me.th = Me.td;
|
|
var Le = /<|&#?\w+;/;
|
|
!function() {
|
|
var e = J.createDocumentFragment(), t = e.appendChild(J.createElement("div")), n = J.createElement("input");
|
|
n.setAttribute("type", "radio"), n.setAttribute("checked", "checked"), n.setAttribute("name", "t"),
|
|
t.appendChild(n), ie.checkClone = t.cloneNode(!0).cloneNode(!0).lastChild.checked,
|
|
t.innerHTML = "<textarea>x</textarea>", ie.noCloneChecked = !!t.cloneNode(!0).lastChild.defaultValue;
|
|
}();
|
|
var Pe = /^key/, Ie = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, Fe = /^([^.]*)(?:\.(.+)|)/;
|
|
oe.event = {
|
|
global: {},
|
|
add: function(e, t, n, i, r) {
|
|
var o, a, s, u, l, c, f, p, d, h, g, m = Ee.get(e);
|
|
if (m) for (n.handler && (o = n, n = o.handler, r = o.selector), n.guid || (n.guid = oe.guid++),
|
|
(u = m.events) || (u = m.events = {}), (a = m.handle) || (a = m.handle = function(t) {
|
|
return "undefined" != typeof oe && oe.event.triggered !== t.type ? oe.event.dispatch.apply(e, arguments) : void 0;
|
|
}), t = (t || "").match(we) || [ "" ], l = t.length; l--; ) s = Fe.exec(t[l]) || [],
|
|
d = g = s[1], h = (s[2] || "").split(".").sort(), d && (f = oe.event.special[d] || {},
|
|
d = (r ? f.delegateType : f.bindType) || d, f = oe.event.special[d] || {}, c = oe.extend({
|
|
type: d,
|
|
origType: g,
|
|
data: i,
|
|
handler: n,
|
|
guid: n.guid,
|
|
selector: r,
|
|
needsContext: r && oe.expr.match.needsContext.test(r),
|
|
namespace: h.join(".")
|
|
}, o), (p = u[d]) || (p = u[d] = [], p.delegateCount = 0, f.setup && f.setup.call(e, i, h, a) !== !1 || e.addEventListener && e.addEventListener(d, a)),
|
|
f.add && (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), r ? p.splice(p.delegateCount++, 0, c) : p.push(c),
|
|
oe.event.global[d] = !0);
|
|
},
|
|
remove: function(e, t, n, i, r) {
|
|
var o, a, s, u, l, c, f, p, d, h, g, m = Ee.hasData(e) && Ee.get(e);
|
|
if (m && (u = m.events)) {
|
|
for (t = (t || "").match(we) || [ "" ], l = t.length; l--; ) if (s = Fe.exec(t[l]) || [],
|
|
d = g = s[1], h = (s[2] || "").split(".").sort(), d) {
|
|
for (f = oe.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d,
|
|
p = u[d] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"),
|
|
a = o = p.length; o--; ) c = p[o], !r && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || i && i !== c.selector && ("**" !== i || !c.selector) || (p.splice(o, 1),
|
|
c.selector && p.delegateCount--, f.remove && f.remove.call(e, c));
|
|
a && !p.length && (f.teardown && f.teardown.call(e, h, m.handle) !== !1 || oe.removeEvent(e, d, m.handle),
|
|
delete u[d]);
|
|
} else for (d in u) oe.event.remove(e, d + t[l], n, i, !0);
|
|
oe.isEmptyObject(u) && Ee.remove(e, "handle events");
|
|
}
|
|
},
|
|
dispatch: function(e) {
|
|
e = oe.event.fix(e);
|
|
var t, n, i, r, o, a = [], s = G.call(arguments), u = (Ee.get(this, "events") || {})[e.type] || [], l = oe.event.special[e.type] || {};
|
|
if (s[0] = e, e.delegateTarget = this, !l.preDispatch || l.preDispatch.call(this, e) !== !1) {
|
|
for (a = oe.event.handlers.call(this, e, u), t = 0; (r = a[t++]) && !e.isPropagationStopped(); ) for (e.currentTarget = r.elem,
|
|
n = 0; (o = r.handlers[n++]) && !e.isImmediatePropagationStopped(); ) (!e.rnamespace || e.rnamespace.test(o.namespace)) && (e.handleObj = o,
|
|
e.data = o.data, i = ((oe.event.special[o.origType] || {}).handle || o.handler).apply(r.elem, s),
|
|
void 0 !== i && (e.result = i) === !1 && (e.preventDefault(), e.stopPropagation()));
|
|
return l.postDispatch && l.postDispatch.call(this, e), e.result;
|
|
}
|
|
},
|
|
handlers: function(e, t) {
|
|
var n, i, r, o, a = [], s = t.delegateCount, u = e.target;
|
|
if (s && u.nodeType && ("click" !== e.type || isNaN(e.button) || e.button < 1)) for (;u !== this; u = u.parentNode || this) if (1 === u.nodeType && (u.disabled !== !0 || "click" !== e.type)) {
|
|
for (i = [], n = 0; s > n; n++) o = t[n], r = o.selector + " ", void 0 === i[r] && (i[r] = o.needsContext ? oe(r, this).index(u) > -1 : oe.find(r, this, null, [ u ]).length),
|
|
i[r] && i.push(o);
|
|
i.length && a.push({
|
|
elem: u,
|
|
handlers: i
|
|
});
|
|
}
|
|
return s < t.length && a.push({
|
|
elem: this,
|
|
handlers: t.slice(s)
|
|
}), a;
|
|
},
|
|
props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
|
|
fixHooks: {},
|
|
keyHooks: {
|
|
props: "char charCode key keyCode".split(" "),
|
|
filter: function(e, t) {
|
|
return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode),
|
|
e;
|
|
}
|
|
},
|
|
mouseHooks: {
|
|
props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
|
|
filter: function(e, t) {
|
|
var n, i, r, o = t.button;
|
|
return null == e.pageX && null != t.clientX && (n = e.target.ownerDocument || J,
|
|
i = n.documentElement, r = n.body, e.pageX = t.clientX + (i && i.scrollLeft || r && r.scrollLeft || 0) - (i && i.clientLeft || r && r.clientLeft || 0),
|
|
e.pageY = t.clientY + (i && i.scrollTop || r && r.scrollTop || 0) - (i && i.clientTop || r && r.clientTop || 0)),
|
|
e.which || void 0 === o || (e.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0), e;
|
|
}
|
|
},
|
|
fix: function(e) {
|
|
if (e[oe.expando]) return e;
|
|
var t, n, i, r = e.type, o = e, a = this.fixHooks[r];
|
|
for (a || (this.fixHooks[r] = a = Ie.test(r) ? this.mouseHooks : Pe.test(r) ? this.keyHooks : {}),
|
|
i = a.props ? this.props.concat(a.props) : this.props, e = new oe.Event(o), t = i.length; t--; ) n = i[t],
|
|
e[n] = o[n];
|
|
return e.target || (e.target = J), 3 === e.target.nodeType && (e.target = e.target.parentNode),
|
|
a.filter ? a.filter(e, o) : e;
|
|
},
|
|
special: {
|
|
load: {
|
|
noBubble: !0
|
|
},
|
|
focus: {
|
|
trigger: function() {
|
|
return this !== g() && this.focus ? (this.focus(), !1) : void 0;
|
|
},
|
|
delegateType: "focusin"
|
|
},
|
|
blur: {
|
|
trigger: function() {
|
|
return this === g() && this.blur ? (this.blur(), !1) : void 0;
|
|
},
|
|
delegateType: "focusout"
|
|
},
|
|
click: {
|
|
trigger: function() {
|
|
return "checkbox" === this.type && this.click && oe.nodeName(this, "input") ? (this.click(),
|
|
!1) : void 0;
|
|
},
|
|
_default: function(e) {
|
|
return oe.nodeName(e.target, "a");
|
|
}
|
|
},
|
|
beforeunload: {
|
|
postDispatch: function(e) {
|
|
void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result);
|
|
}
|
|
}
|
|
}
|
|
}, oe.removeEvent = function(e, t, n) {
|
|
e.removeEventListener && e.removeEventListener(t, n);
|
|
}, oe.Event = function(e, t) {
|
|
return this instanceof oe.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type,
|
|
this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && e.returnValue === !1 ? d : h) : this.type = e,
|
|
t && oe.extend(this, t), this.timeStamp = e && e.timeStamp || oe.now(), void (this[oe.expando] = !0)) : new oe.Event(e, t);
|
|
}, oe.Event.prototype = {
|
|
constructor: oe.Event,
|
|
isDefaultPrevented: h,
|
|
isPropagationStopped: h,
|
|
isImmediatePropagationStopped: h,
|
|
preventDefault: function() {
|
|
var e = this.originalEvent;
|
|
this.isDefaultPrevented = d, e && e.preventDefault();
|
|
},
|
|
stopPropagation: function() {
|
|
var e = this.originalEvent;
|
|
this.isPropagationStopped = d, e && e.stopPropagation();
|
|
},
|
|
stopImmediatePropagation: function() {
|
|
var e = this.originalEvent;
|
|
this.isImmediatePropagationStopped = d, e && e.stopImmediatePropagation(), this.stopPropagation();
|
|
}
|
|
}, oe.each({
|
|
mouseenter: "mouseover",
|
|
mouseleave: "mouseout",
|
|
pointerenter: "pointerover",
|
|
pointerleave: "pointerout"
|
|
}, function(e, t) {
|
|
oe.event.special[e] = {
|
|
delegateType: t,
|
|
bindType: t,
|
|
handle: function(e) {
|
|
var n, i = this, r = e.relatedTarget, o = e.handleObj;
|
|
return (!r || r !== i && !oe.contains(i, r)) && (e.type = o.origType, n = o.handler.apply(this, arguments),
|
|
e.type = t), n;
|
|
}
|
|
};
|
|
}), oe.fn.extend({
|
|
on: function(e, t, n, i) {
|
|
return m(this, e, t, n, i);
|
|
},
|
|
one: function(e, t, n, i) {
|
|
return m(this, e, t, n, i, 1);
|
|
},
|
|
off: function(e, t, n) {
|
|
var i, r;
|
|
if (e && e.preventDefault && e.handleObj) return i = e.handleObj, oe(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler),
|
|
this;
|
|
if ("object" == typeof e) {
|
|
for (r in e) this.off(r, t, e[r]);
|
|
return this;
|
|
}
|
|
return (t === !1 || "function" == typeof t) && (n = t, t = void 0), n === !1 && (n = h),
|
|
this.each(function() {
|
|
oe.event.remove(this, e, n, t);
|
|
});
|
|
}
|
|
});
|
|
var Be = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, He = /<script|<style|<link/i, We = /checked\s*(?:[^=]|=\s*.checked.)/i, Ue = /^true\/(.*)/, ze = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
|
|
oe.extend({
|
|
htmlPrefilter: function(e) {
|
|
return e.replace(Be, "<$1></$2>");
|
|
},
|
|
clone: function(e, t, n) {
|
|
var i, r, o, a, s = e.cloneNode(!0), u = oe.contains(e.ownerDocument, e);
|
|
if (!(ie.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || oe.isXMLDoc(e))) for (a = c(s),
|
|
o = c(e), i = 0, r = o.length; r > i; i++) w(o[i], a[i]);
|
|
if (t) if (n) for (o = o || c(e), a = a || c(s), i = 0, r = o.length; r > i; i++) x(o[i], a[i]); else x(e, s);
|
|
return a = c(s, "script"), a.length > 0 && f(a, !u && c(e, "script")), s;
|
|
},
|
|
cleanData: function(e) {
|
|
for (var t, n, i, r = oe.event.special, o = 0; void 0 !== (n = e[o]); o++) if (Te(n)) {
|
|
if (t = n[Ee.expando]) {
|
|
if (t.events) for (i in t.events) r[i] ? oe.event.remove(n, i) : oe.removeEvent(n, i, t.handle);
|
|
n[Ee.expando] = void 0;
|
|
}
|
|
n[Se.expando] && (n[Se.expando] = void 0);
|
|
}
|
|
}
|
|
}), oe.fn.extend({
|
|
domManip: C,
|
|
detach: function(e) {
|
|
return k(this, e, !0);
|
|
},
|
|
remove: function(e) {
|
|
return k(this, e);
|
|
},
|
|
text: function(e) {
|
|
return ke(this, function(e) {
|
|
return void 0 === e ? oe.text(this) : this.empty().each(function() {
|
|
(1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && (this.textContent = e);
|
|
});
|
|
}, null, e, arguments.length);
|
|
},
|
|
append: function() {
|
|
return C(this, arguments, function(e) {
|
|
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
|
|
var t = v(this, e);
|
|
t.appendChild(e);
|
|
}
|
|
});
|
|
},
|
|
prepend: function() {
|
|
return C(this, arguments, function(e) {
|
|
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
|
|
var t = v(this, e);
|
|
t.insertBefore(e, t.firstChild);
|
|
}
|
|
});
|
|
},
|
|
before: function() {
|
|
return C(this, arguments, function(e) {
|
|
this.parentNode && this.parentNode.insertBefore(e, this);
|
|
});
|
|
},
|
|
after: function() {
|
|
return C(this, arguments, function(e) {
|
|
this.parentNode && this.parentNode.insertBefore(e, this.nextSibling);
|
|
});
|
|
},
|
|
empty: function() {
|
|
for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (oe.cleanData(c(e, !1)),
|
|
e.textContent = "");
|
|
return this;
|
|
},
|
|
clone: function(e, t) {
|
|
return e = null == e ? !1 : e, t = null == t ? e : t, this.map(function() {
|
|
return oe.clone(this, e, t);
|
|
});
|
|
},
|
|
html: function(e) {
|
|
return ke(this, function(e) {
|
|
var t = this[0] || {}, n = 0, i = this.length;
|
|
if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
|
|
if ("string" == typeof e && !He.test(e) && !Me[(qe.exec(e) || [ "", "" ])[1].toLowerCase()]) {
|
|
e = oe.htmlPrefilter(e);
|
|
try {
|
|
for (;i > n; n++) t = this[n] || {}, 1 === t.nodeType && (oe.cleanData(c(t, !1)),
|
|
t.innerHTML = e);
|
|
t = 0;
|
|
} catch (r) {}
|
|
}
|
|
t && this.empty().append(e);
|
|
}, null, e, arguments.length);
|
|
},
|
|
replaceWith: function() {
|
|
var e = [];
|
|
return C(this, arguments, function(t) {
|
|
var n = this.parentNode;
|
|
oe.inArray(this, e) < 0 && (oe.cleanData(c(this)), n && n.replaceChild(t, this));
|
|
}, e);
|
|
}
|
|
}), oe.each({
|
|
appendTo: "append",
|
|
prependTo: "prepend",
|
|
insertBefore: "before",
|
|
insertAfter: "after",
|
|
replaceAll: "replaceWith"
|
|
}, function(e, t) {
|
|
oe.fn[e] = function(e) {
|
|
for (var n, i = [], r = oe(e), o = r.length - 1, a = 0; o >= a; a++) n = a === o ? this : this.clone(!0),
|
|
oe(r[a])[t](n), K.apply(i, n.get());
|
|
return this.pushStack(i);
|
|
};
|
|
});
|
|
var Ve, Xe = {
|
|
HTML: "block",
|
|
BODY: "block"
|
|
}, Qe = /^margin/, Je = new RegExp("^(" + Ae + ")(?!px)[a-z%]+$", "i"), Ge = function(t) {
|
|
var n = t.ownerDocument.defaultView;
|
|
return n && n.opener || (n = e), n.getComputedStyle(t);
|
|
}, Ye = function(e, t, n, i) {
|
|
var r, o, a = {};
|
|
for (o in t) a[o] = e.style[o], e.style[o] = t[o];
|
|
r = n.apply(e, i || []);
|
|
for (o in t) e.style[o] = a[o];
|
|
return r;
|
|
}, Ke = J.documentElement;
|
|
!function() {
|
|
function t() {
|
|
s.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",
|
|
s.innerHTML = "", Ke.appendChild(a);
|
|
var t = e.getComputedStyle(s);
|
|
n = "1%" !== t.top, o = "2px" === t.marginLeft, i = "4px" === t.width, s.style.marginRight = "50%",
|
|
r = "4px" === t.marginRight, Ke.removeChild(a);
|
|
}
|
|
var n, i, r, o, a = J.createElement("div"), s = J.createElement("div");
|
|
s.style && (s.style.backgroundClip = "content-box", s.cloneNode(!0).style.backgroundClip = "",
|
|
ie.clearCloneStyle = "content-box" === s.style.backgroundClip, a.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",
|
|
a.appendChild(s), oe.extend(ie, {
|
|
pixelPosition: function() {
|
|
return t(), n;
|
|
},
|
|
boxSizingReliable: function() {
|
|
return null == i && t(), i;
|
|
},
|
|
pixelMarginRight: function() {
|
|
return null == i && t(), r;
|
|
},
|
|
reliableMarginLeft: function() {
|
|
return null == i && t(), o;
|
|
},
|
|
reliableMarginRight: function() {
|
|
var t, n = s.appendChild(J.createElement("div"));
|
|
return n.style.cssText = s.style.cssText = "-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",
|
|
n.style.marginRight = n.style.width = "0", s.style.width = "1px", Ke.appendChild(a),
|
|
t = !parseFloat(e.getComputedStyle(n).marginRight), Ke.removeChild(a), s.removeChild(n),
|
|
t;
|
|
}
|
|
}));
|
|
}();
|
|
var Ze = /^(none|table(?!-c[ea]).+)/, et = {
|
|
position: "absolute",
|
|
visibility: "hidden",
|
|
display: "block"
|
|
}, tt = {
|
|
letterSpacing: "0",
|
|
fontWeight: "400"
|
|
}, nt = [ "Webkit", "O", "Moz", "ms" ], it = J.createElement("div").style;
|
|
oe.extend({
|
|
cssHooks: {
|
|
opacity: {
|
|
get: function(e, t) {
|
|
if (t) {
|
|
var n = S(e, "opacity");
|
|
return "" === n ? "1" : n;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
cssNumber: {
|
|
animationIterationCount: !0,
|
|
columnCount: !0,
|
|
fillOpacity: !0,
|
|
flexGrow: !0,
|
|
flexShrink: !0,
|
|
fontWeight: !0,
|
|
lineHeight: !0,
|
|
opacity: !0,
|
|
order: !0,
|
|
orphans: !0,
|
|
widows: !0,
|
|
zIndex: !0,
|
|
zoom: !0
|
|
},
|
|
cssProps: {
|
|
"float": "cssFloat"
|
|
},
|
|
style: function(e, t, n, i) {
|
|
if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
|
|
var r, o, a, s = oe.camelCase(t), u = e.style;
|
|
return t = oe.cssProps[s] || (oe.cssProps[s] = _(s) || s), a = oe.cssHooks[t] || oe.cssHooks[s],
|
|
void 0 === n ? a && "get" in a && void 0 !== (r = a.get(e, !1, i)) ? r : u[t] : (o = typeof n,
|
|
"string" === o && (r = De.exec(n)) && r[1] && (n = l(e, t, r), o = "number"), null != n && n === n && ("number" === o && (n += r && r[3] || (oe.cssNumber[s] ? "" : "px")),
|
|
ie.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (u[t] = "inherit"),
|
|
a && "set" in a && void 0 === (n = a.set(e, n, i)) || (u[t] = n)), void 0);
|
|
}
|
|
},
|
|
css: function(e, t, n, i) {
|
|
var r, o, a, s = oe.camelCase(t);
|
|
return t = oe.cssProps[s] || (oe.cssProps[s] = _(s) || s), a = oe.cssHooks[t] || oe.cssHooks[s],
|
|
a && "get" in a && (r = a.get(e, !0, n)), void 0 === r && (r = S(e, t, i)), "normal" === r && t in tt && (r = tt[t]),
|
|
"" === n || n ? (o = parseFloat(r), n === !0 || isFinite(o) ? o || 0 : r) : r;
|
|
}
|
|
}), oe.each([ "height", "width" ], function(e, t) {
|
|
oe.cssHooks[t] = {
|
|
get: function(e, n, i) {
|
|
return n ? Ze.test(oe.css(e, "display")) && 0 === e.offsetWidth ? Ye(e, et, function() {
|
|
return O(e, t, i);
|
|
}) : O(e, t, i) : void 0;
|
|
},
|
|
set: function(e, n, i) {
|
|
var r, o = i && Ge(e), a = i && D(e, t, i, "border-box" === oe.css(e, "boxSizing", !1, o), o);
|
|
return a && (r = De.exec(n)) && "px" !== (r[3] || "px") && (e.style[t] = n, n = oe.css(e, t)),
|
|
A(e, n, a);
|
|
}
|
|
};
|
|
}), oe.cssHooks.marginLeft = N(ie.reliableMarginLeft, function(e, t) {
|
|
return t ? (parseFloat(S(e, "marginLeft")) || e.getBoundingClientRect().left - Ye(e, {
|
|
marginLeft: 0
|
|
}, function() {
|
|
return e.getBoundingClientRect().left;
|
|
})) + "px" : void 0;
|
|
}), oe.cssHooks.marginRight = N(ie.reliableMarginRight, function(e, t) {
|
|
return t ? Ye(e, {
|
|
display: "inline-block"
|
|
}, S, [ e, "marginRight" ]) : void 0;
|
|
}), oe.each({
|
|
margin: "",
|
|
padding: "",
|
|
border: "Width"
|
|
}, function(e, t) {
|
|
oe.cssHooks[e + t] = {
|
|
expand: function(n) {
|
|
for (var i = 0, r = {}, o = "string" == typeof n ? n.split(" ") : [ n ]; 4 > i; i++) r[e + Oe[i] + t] = o[i] || o[i - 2] || o[0];
|
|
return r;
|
|
}
|
|
}, Qe.test(e) || (oe.cssHooks[e + t].set = A);
|
|
}), oe.fn.extend({
|
|
css: function(e, t) {
|
|
return ke(this, function(e, t, n) {
|
|
var i, r, o = {}, a = 0;
|
|
if (oe.isArray(t)) {
|
|
for (i = Ge(e), r = t.length; r > a; a++) o[t[a]] = oe.css(e, t[a], !1, i);
|
|
return o;
|
|
}
|
|
return void 0 !== n ? oe.style(e, t, n) : oe.css(e, t);
|
|
}, e, t, arguments.length > 1);
|
|
},
|
|
show: function() {
|
|
return $(this, !0);
|
|
},
|
|
hide: function() {
|
|
return $(this);
|
|
},
|
|
toggle: function(e) {
|
|
return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
|
|
$e(this) ? oe(this).show() : oe(this).hide();
|
|
});
|
|
}
|
|
}), oe.Tween = j, j.prototype = {
|
|
constructor: j,
|
|
init: function(e, t, n, i, r, o) {
|
|
this.elem = e, this.prop = n, this.easing = r || oe.easing._default, this.options = t,
|
|
this.start = this.now = this.cur(), this.end = i, this.unit = o || (oe.cssNumber[n] ? "" : "px");
|
|
},
|
|
cur: function() {
|
|
var e = j.propHooks[this.prop];
|
|
return e && e.get ? e.get(this) : j.propHooks._default.get(this);
|
|
},
|
|
run: function(e) {
|
|
var t, n = j.propHooks[this.prop];
|
|
return this.options.duration ? this.pos = t = oe.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e,
|
|
this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this),
|
|
n && n.set ? n.set(this) : j.propHooks._default.set(this), this;
|
|
}
|
|
}, j.prototype.init.prototype = j.prototype, j.propHooks = {
|
|
_default: {
|
|
get: function(e) {
|
|
var t;
|
|
return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = oe.css(e.elem, e.prop, ""),
|
|
t && "auto" !== t ? t : 0);
|
|
},
|
|
set: function(e) {
|
|
oe.fx.step[e.prop] ? oe.fx.step[e.prop](e) : 1 !== e.elem.nodeType || null == e.elem.style[oe.cssProps[e.prop]] && !oe.cssHooks[e.prop] ? e.elem[e.prop] = e.now : oe.style(e.elem, e.prop, e.now + e.unit);
|
|
}
|
|
}
|
|
}, j.propHooks.scrollTop = j.propHooks.scrollLeft = {
|
|
set: function(e) {
|
|
e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now);
|
|
}
|
|
}, oe.easing = {
|
|
linear: function(e) {
|
|
return e;
|
|
},
|
|
swing: function(e) {
|
|
return .5 - Math.cos(e * Math.PI) / 2;
|
|
},
|
|
_default: "swing"
|
|
}, oe.fx = j.prototype.init, oe.fx.step = {};
|
|
var rt, ot, at = /^(?:toggle|show|hide)$/, st = /queueHooks$/;
|
|
oe.Animation = oe.extend(I, {
|
|
tweeners: {
|
|
"*": [ function(e, t) {
|
|
var n = this.createTween(e, t);
|
|
return l(n.elem, e, De.exec(t), n), n;
|
|
} ]
|
|
},
|
|
tweener: function(e, t) {
|
|
oe.isFunction(e) ? (t = e, e = [ "*" ]) : e = e.match(we);
|
|
for (var n, i = 0, r = e.length; r > i; i++) n = e[i], I.tweeners[n] = I.tweeners[n] || [],
|
|
I.tweeners[n].unshift(t);
|
|
},
|
|
prefilters: [ L ],
|
|
prefilter: function(e, t) {
|
|
t ? I.prefilters.unshift(e) : I.prefilters.push(e);
|
|
}
|
|
}), oe.speed = function(e, t, n) {
|
|
var i = e && "object" == typeof e ? oe.extend({}, e) : {
|
|
complete: n || !n && t || oe.isFunction(e) && e,
|
|
duration: e,
|
|
easing: n && t || t && !oe.isFunction(t) && t
|
|
};
|
|
return i.duration = oe.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in oe.fx.speeds ? oe.fx.speeds[i.duration] : oe.fx.speeds._default,
|
|
(null == i.queue || i.queue === !0) && (i.queue = "fx"), i.old = i.complete, i.complete = function() {
|
|
oe.isFunction(i.old) && i.old.call(this), i.queue && oe.dequeue(this, i.queue);
|
|
}, i;
|
|
}, oe.fn.extend({
|
|
fadeTo: function(e, t, n, i) {
|
|
return this.filter($e).css("opacity", 0).show().end().animate({
|
|
opacity: t
|
|
}, e, n, i);
|
|
},
|
|
animate: function(e, t, n, i) {
|
|
var r = oe.isEmptyObject(e), o = oe.speed(t, n, i), a = function() {
|
|
var t = I(this, oe.extend({}, e), o);
|
|
(r || Ee.get(this, "finish")) && t.stop(!0);
|
|
};
|
|
return a.finish = a, r || o.queue === !1 ? this.each(a) : this.queue(o.queue, a);
|
|
},
|
|
stop: function(e, t, n) {
|
|
var i = function(e) {
|
|
var t = e.stop;
|
|
delete e.stop, t(n);
|
|
};
|
|
return "string" != typeof e && (n = t, t = e, e = void 0), t && e !== !1 && this.queue(e || "fx", []),
|
|
this.each(function() {
|
|
var t = !0, r = null != e && e + "queueHooks", o = oe.timers, a = Ee.get(this);
|
|
if (r) a[r] && a[r].stop && i(a[r]); else for (r in a) a[r] && a[r].stop && st.test(r) && i(a[r]);
|
|
for (r = o.length; r--; ) o[r].elem !== this || null != e && o[r].queue !== e || (o[r].anim.stop(n),
|
|
t = !1, o.splice(r, 1));
|
|
(t || !n) && oe.dequeue(this, e);
|
|
});
|
|
},
|
|
finish: function(e) {
|
|
return e !== !1 && (e = e || "fx"), this.each(function() {
|
|
var t, n = Ee.get(this), i = n[e + "queue"], r = n[e + "queueHooks"], o = oe.timers, a = i ? i.length : 0;
|
|
for (n.finish = !0, oe.queue(this, e, []), r && r.stop && r.stop.call(this, !0),
|
|
t = o.length; t--; ) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0),
|
|
o.splice(t, 1));
|
|
for (t = 0; a > t; t++) i[t] && i[t].finish && i[t].finish.call(this);
|
|
delete n.finish;
|
|
});
|
|
}
|
|
}), oe.each([ "toggle", "show", "hide" ], function(e, t) {
|
|
var n = oe.fn[t];
|
|
oe.fn[t] = function(e, i, r) {
|
|
return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(R(t, !0), e, i, r);
|
|
};
|
|
}), oe.each({
|
|
slideDown: R("show"),
|
|
slideUp: R("hide"),
|
|
slideToggle: R("toggle"),
|
|
fadeIn: {
|
|
opacity: "show"
|
|
},
|
|
fadeOut: {
|
|
opacity: "hide"
|
|
},
|
|
fadeToggle: {
|
|
opacity: "toggle"
|
|
}
|
|
}, function(e, t) {
|
|
oe.fn[e] = function(e, n, i) {
|
|
return this.animate(t, e, n, i);
|
|
};
|
|
}), oe.timers = [], oe.fx.tick = function() {
|
|
var e, t = 0, n = oe.timers;
|
|
for (rt = oe.now(); t < n.length; t++) e = n[t], e() || n[t] !== e || n.splice(t--, 1);
|
|
n.length || oe.fx.stop(), rt = void 0;
|
|
}, oe.fx.timer = function(e) {
|
|
oe.timers.push(e), e() ? oe.fx.start() : oe.timers.pop();
|
|
}, oe.fx.interval = 13, oe.fx.start = function() {
|
|
ot || (ot = e.setInterval(oe.fx.tick, oe.fx.interval));
|
|
}, oe.fx.stop = function() {
|
|
e.clearInterval(ot), ot = null;
|
|
}, oe.fx.speeds = {
|
|
slow: 600,
|
|
fast: 200,
|
|
_default: 400
|
|
}, oe.fn.delay = function(t, n) {
|
|
return t = oe.fx ? oe.fx.speeds[t] || t : t, n = n || "fx", this.queue(n, function(n, i) {
|
|
var r = e.setTimeout(n, t);
|
|
i.stop = function() {
|
|
e.clearTimeout(r);
|
|
};
|
|
});
|
|
}, function() {
|
|
var e = J.createElement("input"), t = J.createElement("select"), n = t.appendChild(J.createElement("option"));
|
|
e.type = "checkbox", ie.checkOn = "" !== e.value, ie.optSelected = n.selected, t.disabled = !0,
|
|
ie.optDisabled = !n.disabled, e = J.createElement("input"), e.value = "t", e.type = "radio",
|
|
ie.radioValue = "t" === e.value;
|
|
}();
|
|
var ut, lt = oe.expr.attrHandle;
|
|
oe.fn.extend({
|
|
attr: function(e, t) {
|
|
return ke(this, oe.attr, e, t, arguments.length > 1);
|
|
},
|
|
removeAttr: function(e) {
|
|
return this.each(function() {
|
|
oe.removeAttr(this, e);
|
|
});
|
|
}
|
|
}), oe.extend({
|
|
attr: function(e, t, n) {
|
|
var i, r, o = e.nodeType;
|
|
if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? oe.prop(e, t, n) : (1 === o && oe.isXMLDoc(e) || (t = t.toLowerCase(),
|
|
r = oe.attrHooks[t] || (oe.expr.match.bool.test(t) ? ut : void 0)), void 0 !== n ? null === n ? void oe.removeAttr(e, t) : r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : (e.setAttribute(t, n + ""),
|
|
n) : r && "get" in r && null !== (i = r.get(e, t)) ? i : (i = oe.find.attr(e, t),
|
|
null == i ? void 0 : i));
|
|
},
|
|
attrHooks: {
|
|
type: {
|
|
set: function(e, t) {
|
|
if (!ie.radioValue && "radio" === t && oe.nodeName(e, "input")) {
|
|
var n = e.value;
|
|
return e.setAttribute("type", t), n && (e.value = n), t;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
removeAttr: function(e, t) {
|
|
var n, i, r = 0, o = t && t.match(we);
|
|
if (o && 1 === e.nodeType) for (;n = o[r++]; ) i = oe.propFix[n] || n, oe.expr.match.bool.test(n) && (e[i] = !1),
|
|
e.removeAttribute(n);
|
|
}
|
|
}), ut = {
|
|
set: function(e, t, n) {
|
|
return t === !1 ? oe.removeAttr(e, n) : e.setAttribute(n, n), n;
|
|
}
|
|
}, oe.each(oe.expr.match.bool.source.match(/\w+/g), function(e, t) {
|
|
var n = lt[t] || oe.find.attr;
|
|
lt[t] = function(e, t, i) {
|
|
var r, o;
|
|
return i || (o = lt[t], lt[t] = r, r = null != n(e, t, i) ? t.toLowerCase() : null,
|
|
lt[t] = o), r;
|
|
};
|
|
});
|
|
var ct = /^(?:input|select|textarea|button)$/i, ft = /^(?:a|area)$/i;
|
|
oe.fn.extend({
|
|
prop: function(e, t) {
|
|
return ke(this, oe.prop, e, t, arguments.length > 1);
|
|
},
|
|
removeProp: function(e) {
|
|
return this.each(function() {
|
|
delete this[oe.propFix[e] || e];
|
|
});
|
|
}
|
|
}), oe.extend({
|
|
prop: function(e, t, n) {
|
|
var i, r, o = e.nodeType;
|
|
if (3 !== o && 8 !== o && 2 !== o) return 1 === o && oe.isXMLDoc(e) || (t = oe.propFix[t] || t,
|
|
r = oe.propHooks[t]), void 0 !== n ? r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : e[t] = n : r && "get" in r && null !== (i = r.get(e, t)) ? i : e[t];
|
|
},
|
|
propHooks: {
|
|
tabIndex: {
|
|
get: function(e) {
|
|
var t = oe.find.attr(e, "tabindex");
|
|
return t ? parseInt(t, 10) : ct.test(e.nodeName) || ft.test(e.nodeName) && e.href ? 0 : -1;
|
|
}
|
|
}
|
|
},
|
|
propFix: {
|
|
"for": "htmlFor",
|
|
"class": "className"
|
|
}
|
|
}), ie.optSelected || (oe.propHooks.selected = {
|
|
get: function(e) {
|
|
var t = e.parentNode;
|
|
return t && t.parentNode && t.parentNode.selectedIndex, null;
|
|
},
|
|
set: function(e) {
|
|
var t = e.parentNode;
|
|
t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex);
|
|
}
|
|
}), oe.each([ "tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable" ], function() {
|
|
oe.propFix[this.toLowerCase()] = this;
|
|
});
|
|
var pt = /[\t\r\n\f]/g;
|
|
oe.fn.extend({
|
|
addClass: function(e) {
|
|
var t, n, i, r, o, a, s, u = 0;
|
|
if (oe.isFunction(e)) return this.each(function(t) {
|
|
oe(this).addClass(e.call(this, t, F(this)));
|
|
});
|
|
if ("string" == typeof e && e) for (t = e.match(we) || []; n = this[u++]; ) if (r = F(n),
|
|
i = 1 === n.nodeType && (" " + r + " ").replace(pt, " ")) {
|
|
for (a = 0; o = t[a++]; ) i.indexOf(" " + o + " ") < 0 && (i += o + " ");
|
|
s = oe.trim(i), r !== s && n.setAttribute("class", s);
|
|
}
|
|
return this;
|
|
},
|
|
removeClass: function(e) {
|
|
var t, n, i, r, o, a, s, u = 0;
|
|
if (oe.isFunction(e)) return this.each(function(t) {
|
|
oe(this).removeClass(e.call(this, t, F(this)));
|
|
});
|
|
if (!arguments.length) return this.attr("class", "");
|
|
if ("string" == typeof e && e) for (t = e.match(we) || []; n = this[u++]; ) if (r = F(n),
|
|
i = 1 === n.nodeType && (" " + r + " ").replace(pt, " ")) {
|
|
for (a = 0; o = t[a++]; ) for (;i.indexOf(" " + o + " ") > -1; ) i = i.replace(" " + o + " ", " ");
|
|
s = oe.trim(i), r !== s && n.setAttribute("class", s);
|
|
}
|
|
return this;
|
|
},
|
|
toggleClass: function(e, t) {
|
|
var n = typeof e;
|
|
return "boolean" == typeof t && "string" === n ? t ? this.addClass(e) : this.removeClass(e) : oe.isFunction(e) ? this.each(function(n) {
|
|
oe(this).toggleClass(e.call(this, n, F(this), t), t);
|
|
}) : this.each(function() {
|
|
var t, i, r, o;
|
|
if ("string" === n) for (i = 0, r = oe(this), o = e.match(we) || []; t = o[i++]; ) r.hasClass(t) ? r.removeClass(t) : r.addClass(t); else (void 0 === e || "boolean" === n) && (t = F(this),
|
|
t && Ee.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || e === !1 ? "" : Ee.get(this, "__className__") || ""));
|
|
});
|
|
},
|
|
hasClass: function(e) {
|
|
var t, n, i = 0;
|
|
for (t = " " + e + " "; n = this[i++]; ) if (1 === n.nodeType && (" " + F(n) + " ").replace(pt, " ").indexOf(t) > -1) return !0;
|
|
return !1;
|
|
}
|
|
});
|
|
var dt = /\r/g, ht = /[\x20\t\r\n\f]+/g;
|
|
oe.fn.extend({
|
|
val: function(e) {
|
|
var t, n, i, r = this[0];
|
|
{
|
|
if (arguments.length) return i = oe.isFunction(e), this.each(function(n) {
|
|
var r;
|
|
1 === this.nodeType && (r = i ? e.call(this, n, oe(this).val()) : e, null == r ? r = "" : "number" == typeof r ? r += "" : oe.isArray(r) && (r = oe.map(r, function(e) {
|
|
return null == e ? "" : e + "";
|
|
})), t = oe.valHooks[this.type] || oe.valHooks[this.nodeName.toLowerCase()], t && "set" in t && void 0 !== t.set(this, r, "value") || (this.value = r));
|
|
});
|
|
if (r) return t = oe.valHooks[r.type] || oe.valHooks[r.nodeName.toLowerCase()],
|
|
t && "get" in t && void 0 !== (n = t.get(r, "value")) ? n : (n = r.value, "string" == typeof n ? n.replace(dt, "") : null == n ? "" : n);
|
|
}
|
|
}
|
|
}), oe.extend({
|
|
valHooks: {
|
|
option: {
|
|
get: function(e) {
|
|
var t = oe.find.attr(e, "value");
|
|
return null != t ? t : oe.trim(oe.text(e)).replace(ht, " ");
|
|
}
|
|
},
|
|
select: {
|
|
get: function(e) {
|
|
for (var t, n, i = e.options, r = e.selectedIndex, o = "select-one" === e.type || 0 > r, a = o ? null : [], s = o ? r + 1 : i.length, u = 0 > r ? s : o ? r : 0; s > u; u++) if (n = i[u],
|
|
(n.selected || u === r) && (ie.optDisabled ? !n.disabled : null === n.getAttribute("disabled")) && (!n.parentNode.disabled || !oe.nodeName(n.parentNode, "optgroup"))) {
|
|
if (t = oe(n).val(), o) return t;
|
|
a.push(t);
|
|
}
|
|
return a;
|
|
},
|
|
set: function(e, t) {
|
|
for (var n, i, r = e.options, o = oe.makeArray(t), a = r.length; a--; ) i = r[a],
|
|
(i.selected = oe.inArray(oe.valHooks.option.get(i), o) > -1) && (n = !0);
|
|
return n || (e.selectedIndex = -1), o;
|
|
}
|
|
}
|
|
}
|
|
}), oe.each([ "radio", "checkbox" ], function() {
|
|
oe.valHooks[this] = {
|
|
set: function(e, t) {
|
|
return oe.isArray(t) ? e.checked = oe.inArray(oe(e).val(), t) > -1 : void 0;
|
|
}
|
|
}, ie.checkOn || (oe.valHooks[this].get = function(e) {
|
|
return null === e.getAttribute("value") ? "on" : e.value;
|
|
});
|
|
});
|
|
var gt = /^(?:focusinfocus|focusoutblur)$/;
|
|
oe.extend(oe.event, {
|
|
trigger: function(t, n, i, r) {
|
|
var o, a, s, u, l, c, f, p = [ i || J ], d = ne.call(t, "type") ? t.type : t, h = ne.call(t, "namespace") ? t.namespace.split(".") : [];
|
|
if (a = s = i = i || J, 3 !== i.nodeType && 8 !== i.nodeType && !gt.test(d + oe.event.triggered) && (d.indexOf(".") > -1 && (h = d.split("."),
|
|
d = h.shift(), h.sort()), l = d.indexOf(":") < 0 && "on" + d, t = t[oe.expando] ? t : new oe.Event(d, "object" == typeof t && t),
|
|
t.isTrigger = r ? 2 : 3, t.namespace = h.join("."), t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null,
|
|
t.result = void 0, t.target || (t.target = i), n = null == n ? [ t ] : oe.makeArray(n, [ t ]),
|
|
f = oe.event.special[d] || {}, r || !f.trigger || f.trigger.apply(i, n) !== !1)) {
|
|
if (!r && !f.noBubble && !oe.isWindow(i)) {
|
|
for (u = f.delegateType || d, gt.test(u + d) || (a = a.parentNode); a; a = a.parentNode) p.push(a),
|
|
s = a;
|
|
s === (i.ownerDocument || J) && p.push(s.defaultView || s.parentWindow || e);
|
|
}
|
|
for (o = 0; (a = p[o++]) && !t.isPropagationStopped(); ) t.type = o > 1 ? u : f.bindType || d,
|
|
c = (Ee.get(a, "events") || {})[t.type] && Ee.get(a, "handle"), c && c.apply(a, n),
|
|
c = l && a[l], c && c.apply && Te(a) && (t.result = c.apply(a, n), t.result === !1 && t.preventDefault());
|
|
return t.type = d, r || t.isDefaultPrevented() || f._default && f._default.apply(p.pop(), n) !== !1 || !Te(i) || l && oe.isFunction(i[d]) && !oe.isWindow(i) && (s = i[l],
|
|
s && (i[l] = null), oe.event.triggered = d, i[d](), oe.event.triggered = void 0,
|
|
s && (i[l] = s)), t.result;
|
|
}
|
|
},
|
|
simulate: function(e, t, n) {
|
|
var i = oe.extend(new oe.Event(), n, {
|
|
type: e,
|
|
isSimulated: !0
|
|
});
|
|
oe.event.trigger(i, null, t), i.isDefaultPrevented() && n.preventDefault();
|
|
}
|
|
}), oe.fn.extend({
|
|
trigger: function(e, t) {
|
|
return this.each(function() {
|
|
oe.event.trigger(e, t, this);
|
|
});
|
|
},
|
|
triggerHandler: function(e, t) {
|
|
var n = this[0];
|
|
return n ? oe.event.trigger(e, t, n, !0) : void 0;
|
|
}
|
|
}), oe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(e, t) {
|
|
oe.fn[t] = function(e, n) {
|
|
return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t);
|
|
};
|
|
}), oe.fn.extend({
|
|
hover: function(e, t) {
|
|
return this.mouseenter(e).mouseleave(t || e);
|
|
}
|
|
}), ie.focusin = "onfocusin" in e, ie.focusin || oe.each({
|
|
focus: "focusin",
|
|
blur: "focusout"
|
|
}, function(e, t) {
|
|
var n = function(e) {
|
|
oe.event.simulate(t, e.target, oe.event.fix(e));
|
|
};
|
|
oe.event.special[t] = {
|
|
setup: function() {
|
|
var i = this.ownerDocument || this, r = Ee.access(i, t);
|
|
r || i.addEventListener(e, n, !0), Ee.access(i, t, (r || 0) + 1);
|
|
},
|
|
teardown: function() {
|
|
var i = this.ownerDocument || this, r = Ee.access(i, t) - 1;
|
|
r ? Ee.access(i, t, r) : (i.removeEventListener(e, n, !0), Ee.remove(i, t));
|
|
}
|
|
};
|
|
});
|
|
var mt = e.location, vt = oe.now(), yt = /\?/;
|
|
oe.parseJSON = function(e) {
|
|
return JSON.parse(e + "");
|
|
}, oe.parseXML = function(t) {
|
|
var n;
|
|
if (!t || "string" != typeof t) return null;
|
|
try {
|
|
n = new e.DOMParser().parseFromString(t, "text/xml");
|
|
} catch (i) {
|
|
n = void 0;
|
|
}
|
|
return (!n || n.getElementsByTagName("parsererror").length) && oe.error("Invalid XML: " + t),
|
|
n;
|
|
};
|
|
var bt = /#.*$/, xt = /([?&])_=[^&]*/, wt = /^(.*?):[ \t]*([^\r\n]*)$/gm, Ct = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, kt = /^(?:GET|HEAD)$/, Tt = /^\/\//, Et = {}, St = {}, Nt = "*/".concat("*"), _t = J.createElement("a");
|
|
_t.href = mt.href, oe.extend({
|
|
active: 0,
|
|
lastModified: {},
|
|
etag: {},
|
|
ajaxSettings: {
|
|
url: mt.href,
|
|
type: "GET",
|
|
isLocal: Ct.test(mt.protocol),
|
|
global: !0,
|
|
processData: !0,
|
|
async: !0,
|
|
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
|
|
accepts: {
|
|
"*": Nt,
|
|
text: "text/plain",
|
|
html: "text/html",
|
|
xml: "application/xml, text/xml",
|
|
json: "application/json, text/javascript"
|
|
},
|
|
contents: {
|
|
xml: /\bxml\b/,
|
|
html: /\bhtml/,
|
|
json: /\bjson\b/
|
|
},
|
|
responseFields: {
|
|
xml: "responseXML",
|
|
text: "responseText",
|
|
json: "responseJSON"
|
|
},
|
|
converters: {
|
|
"* text": String,
|
|
"text html": !0,
|
|
"text json": oe.parseJSON,
|
|
"text xml": oe.parseXML
|
|
},
|
|
flatOptions: {
|
|
url: !0,
|
|
context: !0
|
|
}
|
|
},
|
|
ajaxSetup: function(e, t) {
|
|
return t ? W(W(e, oe.ajaxSettings), t) : W(oe.ajaxSettings, e);
|
|
},
|
|
ajaxPrefilter: B(Et),
|
|
ajaxTransport: B(St),
|
|
ajax: function(t, n) {
|
|
function i(t, n, i, s) {
|
|
var l, f, y, b, w, k = n;
|
|
2 !== x && (x = 2, u && e.clearTimeout(u), r = void 0, a = s || "", C.readyState = t > 0 ? 4 : 0,
|
|
l = t >= 200 && 300 > t || 304 === t, i && (b = U(p, C, i)), b = z(p, b, C, l),
|
|
l ? (p.ifModified && (w = C.getResponseHeader("Last-Modified"), w && (oe.lastModified[o] = w),
|
|
w = C.getResponseHeader("etag"), w && (oe.etag[o] = w)), 204 === t || "HEAD" === p.type ? k = "nocontent" : 304 === t ? k = "notmodified" : (k = b.state,
|
|
f = b.data, y = b.error, l = !y)) : (y = k, (t || !k) && (k = "error", 0 > t && (t = 0))),
|
|
C.status = t, C.statusText = (n || k) + "", l ? g.resolveWith(d, [ f, k, C ]) : g.rejectWith(d, [ C, k, y ]),
|
|
C.statusCode(v), v = void 0, c && h.trigger(l ? "ajaxSuccess" : "ajaxError", [ C, p, l ? f : y ]),
|
|
m.fireWith(d, [ C, k ]), c && (h.trigger("ajaxComplete", [ C, p ]), --oe.active || oe.event.trigger("ajaxStop")));
|
|
}
|
|
"object" == typeof t && (n = t, t = void 0), n = n || {};
|
|
var r, o, a, s, u, l, c, f, p = oe.ajaxSetup({}, n), d = p.context || p, h = p.context && (d.nodeType || d.jquery) ? oe(d) : oe.event, g = oe.Deferred(), m = oe.Callbacks("once memory"), v = p.statusCode || {}, y = {}, b = {}, x = 0, w = "canceled", C = {
|
|
readyState: 0,
|
|
getResponseHeader: function(e) {
|
|
var t;
|
|
if (2 === x) {
|
|
if (!s) for (s = {}; t = wt.exec(a); ) s[t[1].toLowerCase()] = t[2];
|
|
t = s[e.toLowerCase()];
|
|
}
|
|
return null == t ? null : t;
|
|
},
|
|
getAllResponseHeaders: function() {
|
|
return 2 === x ? a : null;
|
|
},
|
|
setRequestHeader: function(e, t) {
|
|
var n = e.toLowerCase();
|
|
return x || (e = b[n] = b[n] || e, y[e] = t), this;
|
|
},
|
|
overrideMimeType: function(e) {
|
|
return x || (p.mimeType = e), this;
|
|
},
|
|
statusCode: function(e) {
|
|
var t;
|
|
if (e) if (2 > x) for (t in e) v[t] = [ v[t], e[t] ]; else C.always(e[C.status]);
|
|
return this;
|
|
},
|
|
abort: function(e) {
|
|
var t = e || w;
|
|
return r && r.abort(t), i(0, t), this;
|
|
}
|
|
};
|
|
if (g.promise(C).complete = m.add, C.success = C.done, C.error = C.fail, p.url = ((t || p.url || mt.href) + "").replace(bt, "").replace(Tt, mt.protocol + "//"),
|
|
p.type = n.method || n.type || p.method || p.type, p.dataTypes = oe.trim(p.dataType || "*").toLowerCase().match(we) || [ "" ],
|
|
null == p.crossDomain) {
|
|
l = J.createElement("a");
|
|
try {
|
|
l.href = p.url, l.href = l.href, p.crossDomain = _t.protocol + "//" + _t.host != l.protocol + "//" + l.host;
|
|
} catch (k) {
|
|
p.crossDomain = !0;
|
|
}
|
|
}
|
|
if (p.data && p.processData && "string" != typeof p.data && (p.data = oe.param(p.data, p.traditional)),
|
|
H(Et, p, n, C), 2 === x) return C;
|
|
c = oe.event && p.global, c && 0 === oe.active++ && oe.event.trigger("ajaxStart"),
|
|
p.type = p.type.toUpperCase(), p.hasContent = !kt.test(p.type), o = p.url, p.hasContent || (p.data && (o = p.url += (yt.test(o) ? "&" : "?") + p.data,
|
|
delete p.data), p.cache === !1 && (p.url = xt.test(o) ? o.replace(xt, "$1_=" + vt++) : o + (yt.test(o) ? "&" : "?") + "_=" + vt++)),
|
|
p.ifModified && (oe.lastModified[o] && C.setRequestHeader("If-Modified-Since", oe.lastModified[o]),
|
|
oe.etag[o] && C.setRequestHeader("If-None-Match", oe.etag[o])), (p.data && p.hasContent && p.contentType !== !1 || n.contentType) && C.setRequestHeader("Content-Type", p.contentType),
|
|
C.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + Nt + "; q=0.01" : "") : p.accepts["*"]);
|
|
for (f in p.headers) C.setRequestHeader(f, p.headers[f]);
|
|
if (p.beforeSend && (p.beforeSend.call(d, C, p) === !1 || 2 === x)) return C.abort();
|
|
w = "abort";
|
|
for (f in {
|
|
success: 1,
|
|
error: 1,
|
|
complete: 1
|
|
}) C[f](p[f]);
|
|
if (r = H(St, p, n, C)) {
|
|
if (C.readyState = 1, c && h.trigger("ajaxSend", [ C, p ]), 2 === x) return C;
|
|
p.async && p.timeout > 0 && (u = e.setTimeout(function() {
|
|
C.abort("timeout");
|
|
}, p.timeout));
|
|
try {
|
|
x = 1, r.send(y, i);
|
|
} catch (k) {
|
|
if (!(2 > x)) throw k;
|
|
i(-1, k);
|
|
}
|
|
} else i(-1, "No Transport");
|
|
return C;
|
|
},
|
|
getJSON: function(e, t, n) {
|
|
return oe.get(e, t, n, "json");
|
|
},
|
|
getScript: function(e, t) {
|
|
return oe.get(e, void 0, t, "script");
|
|
}
|
|
}), oe.each([ "get", "post" ], function(e, t) {
|
|
oe[t] = function(e, n, i, r) {
|
|
return oe.isFunction(n) && (r = r || i, i = n, n = void 0), oe.ajax(oe.extend({
|
|
url: e,
|
|
type: t,
|
|
dataType: r,
|
|
data: n,
|
|
success: i
|
|
}, oe.isPlainObject(e) && e));
|
|
};
|
|
}), oe._evalUrl = function(e) {
|
|
return oe.ajax({
|
|
url: e,
|
|
type: "GET",
|
|
dataType: "script",
|
|
async: !1,
|
|
global: !1,
|
|
"throws": !0
|
|
});
|
|
}, oe.fn.extend({
|
|
wrapAll: function(e) {
|
|
var t;
|
|
return oe.isFunction(e) ? this.each(function(t) {
|
|
oe(this).wrapAll(e.call(this, t));
|
|
}) : (this[0] && (t = oe(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]),
|
|
t.map(function() {
|
|
for (var e = this; e.firstElementChild; ) e = e.firstElementChild;
|
|
return e;
|
|
}).append(this)), this);
|
|
},
|
|
wrapInner: function(e) {
|
|
return oe.isFunction(e) ? this.each(function(t) {
|
|
oe(this).wrapInner(e.call(this, t));
|
|
}) : this.each(function() {
|
|
var t = oe(this), n = t.contents();
|
|
n.length ? n.wrapAll(e) : t.append(e);
|
|
});
|
|
},
|
|
wrap: function(e) {
|
|
var t = oe.isFunction(e);
|
|
return this.each(function(n) {
|
|
oe(this).wrapAll(t ? e.call(this, n) : e);
|
|
});
|
|
},
|
|
unwrap: function() {
|
|
return this.parent().each(function() {
|
|
oe.nodeName(this, "body") || oe(this).replaceWith(this.childNodes);
|
|
}).end();
|
|
}
|
|
}), oe.expr.filters.hidden = function(e) {
|
|
return !oe.expr.filters.visible(e);
|
|
}, oe.expr.filters.visible = function(e) {
|
|
return e.offsetWidth > 0 || e.offsetHeight > 0 || e.getClientRects().length > 0;
|
|
};
|
|
var At = /%20/g, Dt = /\[\]$/, Ot = /\r?\n/g, $t = /^(?:submit|button|image|reset|file)$/i, jt = /^(?:input|select|textarea|keygen)/i;
|
|
oe.param = function(e, t) {
|
|
var n, i = [], r = function(e, t) {
|
|
t = oe.isFunction(t) ? t() : null == t ? "" : t, i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t);
|
|
};
|
|
if (void 0 === t && (t = oe.ajaxSettings && oe.ajaxSettings.traditional), oe.isArray(e) || e.jquery && !oe.isPlainObject(e)) oe.each(e, function() {
|
|
r(this.name, this.value);
|
|
}); else for (n in e) V(n, e[n], t, r);
|
|
return i.join("&").replace(At, "+");
|
|
}, oe.fn.extend({
|
|
serialize: function() {
|
|
return oe.param(this.serializeArray());
|
|
},
|
|
serializeArray: function() {
|
|
return this.map(function() {
|
|
var e = oe.prop(this, "elements");
|
|
return e ? oe.makeArray(e) : this;
|
|
}).filter(function() {
|
|
var e = this.type;
|
|
return this.name && !oe(this).is(":disabled") && jt.test(this.nodeName) && !$t.test(e) && (this.checked || !je.test(e));
|
|
}).map(function(e, t) {
|
|
var n = oe(this).val();
|
|
return null == n ? null : oe.isArray(n) ? oe.map(n, function(e) {
|
|
return {
|
|
name: t.name,
|
|
value: e.replace(Ot, "\r\n")
|
|
};
|
|
}) : {
|
|
name: t.name,
|
|
value: n.replace(Ot, "\r\n")
|
|
};
|
|
}).get();
|
|
}
|
|
}), oe.ajaxSettings.xhr = function() {
|
|
try {
|
|
return new e.XMLHttpRequest();
|
|
} catch (t) {}
|
|
};
|
|
var qt = {
|
|
0: 200,
|
|
1223: 204
|
|
}, Rt = oe.ajaxSettings.xhr();
|
|
ie.cors = !!Rt && "withCredentials" in Rt, ie.ajax = Rt = !!Rt, oe.ajaxTransport(function(t) {
|
|
var n, i;
|
|
return ie.cors || Rt && !t.crossDomain ? {
|
|
send: function(r, o) {
|
|
var a, s = t.xhr();
|
|
if (s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields) for (a in t.xhrFields) s[a] = t.xhrFields[a];
|
|
t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), t.crossDomain || r["X-Requested-With"] || (r["X-Requested-With"] = "XMLHttpRequest");
|
|
for (a in r) s.setRequestHeader(a, r[a]);
|
|
n = function(e) {
|
|
return function() {
|
|
n && (n = i = s.onload = s.onerror = s.onabort = s.onreadystatechange = null, "abort" === e ? s.abort() : "error" === e ? "number" != typeof s.status ? o(0, "error") : o(s.status, s.statusText) : o(qt[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText ? {
|
|
binary: s.response
|
|
} : {
|
|
text: s.responseText
|
|
}, s.getAllResponseHeaders()));
|
|
};
|
|
}, s.onload = n(), i = s.onerror = n("error"), void 0 !== s.onabort ? s.onabort = i : s.onreadystatechange = function() {
|
|
4 === s.readyState && e.setTimeout(function() {
|
|
n && i();
|
|
});
|
|
}, n = n("abort");
|
|
try {
|
|
s.send(t.hasContent && t.data || null);
|
|
} catch (u) {
|
|
if (n) throw u;
|
|
}
|
|
},
|
|
abort: function() {
|
|
n && n();
|
|
}
|
|
} : void 0;
|
|
}), oe.ajaxSetup({
|
|
accepts: {
|
|
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
|
|
},
|
|
contents: {
|
|
script: /\b(?:java|ecma)script\b/
|
|
},
|
|
converters: {
|
|
"text script": function(e) {
|
|
return oe.globalEval(e), e;
|
|
}
|
|
}
|
|
}), oe.ajaxPrefilter("script", function(e) {
|
|
void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET");
|
|
}), oe.ajaxTransport("script", function(e) {
|
|
if (e.crossDomain) {
|
|
var t, n;
|
|
return {
|
|
send: function(i, r) {
|
|
t = oe("<script>").prop({
|
|
charset: e.scriptCharset,
|
|
src: e.url
|
|
}).on("load error", n = function(e) {
|
|
t.remove(), n = null, e && r("error" === e.type ? 404 : 200, e.type);
|
|
}), J.head.appendChild(t[0]);
|
|
},
|
|
abort: function() {
|
|
n && n();
|
|
}
|
|
};
|
|
}
|
|
});
|
|
var Mt = [], Lt = /(=)\?(?=&|$)|\?\?/;
|
|
oe.ajaxSetup({
|
|
jsonp: "callback",
|
|
jsonpCallback: function() {
|
|
var e = Mt.pop() || oe.expando + "_" + vt++;
|
|
return this[e] = !0, e;
|
|
}
|
|
}), oe.ajaxPrefilter("json jsonp", function(t, n, i) {
|
|
var r, o, a, s = t.jsonp !== !1 && (Lt.test(t.url) ? "url" : "string" == typeof t.data && 0 === (t.contentType || "").indexOf("application/x-www-form-urlencoded") && Lt.test(t.data) && "data");
|
|
return s || "jsonp" === t.dataTypes[0] ? (r = t.jsonpCallback = oe.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback,
|
|
s ? t[s] = t[s].replace(Lt, "$1" + r) : t.jsonp !== !1 && (t.url += (yt.test(t.url) ? "&" : "?") + t.jsonp + "=" + r),
|
|
t.converters["script json"] = function() {
|
|
return a || oe.error(r + " was not called"), a[0];
|
|
}, t.dataTypes[0] = "json", o = e[r], e[r] = function() {
|
|
a = arguments;
|
|
}, i.always(function() {
|
|
void 0 === o ? oe(e).removeProp(r) : e[r] = o, t[r] && (t.jsonpCallback = n.jsonpCallback,
|
|
Mt.push(r)), a && oe.isFunction(o) && o(a[0]), a = o = void 0;
|
|
}), "script") : void 0;
|
|
}), oe.parseHTML = function(e, t, n) {
|
|
if (!e || "string" != typeof e) return null;
|
|
"boolean" == typeof t && (n = t, t = !1), t = t || J;
|
|
var i = he.exec(e), r = !n && [];
|
|
return i ? [ t.createElement(i[1]) ] : (i = p([ e ], t, r), r && r.length && oe(r).remove(),
|
|
oe.merge([], i.childNodes));
|
|
};
|
|
var Pt = oe.fn.load;
|
|
oe.fn.load = function(e, t, n) {
|
|
if ("string" != typeof e && Pt) return Pt.apply(this, arguments);
|
|
var i, r, o, a = this, s = e.indexOf(" ");
|
|
return s > -1 && (i = oe.trim(e.slice(s)), e = e.slice(0, s)), oe.isFunction(t) ? (n = t,
|
|
t = void 0) : t && "object" == typeof t && (r = "POST"), a.length > 0 && oe.ajax({
|
|
url: e,
|
|
type: r || "GET",
|
|
dataType: "html",
|
|
data: t
|
|
}).done(function(e) {
|
|
o = arguments, a.html(i ? oe("<div>").append(oe.parseHTML(e)).find(i) : e);
|
|
}).always(n && function(e, t) {
|
|
a.each(function() {
|
|
n.apply(this, o || [ e.responseText, t, e ]);
|
|
});
|
|
}), this;
|
|
}, oe.each([ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function(e, t) {
|
|
oe.fn[t] = function(e) {
|
|
return this.on(t, e);
|
|
};
|
|
}), oe.expr.filters.animated = function(e) {
|
|
return oe.grep(oe.timers, function(t) {
|
|
return e === t.elem;
|
|
}).length;
|
|
}, oe.offset = {
|
|
setOffset: function(e, t, n) {
|
|
var i, r, o, a, s, u, l, c = oe.css(e, "position"), f = oe(e), p = {};
|
|
"static" === c && (e.style.position = "relative"), s = f.offset(), o = oe.css(e, "top"),
|
|
u = oe.css(e, "left"), l = ("absolute" === c || "fixed" === c) && (o + u).indexOf("auto") > -1,
|
|
l ? (i = f.position(), a = i.top, r = i.left) : (a = parseFloat(o) || 0, r = parseFloat(u) || 0),
|
|
oe.isFunction(t) && (t = t.call(e, n, oe.extend({}, s))), null != t.top && (p.top = t.top - s.top + a),
|
|
null != t.left && (p.left = t.left - s.left + r), "using" in t ? t.using.call(e, p) : f.css(p);
|
|
}
|
|
}, oe.fn.extend({
|
|
offset: function(e) {
|
|
if (arguments.length) return void 0 === e ? this : this.each(function(t) {
|
|
oe.offset.setOffset(this, e, t);
|
|
});
|
|
var t, n, i = this[0], r = {
|
|
top: 0,
|
|
left: 0
|
|
}, o = i && i.ownerDocument;
|
|
if (o) return t = o.documentElement, oe.contains(t, i) ? (r = i.getBoundingClientRect(),
|
|
n = X(o), {
|
|
top: r.top + n.pageYOffset - t.clientTop,
|
|
left: r.left + n.pageXOffset - t.clientLeft
|
|
}) : r;
|
|
},
|
|
position: function() {
|
|
if (this[0]) {
|
|
var e, t, n = this[0], i = {
|
|
top: 0,
|
|
left: 0
|
|
};
|
|
return "fixed" === oe.css(n, "position") ? t = n.getBoundingClientRect() : (e = this.offsetParent(),
|
|
t = this.offset(), oe.nodeName(e[0], "html") || (i = e.offset()), i.top += oe.css(e[0], "borderTopWidth", !0),
|
|
i.left += oe.css(e[0], "borderLeftWidth", !0)), {
|
|
top: t.top - i.top - oe.css(n, "marginTop", !0),
|
|
left: t.left - i.left - oe.css(n, "marginLeft", !0)
|
|
};
|
|
}
|
|
},
|
|
offsetParent: function() {
|
|
return this.map(function() {
|
|
for (var e = this.offsetParent; e && "static" === oe.css(e, "position"); ) e = e.offsetParent;
|
|
return e || Ke;
|
|
});
|
|
}
|
|
}), oe.each({
|
|
scrollLeft: "pageXOffset",
|
|
scrollTop: "pageYOffset"
|
|
}, function(e, t) {
|
|
var n = "pageYOffset" === t;
|
|
oe.fn[e] = function(i) {
|
|
return ke(this, function(e, i, r) {
|
|
var o = X(e);
|
|
return void 0 === r ? o ? o[t] : e[i] : void (o ? o.scrollTo(n ? o.pageXOffset : r, n ? r : o.pageYOffset) : e[i] = r);
|
|
}, e, i, arguments.length);
|
|
};
|
|
}), oe.each([ "top", "left" ], function(e, t) {
|
|
oe.cssHooks[t] = N(ie.pixelPosition, function(e, n) {
|
|
return n ? (n = S(e, t), Je.test(n) ? oe(e).position()[t] + "px" : n) : void 0;
|
|
});
|
|
}), oe.each({
|
|
Height: "height",
|
|
Width: "width"
|
|
}, function(e, t) {
|
|
oe.each({
|
|
padding: "inner" + e,
|
|
content: t,
|
|
"": "outer" + e
|
|
}, function(n, i) {
|
|
oe.fn[i] = function(i, r) {
|
|
var o = arguments.length && (n || "boolean" != typeof i), a = n || (i === !0 || r === !0 ? "margin" : "border");
|
|
return ke(this, function(t, n, i) {
|
|
var r;
|
|
return oe.isWindow(t) ? t.document.documentElement["client" + e] : 9 === t.nodeType ? (r = t.documentElement,
|
|
Math.max(t.body["scroll" + e], r["scroll" + e], t.body["offset" + e], r["offset" + e], r["client" + e])) : void 0 === i ? oe.css(t, n, a) : oe.style(t, n, i, a);
|
|
}, t, o ? i : void 0, o, null);
|
|
};
|
|
});
|
|
}), oe.fn.extend({
|
|
bind: function(e, t, n) {
|
|
return this.on(e, null, t, n);
|
|
},
|
|
unbind: function(e, t) {
|
|
return this.off(e, null, t);
|
|
},
|
|
delegate: function(e, t, n, i) {
|
|
return this.on(t, e, n, i);
|
|
},
|
|
undelegate: function(e, t, n) {
|
|
return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n);
|
|
},
|
|
size: function() {
|
|
return this.length;
|
|
}
|
|
}), oe.fn.andSelf = oe.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function() {
|
|
return oe;
|
|
});
|
|
var It = e.jQuery, Ft = e.$;
|
|
return oe.noConflict = function(t) {
|
|
return e.$ === oe && (e.$ = Ft), t && e.jQuery === oe && (e.jQuery = It), oe;
|
|
}, t || (e.jQuery = e.$ = oe), oe;
|
|
}), "undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery");
|
|
|
|
+function(e) {
|
|
function t() {
|
|
var e = document.createElement("bootstrap"), t = {
|
|
WebkitTransition: "webkitTransitionEnd",
|
|
MozTransition: "transitionend",
|
|
OTransition: "oTransitionEnd otransitionend",
|
|
transition: "transitionend"
|
|
};
|
|
for (var n in t) if (void 0 !== e.style[n]) return {
|
|
end: t[n]
|
|
};
|
|
return !1;
|
|
}
|
|
e.fn.emulateTransitionEnd = function(t) {
|
|
var n = !1, i = this;
|
|
e(this).one(e.support.transition.end, function() {
|
|
n = !0;
|
|
});
|
|
var r = function() {
|
|
n || e(i).trigger(e.support.transition.end);
|
|
};
|
|
return setTimeout(r, t), this;
|
|
}, e(function() {
|
|
e.support.transition = t();
|
|
});
|
|
}(jQuery), +function(e) {
|
|
var t = '[data-dismiss="alert"]', n = function(n) {
|
|
e(n).on("click", t, this.close);
|
|
};
|
|
n.prototype.close = function(t) {
|
|
function n() {
|
|
o.trigger("closed.bs.alert").remove();
|
|
}
|
|
var i = e(this), r = i.attr("data-target");
|
|
r || (r = i.attr("href"), r = r && r.replace(/.*(?=#[^\s]*$)/, ""));
|
|
var o = e(r);
|
|
t && t.preventDefault(), o.length || (o = i.hasClass("alert") ? i : i.parent()),
|
|
o.trigger(t = e.Event("close.bs.alert")), t.isDefaultPrevented() || (o.removeClass("in"),
|
|
e.support.transition && o.hasClass("fade") ? o.one(e.support.transition.end, n).emulateTransitionEnd(150) : n());
|
|
};
|
|
var i = e.fn.alert;
|
|
e.fn.alert = function(t) {
|
|
return this.each(function() {
|
|
var i = e(this), r = i.data("bs.alert");
|
|
r || i.data("bs.alert", r = new n(this)), "string" == typeof t && r[t].call(i);
|
|
});
|
|
}, e.fn.alert.Constructor = n, e.fn.alert.noConflict = function() {
|
|
return e.fn.alert = i, this;
|
|
}, e(document).on("click.bs.alert.data-api", t, n.prototype.close);
|
|
}(jQuery), +function(e) {
|
|
var t = function(n, i) {
|
|
this.$element = e(n), this.options = e.extend({}, t.DEFAULTS, i), this.isLoading = !1;
|
|
};
|
|
t.DEFAULTS = {
|
|
loadingText: "loading..."
|
|
}, t.prototype.setState = function(t) {
|
|
var n = "disabled", i = this.$element, r = i.is("input") ? "val" : "html", o = i.data();
|
|
t += "Text", o.resetText || i.data("resetText", i[r]()), i[r](o[t] || this.options[t]),
|
|
setTimeout(e.proxy(function() {
|
|
"loadingText" == t ? (this.isLoading = !0, i.addClass(n).attr(n, n)) : this.isLoading && (this.isLoading = !1,
|
|
i.removeClass(n).removeAttr(n));
|
|
}, this), 0);
|
|
}, t.prototype.toggle = function() {
|
|
var e = !0, t = this.$element.closest('[data-toggle="buttons"]');
|
|
if (t.length) {
|
|
var n = this.$element.find("input");
|
|
"radio" == n.prop("type") && (n.prop("checked") && this.$element.hasClass("active") ? e = !1 : t.find(".active").removeClass("active")),
|
|
e && n.prop("checked", !this.$element.hasClass("active")).trigger("change");
|
|
}
|
|
e && this.$element.toggleClass("active");
|
|
};
|
|
var n = e.fn.button;
|
|
e.fn.button = function(n) {
|
|
return this.each(function() {
|
|
var i = e(this), r = i.data("bs.button"), o = "object" == typeof n && n;
|
|
r || i.data("bs.button", r = new t(this, o)), "toggle" == n ? r.toggle() : n && r.setState(n);
|
|
});
|
|
}, e.fn.button.Constructor = t, e.fn.button.noConflict = function() {
|
|
return e.fn.button = n, this;
|
|
}, e(document).on("click.bs.button.data-api", "[data-toggle^=button]", function(t) {
|
|
var n = e(t.target);
|
|
n.hasClass("btn") || (n = n.closest(".btn")), n.button("toggle"), t.preventDefault();
|
|
});
|
|
}(jQuery), +function(e) {
|
|
var t = function(t, n) {
|
|
this.$element = e(t), this.$indicators = this.$element.find(".carousel-indicators"),
|
|
this.options = n, this.paused = this.sliding = this.interval = this.$active = this.$items = null,
|
|
"hover" == this.options.pause && this.$element.on("mouseenter", e.proxy(this.pause, this)).on("mouseleave", e.proxy(this.cycle, this));
|
|
};
|
|
t.DEFAULTS = {
|
|
interval: 5e3,
|
|
pause: "hover",
|
|
wrap: !0
|
|
}, t.prototype.cycle = function(t) {
|
|
return t || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(e.proxy(this.next, this), this.options.interval)),
|
|
this;
|
|
}, t.prototype.getActiveIndex = function() {
|
|
return this.$active = this.$element.find(".item.active"), this.$items = this.$active.parent().children(),
|
|
this.$items.index(this.$active);
|
|
}, t.prototype.to = function(t) {
|
|
var n = this, i = this.getActiveIndex();
|
|
return t > this.$items.length - 1 || 0 > t ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function() {
|
|
n.to(t);
|
|
}) : i == t ? this.pause().cycle() : this.slide(t > i ? "next" : "prev", e(this.$items[t]));
|
|
}, t.prototype.pause = function(t) {
|
|
return t || (this.paused = !0), this.$element.find(".next, .prev").length && e.support.transition && (this.$element.trigger(e.support.transition.end),
|
|
this.cycle(!0)), this.interval = clearInterval(this.interval), this;
|
|
}, t.prototype.next = function() {
|
|
return this.sliding ? void 0 : this.slide("next");
|
|
}, t.prototype.prev = function() {
|
|
return this.sliding ? void 0 : this.slide("prev");
|
|
}, t.prototype.slide = function(t, n) {
|
|
var i = this.$element.find(".item.active"), r = n || i[t](), o = this.interval, a = "next" == t ? "left" : "right", s = "next" == t ? "first" : "last", u = this;
|
|
if (!r.length) {
|
|
if (!this.options.wrap) return;
|
|
r = this.$element.find(".item")[s]();
|
|
}
|
|
if (r.hasClass("active")) return this.sliding = !1;
|
|
var l = e.Event("slide.bs.carousel", {
|
|
relatedTarget: r[0],
|
|
direction: a
|
|
});
|
|
return this.$element.trigger(l), l.isDefaultPrevented() ? void 0 : (this.sliding = !0,
|
|
o && this.pause(), this.$indicators.length && (this.$indicators.find(".active").removeClass("active"),
|
|
this.$element.one("slid.bs.carousel", function() {
|
|
var t = e(u.$indicators.children()[u.getActiveIndex()]);
|
|
t && t.addClass("active");
|
|
})), e.support.transition && this.$element.hasClass("slide") ? (r.addClass(t), r[0].offsetWidth,
|
|
i.addClass(a), r.addClass(a), i.one(e.support.transition.end, function() {
|
|
r.removeClass([ t, a ].join(" ")).addClass("active"), i.removeClass([ "active", a ].join(" ")),
|
|
u.sliding = !1, setTimeout(function() {
|
|
u.$element.trigger("slid.bs.carousel");
|
|
}, 0);
|
|
}).emulateTransitionEnd(1e3 * i.css("transition-duration").slice(0, -1))) : (i.removeClass("active"),
|
|
r.addClass("active"), this.sliding = !1, this.$element.trigger("slid.bs.carousel")),
|
|
o && this.cycle(), this);
|
|
};
|
|
var n = e.fn.carousel;
|
|
e.fn.carousel = function(n) {
|
|
return this.each(function() {
|
|
var i = e(this), r = i.data("bs.carousel"), o = e.extend({}, t.DEFAULTS, i.data(), "object" == typeof n && n), a = "string" == typeof n ? n : o.slide;
|
|
r || i.data("bs.carousel", r = new t(this, o)), "number" == typeof n ? r.to(n) : a ? r[a]() : o.interval && r.pause().cycle();
|
|
});
|
|
}, e.fn.carousel.Constructor = t, e.fn.carousel.noConflict = function() {
|
|
return e.fn.carousel = n, this;
|
|
}, e(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function(t) {
|
|
var n, i = e(this), r = e(i.attr("data-target") || (n = i.attr("href")) && n.replace(/.*(?=#[^\s]+$)/, "")), o = e.extend({}, r.data(), i.data()), a = i.attr("data-slide-to");
|
|
a && (o.interval = !1), r.carousel(o), (a = i.attr("data-slide-to")) && r.data("bs.carousel").to(a),
|
|
t.preventDefault();
|
|
}), e(window).on("load", function() {
|
|
e('[data-ride="carousel"]').each(function() {
|
|
var t = e(this);
|
|
t.carousel(t.data());
|
|
});
|
|
});
|
|
}(jQuery), +function(e) {
|
|
var t = function(n, i) {
|
|
this.$element = e(n), this.options = e.extend({}, t.DEFAULTS, i), this.transitioning = null,
|
|
this.options.parent && (this.$parent = e(this.options.parent)), this.options.toggle && this.toggle();
|
|
};
|
|
t.DEFAULTS = {
|
|
toggle: !0
|
|
}, t.prototype.dimension = function() {
|
|
var e = this.$element.hasClass("width");
|
|
return e ? "width" : "height";
|
|
}, t.prototype.show = function() {
|
|
if (!this.transitioning && !this.$element.hasClass("in")) {
|
|
var t = e.Event("show.bs.collapse");
|
|
if (this.$element.trigger(t), !t.isDefaultPrevented()) {
|
|
var n = this.$parent && this.$parent.find("> .panel > .in");
|
|
if (n && n.length) {
|
|
var i = n.data("bs.collapse");
|
|
if (i && i.transitioning) return;
|
|
n.collapse("hide"), i || n.data("bs.collapse", null);
|
|
}
|
|
var r = this.dimension();
|
|
this.$element.removeClass("collapse").addClass("collapsing")[r](0), this.transitioning = 1;
|
|
var o = function() {
|
|
this.$element.removeClass("collapsing").addClass("collapse in")[r]("auto"), this.transitioning = 0,
|
|
this.$element.trigger("shown.bs.collapse");
|
|
};
|
|
if (!e.support.transition) return o.call(this);
|
|
var a = e.camelCase([ "scroll", r ].join("-"));
|
|
this.$element.one(e.support.transition.end, e.proxy(o, this)).emulateTransitionEnd(350)[r](this.$element[0][a]);
|
|
}
|
|
}
|
|
}, t.prototype.hide = function() {
|
|
if (!this.transitioning && this.$element.hasClass("in")) {
|
|
var t = e.Event("hide.bs.collapse");
|
|
if (this.$element.trigger(t), !t.isDefaultPrevented()) {
|
|
var n = this.dimension();
|
|
this.$element[n](this.$element[n]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),
|
|
this.transitioning = 1;
|
|
var i = function() {
|
|
this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse");
|
|
};
|
|
return e.support.transition ? void this.$element[n](0).one(e.support.transition.end, e.proxy(i, this)).emulateTransitionEnd(350) : i.call(this);
|
|
}
|
|
}
|
|
}, t.prototype.toggle = function() {
|
|
this[this.$element.hasClass("in") ? "hide" : "show"]();
|
|
};
|
|
var n = e.fn.collapse;
|
|
e.fn.collapse = function(n) {
|
|
return this.each(function() {
|
|
var i = e(this), r = i.data("bs.collapse"), o = e.extend({}, t.DEFAULTS, i.data(), "object" == typeof n && n);
|
|
!r && o.toggle && "show" == n && (n = !n), r || i.data("bs.collapse", r = new t(this, o)),
|
|
"string" == typeof n && r[n]();
|
|
});
|
|
}, e.fn.collapse.Constructor = t, e.fn.collapse.noConflict = function() {
|
|
return e.fn.collapse = n, this;
|
|
}, e(document).on("click.bs.collapse.data-api", "[data-toggle=collapse]", function(t) {
|
|
var n, i = e(this), r = i.attr("data-target") || t.preventDefault() || (n = i.attr("href")) && n.replace(/.*(?=#[^\s]+$)/, ""), o = e(r), a = o.data("bs.collapse"), s = a ? "toggle" : i.data(), u = i.attr("data-parent"), l = u && e(u);
|
|
a && a.transitioning || (l && l.find('[data-toggle=collapse][data-parent="' + u + '"]').not(i).addClass("collapsed"),
|
|
i[o.hasClass("in") ? "addClass" : "removeClass"]("collapsed")), o.collapse(s);
|
|
});
|
|
}(jQuery), +function(e) {
|
|
function t(t) {
|
|
e(i).remove(), e(r).each(function() {
|
|
var i = n(e(this)), r = {
|
|
relatedTarget: this
|
|
};
|
|
i.hasClass("open") && (i.trigger(t = e.Event("hide.bs.dropdown", r)), t.isDefaultPrevented() || i.removeClass("open").trigger("hidden.bs.dropdown", r));
|
|
});
|
|
}
|
|
function n(t) {
|
|
var n = t.attr("data-target");
|
|
n || (n = t.attr("href"), n = n && /#[A-Za-z]/.test(n) && n.replace(/.*(?=#[^\s]*$)/, ""));
|
|
var i = n && e(n);
|
|
return i && i.length ? i : t.parent();
|
|
}
|
|
var i = ".dropdown-backdrop", r = "[data-toggle=dropdown]", o = function(t) {
|
|
e(t).on("click.bs.dropdown", this.toggle);
|
|
};
|
|
o.prototype.toggle = function(i) {
|
|
var r = e(this);
|
|
if (!r.is(".disabled, :disabled")) {
|
|
var o = n(r), a = o.hasClass("open");
|
|
if (t(), !a) {
|
|
"ontouchstart" in document.documentElement && !o.closest(".navbar-nav").length && e('<div class="dropdown-backdrop"/>').insertAfter(e(this)).on("click", t);
|
|
var s = {
|
|
relatedTarget: this
|
|
};
|
|
if (o.trigger(i = e.Event("show.bs.dropdown", s)), i.isDefaultPrevented()) return;
|
|
o.toggleClass("open").trigger("shown.bs.dropdown", s), r.focus();
|
|
}
|
|
return !1;
|
|
}
|
|
}, o.prototype.keydown = function(t) {
|
|
if (/(38|40|27)/.test(t.keyCode)) {
|
|
var i = e(this);
|
|
if (t.preventDefault(), t.stopPropagation(), !i.is(".disabled, :disabled")) {
|
|
var o = n(i), a = o.hasClass("open");
|
|
if (!a || a && 27 == t.keyCode) return 27 == t.which && o.find(r).focus(), i.click();
|
|
var s = " li:not(.divider):visible a", u = o.find("[role=menu]" + s + ", [role=listbox]" + s);
|
|
if (u.length) {
|
|
var l = u.index(u.filter(":focus"));
|
|
38 == t.keyCode && l > 0 && l--, 40 == t.keyCode && l < u.length - 1 && l++, ~l || (l = 0),
|
|
u.eq(l).focus();
|
|
}
|
|
}
|
|
}
|
|
};
|
|
var a = e.fn.dropdown;
|
|
e.fn.dropdown = function(t) {
|
|
return this.each(function() {
|
|
var n = e(this), i = n.data("bs.dropdown");
|
|
i || n.data("bs.dropdown", i = new o(this)), "string" == typeof t && i[t].call(n);
|
|
});
|
|
}, e.fn.dropdown.Constructor = o, e.fn.dropdown.noConflict = function() {
|
|
return e.fn.dropdown = a, this;
|
|
}, e(document).on("click.bs.dropdown.data-api", t).on("click.bs.dropdown.data-api", ".dropdown form", function(e) {
|
|
e.stopPropagation();
|
|
}).on("click.bs.dropdown.data-api", r, o.prototype.toggle).on("keydown.bs.dropdown.data-api", r + ", [role=menu], [role=listbox]", o.prototype.keydown);
|
|
}(jQuery), +function(e) {
|
|
var t = function(t, n) {
|
|
this.options = n, this.$element = e(t), this.$backdrop = this.isShown = null, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, e.proxy(function() {
|
|
this.$element.trigger("loaded.bs.modal");
|
|
}, this));
|
|
};
|
|
t.DEFAULTS = {
|
|
backdrop: !0,
|
|
keyboard: !0,
|
|
show: !0
|
|
}, t.prototype.toggle = function(e) {
|
|
return this[this.isShown ? "hide" : "show"](e);
|
|
}, t.prototype.show = function(t) {
|
|
var n = this, i = e.Event("show.bs.modal", {
|
|
relatedTarget: t
|
|
});
|
|
this.$element.trigger(i), this.isShown || i.isDefaultPrevented() || (this.isShown = !0,
|
|
this.escape(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', e.proxy(this.hide, this)),
|
|
this.backdrop(function() {
|
|
var i = e.support.transition && n.$element.hasClass("fade");
|
|
n.$element.parent().length || n.$element.appendTo(document.body), n.$element.show().scrollTop(0),
|
|
i && n.$element[0].offsetWidth, n.$element.addClass("in").attr("aria-hidden", !1),
|
|
n.enforceFocus();
|
|
var r = e.Event("shown.bs.modal", {
|
|
relatedTarget: t
|
|
});
|
|
i ? n.$element.find(".modal-dialog").one(e.support.transition.end, function() {
|
|
n.$element.focus().trigger(r);
|
|
}).emulateTransitionEnd(300) : n.$element.focus().trigger(r);
|
|
}));
|
|
}, t.prototype.hide = function(t) {
|
|
t && t.preventDefault(), t = e.Event("hide.bs.modal"), this.$element.trigger(t),
|
|
this.isShown && !t.isDefaultPrevented() && (this.isShown = !1, this.escape(), e(document).off("focusin.bs.modal"),
|
|
this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.bs.modal"),
|
|
e.support.transition && this.$element.hasClass("fade") ? this.$element.one(e.support.transition.end, e.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal());
|
|
}, t.prototype.enforceFocus = function() {
|
|
e(document).off("focusin.bs.modal").on("focusin.bs.modal", e.proxy(function(e) {
|
|
this.$element[0] === e.target || this.$element.has(e.target).length || this.$element.focus();
|
|
}, this));
|
|
}, t.prototype.escape = function() {
|
|
this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", e.proxy(function(e) {
|
|
27 == e.which && this.hide();
|
|
}, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal");
|
|
}, t.prototype.hideModal = function() {
|
|
var e = this;
|
|
this.$element.hide(), this.backdrop(function() {
|
|
e.removeBackdrop(), e.$element.trigger("hidden.bs.modal");
|
|
});
|
|
}, t.prototype.removeBackdrop = function() {
|
|
this.$backdrop && this.$backdrop.remove(), this.$backdrop = null;
|
|
}, t.prototype.backdrop = function(t) {
|
|
var n = this.$element.hasClass("fade") ? "fade" : "";
|
|
if (this.isShown && this.options.backdrop) {
|
|
var i = e.support.transition && n;
|
|
if (this.$backdrop = e('<div class="modal-backdrop ' + n + '" />').appendTo(document.body),
|
|
this.$element.on("click.dismiss.bs.modal", e.proxy(function(e) {
|
|
e.target === e.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this));
|
|
}, this)), i && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !t) return;
|
|
i ? this.$backdrop.one(e.support.transition.end, t).emulateTransitionEnd(150) : t();
|
|
} else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), e.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(e.support.transition.end, t).emulateTransitionEnd(150) : t()) : t && t();
|
|
};
|
|
var n = e.fn.modal;
|
|
e.fn.modal = function(n, i) {
|
|
return this.each(function() {
|
|
var r = e(this), o = r.data("bs.modal"), a = e.extend({}, t.DEFAULTS, r.data(), "object" == typeof n && n);
|
|
o || r.data("bs.modal", o = new t(this, a)), "string" == typeof n ? o[n](i) : a.show && o.show(i);
|
|
});
|
|
}, e.fn.modal.Constructor = t, e.fn.modal.noConflict = function() {
|
|
return e.fn.modal = n, this;
|
|
}, e(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(t) {
|
|
var n = e(this), i = n.attr("href"), r = e(n.attr("data-target") || i && i.replace(/.*(?=#[^\s]+$)/, "")), o = r.data("bs.modal") ? "toggle" : e.extend({
|
|
remote: !/#/.test(i) && i
|
|
}, r.data(), n.data());
|
|
n.is("a") && t.preventDefault(), r.modal(o, this).one("hide", function() {
|
|
n.is(":visible") && n.focus();
|
|
});
|
|
}), e(document).on("show.bs.modal", ".modal", function() {
|
|
e(document.body).addClass("modal-open");
|
|
}).on("hidden.bs.modal", ".modal", function() {
|
|
e(document.body).removeClass("modal-open");
|
|
});
|
|
}(jQuery), +function(e) {
|
|
var t = function(e, t) {
|
|
this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null,
|
|
this.init("tooltip", e, t);
|
|
};
|
|
t.DEFAULTS = {
|
|
animation: !0,
|
|
placement: "top",
|
|
selector: !1,
|
|
template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
|
|
trigger: "hover focus",
|
|
title: "",
|
|
delay: 0,
|
|
html: !1,
|
|
container: !1
|
|
}, t.prototype.init = function(t, n, i) {
|
|
this.enabled = !0, this.type = t, this.$element = e(n), this.options = this.getOptions(i);
|
|
for (var r = this.options.trigger.split(" "), o = r.length; o--; ) {
|
|
var a = r[o];
|
|
if ("click" == a) this.$element.on("click." + this.type, this.options.selector, e.proxy(this.toggle, this)); else if ("manual" != a) {
|
|
var s = "hover" == a ? "mouseenter" : "focusin", u = "hover" == a ? "mouseleave" : "focusout";
|
|
this.$element.on(s + "." + this.type, this.options.selector, e.proxy(this.enter, this)),
|
|
this.$element.on(u + "." + this.type, this.options.selector, e.proxy(this.leave, this));
|
|
}
|
|
}
|
|
this.options.selector ? this._options = e.extend({}, this.options, {
|
|
trigger: "manual",
|
|
selector: ""
|
|
}) : this.fixTitle();
|
|
}, t.prototype.getDefaults = function() {
|
|
return t.DEFAULTS;
|
|
}, t.prototype.getOptions = function(t) {
|
|
return t = e.extend({}, this.getDefaults(), this.$element.data(), t), t.delay && "number" == typeof t.delay && (t.delay = {
|
|
show: t.delay,
|
|
hide: t.delay
|
|
}), t;
|
|
}, t.prototype.getDelegateOptions = function() {
|
|
var t = {}, n = this.getDefaults();
|
|
return this._options && e.each(this._options, function(e, i) {
|
|
n[e] != i && (t[e] = i);
|
|
}), t;
|
|
}, t.prototype.enter = function(t) {
|
|
var n = t instanceof this.constructor ? t : e(t.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
|
|
return clearTimeout(n.timeout), n.hoverState = "in", n.options.delay && n.options.delay.show ? void (n.timeout = setTimeout(function() {
|
|
"in" == n.hoverState && n.show();
|
|
}, n.options.delay.show)) : n.show();
|
|
}, t.prototype.leave = function(t) {
|
|
var n = t instanceof this.constructor ? t : e(t.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
|
|
return clearTimeout(n.timeout), n.hoverState = "out", n.options.delay && n.options.delay.hide ? void (n.timeout = setTimeout(function() {
|
|
"out" == n.hoverState && n.hide();
|
|
}, n.options.delay.hide)) : n.hide();
|
|
}, t.prototype.show = function() {
|
|
var t = e.Event("show.bs." + this.type);
|
|
if (this.hasContent() && this.enabled) {
|
|
if (this.$element.trigger(t), t.isDefaultPrevented()) return;
|
|
var n = this, i = this.tip();
|
|
this.setContent(), this.options.animation && i.addClass("fade");
|
|
var r = "function" == typeof this.options.placement ? this.options.placement.call(this, i[0], this.$element[0]) : this.options.placement, o = /\s?auto?\s?/i, a = o.test(r);
|
|
a && (r = r.replace(o, "") || "top"), i.detach().css({
|
|
top: 0,
|
|
left: 0,
|
|
display: "block"
|
|
}).addClass(r), this.options.container ? i.appendTo(this.options.container) : i.insertAfter(this.$element);
|
|
var s = this.getPosition(), u = i[0].offsetWidth, l = i[0].offsetHeight;
|
|
if (a) {
|
|
var c = this.$element.parent(), f = r, p = document.documentElement.scrollTop || document.body.scrollTop, d = "body" == this.options.container ? window.innerWidth : c.outerWidth(), h = "body" == this.options.container ? window.innerHeight : c.outerHeight(), g = "body" == this.options.container ? 0 : c.offset().left;
|
|
r = "bottom" == r && s.top + s.height + l - p > h ? "top" : "top" == r && s.top - p - l < 0 ? "bottom" : "right" == r && s.right + u > d ? "left" : "left" == r && s.left - u < g ? "right" : r,
|
|
i.removeClass(f).addClass(r);
|
|
}
|
|
var m = this.getCalculatedOffset(r, s, u, l);
|
|
this.applyPlacement(m, r), this.hoverState = null;
|
|
var v = function() {
|
|
n.$element.trigger("shown.bs." + n.type);
|
|
};
|
|
e.support.transition && this.$tip.hasClass("fade") ? i.one(e.support.transition.end, v).emulateTransitionEnd(150) : v();
|
|
}
|
|
}, t.prototype.applyPlacement = function(t, n) {
|
|
var i, r = this.tip(), o = r[0].offsetWidth, a = r[0].offsetHeight, s = parseInt(r.css("margin-top"), 10), u = parseInt(r.css("margin-left"), 10);
|
|
isNaN(s) && (s = 0), isNaN(u) && (u = 0), t.top = t.top + s, t.left = t.left + u,
|
|
e.offset.setOffset(r[0], e.extend({
|
|
using: function(e) {
|
|
r.css({
|
|
top: Math.round(e.top),
|
|
left: Math.round(e.left)
|
|
});
|
|
}
|
|
}, t), 0), r.addClass("in");
|
|
var l = r[0].offsetWidth, c = r[0].offsetHeight;
|
|
if ("top" == n && c != a && (i = !0, t.top = t.top + a - c), /bottom|top/.test(n)) {
|
|
var f = 0;
|
|
t.left < 0 && (f = -2 * t.left, t.left = 0, r.offset(t), l = r[0].offsetWidth, c = r[0].offsetHeight),
|
|
this.replaceArrow(f - o + l, l, "left");
|
|
} else this.replaceArrow(c - a, c, "top");
|
|
i && r.offset(t);
|
|
}, t.prototype.replaceArrow = function(e, t, n) {
|
|
this.arrow().css(n, e ? 50 * (1 - e / t) + "%" : "");
|
|
}, t.prototype.setContent = function() {
|
|
var e = this.tip(), t = this.getTitle();
|
|
e.find(".tooltip-inner")[this.options.html ? "html" : "text"](t), e.removeClass("fade in top bottom left right");
|
|
}, t.prototype.hide = function() {
|
|
function t() {
|
|
"in" != n.hoverState && i.detach(), n.$element.trigger("hidden.bs." + n.type);
|
|
}
|
|
var n = this, i = this.tip(), r = e.Event("hide.bs." + this.type);
|
|
return this.$element.trigger(r), r.isDefaultPrevented() ? void 0 : (i.removeClass("in"),
|
|
e.support.transition && this.$tip.hasClass("fade") ? i.one(e.support.transition.end, t).emulateTransitionEnd(150) : t(),
|
|
this.hoverState = null, this);
|
|
}, t.prototype.fixTitle = function() {
|
|
var e = this.$element;
|
|
(e.attr("title") || "string" != typeof e.attr("data-original-title")) && e.attr("data-original-title", e.attr("title") || "").attr("title", "");
|
|
}, t.prototype.hasContent = function() {
|
|
return this.getTitle();
|
|
}, t.prototype.getPosition = function() {
|
|
var t = this.$element[0];
|
|
return e.extend({}, "function" == typeof t.getBoundingClientRect ? t.getBoundingClientRect() : {
|
|
width: t.offsetWidth,
|
|
height: t.offsetHeight
|
|
}, this.$element.offset());
|
|
}, t.prototype.getCalculatedOffset = function(e, t, n, i) {
|
|
return "bottom" == e ? {
|
|
top: t.top + t.height,
|
|
left: t.left + t.width / 2 - n / 2
|
|
} : "top" == e ? {
|
|
top: t.top - i,
|
|
left: t.left + t.width / 2 - n / 2
|
|
} : "left" == e ? {
|
|
top: t.top + t.height / 2 - i / 2,
|
|
left: t.left - n
|
|
} : {
|
|
top: t.top + t.height / 2 - i / 2,
|
|
left: t.left + t.width
|
|
};
|
|
}, t.prototype.getTitle = function() {
|
|
var e, t = this.$element, n = this.options;
|
|
return e = t.attr("data-original-title") || ("function" == typeof n.title ? n.title.call(t[0]) : n.title);
|
|
}, t.prototype.tip = function() {
|
|
return this.$tip = this.$tip || e(this.options.template);
|
|
}, t.prototype.arrow = function() {
|
|
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow");
|
|
}, t.prototype.validate = function() {
|
|
this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null);
|
|
}, t.prototype.enable = function() {
|
|
this.enabled = !0;
|
|
}, t.prototype.disable = function() {
|
|
this.enabled = !1;
|
|
}, t.prototype.toggleEnabled = function() {
|
|
this.enabled = !this.enabled;
|
|
}, t.prototype.toggle = function(t) {
|
|
var n = t ? e(t.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type) : this;
|
|
n.tip().hasClass("in") ? n.leave(n) : n.enter(n);
|
|
}, t.prototype.destroy = function() {
|
|
clearTimeout(this.timeout), this.hide().$element.off("." + this.type).removeData("bs." + this.type);
|
|
};
|
|
var n = e.fn.tooltip;
|
|
e.fn.tooltip = function(n) {
|
|
return this.each(function() {
|
|
var i = e(this), r = i.data("bs.tooltip"), o = "object" == typeof n && n;
|
|
(r || "destroy" != n) && (r || i.data("bs.tooltip", r = new t(this, o)), "string" == typeof n && r[n]());
|
|
});
|
|
}, e.fn.tooltip.Constructor = t, e.fn.tooltip.noConflict = function() {
|
|
return e.fn.tooltip = n, this;
|
|
};
|
|
}(jQuery), +function(e) {
|
|
var t = function(e, t) {
|
|
this.init("popover", e, t);
|
|
};
|
|
if (!e.fn.tooltip) throw new Error("Popover requires tooltip.js");
|
|
t.DEFAULTS = e.extend({}, e.fn.tooltip.Constructor.DEFAULTS, {
|
|
placement: "right",
|
|
trigger: "click",
|
|
content: "",
|
|
template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
|
}), t.prototype = e.extend({}, e.fn.tooltip.Constructor.prototype), t.prototype.constructor = t,
|
|
t.prototype.getDefaults = function() {
|
|
return t.DEFAULTS;
|
|
}, t.prototype.setContent = function() {
|
|
var e = this.tip(), t = this.getTitle(), n = this.getContent();
|
|
e.find(".popover-title")[this.options.html ? "html" : "text"](t), e.find(".popover-content")[this.options.html ? "string" == typeof n ? "html" : "append" : "text"](n),
|
|
e.removeClass("fade top bottom left right in"), e.find(".popover-title").html() || e.find(".popover-title").hide();
|
|
}, t.prototype.hasContent = function() {
|
|
return this.getTitle() || this.getContent();
|
|
}, t.prototype.getContent = function() {
|
|
var e = this.$element, t = this.options;
|
|
return e.attr("data-content") || ("function" == typeof t.content ? t.content.call(e[0]) : t.content);
|
|
}, t.prototype.arrow = function() {
|
|
return this.$arrow = this.$arrow || this.tip().find(".arrow");
|
|
}, t.prototype.tip = function() {
|
|
return this.$tip || (this.$tip = e(this.options.template)), this.$tip;
|
|
};
|
|
var n = e.fn.popover;
|
|
e.fn.popover = function(n) {
|
|
return this.each(function() {
|
|
var i = e(this), r = i.data("bs.popover"), o = "object" == typeof n && n;
|
|
(r || "destroy" != n) && (r || i.data("bs.popover", r = new t(this, o)), "string" == typeof n && r[n]());
|
|
});
|
|
}, e.fn.popover.Constructor = t, e.fn.popover.noConflict = function() {
|
|
return e.fn.popover = n, this;
|
|
};
|
|
}(jQuery), +function(e) {
|
|
function t(n, i) {
|
|
var r, o = e.proxy(this.process, this);
|
|
this.$element = e(e(n).is("body") ? window : n), this.$body = e("body"), this.$scrollElement = this.$element.on("scroll.bs.scroll-spy.data-api", o),
|
|
this.options = e.extend({}, t.DEFAULTS, i), this.selector = (this.options.target || (r = e(n).attr("href")) && r.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a",
|
|
this.offsets = e([]), this.targets = e([]), this.activeTarget = null, this.refresh(),
|
|
this.process();
|
|
}
|
|
t.DEFAULTS = {
|
|
offset: 10
|
|
}, t.prototype.refresh = function() {
|
|
var t = this.$element[0] == window ? "offset" : "position";
|
|
this.offsets = e([]), this.targets = e([]);
|
|
var n = this;
|
|
this.$body.find(this.selector).map(function() {
|
|
var i = e(this), r = i.data("target") || i.attr("href"), o = /^#./.test(r) && e(r);
|
|
return o && o.length && o.is(":visible") && [ [ o[t]().top + (!e.isWindow(n.$scrollElement.get(0)) && n.$scrollElement.scrollTop()), r ] ] || null;
|
|
}).sort(function(e, t) {
|
|
return e[0] - t[0];
|
|
}).each(function() {
|
|
n.offsets.push(this[0]), n.targets.push(this[1]);
|
|
});
|
|
}, t.prototype.process = function() {
|
|
var e, t = this.$scrollElement.scrollTop() + this.options.offset, n = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight, i = n - this.$scrollElement.height(), r = this.offsets, o = this.targets, a = this.activeTarget;
|
|
if (t >= i) return a != (e = o.last()[0]) && this.activate(e);
|
|
if (a && t <= r[0]) return a != (e = o[0]) && this.activate(e);
|
|
for (e = r.length; e--; ) a != o[e] && t >= r[e] && (!r[e + 1] || t <= r[e + 1]) && this.activate(o[e]);
|
|
}, t.prototype.activate = function(t) {
|
|
this.activeTarget = t, e(this.selector).parentsUntil(this.options.target, ".active").removeClass("active");
|
|
var n = this.selector + '[data-target="' + t + '"],' + this.selector + '[href="' + t + '"]', i = e(n).parents("li").addClass("active");
|
|
i.parent(".dropdown-menu").length && (i = i.closest("li.dropdown").addClass("active")),
|
|
i.trigger("activate.bs.scrollspy");
|
|
};
|
|
var n = e.fn.scrollspy;
|
|
e.fn.scrollspy = function(n) {
|
|
return this.each(function() {
|
|
var i = e(this), r = i.data("bs.scrollspy"), o = "object" == typeof n && n;
|
|
r || i.data("bs.scrollspy", r = new t(this, o)), "string" == typeof n && r[n]();
|
|
});
|
|
}, e.fn.scrollspy.Constructor = t, e.fn.scrollspy.noConflict = function() {
|
|
return e.fn.scrollspy = n, this;
|
|
}, e(window).on("load", function() {
|
|
e('[data-spy="scroll"]').each(function() {
|
|
var t = e(this);
|
|
t.scrollspy(t.data());
|
|
});
|
|
});
|
|
}(jQuery), +function(e) {
|
|
var t = function(t) {
|
|
this.element = e(t);
|
|
};
|
|
t.prototype.show = function() {
|
|
var t = this.element, n = t.closest("ul:not(.dropdown-menu)"), i = t.data("target");
|
|
if (i || (i = t.attr("href"), i = i && i.replace(/.*(?=#[^\s]*$)/, "")), !t.parent("li").hasClass("active")) {
|
|
var r = n.find(".active:last a")[0], o = e.Event("show.bs.tab", {
|
|
relatedTarget: r
|
|
});
|
|
if (t.trigger(o), !o.isDefaultPrevented()) {
|
|
var a = e(i);
|
|
this.activate(t.parent("li"), n), this.activate(a, a.parent(), function() {
|
|
t.trigger({
|
|
type: "shown.bs.tab",
|
|
relatedTarget: r
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}, t.prototype.activate = function(t, n, i) {
|
|
function r() {
|
|
o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),
|
|
t.addClass("active"), a ? (t[0].offsetWidth, t.addClass("in")) : t.removeClass("fade"),
|
|
t.parent(".dropdown-menu") && t.closest("li.dropdown").addClass("active"), i && i();
|
|
}
|
|
var o = n.find("> .active"), a = i && e.support.transition && o.hasClass("fade");
|
|
a ? o.one(e.support.transition.end, r).emulateTransitionEnd(150) : r(), o.removeClass("in");
|
|
};
|
|
var n = e.fn.tab;
|
|
e.fn.tab = function(n) {
|
|
return this.each(function() {
|
|
var i = e(this), r = i.data("bs.tab");
|
|
r || i.data("bs.tab", r = new t(this)), "string" == typeof n && r[n]();
|
|
});
|
|
}, e.fn.tab.Constructor = t, e.fn.tab.noConflict = function() {
|
|
return e.fn.tab = n, this;
|
|
}, e(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function(t) {
|
|
t.preventDefault(), e(this).tab("show");
|
|
});
|
|
}(jQuery), +function(e) {
|
|
var t = function(n, i) {
|
|
this.options = e.extend({}, t.DEFAULTS, i), this.$window = e(window).on("scroll.bs.affix.data-api", e.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", e.proxy(this.checkPositionWithEventLoop, this)),
|
|
this.$element = e(n), this.affixed = this.unpin = this.pinnedOffset = null, this.checkPosition();
|
|
};
|
|
t.RESET = "affix affix-top affix-bottom", t.DEFAULTS = {
|
|
offset: 0
|
|
}, t.prototype.getPinnedOffset = function() {
|
|
if (this.pinnedOffset) return this.pinnedOffset;
|
|
this.$element.removeClass(t.RESET).addClass("affix");
|
|
var e = this.$window.scrollTop(), n = this.$element.offset();
|
|
return this.pinnedOffset = n.top - e;
|
|
}, t.prototype.checkPositionWithEventLoop = function() {
|
|
setTimeout(e.proxy(this.checkPosition, this), 1);
|
|
}, t.prototype.checkPosition = function() {
|
|
if (this.$element.is(":visible")) {
|
|
var n = e(document).height(), i = this.$window.scrollTop(), r = this.$element.offset(), o = this.options.offset, a = o.top, s = o.bottom;
|
|
"top" == this.affixed && (r.top += i), "object" != typeof o && (s = a = o), "function" == typeof a && (a = o.top(this.$element)),
|
|
"function" == typeof s && (s = o.bottom(this.$element));
|
|
var u = null != this.unpin && i + this.unpin <= r.top ? !1 : null != s && r.top + this.$element.height() >= n - s ? "bottom" : null != a && a >= i ? "top" : !1;
|
|
if (this.affixed !== u) {
|
|
this.unpin && this.$element.css("top", "");
|
|
var l = "affix" + (u ? "-" + u : ""), c = e.Event(l + ".bs.affix");
|
|
this.$element.trigger(c), c.isDefaultPrevented() || (this.affixed = u, this.unpin = "bottom" == u ? this.getPinnedOffset() : null,
|
|
this.$element.removeClass(t.RESET).addClass(l).trigger(e.Event(l.replace("affix", "affixed"))),
|
|
"bottom" == u && this.$element.offset({
|
|
top: n - s - this.$element.height()
|
|
}));
|
|
}
|
|
}
|
|
};
|
|
var n = e.fn.affix;
|
|
e.fn.affix = function(n) {
|
|
return this.each(function() {
|
|
var i = e(this), r = i.data("bs.affix"), o = "object" == typeof n && n;
|
|
r || i.data("bs.affix", r = new t(this, o)), "string" == typeof n && r[n]();
|
|
});
|
|
}, e.fn.affix.Constructor = t, e.fn.affix.noConflict = function() {
|
|
return e.fn.affix = n, this;
|
|
}, e(window).on("load", function() {
|
|
e('[data-spy="affix"]').each(function() {
|
|
var t = e(this), n = t.data();
|
|
n.offset = n.offset || {}, n.offsetBottom && (n.offset.bottom = n.offsetBottom),
|
|
n.offsetTop && (n.offset.top = n.offsetTop), t.affix(n);
|
|
});
|
|
});
|
|
}(jQuery), define("bootstrap", [ "jquery" ], function() {}), /*!
|
|
* Knockout JavaScript library v3.3.0
|
|
* (c) Steven Sanderson - http://knockoutjs.com/
|
|
* License: MIT (http://www.opensource.org/licenses/mit-license.php)
|
|
*/
|
|
function() {
|
|
!function(e) {
|
|
var t = this || (0, eval)("this"), n = t.document, i = t.navigator, r = t.jQuery, o = t.JSON;
|
|
!function(e) {
|
|
"function" == typeof define && define.amd ? define("knockout", [ "exports", "require" ], e) : e("function" == typeof require && "object" == typeof exports && "object" == typeof module ? module.exports || exports : t.ko = {});
|
|
}(function(a, s) {
|
|
function u(e, t) {
|
|
return null === e || typeof e in d ? e === t : !1;
|
|
}
|
|
function l(t, n) {
|
|
var i;
|
|
return function() {
|
|
i || (i = setTimeout(function() {
|
|
i = e, t();
|
|
}, n));
|
|
};
|
|
}
|
|
function c(e, t) {
|
|
var n;
|
|
return function() {
|
|
clearTimeout(n), n = setTimeout(e, t);
|
|
};
|
|
}
|
|
function f(e, t, n, i) {
|
|
p.d[e] = {
|
|
init: function(e, r, o, a, s) {
|
|
var u, l;
|
|
return p.w(function() {
|
|
var o = p.a.c(r()), a = !n != !o, c = !l;
|
|
(c || t || a !== u) && (c && p.Z.oa() && (l = p.a.la(p.e.childNodes(e), !0)), a ? (c || p.e.T(e, p.a.la(l)),
|
|
p.Ja(i ? i(s, o) : s, e)) : p.e.ma(e), u = a);
|
|
}, null, {
|
|
q: e
|
|
}), {
|
|
controlsDescendantBindings: !0
|
|
};
|
|
}
|
|
}, p.h.ka[e] = !1, p.e.R[e] = !0;
|
|
}
|
|
var p = "undefined" != typeof a ? a : {};
|
|
p.b = function(e, t) {
|
|
for (var n = e.split("."), i = p, r = 0; r < n.length - 1; r++) i = i[n[r]];
|
|
i[n[n.length - 1]] = t;
|
|
}, p.D = function(e, t, n) {
|
|
e[t] = n;
|
|
}, p.version = "3.3.0", p.b("version", p.version), p.a = function() {
|
|
function a(e, t) {
|
|
for (var n in e) e.hasOwnProperty(n) && t(n, e[n]);
|
|
}
|
|
function s(e, t) {
|
|
if (t) for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
|
|
return e;
|
|
}
|
|
function u(e, t) {
|
|
return e.__proto__ = t, e;
|
|
}
|
|
function l(e, t, n, i) {
|
|
var r = e[t].match(m) || [];
|
|
p.a.o(n.match(m), function(e) {
|
|
p.a.ga(r, e, i);
|
|
}), e[t] = r.join(" ");
|
|
}
|
|
var c = {
|
|
__proto__: []
|
|
} instanceof Array, f = {}, d = {};
|
|
f[i && /Firefox\/2/i.test(i.userAgent) ? "KeyboardEvent" : "UIEvents"] = [ "keyup", "keydown", "keypress" ],
|
|
f.MouseEvents = "click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),
|
|
a(f, function(e, t) {
|
|
if (t.length) for (var n = 0, i = t.length; i > n; n++) d[t[n]] = e;
|
|
});
|
|
var h = {
|
|
propertychange: !0
|
|
}, g = n && function() {
|
|
for (var t = 3, i = n.createElement("div"), r = i.getElementsByTagName("i"); i.innerHTML = "<!--[if gt IE " + ++t + "]><i></i><![endif]-->",
|
|
r[0]; ) ;
|
|
return t > 4 ? t : e;
|
|
}(), m = /\S+/g;
|
|
return {
|
|
Bb: [ "authenticity_token", /^__RequestVerificationToken(_.*)?$/ ],
|
|
o: function(e, t) {
|
|
for (var n = 0, i = e.length; i > n; n++) t(e[n], n);
|
|
},
|
|
m: function(e, t) {
|
|
if ("function" == typeof Array.prototype.indexOf) return Array.prototype.indexOf.call(e, t);
|
|
for (var n = 0, i = e.length; i > n; n++) if (e[n] === t) return n;
|
|
return -1;
|
|
},
|
|
vb: function(e, t, n) {
|
|
for (var i = 0, r = e.length; r > i; i++) if (t.call(n, e[i], i)) return e[i];
|
|
return null;
|
|
},
|
|
ya: function(e, t) {
|
|
var n = p.a.m(e, t);
|
|
n > 0 ? e.splice(n, 1) : 0 === n && e.shift();
|
|
},
|
|
wb: function(e) {
|
|
e = e || [];
|
|
for (var t = [], n = 0, i = e.length; i > n; n++) 0 > p.a.m(t, e[n]) && t.push(e[n]);
|
|
return t;
|
|
},
|
|
Ka: function(e, t) {
|
|
e = e || [];
|
|
for (var n = [], i = 0, r = e.length; r > i; i++) n.push(t(e[i], i));
|
|
return n;
|
|
},
|
|
xa: function(e, t) {
|
|
e = e || [];
|
|
for (var n = [], i = 0, r = e.length; r > i; i++) t(e[i], i) && n.push(e[i]);
|
|
return n;
|
|
},
|
|
ia: function(e, t) {
|
|
if (t instanceof Array) e.push.apply(e, t); else for (var n = 0, i = t.length; i > n; n++) e.push(t[n]);
|
|
return e;
|
|
},
|
|
ga: function(e, t, n) {
|
|
var i = p.a.m(p.a.cb(e), t);
|
|
0 > i ? n && e.push(t) : n || e.splice(i, 1);
|
|
},
|
|
za: c,
|
|
extend: s,
|
|
Fa: u,
|
|
Ga: c ? u : s,
|
|
A: a,
|
|
pa: function(e, t) {
|
|
if (!e) return e;
|
|
var n, i = {};
|
|
for (n in e) e.hasOwnProperty(n) && (i[n] = t(e[n], n, e));
|
|
return i;
|
|
},
|
|
Ra: function(e) {
|
|
for (;e.firstChild; ) p.removeNode(e.firstChild);
|
|
},
|
|
Jb: function(e) {
|
|
e = p.a.O(e);
|
|
for (var t = (e[0] && e[0].ownerDocument || n).createElement("div"), i = 0, r = e.length; r > i; i++) t.appendChild(p.S(e[i]));
|
|
return t;
|
|
},
|
|
la: function(e, t) {
|
|
for (var n = 0, i = e.length, r = []; i > n; n++) {
|
|
var o = e[n].cloneNode(!0);
|
|
r.push(t ? p.S(o) : o);
|
|
}
|
|
return r;
|
|
},
|
|
T: function(e, t) {
|
|
if (p.a.Ra(e), t) for (var n = 0, i = t.length; i > n; n++) e.appendChild(t[n]);
|
|
},
|
|
Qb: function(e, t) {
|
|
var n = e.nodeType ? [ e ] : e;
|
|
if (0 < n.length) {
|
|
for (var i = n[0], r = i.parentNode, o = 0, a = t.length; a > o; o++) r.insertBefore(t[o], i);
|
|
for (o = 0, a = n.length; a > o; o++) p.removeNode(n[o]);
|
|
}
|
|
},
|
|
na: function(e, t) {
|
|
if (e.length) {
|
|
for (t = 8 === t.nodeType && t.parentNode || t; e.length && e[0].parentNode !== t; ) e.splice(0, 1);
|
|
if (1 < e.length) {
|
|
var n = e[0], i = e[e.length - 1];
|
|
for (e.length = 0; n !== i; ) if (e.push(n), n = n.nextSibling, !n) return;
|
|
e.push(i);
|
|
}
|
|
}
|
|
return e;
|
|
},
|
|
Sb: function(e, t) {
|
|
7 > g ? e.setAttribute("selected", t) : e.selected = t;
|
|
},
|
|
ib: function(t) {
|
|
return null === t || t === e ? "" : t.trim ? t.trim() : t.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g, "");
|
|
},
|
|
Dc: function(e, t) {
|
|
return e = e || "", t.length > e.length ? !1 : e.substring(0, t.length) === t;
|
|
},
|
|
jc: function(e, t) {
|
|
if (e === t) return !0;
|
|
if (11 === e.nodeType) return !1;
|
|
if (t.contains) return t.contains(3 === e.nodeType ? e.parentNode : e);
|
|
if (t.compareDocumentPosition) return 16 == (16 & t.compareDocumentPosition(e));
|
|
for (;e && e != t; ) e = e.parentNode;
|
|
return !!e;
|
|
},
|
|
Qa: function(e) {
|
|
return p.a.jc(e, e.ownerDocument.documentElement);
|
|
},
|
|
tb: function(e) {
|
|
return !!p.a.vb(e, p.a.Qa);
|
|
},
|
|
v: function(e) {
|
|
return e && e.tagName && e.tagName.toLowerCase();
|
|
},
|
|
n: function(e, t, n) {
|
|
var i = g && h[t];
|
|
if (!i && r) r(e).bind(t, n); else if (i || "function" != typeof e.addEventListener) {
|
|
if ("undefined" == typeof e.attachEvent) throw Error("Browser doesn't support addEventListener or attachEvent");
|
|
var o = function(t) {
|
|
n.call(e, t);
|
|
}, a = "on" + t;
|
|
e.attachEvent(a, o), p.a.C.fa(e, function() {
|
|
e.detachEvent(a, o);
|
|
});
|
|
} else e.addEventListener(t, n, !1);
|
|
},
|
|
qa: function(e, i) {
|
|
if (!e || !e.nodeType) throw Error("element must be a DOM node when calling triggerEvent");
|
|
var o;
|
|
if ("input" === p.a.v(e) && e.type && "click" == i.toLowerCase() ? (o = e.type,
|
|
o = "checkbox" == o || "radio" == o) : o = !1, r && !o) r(e).trigger(i); else if ("function" == typeof n.createEvent) {
|
|
if ("function" != typeof e.dispatchEvent) throw Error("The supplied element doesn't support dispatchEvent");
|
|
o = n.createEvent(d[i] || "HTMLEvents"), o.initEvent(i, !0, !0, t, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, e),
|
|
e.dispatchEvent(o);
|
|
} else if (o && e.click) e.click(); else {
|
|
if ("undefined" == typeof e.fireEvent) throw Error("Browser doesn't support triggering events");
|
|
e.fireEvent("on" + i);
|
|
}
|
|
},
|
|
c: function(e) {
|
|
return p.F(e) ? e() : e;
|
|
},
|
|
cb: function(e) {
|
|
return p.F(e) ? e.B() : e;
|
|
},
|
|
Ia: function(e, t, n) {
|
|
var i;
|
|
t && ("object" == typeof e.classList ? (i = e.classList[n ? "add" : "remove"], p.a.o(t.match(m), function(t) {
|
|
i.call(e.classList, t);
|
|
})) : "string" == typeof e.className.baseVal ? l(e.className, "baseVal", t, n) : l(e, "className", t, n));
|
|
},
|
|
Ha: function(t, n) {
|
|
var i = p.a.c(n);
|
|
(null === i || i === e) && (i = "");
|
|
var r = p.e.firstChild(t);
|
|
!r || 3 != r.nodeType || p.e.nextSibling(r) ? p.e.T(t, [ t.ownerDocument.createTextNode(i) ]) : r.data = i,
|
|
p.a.mc(t);
|
|
},
|
|
Rb: function(e, t) {
|
|
if (e.name = t, 7 >= g) try {
|
|
e.mergeAttributes(n.createElement("<input name='" + e.name + "'/>"), !1);
|
|
} catch (i) {}
|
|
},
|
|
mc: function(e) {
|
|
g >= 9 && (e = 1 == e.nodeType ? e : e.parentNode, e.style && (e.style.zoom = e.style.zoom));
|
|
},
|
|
kc: function(e) {
|
|
if (g) {
|
|
var t = e.style.width;
|
|
e.style.width = 0, e.style.width = t;
|
|
}
|
|
},
|
|
Bc: function(e, t) {
|
|
e = p.a.c(e), t = p.a.c(t);
|
|
for (var n = [], i = e; t >= i; i++) n.push(i);
|
|
return n;
|
|
},
|
|
O: function(e) {
|
|
for (var t = [], n = 0, i = e.length; i > n; n++) t.push(e[n]);
|
|
return t;
|
|
},
|
|
Hc: 6 === g,
|
|
Ic: 7 === g,
|
|
M: g,
|
|
Db: function(e, t) {
|
|
for (var n = p.a.O(e.getElementsByTagName("input")).concat(p.a.O(e.getElementsByTagName("textarea"))), i = "string" == typeof t ? function(e) {
|
|
return e.name === t;
|
|
} : function(e) {
|
|
return t.test(e.name);
|
|
}, r = [], o = n.length - 1; o >= 0; o--) i(n[o]) && r.push(n[o]);
|
|
return r;
|
|
},
|
|
yc: function(e) {
|
|
return "string" == typeof e && (e = p.a.ib(e)) ? o && o.parse ? o.parse(e) : new Function("return " + e)() : null;
|
|
},
|
|
jb: function(e, t, n) {
|
|
if (!o || !o.stringify) throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");
|
|
return o.stringify(p.a.c(e), t, n);
|
|
},
|
|
zc: function(e, t, i) {
|
|
i = i || {};
|
|
var r = i.params || {}, o = i.includeFields || this.Bb, s = e;
|
|
if ("object" == typeof e && "form" === p.a.v(e)) for (var s = e.action, u = o.length - 1; u >= 0; u--) for (var l = p.a.Db(e, o[u]), c = l.length - 1; c >= 0; c--) r[l[c].name] = l[c].value;
|
|
t = p.a.c(t);
|
|
var f = n.createElement("form");
|
|
f.style.display = "none", f.action = s, f.method = "post";
|
|
for (var d in t) e = n.createElement("input"), e.type = "hidden", e.name = d, e.value = p.a.jb(p.a.c(t[d])),
|
|
f.appendChild(e);
|
|
a(r, function(e, t) {
|
|
var i = n.createElement("input");
|
|
i.type = "hidden", i.name = e, i.value = t, f.appendChild(i);
|
|
}), n.body.appendChild(f), i.submitter ? i.submitter(f) : f.submit(), setTimeout(function() {
|
|
f.parentNode.removeChild(f);
|
|
}, 0);
|
|
}
|
|
};
|
|
}(), p.b("utils", p.a), p.b("utils.arrayForEach", p.a.o), p.b("utils.arrayFirst", p.a.vb),
|
|
p.b("utils.arrayFilter", p.a.xa), p.b("utils.arrayGetDistinctValues", p.a.wb), p.b("utils.arrayIndexOf", p.a.m),
|
|
p.b("utils.arrayMap", p.a.Ka), p.b("utils.arrayPushAll", p.a.ia), p.b("utils.arrayRemoveItem", p.a.ya),
|
|
p.b("utils.extend", p.a.extend), p.b("utils.fieldsIncludedWithJsonPost", p.a.Bb),
|
|
p.b("utils.getFormFields", p.a.Db), p.b("utils.peekObservable", p.a.cb), p.b("utils.postJson", p.a.zc),
|
|
p.b("utils.parseJson", p.a.yc), p.b("utils.registerEventHandler", p.a.n), p.b("utils.stringifyJson", p.a.jb),
|
|
p.b("utils.range", p.a.Bc), p.b("utils.toggleDomNodeCssClass", p.a.Ia), p.b("utils.triggerEvent", p.a.qa),
|
|
p.b("utils.unwrapObservable", p.a.c), p.b("utils.objectForEach", p.a.A), p.b("utils.addOrRemoveItem", p.a.ga),
|
|
p.b("utils.setTextContent", p.a.Ha), p.b("unwrap", p.a.c), Function.prototype.bind || (Function.prototype.bind = function(e) {
|
|
var t = this;
|
|
if (1 === arguments.length) return function() {
|
|
return t.apply(e, arguments);
|
|
};
|
|
var n = Array.prototype.slice.call(arguments, 1);
|
|
return function() {
|
|
var i = n.slice(0);
|
|
return i.push.apply(i, arguments), t.apply(e, i);
|
|
};
|
|
}), p.a.f = new function() {
|
|
function t(t, o) {
|
|
var a = t[i];
|
|
if (!a || "null" === a || !r[a]) {
|
|
if (!o) return e;
|
|
a = t[i] = "ko" + n++, r[a] = {};
|
|
}
|
|
return r[a];
|
|
}
|
|
var n = 0, i = "__ko__" + new Date().getTime(), r = {};
|
|
return {
|
|
get: function(n, i) {
|
|
var r = t(n, !1);
|
|
return r === e ? e : r[i];
|
|
},
|
|
set: function(n, i, r) {
|
|
(r !== e || t(n, !1) !== e) && (t(n, !0)[i] = r);
|
|
},
|
|
clear: function(e) {
|
|
var t = e[i];
|
|
return t ? (delete r[t], e[i] = null, !0) : !1;
|
|
},
|
|
I: function() {
|
|
return n++ + i;
|
|
}
|
|
};
|
|
}(), p.b("utils.domData", p.a.f), p.b("utils.domData.clear", p.a.f.clear), p.a.C = new function() {
|
|
function t(t, n) {
|
|
var r = p.a.f.get(t, i);
|
|
return r === e && n && (r = [], p.a.f.set(t, i, r)), r;
|
|
}
|
|
function n(e) {
|
|
var i = t(e, !1);
|
|
if (i) for (var i = i.slice(0), r = 0; r < i.length; r++) i[r](e);
|
|
if (p.a.f.clear(e), p.a.C.cleanExternalData(e), a[e.nodeType]) for (i = e.firstChild; e = i; ) i = e.nextSibling,
|
|
8 === e.nodeType && n(e);
|
|
}
|
|
var i = p.a.f.I(), o = {
|
|
1: !0,
|
|
8: !0,
|
|
9: !0
|
|
}, a = {
|
|
1: !0,
|
|
9: !0
|
|
};
|
|
return {
|
|
fa: function(e, n) {
|
|
if ("function" != typeof n) throw Error("Callback must be a function");
|
|
t(e, !0).push(n);
|
|
},
|
|
Pb: function(n, r) {
|
|
var o = t(n, !1);
|
|
o && (p.a.ya(o, r), 0 == o.length && p.a.f.set(n, i, e));
|
|
},
|
|
S: function(e) {
|
|
if (o[e.nodeType] && (n(e), a[e.nodeType])) {
|
|
var t = [];
|
|
p.a.ia(t, e.getElementsByTagName("*"));
|
|
for (var i = 0, r = t.length; r > i; i++) n(t[i]);
|
|
}
|
|
return e;
|
|
},
|
|
removeNode: function(e) {
|
|
p.S(e), e.parentNode && e.parentNode.removeChild(e);
|
|
},
|
|
cleanExternalData: function(e) {
|
|
r && "function" == typeof r.cleanData && r.cleanData([ e ]);
|
|
}
|
|
};
|
|
}(), p.S = p.a.C.S, p.removeNode = p.a.C.removeNode, p.b("cleanNode", p.S), p.b("removeNode", p.removeNode),
|
|
p.b("utils.domNodeDisposal", p.a.C), p.b("utils.domNodeDisposal.addDisposeCallback", p.a.C.fa),
|
|
p.b("utils.domNodeDisposal.removeDisposeCallback", p.a.C.Pb), function() {
|
|
p.a.ca = function(e, i) {
|
|
var o;
|
|
if (r) {
|
|
if (r.parseHTML) o = r.parseHTML(e, i) || []; else if ((o = r.clean([ e ], i)) && o[0]) {
|
|
for (var a = o[0]; a.parentNode && 11 !== a.parentNode.nodeType; ) a = a.parentNode;
|
|
a.parentNode && a.parentNode.removeChild(a);
|
|
}
|
|
} else {
|
|
(a = i) || (a = n), o = a.parentWindow || a.defaultView || t;
|
|
var s = p.a.ib(e).toLowerCase(), a = a.createElement("div"), s = s.match(/^<(thead|tbody|tfoot)/) && [ 1, "<table>", "</table>" ] || !s.indexOf("<tr") && [ 2, "<table><tbody>", "</tbody></table>" ] || (!s.indexOf("<td") || !s.indexOf("<th")) && [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] || [ 0, "", "" ], u = "ignored<div>" + s[1] + e + s[2] + "</div>";
|
|
for ("function" == typeof o.innerShiv ? a.appendChild(o.innerShiv(u)) : a.innerHTML = u; s[0]--; ) a = a.lastChild;
|
|
o = p.a.O(a.lastChild.childNodes);
|
|
}
|
|
return o;
|
|
}, p.a.gb = function(t, n) {
|
|
if (p.a.Ra(t), n = p.a.c(n), null !== n && n !== e) if ("string" != typeof n && (n = n.toString()),
|
|
r) r(t).html(n); else for (var i = p.a.ca(n, t.ownerDocument), o = 0; o < i.length; o++) t.appendChild(i[o]);
|
|
};
|
|
}(), p.b("utils.parseHtmlFragment", p.a.ca), p.b("utils.setHtml", p.a.gb), p.H = function() {
|
|
function t(e, n) {
|
|
if (e) if (8 == e.nodeType) {
|
|
var i = p.H.Lb(e.nodeValue);
|
|
null != i && n.push({
|
|
ic: e,
|
|
wc: i
|
|
});
|
|
} else if (1 == e.nodeType) for (var i = 0, r = e.childNodes, o = r.length; o > i; i++) t(r[i], n);
|
|
}
|
|
var n = {};
|
|
return {
|
|
$a: function(e) {
|
|
if ("function" != typeof e) throw Error("You can only pass a function to ko.memoization.memoize()");
|
|
var t = (4294967296 * (1 + Math.random()) | 0).toString(16).substring(1) + (4294967296 * (1 + Math.random()) | 0).toString(16).substring(1);
|
|
return n[t] = e, "<!--[ko_memo:" + t + "]-->";
|
|
},
|
|
Wb: function(t, i) {
|
|
var r = n[t];
|
|
if (r === e) throw Error("Couldn't find any memo with ID " + t + ". Perhaps it's already been unmemoized.");
|
|
try {
|
|
return r.apply(null, i || []), !0;
|
|
} finally {
|
|
delete n[t];
|
|
}
|
|
},
|
|
Xb: function(e, n) {
|
|
var i = [];
|
|
t(e, i);
|
|
for (var r = 0, o = i.length; o > r; r++) {
|
|
var a = i[r].ic, s = [ a ];
|
|
n && p.a.ia(s, n), p.H.Wb(i[r].wc, s), a.nodeValue = "", a.parentNode && a.parentNode.removeChild(a);
|
|
}
|
|
},
|
|
Lb: function(e) {
|
|
return (e = e.match(/^\[ko_memo\:(.*?)\]$/)) ? e[1] : null;
|
|
}
|
|
};
|
|
}(), p.b("memoization", p.H), p.b("memoization.memoize", p.H.$a), p.b("memoization.unmemoize", p.H.Wb),
|
|
p.b("memoization.parseMemoText", p.H.Lb), p.b("memoization.unmemoizeDomNodeAndDescendants", p.H.Xb),
|
|
p.Sa = {
|
|
throttle: function(e, t) {
|
|
e.throttleEvaluation = t;
|
|
var n = null;
|
|
return p.j({
|
|
read: e,
|
|
write: function(i) {
|
|
clearTimeout(n), n = setTimeout(function() {
|
|
e(i);
|
|
}, t);
|
|
}
|
|
});
|
|
},
|
|
rateLimit: function(e, t) {
|
|
var n, i, r;
|
|
"number" == typeof t ? n = t : (n = t.timeout, i = t.method), r = "notifyWhenChangesStop" == i ? c : l,
|
|
e.Za(function(e) {
|
|
return r(e, n);
|
|
});
|
|
},
|
|
notify: function(e, t) {
|
|
e.equalityComparer = "always" == t ? null : u;
|
|
}
|
|
};
|
|
var d = {
|
|
undefined: 1,
|
|
"boolean": 1,
|
|
number: 1,
|
|
string: 1
|
|
};
|
|
p.b("extenders", p.Sa), p.Ub = function(e, t, n) {
|
|
this.da = e, this.La = t, this.hc = n, this.Gb = !1, p.D(this, "dispose", this.p);
|
|
}, p.Ub.prototype.p = function() {
|
|
this.Gb = !0, this.hc();
|
|
}, p.Q = function() {
|
|
p.a.Ga(this, p.Q.fn), this.G = {}, this.rb = 1;
|
|
};
|
|
var h = {
|
|
U: function(e, t, n) {
|
|
var i = this;
|
|
n = n || "change";
|
|
var r = new p.Ub(i, t ? e.bind(t) : e, function() {
|
|
p.a.ya(i.G[n], r), i.ua && i.ua(n);
|
|
});
|
|
return i.ja && i.ja(n), i.G[n] || (i.G[n] = []), i.G[n].push(r), r;
|
|
},
|
|
notifySubscribers: function(e, t) {
|
|
if (t = t || "change", "change" === t && this.Yb(), this.Ba(t)) try {
|
|
p.k.xb();
|
|
for (var n, i = this.G[t].slice(0), r = 0; n = i[r]; ++r) n.Gb || n.La(e);
|
|
} finally {
|
|
p.k.end();
|
|
}
|
|
},
|
|
Aa: function() {
|
|
return this.rb;
|
|
},
|
|
pc: function(e) {
|
|
return this.Aa() !== e;
|
|
},
|
|
Yb: function() {
|
|
++this.rb;
|
|
},
|
|
Za: function(e) {
|
|
var t, n, i, r = this, o = p.F(r);
|
|
r.ta || (r.ta = r.notifySubscribers, r.notifySubscribers = function(e, t) {
|
|
t && "change" !== t ? "beforeChange" === t ? r.pb(e) : r.ta(e, t) : r.qb(e);
|
|
});
|
|
var a = e(function() {
|
|
o && i === r && (i = r()), t = !1, r.Wa(n, i) && r.ta(n = i);
|
|
});
|
|
r.qb = function(e) {
|
|
t = !0, i = e, a();
|
|
}, r.pb = function(e) {
|
|
t || (n = e, r.ta(e, "beforeChange"));
|
|
};
|
|
},
|
|
Ba: function(e) {
|
|
return this.G[e] && this.G[e].length;
|
|
},
|
|
nc: function(e) {
|
|
if (e) return this.G[e] && this.G[e].length || 0;
|
|
var t = 0;
|
|
return p.a.A(this.G, function(e, n) {
|
|
t += n.length;
|
|
}), t;
|
|
},
|
|
Wa: function(e, t) {
|
|
return !this.equalityComparer || !this.equalityComparer(e, t);
|
|
},
|
|
extend: function(e) {
|
|
var t = this;
|
|
return e && p.a.A(e, function(e, n) {
|
|
var i = p.Sa[e];
|
|
"function" == typeof i && (t = i(t, n) || t);
|
|
}), t;
|
|
}
|
|
};
|
|
p.D(h, "subscribe", h.U), p.D(h, "extend", h.extend), p.D(h, "getSubscriptionsCount", h.nc),
|
|
p.a.za && p.a.Fa(h, Function.prototype), p.Q.fn = h, p.Hb = function(e) {
|
|
return null != e && "function" == typeof e.U && "function" == typeof e.notifySubscribers;
|
|
}, p.b("subscribable", p.Q), p.b("isSubscribable", p.Hb), p.Z = p.k = function() {
|
|
function e(e) {
|
|
i.push(n), n = e;
|
|
}
|
|
function t() {
|
|
n = i.pop();
|
|
}
|
|
var n, i = [], r = 0;
|
|
return {
|
|
xb: e,
|
|
end: t,
|
|
Ob: function(e) {
|
|
if (n) {
|
|
if (!p.Hb(e)) throw Error("Only subscribable things can act as dependencies");
|
|
n.La(e, e.ac || (e.ac = ++r));
|
|
}
|
|
},
|
|
u: function(n, i, r) {
|
|
try {
|
|
return e(), n.apply(i, r || []);
|
|
} finally {
|
|
t();
|
|
}
|
|
},
|
|
oa: function() {
|
|
return n ? n.w.oa() : void 0;
|
|
},
|
|
Ca: function() {
|
|
return n ? n.Ca : void 0;
|
|
}
|
|
};
|
|
}(), p.b("computedContext", p.Z), p.b("computedContext.getDependenciesCount", p.Z.oa),
|
|
p.b("computedContext.isInitial", p.Z.Ca), p.b("computedContext.isSleeping", p.Z.Jc),
|
|
p.b("ignoreDependencies", p.Gc = p.k.u), p.r = function(e) {
|
|
function t() {
|
|
return 0 < arguments.length ? (t.Wa(n, arguments[0]) && (t.X(), n = arguments[0],
|
|
t.W()), this) : (p.k.Ob(t), n);
|
|
}
|
|
var n = e;
|
|
return p.Q.call(t), p.a.Ga(t, p.r.fn), t.B = function() {
|
|
return n;
|
|
}, t.W = function() {
|
|
t.notifySubscribers(n);
|
|
}, t.X = function() {
|
|
t.notifySubscribers(n, "beforeChange");
|
|
}, p.D(t, "peek", t.B), p.D(t, "valueHasMutated", t.W), p.D(t, "valueWillMutate", t.X),
|
|
t;
|
|
}, p.r.fn = {
|
|
equalityComparer: u
|
|
};
|
|
var g = p.r.Ac = "__ko_proto__";
|
|
p.r.fn[g] = p.r, p.a.za && p.a.Fa(p.r.fn, p.Q.fn), p.Ta = function(t, n) {
|
|
return null === t || t === e || t[g] === e ? !1 : t[g] === n ? !0 : p.Ta(t[g], n);
|
|
}, p.F = function(e) {
|
|
return p.Ta(e, p.r);
|
|
}, p.Da = function(e) {
|
|
return "function" == typeof e && e[g] === p.r || "function" == typeof e && e[g] === p.j && e.qc ? !0 : !1;
|
|
}, p.b("observable", p.r), p.b("isObservable", p.F), p.b("isWriteableObservable", p.Da),
|
|
p.b("isWritableObservable", p.Da), p.ba = function(e) {
|
|
if (e = e || [], "object" != typeof e || !("length" in e)) throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");
|
|
return e = p.r(e), p.a.Ga(e, p.ba.fn), e.extend({
|
|
trackArrayChanges: !0
|
|
});
|
|
}, p.ba.fn = {
|
|
remove: function(e) {
|
|
for (var t = this.B(), n = [], i = "function" != typeof e || p.F(e) ? function(t) {
|
|
return t === e;
|
|
} : e, r = 0; r < t.length; r++) {
|
|
var o = t[r];
|
|
i(o) && (0 === n.length && this.X(), n.push(o), t.splice(r, 1), r--);
|
|
}
|
|
return n.length && this.W(), n;
|
|
},
|
|
removeAll: function(t) {
|
|
if (t === e) {
|
|
var n = this.B(), i = n.slice(0);
|
|
return this.X(), n.splice(0, n.length), this.W(), i;
|
|
}
|
|
return t ? this.remove(function(e) {
|
|
return 0 <= p.a.m(t, e);
|
|
}) : [];
|
|
},
|
|
destroy: function(e) {
|
|
var t = this.B(), n = "function" != typeof e || p.F(e) ? function(t) {
|
|
return t === e;
|
|
} : e;
|
|
this.X();
|
|
for (var i = t.length - 1; i >= 0; i--) n(t[i]) && (t[i]._destroy = !0);
|
|
this.W();
|
|
},
|
|
destroyAll: function(t) {
|
|
return t === e ? this.destroy(function() {
|
|
return !0;
|
|
}) : t ? this.destroy(function(e) {
|
|
return 0 <= p.a.m(t, e);
|
|
}) : [];
|
|
},
|
|
indexOf: function(e) {
|
|
var t = this();
|
|
return p.a.m(t, e);
|
|
},
|
|
replace: function(e, t) {
|
|
var n = this.indexOf(e);
|
|
n >= 0 && (this.X(), this.B()[n] = t, this.W());
|
|
}
|
|
}, p.a.o("pop push reverse shift sort splice unshift".split(" "), function(e) {
|
|
p.ba.fn[e] = function() {
|
|
var t = this.B();
|
|
return this.X(), this.yb(t, e, arguments), t = t[e].apply(t, arguments), this.W(),
|
|
t;
|
|
};
|
|
}), p.a.o([ "slice" ], function(e) {
|
|
p.ba.fn[e] = function() {
|
|
var t = this();
|
|
return t[e].apply(t, arguments);
|
|
};
|
|
}), p.a.za && p.a.Fa(p.ba.fn, p.r.fn), p.b("observableArray", p.ba), p.Sa.trackArrayChanges = function(e) {
|
|
function t() {
|
|
if (!i) {
|
|
i = !0;
|
|
var t = e.notifySubscribers;
|
|
e.notifySubscribers = function(e, n) {
|
|
return n && "change" !== n || ++o, t.apply(this, arguments);
|
|
};
|
|
var a = [].concat(e.B() || []);
|
|
r = null, n = e.U(function(t) {
|
|
if (t = [].concat(t || []), e.Ba("arrayChange")) {
|
|
var n;
|
|
(!r || o > 1) && (r = p.a.Ma(a, t, {
|
|
sparse: !0
|
|
})), n = r;
|
|
}
|
|
a = t, r = null, o = 0, n && n.length && e.notifySubscribers(n, "arrayChange");
|
|
});
|
|
}
|
|
}
|
|
if (!e.yb) {
|
|
var n, i = !1, r = null, o = 0, a = e.ja, s = e.ua;
|
|
e.ja = function(n) {
|
|
a && a.call(e, n), "arrayChange" === n && t();
|
|
}, e.ua = function(t) {
|
|
s && s.call(e, t), "arrayChange" !== t || e.Ba("arrayChange") || (n.p(), i = !1);
|
|
}, e.yb = function(e, t, n) {
|
|
function a(e, t, n) {
|
|
return s[s.length] = {
|
|
status: e,
|
|
value: t,
|
|
index: n
|
|
};
|
|
}
|
|
if (i && !o) {
|
|
var s = [], u = e.length, l = n.length, c = 0;
|
|
switch (t) {
|
|
case "push":
|
|
c = u;
|
|
|
|
case "unshift":
|
|
for (t = 0; l > t; t++) a("added", n[t], c + t);
|
|
break;
|
|
|
|
case "pop":
|
|
c = u - 1;
|
|
|
|
case "shift":
|
|
u && a("deleted", e[c], c);
|
|
break;
|
|
|
|
case "splice":
|
|
t = Math.min(Math.max(0, 0 > n[0] ? u + n[0] : n[0]), u);
|
|
for (var u = 1 === l ? u : Math.min(t + (n[1] || 0), u), l = t + l - 2, c = Math.max(u, l), f = [], d = [], h = 2; c > t; ++t,
|
|
++h) u > t && d.push(a("deleted", e[t], t)), l > t && f.push(a("added", n[h], t));
|
|
p.a.Cb(d, f);
|
|
break;
|
|
|
|
default:
|
|
return;
|
|
}
|
|
r = s;
|
|
}
|
|
};
|
|
}
|
|
}, p.w = p.j = function(t, n, i) {
|
|
function r(e, t, n) {
|
|
if (x && t === l) throw Error("A 'pure' computed must not be called recursively");
|
|
N[e] = n, n.sa = _++, n.ea = t.Aa();
|
|
}
|
|
function o() {
|
|
var e, t;
|
|
for (e in N) if (N.hasOwnProperty(e) && (t = N[e], t.da.pc(t.ea))) return !0;
|
|
}
|
|
function a() {
|
|
!w && N && p.a.A(N, function(e, t) {
|
|
t.p && t.p();
|
|
}), N = null, _ = 0, y = !0, w = g = !1;
|
|
}
|
|
function s() {
|
|
var e = l.throttleEvaluation;
|
|
e && e >= 0 ? (clearTimeout(A), A = setTimeout(function() {
|
|
u(!0);
|
|
}, e)) : l.nb ? l.nb() : u(!0);
|
|
}
|
|
function u(t) {
|
|
if (!m && !y) {
|
|
if (E && E()) {
|
|
if (!v) return void S();
|
|
} else v = !1;
|
|
m = !0;
|
|
try {
|
|
var i = N, o = _, a = x ? e : !_;
|
|
p.k.xb({
|
|
La: function(e, t) {
|
|
y || (o && i[t] ? (r(t, e, i[t]), delete i[t], --o) : N[t] || r(t, e, w ? {
|
|
da: e
|
|
} : e.U(s)));
|
|
},
|
|
w: l,
|
|
Ca: a
|
|
}), N = {}, _ = 0;
|
|
try {
|
|
var u = n ? b.call(n) : b();
|
|
} finally {
|
|
p.k.end(), o && !w && p.a.A(i, function(e, t) {
|
|
t.p && t.p();
|
|
}), g = !1;
|
|
}
|
|
l.Wa(h, u) && (w || d(h, "beforeChange"), h = u, w ? l.Yb() : t && d(h)), a && d(h, "awake");
|
|
} finally {
|
|
m = !1;
|
|
}
|
|
_ || S();
|
|
}
|
|
}
|
|
function l() {
|
|
if (0 < arguments.length) {
|
|
if ("function" != typeof C) throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");
|
|
return C.apply(n, arguments), this;
|
|
}
|
|
return p.k.Ob(l), (g || w && o()) && u(), h;
|
|
}
|
|
function c() {
|
|
return (g && !_ || w && o()) && u(), h;
|
|
}
|
|
function f() {
|
|
return g || _ > 0;
|
|
}
|
|
function d(e, t) {
|
|
l.notifySubscribers(e, t);
|
|
}
|
|
var h, g = !0, m = !1, v = !1, y = !1, b = t, x = !1, w = !1;
|
|
if (b && "object" == typeof b ? (i = b, b = i.read) : (i = i || {}, b || (b = i.read)),
|
|
"function" != typeof b) throw Error("Pass a function that returns the value of the ko.computed");
|
|
var C = i.write, k = i.disposeWhenNodeIsRemoved || i.q || null, T = i.disposeWhen || i.Pa, E = T, S = a, N = {}, _ = 0, A = null;
|
|
n || (n = i.owner), p.Q.call(l), p.a.Ga(l, p.j.fn), l.B = c, l.oa = function() {
|
|
return _;
|
|
}, l.qc = "function" == typeof C, l.p = function() {
|
|
S();
|
|
}, l.$ = f;
|
|
var D = l.Za;
|
|
return l.Za = function(e) {
|
|
D.call(l, e), l.nb = function() {
|
|
l.pb(h), g = !0, l.qb(l);
|
|
};
|
|
}, i.pure ? (w = x = !0, l.ja = function(e) {
|
|
if (!y && w && "change" == e) {
|
|
if (w = !1, g || o()) N = null, _ = 0, g = !0, u(); else {
|
|
var t = [];
|
|
p.a.A(N, function(e, n) {
|
|
t[n.sa] = e;
|
|
}), p.a.o(t, function(e, t) {
|
|
var n = N[e], i = n.da.U(s);
|
|
i.sa = t, i.ea = n.ea, N[e] = i;
|
|
});
|
|
}
|
|
y || d(h, "awake");
|
|
}
|
|
}, l.ua = function(t) {
|
|
y || "change" != t || l.Ba("change") || (p.a.A(N, function(e, t) {
|
|
t.p && (N[e] = {
|
|
da: t.da,
|
|
sa: t.sa,
|
|
ea: t.ea
|
|
}, t.p());
|
|
}), w = !0, d(e, "asleep"));
|
|
}, l.bc = l.Aa, l.Aa = function() {
|
|
return w && (g || o()) && u(), l.bc();
|
|
}) : i.deferEvaluation && (l.ja = function(e) {
|
|
"change" != e && "beforeChange" != e || c();
|
|
}), p.D(l, "peek", l.B), p.D(l, "dispose", l.p), p.D(l, "isActive", l.$), p.D(l, "getDependenciesCount", l.oa),
|
|
k && (v = !0, k.nodeType && (E = function() {
|
|
return !p.a.Qa(k) || T && T();
|
|
})), w || i.deferEvaluation || u(), k && f() && k.nodeType && (S = function() {
|
|
p.a.C.Pb(k, S), a();
|
|
}, p.a.C.fa(k, S)), l;
|
|
}, p.sc = function(e) {
|
|
return p.Ta(e, p.j);
|
|
}, h = p.r.Ac, p.j[h] = p.r, p.j.fn = {
|
|
equalityComparer: u
|
|
}, p.j.fn[h] = p.j, p.a.za && p.a.Fa(p.j.fn, p.Q.fn), p.b("dependentObservable", p.j),
|
|
p.b("computed", p.j), p.b("isComputed", p.sc), p.Nb = function(e, t) {
|
|
return "function" == typeof e ? p.w(e, t, {
|
|
pure: !0
|
|
}) : (e = p.a.extend({}, e), e.pure = !0, p.w(e, t));
|
|
}, p.b("pureComputed", p.Nb), function() {
|
|
function t(r, o, a) {
|
|
if (a = a || new i(), r = o(r), "object" != typeof r || null === r || r === e || r instanceof Date || r instanceof String || r instanceof Number || r instanceof Boolean) return r;
|
|
var s = r instanceof Array ? [] : {};
|
|
return a.save(r, s), n(r, function(n) {
|
|
var i = o(r[n]);
|
|
switch (typeof i) {
|
|
case "boolean":
|
|
case "number":
|
|
case "string":
|
|
case "function":
|
|
s[n] = i;
|
|
break;
|
|
|
|
case "object":
|
|
case "undefined":
|
|
var u = a.get(i);
|
|
s[n] = u !== e ? u : t(i, o, a);
|
|
}
|
|
}), s;
|
|
}
|
|
function n(e, t) {
|
|
if (e instanceof Array) {
|
|
for (var n = 0; n < e.length; n++) t(n);
|
|
"function" == typeof e.toJSON && t("toJSON");
|
|
} else for (n in e) t(n);
|
|
}
|
|
function i() {
|
|
this.keys = [], this.mb = [];
|
|
}
|
|
p.Vb = function(e) {
|
|
if (0 == arguments.length) throw Error("When calling ko.toJS, pass the object you want to convert.");
|
|
return t(e, function(e) {
|
|
for (var t = 0; p.F(e) && 10 > t; t++) e = e();
|
|
return e;
|
|
});
|
|
}, p.toJSON = function(e, t, n) {
|
|
return e = p.Vb(e), p.a.jb(e, t, n);
|
|
}, i.prototype = {
|
|
save: function(e, t) {
|
|
var n = p.a.m(this.keys, e);
|
|
n >= 0 ? this.mb[n] = t : (this.keys.push(e), this.mb.push(t));
|
|
},
|
|
get: function(t) {
|
|
return t = p.a.m(this.keys, t), t >= 0 ? this.mb[t] : e;
|
|
}
|
|
};
|
|
}(), p.b("toJS", p.Vb), p.b("toJSON", p.toJSON), function() {
|
|
p.i = {
|
|
s: function(t) {
|
|
switch (p.a.v(t)) {
|
|
case "option":
|
|
return !0 === t.__ko__hasDomDataOptionValue__ ? p.a.f.get(t, p.d.options.ab) : 7 >= p.a.M ? t.getAttributeNode("value") && t.getAttributeNode("value").specified ? t.value : t.text : t.value;
|
|
|
|
case "select":
|
|
return 0 <= t.selectedIndex ? p.i.s(t.options[t.selectedIndex]) : e;
|
|
|
|
default:
|
|
return t.value;
|
|
}
|
|
},
|
|
Y: function(t, n, i) {
|
|
switch (p.a.v(t)) {
|
|
case "option":
|
|
switch (typeof n) {
|
|
case "string":
|
|
p.a.f.set(t, p.d.options.ab, e), "__ko__hasDomDataOptionValue__" in t && delete t.__ko__hasDomDataOptionValue__,
|
|
t.value = n;
|
|
break;
|
|
|
|
default:
|
|
p.a.f.set(t, p.d.options.ab, n), t.__ko__hasDomDataOptionValue__ = !0, t.value = "number" == typeof n ? n : "";
|
|
}
|
|
break;
|
|
|
|
case "select":
|
|
("" === n || null === n) && (n = e);
|
|
for (var r, o = -1, a = 0, s = t.options.length; s > a; ++a) if (r = p.i.s(t.options[a]),
|
|
r == n || "" == r && n === e) {
|
|
o = a;
|
|
break;
|
|
}
|
|
(i || o >= 0 || n === e && 1 < t.size) && (t.selectedIndex = o);
|
|
break;
|
|
|
|
default:
|
|
(null === n || n === e) && (n = ""), t.value = n;
|
|
}
|
|
}
|
|
};
|
|
}(), p.b("selectExtensions", p.i), p.b("selectExtensions.readValue", p.i.s), p.b("selectExtensions.writeValue", p.i.Y),
|
|
p.h = function() {
|
|
function e(e) {
|
|
e = p.a.ib(e), 123 === e.charCodeAt(0) && (e = e.slice(1, -1));
|
|
var t, n = [], a = e.match(i), s = [], u = 0;
|
|
if (a) {
|
|
a.push(",");
|
|
for (var l, c = 0; l = a[c]; ++c) {
|
|
var f = l.charCodeAt(0);
|
|
if (44 === f) {
|
|
if (0 >= u) {
|
|
n.push(t && s.length ? {
|
|
key: t,
|
|
value: s.join("")
|
|
} : {
|
|
unknown: t || s.join("")
|
|
}), t = u = 0, s = [];
|
|
continue;
|
|
}
|
|
} else if (58 === f) {
|
|
if (!u && !t && 1 === s.length) {
|
|
t = s.pop();
|
|
continue;
|
|
}
|
|
} else 47 === f && c && 1 < l.length ? (f = a[c - 1].match(r)) && !o[f[0]] && (e = e.substr(e.indexOf(l) + 1),
|
|
a = e.match(i), a.push(","), c = -1, l = "/") : 40 === f || 123 === f || 91 === f ? ++u : 41 === f || 125 === f || 93 === f ? --u : t || s.length || 34 !== f && 39 !== f || (l = l.slice(1, -1));
|
|
s.push(l);
|
|
}
|
|
}
|
|
return n;
|
|
}
|
|
var t = [ "true", "false", "null", "undefined" ], n = /^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i, i = RegExp("\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|/(?:[^/\\\\]|\\\\.)*/w*|[^\\s:,/][^,\"'{}()/:[\\]]*[^\\s,\"'{}()/:[\\]]|[^\\s]", "g"), r = /[\])"'A-Za-z0-9_$]+$/, o = {
|
|
"in": 1,
|
|
"return": 1,
|
|
"typeof": 1
|
|
}, a = {};
|
|
return {
|
|
ka: [],
|
|
V: a,
|
|
bb: e,
|
|
Ea: function(i, r) {
|
|
function o(e, i) {
|
|
var r;
|
|
if (!c) {
|
|
var f = p.getBindingHandler(e);
|
|
if (f && f.preprocess && !(i = f.preprocess(i, e, o))) return;
|
|
(f = a[e]) && (r = i, 0 <= p.a.m(t, r) ? r = !1 : (f = r.match(n), r = null === f ? !1 : f[1] ? "Object(" + f[1] + ")" + f[2] : r),
|
|
f = r), f && u.push("'" + e + "':function(_z){" + r + "=_z}");
|
|
}
|
|
l && (i = "function(){return " + i + " }"), s.push("'" + e + "':" + i);
|
|
}
|
|
r = r || {};
|
|
var s = [], u = [], l = r.valueAccessors, c = r.bindingParams, f = "string" == typeof i ? e(i) : i;
|
|
return p.a.o(f, function(e) {
|
|
o(e.key || e.unknown, e.value);
|
|
}), u.length && o("_ko_property_writers", "{" + u.join(",") + " }"), s.join(",");
|
|
},
|
|
vc: function(e, t) {
|
|
for (var n = 0; n < e.length; n++) if (e[n].key == t) return !0;
|
|
return !1;
|
|
},
|
|
ra: function(e, t, n, i, r) {
|
|
e && p.F(e) ? !p.Da(e) || r && e.B() === i || e(i) : (e = t.get("_ko_property_writers")) && e[n] && e[n](i);
|
|
}
|
|
};
|
|
}(), p.b("expressionRewriting", p.h), p.b("expressionRewriting.bindingRewriteValidators", p.h.ka),
|
|
p.b("expressionRewriting.parseObjectLiteral", p.h.bb), p.b("expressionRewriting.preProcessBindings", p.h.Ea),
|
|
p.b("expressionRewriting._twoWayBindings", p.h.V), p.b("jsonExpressionRewriting", p.h),
|
|
p.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson", p.h.Ea), function() {
|
|
function e(e) {
|
|
return 8 == e.nodeType && a.test(o ? e.text : e.nodeValue);
|
|
}
|
|
function t(e) {
|
|
return 8 == e.nodeType && s.test(o ? e.text : e.nodeValue);
|
|
}
|
|
function i(n, i) {
|
|
for (var r = n, o = 1, a = []; r = r.nextSibling; ) {
|
|
if (t(r) && (o--, 0 === o)) return a;
|
|
a.push(r), e(r) && o++;
|
|
}
|
|
if (!i) throw Error("Cannot find closing comment tag to match: " + n.nodeValue);
|
|
return null;
|
|
}
|
|
function r(e, t) {
|
|
var n = i(e, t);
|
|
return n ? 0 < n.length ? n[n.length - 1].nextSibling : e.nextSibling : null;
|
|
}
|
|
var o = n && "<!--test-->" === n.createComment("test").text, a = o ? /^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/ : /^\s*ko(?:\s+([\s\S]+))?\s*$/, s = o ? /^\x3c!--\s*\/ko\s*--\x3e$/ : /^\s*\/ko\s*$/, u = {
|
|
ul: !0,
|
|
ol: !0
|
|
};
|
|
p.e = {
|
|
R: {},
|
|
childNodes: function(t) {
|
|
return e(t) ? i(t) : t.childNodes;
|
|
},
|
|
ma: function(t) {
|
|
if (e(t)) {
|
|
t = p.e.childNodes(t);
|
|
for (var n = 0, i = t.length; i > n; n++) p.removeNode(t[n]);
|
|
} else p.a.Ra(t);
|
|
},
|
|
T: function(t, n) {
|
|
if (e(t)) {
|
|
p.e.ma(t);
|
|
for (var i = t.nextSibling, r = 0, o = n.length; o > r; r++) i.parentNode.insertBefore(n[r], i);
|
|
} else p.a.T(t, n);
|
|
},
|
|
Mb: function(t, n) {
|
|
e(t) ? t.parentNode.insertBefore(n, t.nextSibling) : t.firstChild ? t.insertBefore(n, t.firstChild) : t.appendChild(n);
|
|
},
|
|
Fb: function(t, n, i) {
|
|
i ? e(t) ? t.parentNode.insertBefore(n, i.nextSibling) : i.nextSibling ? t.insertBefore(n, i.nextSibling) : t.appendChild(n) : p.e.Mb(t, n);
|
|
},
|
|
firstChild: function(n) {
|
|
return e(n) ? !n.nextSibling || t(n.nextSibling) ? null : n.nextSibling : n.firstChild;
|
|
},
|
|
nextSibling: function(n) {
|
|
return e(n) && (n = r(n)), n.nextSibling && t(n.nextSibling) ? null : n.nextSibling;
|
|
},
|
|
oc: e,
|
|
Fc: function(e) {
|
|
return (e = (o ? e.text : e.nodeValue).match(a)) ? e[1] : null;
|
|
},
|
|
Kb: function(n) {
|
|
if (u[p.a.v(n)]) {
|
|
var i = n.firstChild;
|
|
if (i) do if (1 === i.nodeType) {
|
|
var o;
|
|
o = i.firstChild;
|
|
var a = null;
|
|
if (o) do if (a) a.push(o); else if (e(o)) {
|
|
var s = r(o, !0);
|
|
s ? o = s : a = [ o ];
|
|
} else t(o) && (a = [ o ]); while (o = o.nextSibling);
|
|
if (o = a) for (a = i.nextSibling, s = 0; s < o.length; s++) a ? n.insertBefore(o[s], a) : n.appendChild(o[s]);
|
|
} while (i = i.nextSibling);
|
|
}
|
|
}
|
|
};
|
|
}(), p.b("virtualElements", p.e), p.b("virtualElements.allowedBindings", p.e.R),
|
|
p.b("virtualElements.emptyNode", p.e.ma), p.b("virtualElements.insertAfter", p.e.Fb),
|
|
p.b("virtualElements.prepend", p.e.Mb), p.b("virtualElements.setDomNodeChildren", p.e.T),
|
|
function() {
|
|
p.L = function() {
|
|
this.ec = {};
|
|
}, p.a.extend(p.L.prototype, {
|
|
nodeHasBindings: function(e) {
|
|
switch (e.nodeType) {
|
|
case 1:
|
|
return null != e.getAttribute("data-bind") || p.g.getComponentNameForNode(e);
|
|
|
|
case 8:
|
|
return p.e.oc(e);
|
|
|
|
default:
|
|
return !1;
|
|
}
|
|
},
|
|
getBindings: function(e, t) {
|
|
var n = this.getBindingsString(e, t), n = n ? this.parseBindingsString(n, t, e) : null;
|
|
return p.g.sb(n, e, t, !1);
|
|
},
|
|
getBindingAccessors: function(e, t) {
|
|
var n = this.getBindingsString(e, t), n = n ? this.parseBindingsString(n, t, e, {
|
|
valueAccessors: !0
|
|
}) : null;
|
|
return p.g.sb(n, e, t, !0);
|
|
},
|
|
getBindingsString: function(e) {
|
|
switch (e.nodeType) {
|
|
case 1:
|
|
return e.getAttribute("data-bind");
|
|
|
|
case 8:
|
|
return p.e.Fc(e);
|
|
|
|
default:
|
|
return null;
|
|
}
|
|
},
|
|
parseBindingsString: function(e, t, n, i) {
|
|
try {
|
|
var r, o = this.ec, a = e + (i && i.valueAccessors || "");
|
|
if (!(r = o[a])) {
|
|
var s, u = "with($context){with($data||{}){return{" + p.h.Ea(e, i) + "}}}";
|
|
s = new Function("$context", "$element", u), r = o[a] = s;
|
|
}
|
|
return r(t, n);
|
|
} catch (l) {
|
|
throw l.message = "Unable to parse bindings.\nBindings value: " + e + "\nMessage: " + l.message,
|
|
l;
|
|
}
|
|
}
|
|
}), p.L.instance = new p.L();
|
|
}(), p.b("bindingProvider", p.L), function() {
|
|
function n(e) {
|
|
return function() {
|
|
return e;
|
|
};
|
|
}
|
|
function i(e) {
|
|
return e();
|
|
}
|
|
function o(e) {
|
|
return p.a.pa(p.k.u(e), function(t, n) {
|
|
return function() {
|
|
return e()[n];
|
|
};
|
|
});
|
|
}
|
|
function a(e, t, i) {
|
|
return "function" == typeof e ? o(e.bind(null, t, i)) : p.a.pa(e, n);
|
|
}
|
|
function s(e, t) {
|
|
return o(this.getBindings.bind(this, e, t));
|
|
}
|
|
function u(e, t, n) {
|
|
var i, r = p.e.firstChild(t), o = p.L.instance, a = o.preprocessNode;
|
|
if (a) {
|
|
for (;i = r; ) r = p.e.nextSibling(i), a.call(o, i);
|
|
r = p.e.firstChild(t);
|
|
}
|
|
for (;i = r; ) r = p.e.nextSibling(i), l(e, i, n);
|
|
}
|
|
function l(e, t, n) {
|
|
var i = !0, r = 1 === t.nodeType;
|
|
r && p.e.Kb(t), (r && n || p.L.instance.nodeHasBindings(t)) && (i = f(t, null, e, n).shouldBindDescendants),
|
|
i && !h[p.a.v(t)] && u(e, t, !r);
|
|
}
|
|
function c(e) {
|
|
var t = [], n = {}, i = [];
|
|
return p.a.A(e, function r(o) {
|
|
if (!n[o]) {
|
|
var a = p.getBindingHandler(o);
|
|
a && (a.after && (i.push(o), p.a.o(a.after, function(t) {
|
|
if (e[t]) {
|
|
if (-1 !== p.a.m(i, t)) throw Error("Cannot combine the following bindings, because they have a cyclic dependency: " + i.join(", "));
|
|
r(t);
|
|
}
|
|
}), i.length--), t.push({
|
|
key: o,
|
|
Eb: a
|
|
})), n[o] = !0;
|
|
}
|
|
}), t;
|
|
}
|
|
function f(t, n, r, o) {
|
|
var a = p.a.f.get(t, g);
|
|
if (!n) {
|
|
if (a) throw Error("You cannot apply bindings multiple times to the same element.");
|
|
p.a.f.set(t, g, !0);
|
|
}
|
|
!a && o && p.Tb(t, r);
|
|
var u;
|
|
if (n && "function" != typeof n) u = n; else {
|
|
var l = p.L.instance, f = l.getBindingAccessors || s, d = p.j(function() {
|
|
return (u = n ? n(r, t) : f.call(l, t, r)) && r.K && r.K(), u;
|
|
}, null, {
|
|
q: t
|
|
});
|
|
u && d.$() || (d = null);
|
|
}
|
|
var h;
|
|
if (u) {
|
|
var m = d ? function(e) {
|
|
return function() {
|
|
return i(d()[e]);
|
|
};
|
|
} : function(e) {
|
|
return u[e];
|
|
}, v = function() {
|
|
return p.a.pa(d ? d() : u, i);
|
|
};
|
|
v.get = function(e) {
|
|
return u[e] && i(m(e));
|
|
}, v.has = function(e) {
|
|
return e in u;
|
|
}, o = c(u), p.a.o(o, function(n) {
|
|
var i = n.Eb.init, o = n.Eb.update, a = n.key;
|
|
if (8 === t.nodeType && !p.e.R[a]) throw Error("The binding '" + a + "' cannot be used with virtual elements");
|
|
try {
|
|
"function" == typeof i && p.k.u(function() {
|
|
var n = i(t, m(a), v, r.$data, r);
|
|
if (n && n.controlsDescendantBindings) {
|
|
if (h !== e) throw Error("Multiple bindings (" + h + " and " + a + ") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");
|
|
h = a;
|
|
}
|
|
}), "function" == typeof o && p.j(function() {
|
|
o(t, m(a), v, r.$data, r);
|
|
}, null, {
|
|
q: t
|
|
});
|
|
} catch (s) {
|
|
throw s.message = 'Unable to process binding "' + a + ": " + u[a] + '"\nMessage: ' + s.message,
|
|
s;
|
|
}
|
|
});
|
|
}
|
|
return {
|
|
shouldBindDescendants: h === e
|
|
};
|
|
}
|
|
function d(e) {
|
|
return e && e instanceof p.N ? e : new p.N(e);
|
|
}
|
|
p.d = {};
|
|
var h = {
|
|
script: !0,
|
|
textarea: !0
|
|
};
|
|
p.getBindingHandler = function(e) {
|
|
return p.d[e];
|
|
}, p.N = function(t, n, i, r) {
|
|
var o, a = this, s = "function" == typeof t && !p.F(t), u = p.j(function() {
|
|
var e = s ? t() : t, o = p.a.c(e);
|
|
return n ? (n.K && n.K(), p.a.extend(a, n), u && (a.K = u)) : (a.$parents = [],
|
|
a.$root = o, a.ko = p), a.$rawData = e, a.$data = o, i && (a[i] = o), r && r(a, n, o),
|
|
a.$data;
|
|
}, null, {
|
|
Pa: function() {
|
|
return o && !p.a.tb(o);
|
|
},
|
|
q: !0
|
|
});
|
|
u.$() && (a.K = u, u.equalityComparer = null, o = [], u.Zb = function(t) {
|
|
o.push(t), p.a.C.fa(t, function(t) {
|
|
p.a.ya(o, t), o.length || (u.p(), a.K = u = e);
|
|
});
|
|
});
|
|
}, p.N.prototype.createChildContext = function(e, t, n) {
|
|
return new p.N(e, this, t, function(e, t) {
|
|
e.$parentContext = t, e.$parent = t.$data, e.$parents = (t.$parents || []).slice(0),
|
|
e.$parents.unshift(e.$parent), n && n(e);
|
|
});
|
|
}, p.N.prototype.extend = function(e) {
|
|
return new p.N(this.K || this.$data, this, null, function(t, n) {
|
|
t.$rawData = n.$rawData, p.a.extend(t, "function" == typeof e ? e() : e);
|
|
});
|
|
};
|
|
var g = p.a.f.I(), m = p.a.f.I();
|
|
p.Tb = function(e, t) {
|
|
return 2 != arguments.length ? p.a.f.get(e, m) : (p.a.f.set(e, m, t), void (t.K && t.K.Zb(e)));
|
|
}, p.va = function(e, t, n) {
|
|
return 1 === e.nodeType && p.e.Kb(e), f(e, t, d(n), !0);
|
|
}, p.cc = function(e, t, n) {
|
|
return n = d(n), p.va(e, a(t, n, e), n);
|
|
}, p.Ja = function(e, t) {
|
|
1 !== t.nodeType && 8 !== t.nodeType || u(d(e), t, !0);
|
|
}, p.ub = function(e, n) {
|
|
if (!r && t.jQuery && (r = t.jQuery), n && 1 !== n.nodeType && 8 !== n.nodeType) throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");
|
|
n = n || t.document.body, l(d(e), n, !0);
|
|
}, p.Oa = function(t) {
|
|
switch (t.nodeType) {
|
|
case 1:
|
|
case 8:
|
|
var n = p.Tb(t);
|
|
if (n) return n;
|
|
if (t.parentNode) return p.Oa(t.parentNode);
|
|
}
|
|
return e;
|
|
}, p.gc = function(t) {
|
|
return (t = p.Oa(t)) ? t.$data : e;
|
|
}, p.b("bindingHandlers", p.d), p.b("applyBindings", p.ub), p.b("applyBindingsToDescendants", p.Ja),
|
|
p.b("applyBindingAccessorsToNode", p.va), p.b("applyBindingsToNode", p.cc), p.b("contextFor", p.Oa),
|
|
p.b("dataFor", p.gc);
|
|
}(), function(e) {
|
|
function t(t, i) {
|
|
var a, s = r.hasOwnProperty(t) ? r[t] : e;
|
|
s ? s.U(i) : (s = r[t] = new p.Q(), s.U(i), n(t, function(e, n) {
|
|
var i = !(!n || !n.synchronous);
|
|
o[t] = {
|
|
definition: e,
|
|
tc: i
|
|
}, delete r[t], a || i ? s.notifySubscribers(e) : setTimeout(function() {
|
|
s.notifySubscribers(e);
|
|
}, 0);
|
|
}), a = !0);
|
|
}
|
|
function n(e, t) {
|
|
i("getConfig", [ e ], function(n) {
|
|
n ? i("loadComponent", [ e, n ], function(e) {
|
|
t(e, n);
|
|
}) : t(null, null);
|
|
});
|
|
}
|
|
function i(t, n, r, o) {
|
|
o || (o = p.g.loaders.slice(0));
|
|
var a = o.shift();
|
|
if (a) {
|
|
var s = a[t];
|
|
if (s) {
|
|
var u = !1;
|
|
if (s.apply(a, n.concat(function(e) {
|
|
u ? r(null) : null !== e ? r(e) : i(t, n, r, o);
|
|
})) !== e && (u = !0, !a.suppressLoaderExceptions)) throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.");
|
|
} else i(t, n, r, o);
|
|
} else r(null);
|
|
}
|
|
var r = {}, o = {};
|
|
p.g = {
|
|
get: function(n, i) {
|
|
var r = o.hasOwnProperty(n) ? o[n] : e;
|
|
r ? r.tc ? p.k.u(function() {
|
|
i(r.definition);
|
|
}) : setTimeout(function() {
|
|
i(r.definition);
|
|
}, 0) : t(n, i);
|
|
},
|
|
zb: function(e) {
|
|
delete o[e];
|
|
},
|
|
ob: i
|
|
}, p.g.loaders = [], p.b("components", p.g), p.b("components.get", p.g.get), p.b("components.clearCachedDefinition", p.g.zb);
|
|
}(), function() {
|
|
function e(e, t, n, i) {
|
|
function r() {
|
|
0 === --s && i(o);
|
|
}
|
|
var o = {}, s = 2, u = n.template;
|
|
n = n.viewModel, u ? a(t, u, function(t) {
|
|
p.g.ob("loadTemplate", [ e, t ], function(e) {
|
|
o.template = e, r();
|
|
});
|
|
}) : r(), n ? a(t, n, function(t) {
|
|
p.g.ob("loadViewModel", [ e, t ], function(e) {
|
|
o[c] = e, r();
|
|
});
|
|
}) : r();
|
|
}
|
|
function i(e, t, n) {
|
|
if ("function" == typeof t) n(function(e) {
|
|
return new t(e);
|
|
}); else if ("function" == typeof t[c]) n(t[c]); else if ("instance" in t) {
|
|
var r = t.instance;
|
|
n(function() {
|
|
return r;
|
|
});
|
|
} else "viewModel" in t ? i(e, t.viewModel, n) : e("Unknown viewModel value: " + t);
|
|
}
|
|
function r(e) {
|
|
switch (p.a.v(e)) {
|
|
case "script":
|
|
return p.a.ca(e.text);
|
|
|
|
case "textarea":
|
|
return p.a.ca(e.value);
|
|
|
|
case "template":
|
|
if (o(e.content)) return p.a.la(e.content.childNodes);
|
|
}
|
|
return p.a.la(e.childNodes);
|
|
}
|
|
function o(e) {
|
|
return t.DocumentFragment ? e instanceof DocumentFragment : e && 11 === e.nodeType;
|
|
}
|
|
function a(e, n, i) {
|
|
"string" == typeof n.require ? s || t.require ? (s || t.require)([ n.require ], i) : e("Uses require, but no AMD loader is present") : i(n);
|
|
}
|
|
function u(e) {
|
|
return function(t) {
|
|
throw Error("Component '" + e + "': " + t);
|
|
};
|
|
}
|
|
var l = {};
|
|
p.g.register = function(e, t) {
|
|
if (!t) throw Error("Invalid configuration for " + e);
|
|
if (p.g.Xa(e)) throw Error("Component " + e + " is already registered");
|
|
l[e] = t;
|
|
}, p.g.Xa = function(e) {
|
|
return e in l;
|
|
}, p.g.Ec = function(e) {
|
|
delete l[e], p.g.zb(e);
|
|
}, p.g.Ab = {
|
|
getConfig: function(e, t) {
|
|
t(l.hasOwnProperty(e) ? l[e] : null);
|
|
},
|
|
loadComponent: function(t, n, i) {
|
|
var r = u(t);
|
|
a(r, n, function(n) {
|
|
e(t, r, n, i);
|
|
});
|
|
},
|
|
loadTemplate: function(e, i, a) {
|
|
if (e = u(e), "string" == typeof i) a(p.a.ca(i)); else if (i instanceof Array) a(i); else if (o(i)) a(p.a.O(i.childNodes)); else if (i.element) if (i = i.element,
|
|
t.HTMLElement ? i instanceof HTMLElement : i && i.tagName && 1 === i.nodeType) a(r(i)); else if ("string" == typeof i) {
|
|
var s = n.getElementById(i);
|
|
s ? a(r(s)) : e("Cannot find element with ID " + i);
|
|
} else e("Unknown element type: " + i); else e("Unknown template value: " + i);
|
|
},
|
|
loadViewModel: function(e, t, n) {
|
|
i(u(e), t, n);
|
|
}
|
|
};
|
|
var c = "createViewModel";
|
|
p.b("components.register", p.g.register), p.b("components.isRegistered", p.g.Xa),
|
|
p.b("components.unregister", p.g.Ec), p.b("components.defaultLoader", p.g.Ab), p.g.loaders.push(p.g.Ab),
|
|
p.g.$b = l;
|
|
}(), function() {
|
|
function e(e, n) {
|
|
var i = e.getAttribute("params");
|
|
if (i) {
|
|
var i = t.parseBindingsString(i, n, e, {
|
|
valueAccessors: !0,
|
|
bindingParams: !0
|
|
}), i = p.a.pa(i, function(t) {
|
|
return p.w(t, null, {
|
|
q: e
|
|
});
|
|
}), r = p.a.pa(i, function(t) {
|
|
var n = t.B();
|
|
return t.$() ? p.w({
|
|
read: function() {
|
|
return p.a.c(t());
|
|
},
|
|
write: p.Da(n) && function(e) {
|
|
t()(e);
|
|
},
|
|
q: e
|
|
}) : n;
|
|
});
|
|
return r.hasOwnProperty("$raw") || (r.$raw = i), r;
|
|
}
|
|
return {
|
|
$raw: {}
|
|
};
|
|
}
|
|
p.g.getComponentNameForNode = function(e) {
|
|
return e = p.a.v(e), p.g.Xa(e) && e;
|
|
}, p.g.sb = function(t, n, i, r) {
|
|
if (1 === n.nodeType) {
|
|
var o = p.g.getComponentNameForNode(n);
|
|
if (o) {
|
|
if (t = t || {}, t.component) throw Error('Cannot use the "component" binding on a custom element matching a component');
|
|
var a = {
|
|
name: o,
|
|
params: e(n, i)
|
|
};
|
|
t.component = r ? function() {
|
|
return a;
|
|
} : a;
|
|
}
|
|
}
|
|
return t;
|
|
};
|
|
var t = new p.L();
|
|
9 > p.a.M && (p.g.register = function(e) {
|
|
return function(t) {
|
|
return n.createElement(t), e.apply(this, arguments);
|
|
};
|
|
}(p.g.register), n.createDocumentFragment = function(e) {
|
|
return function() {
|
|
var t, n = e(), i = p.g.$b;
|
|
for (t in i) i.hasOwnProperty(t) && n.createElement(t);
|
|
return n;
|
|
};
|
|
}(n.createDocumentFragment));
|
|
}(), function(e) {
|
|
function t(e, t, n) {
|
|
if (t = t.template, !t) throw Error("Component '" + e + "' has no template");
|
|
e = p.a.la(t), p.e.T(n, e);
|
|
}
|
|
function n(e, t, n, i) {
|
|
var r = e.createViewModel;
|
|
return r ? r.call(e, i, {
|
|
element: t,
|
|
templateNodes: n
|
|
}) : i;
|
|
}
|
|
var i = 0;
|
|
p.d.component = {
|
|
init: function(r, o, a, s, u) {
|
|
function l() {
|
|
var e = c && c.dispose;
|
|
"function" == typeof e && e.call(c), f = null;
|
|
}
|
|
var c, f, d = p.a.O(p.e.childNodes(r));
|
|
return p.a.C.fa(r, l), p.w(function() {
|
|
var a, s, h = p.a.c(o());
|
|
if ("string" == typeof h ? a = h : (a = p.a.c(h.name), s = p.a.c(h.params)), !a) throw Error("No component name specified");
|
|
var g = f = ++i;
|
|
p.g.get(a, function(i) {
|
|
if (f === g) {
|
|
if (l(), !i) throw Error("Unknown component '" + a + "'");
|
|
t(a, i, r);
|
|
var o = n(i, r, d, s);
|
|
i = u.createChildContext(o, e, function(e) {
|
|
e.$component = o, e.$componentTemplateNodes = d;
|
|
}), c = o, p.Ja(i, r);
|
|
}
|
|
});
|
|
}, null, {
|
|
q: r
|
|
}), {
|
|
controlsDescendantBindings: !0
|
|
};
|
|
}
|
|
}, p.e.R.component = !0;
|
|
}();
|
|
var m = {
|
|
"class": "className",
|
|
"for": "htmlFor"
|
|
};
|
|
p.d.attr = {
|
|
update: function(t, n) {
|
|
var i = p.a.c(n()) || {};
|
|
p.a.A(i, function(n, i) {
|
|
i = p.a.c(i);
|
|
var r = !1 === i || null === i || i === e;
|
|
r && t.removeAttribute(n), 8 >= p.a.M && n in m ? (n = m[n], r ? t.removeAttribute(n) : t[n] = i) : r || t.setAttribute(n, i.toString()),
|
|
"name" === n && p.a.Rb(t, r ? "" : i.toString());
|
|
});
|
|
}
|
|
}, function() {
|
|
p.d.checked = {
|
|
after: [ "value", "attr" ],
|
|
init: function(t, n, i) {
|
|
function r() {
|
|
var e = t.checked, r = f ? a() : e;
|
|
if (!p.Z.Ca() && (!u || e)) {
|
|
var o = p.k.u(n);
|
|
l ? c !== r ? (e && (p.a.ga(o, r, !0), p.a.ga(o, c, !1)), c = r) : p.a.ga(o, r, e) : p.h.ra(o, i, "checked", r, !0);
|
|
}
|
|
}
|
|
function o() {
|
|
var e = p.a.c(n());
|
|
t.checked = l ? 0 <= p.a.m(e, a()) : s ? e : a() === e;
|
|
}
|
|
var a = p.Nb(function() {
|
|
return i.has("checkedValue") ? p.a.c(i.get("checkedValue")) : i.has("value") ? p.a.c(i.get("value")) : t.value;
|
|
}), s = "checkbox" == t.type, u = "radio" == t.type;
|
|
if (s || u) {
|
|
var l = s && p.a.c(n()) instanceof Array, c = l ? a() : e, f = u || l;
|
|
u && !t.name && p.d.uniqueName.init(t, function() {
|
|
return !0;
|
|
}), p.w(r, null, {
|
|
q: t
|
|
}), p.a.n(t, "click", r), p.w(o, null, {
|
|
q: t
|
|
});
|
|
}
|
|
}
|
|
}, p.h.V.checked = !0, p.d.checkedValue = {
|
|
update: function(e, t) {
|
|
e.value = p.a.c(t());
|
|
}
|
|
};
|
|
}(), p.d.css = {
|
|
update: function(e, t) {
|
|
var n = p.a.c(t());
|
|
null !== n && "object" == typeof n ? p.a.A(n, function(t, n) {
|
|
n = p.a.c(n), p.a.Ia(e, t, n);
|
|
}) : (n = String(n || ""), p.a.Ia(e, e.__ko__cssValue, !1), e.__ko__cssValue = n,
|
|
p.a.Ia(e, n, !0));
|
|
}
|
|
}, p.d.enable = {
|
|
update: function(e, t) {
|
|
var n = p.a.c(t());
|
|
n && e.disabled ? e.removeAttribute("disabled") : n || e.disabled || (e.disabled = !0);
|
|
}
|
|
}, p.d.disable = {
|
|
update: function(e, t) {
|
|
p.d.enable.update(e, function() {
|
|
return !p.a.c(t());
|
|
});
|
|
}
|
|
}, p.d.event = {
|
|
init: function(e, t, n, i, r) {
|
|
var o = t() || {};
|
|
p.a.A(o, function(o) {
|
|
"string" == typeof o && p.a.n(e, o, function(e) {
|
|
var a, s = t()[o];
|
|
if (s) {
|
|
try {
|
|
var u = p.a.O(arguments);
|
|
i = r.$data, u.unshift(i), a = s.apply(i, u);
|
|
} finally {
|
|
!0 !== a && (e.preventDefault ? e.preventDefault() : e.returnValue = !1);
|
|
}
|
|
!1 === n.get(o + "Bubble") && (e.cancelBubble = !0, e.stopPropagation && e.stopPropagation());
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}, p.d.foreach = {
|
|
Ib: function(e) {
|
|
return function() {
|
|
var t = e(), n = p.a.cb(t);
|
|
return n && "number" != typeof n.length ? (p.a.c(t), {
|
|
foreach: n.data,
|
|
as: n.as,
|
|
includeDestroyed: n.includeDestroyed,
|
|
afterAdd: n.afterAdd,
|
|
beforeRemove: n.beforeRemove,
|
|
afterRender: n.afterRender,
|
|
beforeMove: n.beforeMove,
|
|
afterMove: n.afterMove,
|
|
templateEngine: p.P.Va
|
|
}) : {
|
|
foreach: t,
|
|
templateEngine: p.P.Va
|
|
};
|
|
};
|
|
},
|
|
init: function(e, t) {
|
|
return p.d.template.init(e, p.d.foreach.Ib(t));
|
|
},
|
|
update: function(e, t, n, i, r) {
|
|
return p.d.template.update(e, p.d.foreach.Ib(t), n, i, r);
|
|
}
|
|
}, p.h.ka.foreach = !1, p.e.R.foreach = !0, p.d.hasfocus = {
|
|
init: function(e, t, n) {
|
|
function i(i) {
|
|
e.__ko_hasfocusUpdating = !0;
|
|
var r = e.ownerDocument;
|
|
if ("activeElement" in r) {
|
|
var o;
|
|
try {
|
|
o = r.activeElement;
|
|
} catch (a) {
|
|
o = r.body;
|
|
}
|
|
i = o === e;
|
|
}
|
|
r = t(), p.h.ra(r, n, "hasfocus", i, !0), e.__ko_hasfocusLastValue = i, e.__ko_hasfocusUpdating = !1;
|
|
}
|
|
var r = i.bind(null, !0), o = i.bind(null, !1);
|
|
p.a.n(e, "focus", r), p.a.n(e, "focusin", r), p.a.n(e, "blur", o), p.a.n(e, "focusout", o);
|
|
},
|
|
update: function(e, t) {
|
|
var n = !!p.a.c(t());
|
|
e.__ko_hasfocusUpdating || e.__ko_hasfocusLastValue === n || (n ? e.focus() : e.blur(),
|
|
p.k.u(p.a.qa, null, [ e, n ? "focusin" : "focusout" ]));
|
|
}
|
|
}, p.h.V.hasfocus = !0, p.d.hasFocus = p.d.hasfocus, p.h.V.hasFocus = !0, p.d.html = {
|
|
init: function() {
|
|
return {
|
|
controlsDescendantBindings: !0
|
|
};
|
|
},
|
|
update: function(e, t) {
|
|
p.a.gb(e, t());
|
|
}
|
|
}, f("if"), f("ifnot", !1, !0), f("with", !0, !1, function(e, t) {
|
|
return e.createChildContext(t);
|
|
});
|
|
var v = {};
|
|
p.d.options = {
|
|
init: function(e) {
|
|
if ("select" !== p.a.v(e)) throw Error("options binding applies only to SELECT elements");
|
|
for (;0 < e.length; ) e.remove(0);
|
|
return {
|
|
controlsDescendantBindings: !0
|
|
};
|
|
},
|
|
update: function(t, n, i) {
|
|
function r() {
|
|
return p.a.xa(t.options, function(e) {
|
|
return e.selected;
|
|
});
|
|
}
|
|
function o(e, t, n) {
|
|
var i = typeof t;
|
|
return "function" == i ? t(e) : "string" == i ? e[t] : n;
|
|
}
|
|
function a(e, n) {
|
|
if (g && c) p.i.Y(t, p.a.c(i.get("value")), !0); else if (h.length) {
|
|
var r = 0 <= p.a.m(h, p.i.s(n[0]));
|
|
p.a.Sb(n[0], r), g && !r && p.k.u(p.a.qa, null, [ t, "change" ]);
|
|
}
|
|
}
|
|
var s = t.multiple, u = 0 != t.length && s ? t.scrollTop : null, l = p.a.c(n()), c = i.get("valueAllowUnset") && i.has("value"), f = i.get("optionsIncludeDestroyed");
|
|
n = {};
|
|
var d, h = [];
|
|
c || (s ? h = p.a.Ka(r(), p.i.s) : 0 <= t.selectedIndex && h.push(p.i.s(t.options[t.selectedIndex]))),
|
|
l && ("undefined" == typeof l.length && (l = [ l ]), d = p.a.xa(l, function(t) {
|
|
return f || t === e || null === t || !p.a.c(t._destroy);
|
|
}), i.has("optionsCaption") && (l = p.a.c(i.get("optionsCaption")), null !== l && l !== e && d.unshift(v)));
|
|
var g = !1;
|
|
n.beforeRemove = function(e) {
|
|
t.removeChild(e);
|
|
}, l = a, i.has("optionsAfterRender") && "function" == typeof i.get("optionsAfterRender") && (l = function(t, n) {
|
|
a(0, n), p.k.u(i.get("optionsAfterRender"), null, [ n[0], t !== v ? t : e ]);
|
|
}), p.a.fb(t, d, function(n, r, a) {
|
|
return a.length && (h = !c && a[0].selected ? [ p.i.s(a[0]) ] : [], g = !0), r = t.ownerDocument.createElement("option"),
|
|
n === v ? (p.a.Ha(r, i.get("optionsCaption")), p.i.Y(r, e)) : (a = o(n, i.get("optionsValue"), n),
|
|
p.i.Y(r, p.a.c(a)), n = o(n, i.get("optionsText"), a), p.a.Ha(r, n)), [ r ];
|
|
}, n, l), p.k.u(function() {
|
|
c ? p.i.Y(t, p.a.c(i.get("value")), !0) : (s ? h.length && r().length < h.length : h.length && 0 <= t.selectedIndex ? p.i.s(t.options[t.selectedIndex]) !== h[0] : h.length || 0 <= t.selectedIndex) && p.a.qa(t, "change");
|
|
}), p.a.kc(t), u && 20 < Math.abs(u - t.scrollTop) && (t.scrollTop = u);
|
|
}
|
|
}, p.d.options.ab = p.a.f.I(), p.d.selectedOptions = {
|
|
after: [ "options", "foreach" ],
|
|
init: function(e, t, n) {
|
|
p.a.n(e, "change", function() {
|
|
var i = t(), r = [];
|
|
p.a.o(e.getElementsByTagName("option"), function(e) {
|
|
e.selected && r.push(p.i.s(e));
|
|
}), p.h.ra(i, n, "selectedOptions", r);
|
|
});
|
|
},
|
|
update: function(e, t) {
|
|
if ("select" != p.a.v(e)) throw Error("values binding applies only to SELECT elements");
|
|
var n = p.a.c(t());
|
|
n && "number" == typeof n.length && p.a.o(e.getElementsByTagName("option"), function(e) {
|
|
var t = 0 <= p.a.m(n, p.i.s(e));
|
|
p.a.Sb(e, t);
|
|
});
|
|
}
|
|
}, p.h.V.selectedOptions = !0, p.d.style = {
|
|
update: function(t, n) {
|
|
var i = p.a.c(n() || {});
|
|
p.a.A(i, function(n, i) {
|
|
i = p.a.c(i), (null === i || i === e || !1 === i) && (i = ""), t.style[n] = i;
|
|
});
|
|
}
|
|
}, p.d.submit = {
|
|
init: function(e, t, n, i, r) {
|
|
if ("function" != typeof t()) throw Error("The value for a submit binding must be a function");
|
|
p.a.n(e, "submit", function(n) {
|
|
var i, o = t();
|
|
try {
|
|
i = o.call(r.$data, e);
|
|
} finally {
|
|
!0 !== i && (n.preventDefault ? n.preventDefault() : n.returnValue = !1);
|
|
}
|
|
});
|
|
}
|
|
}, p.d.text = {
|
|
init: function() {
|
|
return {
|
|
controlsDescendantBindings: !0
|
|
};
|
|
},
|
|
update: function(e, t) {
|
|
p.a.Ha(e, t());
|
|
}
|
|
}, p.e.R.text = !0, function() {
|
|
if (t && t.navigator) var n = function(e) {
|
|
return e ? parseFloat(e[1]) : void 0;
|
|
}, i = t.opera && t.opera.version && parseInt(t.opera.version()), r = t.navigator.userAgent, o = n(r.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)), a = n(r.match(/Firefox\/([^ ]*)/));
|
|
if (10 > p.a.M) var s = p.a.f.I(), u = p.a.f.I(), l = function(e) {
|
|
var t = this.activeElement;
|
|
(t = t && p.a.f.get(t, u)) && t(e);
|
|
}, c = function(e, t) {
|
|
var n = e.ownerDocument;
|
|
p.a.f.get(n, s) || (p.a.f.set(n, s, !0), p.a.n(n, "selectionchange", l)), p.a.f.set(e, u, t);
|
|
};
|
|
p.d.textInput = {
|
|
init: function(t, n, r) {
|
|
function s(e, n) {
|
|
p.a.n(t, e, n);
|
|
}
|
|
function u() {
|
|
var i = p.a.c(n());
|
|
(null === i || i === e) && (i = ""), h !== e && i === h ? setTimeout(u, 4) : t.value !== i && (g = i,
|
|
t.value = i);
|
|
}
|
|
function l() {
|
|
d || (h = t.value, d = setTimeout(f, 4));
|
|
}
|
|
function f() {
|
|
clearTimeout(d), h = d = e;
|
|
var i = t.value;
|
|
g !== i && (g = i, p.h.ra(n(), r, "textInput", i));
|
|
}
|
|
var d, h, g = t.value;
|
|
10 > p.a.M ? (s("propertychange", function(e) {
|
|
"value" === e.propertyName && f();
|
|
}), 8 == p.a.M && (s("keyup", f), s("keydown", f)), 8 <= p.a.M && (c(t, f), s("dragend", l))) : (s("input", f),
|
|
5 > o && "textarea" === p.a.v(t) ? (s("keydown", l), s("paste", l), s("cut", l)) : 11 > i ? s("keydown", l) : 4 > a && (s("DOMAutoComplete", f),
|
|
s("dragdrop", f), s("drop", f))), s("change", f), p.w(u, null, {
|
|
q: t
|
|
});
|
|
}
|
|
}, p.h.V.textInput = !0, p.d.textinput = {
|
|
preprocess: function(e, t, n) {
|
|
n("textInput", e);
|
|
}
|
|
};
|
|
}(), p.d.uniqueName = {
|
|
init: function(e, t) {
|
|
if (t()) {
|
|
var n = "ko_unique_" + ++p.d.uniqueName.fc;
|
|
p.a.Rb(e, n);
|
|
}
|
|
}
|
|
}, p.d.uniqueName.fc = 0, p.d.value = {
|
|
after: [ "options", "foreach" ],
|
|
init: function(e, t, n) {
|
|
if ("input" != e.tagName.toLowerCase() || "checkbox" != e.type && "radio" != e.type) {
|
|
var i = [ "change" ], r = n.get("valueUpdate"), o = !1, a = null;
|
|
r && ("string" == typeof r && (r = [ r ]), p.a.ia(i, r), i = p.a.wb(i));
|
|
var s = function() {
|
|
a = null, o = !1;
|
|
var i = t(), r = p.i.s(e);
|
|
p.h.ra(i, n, "value", r);
|
|
};
|
|
!p.a.M || "input" != e.tagName.toLowerCase() || "text" != e.type || "off" == e.autocomplete || e.form && "off" == e.form.autocomplete || -1 != p.a.m(i, "propertychange") || (p.a.n(e, "propertychange", function() {
|
|
o = !0;
|
|
}), p.a.n(e, "focus", function() {
|
|
o = !1;
|
|
}), p.a.n(e, "blur", function() {
|
|
o && s();
|
|
})), p.a.o(i, function(t) {
|
|
var n = s;
|
|
p.a.Dc(t, "after") && (n = function() {
|
|
a = p.i.s(e), setTimeout(s, 0);
|
|
}, t = t.substring(5)), p.a.n(e, t, n);
|
|
});
|
|
var u = function() {
|
|
var i = p.a.c(t()), r = p.i.s(e);
|
|
if (null !== a && i === a) setTimeout(u, 0); else if (i !== r) if ("select" === p.a.v(e)) {
|
|
var o = n.get("valueAllowUnset"), r = function() {
|
|
p.i.Y(e, i, o);
|
|
};
|
|
r(), o || i === p.i.s(e) ? setTimeout(r, 0) : p.k.u(p.a.qa, null, [ e, "change" ]);
|
|
} else p.i.Y(e, i);
|
|
};
|
|
p.w(u, null, {
|
|
q: e
|
|
});
|
|
} else p.va(e, {
|
|
checkedValue: t
|
|
});
|
|
},
|
|
update: function() {}
|
|
}, p.h.V.value = !0, p.d.visible = {
|
|
update: function(e, t) {
|
|
var n = p.a.c(t()), i = "none" != e.style.display;
|
|
n && !i ? e.style.display = "" : !n && i && (e.style.display = "none");
|
|
}
|
|
}, function(e) {
|
|
p.d[e] = {
|
|
init: function(t, n, i, r, o) {
|
|
return p.d.event.init.call(this, t, function() {
|
|
var t = {};
|
|
return t[e] = n(), t;
|
|
}, i, r, o);
|
|
}
|
|
};
|
|
}("click"), p.J = function() {}, p.J.prototype.renderTemplateSource = function() {
|
|
throw Error("Override renderTemplateSource");
|
|
}, p.J.prototype.createJavaScriptEvaluatorBlock = function() {
|
|
throw Error("Override createJavaScriptEvaluatorBlock");
|
|
}, p.J.prototype.makeTemplateSource = function(e, t) {
|
|
if ("string" == typeof e) {
|
|
t = t || n;
|
|
var i = t.getElementById(e);
|
|
if (!i) throw Error("Cannot find template with ID " + e);
|
|
return new p.t.l(i);
|
|
}
|
|
if (1 == e.nodeType || 8 == e.nodeType) return new p.t.ha(e);
|
|
throw Error("Unknown template type: " + e);
|
|
}, p.J.prototype.renderTemplate = function(e, t, n, i) {
|
|
return e = this.makeTemplateSource(e, i), this.renderTemplateSource(e, t, n, i);
|
|
}, p.J.prototype.isTemplateRewritten = function(e, t) {
|
|
return !1 === this.allowTemplateRewriting ? !0 : this.makeTemplateSource(e, t).data("isRewritten");
|
|
}, p.J.prototype.rewriteTemplate = function(e, t, n) {
|
|
e = this.makeTemplateSource(e, n), t = t(e.text()), e.text(t), e.data("isRewritten", !0);
|
|
}, p.b("templateEngine", p.J), p.kb = function() {
|
|
function e(e, t, n, i) {
|
|
e = p.h.bb(e);
|
|
for (var r = p.h.ka, o = 0; o < e.length; o++) {
|
|
var a = e[o].key;
|
|
if (r.hasOwnProperty(a)) {
|
|
var s = r[a];
|
|
if ("function" == typeof s) {
|
|
if (a = s(e[o].value)) throw Error(a);
|
|
} else if (!s) throw Error("This template engine does not support the '" + a + "' binding within its templates");
|
|
}
|
|
}
|
|
return n = "ko.__tr_ambtns(function($context,$element){return(function(){return{ " + p.h.Ea(e, {
|
|
valueAccessors: !0
|
|
}) + " } })()},'" + n.toLowerCase() + "')", i.createJavaScriptEvaluatorBlock(n) + t;
|
|
}
|
|
var t = /(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi, n = /\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;
|
|
return {
|
|
lc: function(e, t, n) {
|
|
t.isTemplateRewritten(e, n) || t.rewriteTemplate(e, function(e) {
|
|
return p.kb.xc(e, t);
|
|
}, n);
|
|
},
|
|
xc: function(i, r) {
|
|
return i.replace(t, function(t, n, i, o, a) {
|
|
return e(a, n, i, r);
|
|
}).replace(n, function(t, n) {
|
|
return e(n, "<!-- ko -->", "#comment", r);
|
|
});
|
|
},
|
|
dc: function(e, t) {
|
|
return p.H.$a(function(n, i) {
|
|
var r = n.nextSibling;
|
|
r && r.nodeName.toLowerCase() === t && p.va(r, e, i);
|
|
});
|
|
}
|
|
};
|
|
}(), p.b("__tr_ambtns", p.kb.dc), function() {
|
|
p.t = {}, p.t.l = function(e) {
|
|
this.l = e;
|
|
}, p.t.l.prototype.text = function() {
|
|
var e = p.a.v(this.l), e = "script" === e ? "text" : "textarea" === e ? "value" : "innerHTML";
|
|
if (0 == arguments.length) return this.l[e];
|
|
var t = arguments[0];
|
|
"innerHTML" === e ? p.a.gb(this.l, t) : this.l[e] = t;
|
|
};
|
|
var t = p.a.f.I() + "_";
|
|
p.t.l.prototype.data = function(e) {
|
|
return 1 === arguments.length ? p.a.f.get(this.l, t + e) : void p.a.f.set(this.l, t + e, arguments[1]);
|
|
};
|
|
var n = p.a.f.I();
|
|
p.t.ha = function(e) {
|
|
this.l = e;
|
|
}, p.t.ha.prototype = new p.t.l(), p.t.ha.prototype.text = function() {
|
|
if (0 == arguments.length) {
|
|
var t = p.a.f.get(this.l, n) || {};
|
|
return t.lb === e && t.Na && (t.lb = t.Na.innerHTML), t.lb;
|
|
}
|
|
p.a.f.set(this.l, n, {
|
|
lb: arguments[0]
|
|
});
|
|
}, p.t.l.prototype.nodes = function() {
|
|
return 0 == arguments.length ? (p.a.f.get(this.l, n) || {}).Na : void p.a.f.set(this.l, n, {
|
|
Na: arguments[0]
|
|
});
|
|
}, p.b("templateSources", p.t), p.b("templateSources.domElement", p.t.l), p.b("templateSources.anonymousTemplate", p.t.ha);
|
|
}(), function() {
|
|
function t(e, t, n) {
|
|
var i;
|
|
for (t = p.e.nextSibling(t); e && (i = e) !== t; ) e = p.e.nextSibling(i), n(i, e);
|
|
}
|
|
function n(e, n) {
|
|
if (e.length) {
|
|
var i = e[0], r = e[e.length - 1], o = i.parentNode, a = p.L.instance, s = a.preprocessNode;
|
|
if (s) {
|
|
if (t(i, r, function(e, t) {
|
|
var n = e.previousSibling, o = s.call(a, e);
|
|
o && (e === i && (i = o[0] || t), e === r && (r = o[o.length - 1] || n));
|
|
}), e.length = 0, !i) return;
|
|
i === r ? e.push(i) : (e.push(i, r), p.a.na(e, o));
|
|
}
|
|
t(i, r, function(e) {
|
|
1 !== e.nodeType && 8 !== e.nodeType || p.ub(n, e);
|
|
}), t(i, r, function(e) {
|
|
1 !== e.nodeType && 8 !== e.nodeType || p.H.Xb(e, [ n ]);
|
|
}), p.a.na(e, o);
|
|
}
|
|
}
|
|
function i(e) {
|
|
return e.nodeType ? e : 0 < e.length ? e[0] : null;
|
|
}
|
|
function r(e, t, r, o, s) {
|
|
s = s || {};
|
|
var u = (e && i(e) || r || {}).ownerDocument, l = s.templateEngine || a;
|
|
if (p.kb.lc(r, l, u), r = l.renderTemplate(r, o, s, u), "number" != typeof r.length || 0 < r.length && "number" != typeof r[0].nodeType) throw Error("Template engine must return an array of DOM nodes");
|
|
switch (u = !1, t) {
|
|
case "replaceChildren":
|
|
p.e.T(e, r), u = !0;
|
|
break;
|
|
|
|
case "replaceNode":
|
|
p.a.Qb(e, r), u = !0;
|
|
break;
|
|
|
|
case "ignoreTargetNode":
|
|
break;
|
|
|
|
default:
|
|
throw Error("Unknown renderMode: " + t);
|
|
}
|
|
return u && (n(r, o), s.afterRender && p.k.u(s.afterRender, null, [ r, o.$data ])),
|
|
r;
|
|
}
|
|
function o(e, t, n) {
|
|
return p.F(e) ? e() : "function" == typeof e ? e(t, n) : e;
|
|
}
|
|
var a;
|
|
p.hb = function(t) {
|
|
if (t != e && !(t instanceof p.J)) throw Error("templateEngine must inherit from ko.templateEngine");
|
|
a = t;
|
|
}, p.eb = function(t, n, s, u, l) {
|
|
if (s = s || {}, (s.templateEngine || a) == e) throw Error("Set a template engine before calling renderTemplate");
|
|
if (l = l || "replaceChildren", u) {
|
|
var c = i(u);
|
|
return p.j(function() {
|
|
var e = n && n instanceof p.N ? n : new p.N(p.a.c(n)), a = o(t, e.$data, e), e = r(u, l, a, e, s);
|
|
"replaceNode" == l && (u = e, c = i(u));
|
|
}, null, {
|
|
Pa: function() {
|
|
return !c || !p.a.Qa(c);
|
|
},
|
|
q: c && "replaceNode" == l ? c.parentNode : c
|
|
});
|
|
}
|
|
return p.H.$a(function(e) {
|
|
p.eb(t, n, s, e, "replaceNode");
|
|
});
|
|
}, p.Cc = function(t, i, a, s, u) {
|
|
function l(e, t) {
|
|
n(t, f), a.afterRender && a.afterRender(t, e), f = null;
|
|
}
|
|
function c(e, n) {
|
|
f = u.createChildContext(e, a.as, function(e) {
|
|
e.$index = n;
|
|
});
|
|
var i = o(t, e, f);
|
|
return r(null, "ignoreTargetNode", i, f, a);
|
|
}
|
|
var f;
|
|
return p.j(function() {
|
|
var t = p.a.c(i) || [];
|
|
"undefined" == typeof t.length && (t = [ t ]), t = p.a.xa(t, function(t) {
|
|
return a.includeDestroyed || t === e || null === t || !p.a.c(t._destroy);
|
|
}), p.k.u(p.a.fb, null, [ s, t, c, a, l ]);
|
|
}, null, {
|
|
q: s
|
|
});
|
|
};
|
|
var s = p.a.f.I();
|
|
p.d.template = {
|
|
init: function(e, t) {
|
|
var n = p.a.c(t());
|
|
if ("string" == typeof n || n.name) p.e.ma(e); else {
|
|
if ("nodes" in n) {
|
|
if (n = n.nodes || [], p.F(n)) throw Error('The "nodes" option must be a plain, non-observable array.');
|
|
} else n = p.e.childNodes(e);
|
|
n = p.a.Jb(n), new p.t.ha(e).nodes(n);
|
|
}
|
|
return {
|
|
controlsDescendantBindings: !0
|
|
};
|
|
},
|
|
update: function(t, n, i, r, o) {
|
|
var a, u = n();
|
|
n = p.a.c(u), i = !0, r = null, "string" == typeof n ? n = {} : (u = n.name, "if" in n && (i = p.a.c(n["if"])),
|
|
i && "ifnot" in n && (i = !p.a.c(n.ifnot)), a = p.a.c(n.data)), "foreach" in n ? r = p.Cc(u || t, i && n.foreach || [], n, t, o) : i ? (o = "data" in n ? o.createChildContext(a, n.as) : o,
|
|
r = p.eb(u || t, o, n, t)) : p.e.ma(t), o = r, (a = p.a.f.get(t, s)) && "function" == typeof a.p && a.p(),
|
|
p.a.f.set(t, s, o && o.$() ? o : e);
|
|
}
|
|
}, p.h.ka.template = function(e) {
|
|
return e = p.h.bb(e), 1 == e.length && e[0].unknown || p.h.vc(e, "name") ? null : "This template engine does not support anonymous templates nested within its templates";
|
|
}, p.e.R.template = !0;
|
|
}(), p.b("setTemplateEngine", p.hb), p.b("renderTemplate", p.eb), p.a.Cb = function(e, t, n) {
|
|
if (e.length && t.length) {
|
|
var i, r, o, a, s;
|
|
for (i = r = 0; (!n || n > i) && (a = e[r]); ++r) {
|
|
for (o = 0; s = t[o]; ++o) if (a.value === s.value) {
|
|
a.moved = s.index, s.moved = a.index, t.splice(o, 1), i = o = 0;
|
|
break;
|
|
}
|
|
i += o;
|
|
}
|
|
}
|
|
}, p.a.Ma = function() {
|
|
function e(e, t, n, i, r) {
|
|
var o, a, s, u, l, c = Math.min, f = Math.max, d = [], h = e.length, g = t.length, m = g - h || 1, v = h + g + 1;
|
|
for (o = 0; h >= o; o++) for (u = s, d.push(s = []), l = c(g, o + m), a = f(0, o - 1); l >= a; a++) s[a] = a ? o ? e[o - 1] === t[a - 1] ? u[a - 1] : c(u[a] || v, s[a - 1] || v) + 1 : a + 1 : o + 1;
|
|
for (c = [], f = [], m = [], o = h, a = g; o || a; ) g = d[o][a] - 1, a && g === d[o][a - 1] ? f.push(c[c.length] = {
|
|
status: n,
|
|
value: t[--a],
|
|
index: a
|
|
}) : o && g === d[o - 1][a] ? m.push(c[c.length] = {
|
|
status: i,
|
|
value: e[--o],
|
|
index: o
|
|
}) : (--a, --o, r.sparse || c.push({
|
|
status: "retained",
|
|
value: t[a]
|
|
}));
|
|
return p.a.Cb(f, m, 10 * h), c.reverse();
|
|
}
|
|
return function(t, n, i) {
|
|
return i = "boolean" == typeof i ? {
|
|
dontLimitMoves: i
|
|
} : i || {}, t = t || [], n = n || [], t.length <= n.length ? e(t, n, "added", "deleted", i) : e(n, t, "deleted", "added", i);
|
|
};
|
|
}(), p.b("utils.compareArrays", p.a.Ma), function() {
|
|
function t(t, n, i, r, o) {
|
|
var a = [], s = p.j(function() {
|
|
var e = n(i, o, p.a.na(a, t)) || [];
|
|
0 < a.length && (p.a.Qb(a, e), r && p.k.u(r, null, [ i, e, o ])), a.length = 0,
|
|
p.a.ia(a, e);
|
|
}, null, {
|
|
q: t,
|
|
Pa: function() {
|
|
return !p.a.tb(a);
|
|
}
|
|
});
|
|
return {
|
|
aa: a,
|
|
j: s.$() ? s : e
|
|
};
|
|
}
|
|
var n = p.a.f.I();
|
|
p.a.fb = function(i, r, o, a, s) {
|
|
function u(e, t) {
|
|
x = f[t], v !== t && (k[e] = x), x.Ua(v++), p.a.na(x.aa, i), g.push(x), b.push(x);
|
|
}
|
|
function l(e, t) {
|
|
if (e) for (var n = 0, i = t.length; i > n; n++) t[n] && p.a.o(t[n].aa, function(i) {
|
|
e(i, n, t[n].wa);
|
|
});
|
|
}
|
|
r = r || [], a = a || {};
|
|
var c = p.a.f.get(i, n) === e, f = p.a.f.get(i, n) || [], d = p.a.Ka(f, function(e) {
|
|
return e.wa;
|
|
}), h = p.a.Ma(d, r, a.dontLimitMoves), g = [], m = 0, v = 0, y = [], b = [];
|
|
r = [];
|
|
for (var x, w, C, k = [], d = [], T = 0; w = h[T]; T++) switch (C = w.moved, w.status) {
|
|
case "deleted":
|
|
C === e && (x = f[m], x.j && x.j.p(), y.push.apply(y, p.a.na(x.aa, i)), a.beforeRemove && (r[T] = x,
|
|
b.push(x))), m++;
|
|
break;
|
|
|
|
case "retained":
|
|
u(T, m++);
|
|
break;
|
|
|
|
case "added":
|
|
C !== e ? u(T, C) : (x = {
|
|
wa: w.value,
|
|
Ua: p.r(v++)
|
|
}, g.push(x), b.push(x), c || (d[T] = x));
|
|
}
|
|
l(a.beforeMove, k), p.a.o(y, a.beforeRemove ? p.S : p.removeNode);
|
|
for (var E, T = 0, c = p.e.firstChild(i); x = b[T]; T++) {
|
|
for (x.aa || p.a.extend(x, t(i, o, x.wa, s, x.Ua)), m = 0; h = x.aa[m]; c = h.nextSibling,
|
|
E = h, m++) h !== c && p.e.Fb(i, h, E);
|
|
!x.rc && s && (s(x.wa, x.aa, x.Ua), x.rc = !0);
|
|
}
|
|
l(a.beforeRemove, r), l(a.afterMove, k), l(a.afterAdd, d), p.a.f.set(i, n, g);
|
|
};
|
|
}(), p.b("utils.setDomNodeChildrenFromArrayMapping", p.a.fb), p.P = function() {
|
|
this.allowTemplateRewriting = !1;
|
|
}, p.P.prototype = new p.J(), p.P.prototype.renderTemplateSource = function(e, t, n, i) {
|
|
return (t = (9 > p.a.M ? 0 : e.nodes) ? e.nodes() : null) ? p.a.O(t.cloneNode(!0).childNodes) : (e = e.text(),
|
|
p.a.ca(e, i));
|
|
}, p.P.Va = new p.P(), p.hb(p.P.Va), p.b("nativeTemplateEngine", p.P), function() {
|
|
p.Ya = function() {
|
|
var e = this.uc = function() {
|
|
if (!r || !r.tmpl) return 0;
|
|
try {
|
|
if (0 <= r.tmpl.tag.tmpl.open.toString().indexOf("__")) return 2;
|
|
} catch (e) {}
|
|
return 1;
|
|
}();
|
|
this.renderTemplateSource = function(t, i, o, a) {
|
|
if (a = a || n, o = o || {}, 2 > e) throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");
|
|
var s = t.data("precompiled");
|
|
return s || (s = t.text() || "", s = r.template(null, "{{ko_with $item.koBindingContext}}" + s + "{{/ko_with}}"),
|
|
t.data("precompiled", s)), t = [ i.$data ], i = r.extend({
|
|
koBindingContext: i
|
|
}, o.templateOptions), i = r.tmpl(s, t, i), i.appendTo(a.createElement("div")),
|
|
r.fragments = {}, i;
|
|
}, this.createJavaScriptEvaluatorBlock = function(e) {
|
|
return "{{ko_code ((function() { return " + e + " })()) }}";
|
|
}, this.addTemplate = function(e, t) {
|
|
n.write("<script type='text/html' id='" + e + "'>" + t + "</script>");
|
|
}, e > 0 && (r.tmpl.tag.ko_code = {
|
|
open: "__.push($1 || '');"
|
|
}, r.tmpl.tag.ko_with = {
|
|
open: "with($1) {",
|
|
close: "} "
|
|
});
|
|
}, p.Ya.prototype = new p.J();
|
|
var e = new p.Ya();
|
|
0 < e.uc && p.hb(e), p.b("jqueryTmplTemplateEngine", p.Ya);
|
|
}();
|
|
});
|
|
}();
|
|
}(), /*! Knockout projections plugin - version 1.1.0
|
|
------------------------------------------------------------------------------
|
|
Copyright (c) Microsoft Corporation
|
|
All rights reserved.
|
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
See the Apache Version 2.0 License for specific language governing permissions and limitations under the License.
|
|
------------------------------------------------------------------------------
|
|
*/
|
|
function(e, t) {
|
|
function n(e, t, n, i, r, o, a) {
|
|
this.inputItem = t, this.stateArrayIndex = n, this.mappingOptions = r, this.arrayOfState = o,
|
|
this.outputObservableArray = a, this.outputArray = this.outputObservableArray.peek(),
|
|
this.isIncluded = null, this.suppressNotification = !1, this.outputArrayIndex = e.observable(i),
|
|
this.disposeFuncFromMostRecentMapping = null, this.mappedValueComputed = e.computed(this.mappingEvaluator, this),
|
|
this.mappedValueComputed.subscribe(this.onMappingResultChanged, this), this.previousMappedValue = this.mappedValueComputed.peek();
|
|
}
|
|
function i(e, t) {
|
|
if (!e) return null;
|
|
switch (e.status) {
|
|
case "added":
|
|
return e.index;
|
|
|
|
case "deleted":
|
|
return e.index + t;
|
|
|
|
default:
|
|
throw new Error("Unknown diff status: " + e.status);
|
|
}
|
|
}
|
|
function r(e, t, i, r, o, a, s, u, l) {
|
|
var c = "number" == typeof t.moved, f = c ? i[t.moved] : new n(e, t.value, r, o, a, s, u);
|
|
return s.splice(r, 0, f), f.isIncluded && l.splice(o, 0, f.mappedValueComputed.peek()),
|
|
c && (f.stateArrayIndex = r, f.setOutputArrayIndexSilently(o)), f;
|
|
}
|
|
function o(e, t, n, i, r) {
|
|
var o = t.splice(n, 1)[0];
|
|
o.isIncluded && r.splice(i, 1), "number" != typeof e.moved && o.dispose();
|
|
}
|
|
function a(e, t, n) {
|
|
return e.stateArrayIndex = t, e.setOutputArrayIndexSilently(n), n + (e.isIncluded ? 1 : 0);
|
|
}
|
|
function s(e, t) {
|
|
for (var n = {}, i = 0; i < e.length; i++) {
|
|
var r = e[i];
|
|
"added" === r.status && "number" == typeof r.moved && (n[r.moved] = t[r.moved]);
|
|
}
|
|
return n;
|
|
}
|
|
function u(e, t, n) {
|
|
return n.length && t[e.index] ? t[e.index].outputArrayIndex.peek() : n.length;
|
|
}
|
|
function l(e, t, n, l, c, f) {
|
|
return t.subscribe(function(t) {
|
|
if (t.length) {
|
|
for (var p = s(t, n), d = 0, h = t[0], g = 0, m = h && u(h, n, l), v = h.index; h || v < n.length; v++) if (i(h, g) === v) {
|
|
switch (h.status) {
|
|
case "added":
|
|
var y = r(e, h, p, v, m, f, n, c, l);
|
|
y.isIncluded && m++, g++;
|
|
break;
|
|
|
|
case "deleted":
|
|
o(h, n, v, m, l), g--, v--;
|
|
break;
|
|
|
|
default:
|
|
throw new Error("Unknown diff status: " + h.status);
|
|
}
|
|
d++, h = t[d];
|
|
} else v < n.length && (m = a(n[v], v, m));
|
|
c.valueHasMutated();
|
|
}
|
|
}, null, "arrayChange");
|
|
}
|
|
function c(e, t) {
|
|
var i = this, r = [], o = [], a = e.observableArray(o), s = i.peek();
|
|
if ("function" == typeof t && (t = {
|
|
mapping: t
|
|
}), t.mappingWithDisposeCallback) {
|
|
if (t.mapping || t.disposeItem) throw new Error("'mappingWithDisposeCallback' cannot be used in conjunction with 'mapping' or 'disposeItem'.");
|
|
} else if (!t.mapping) throw new Error("Specify either 'mapping' or 'mappingWithDisposeCallback'.");
|
|
for (var u = 0; u < s.length; u++) {
|
|
var c = s[u], f = new n(e, c, u, o.length, t, r, a), p = f.mappedValueComputed.peek();
|
|
r.push(f), f.isIncluded && o.push(p);
|
|
}
|
|
var h = l(e, i, r, o, a, t), g = e.computed(a).extend({
|
|
trackArrayChanges: !0
|
|
}), m = g.dispose;
|
|
return g.dispose = function() {
|
|
h.dispose(), e.utils.arrayForEach(r, function(e) {
|
|
e.dispose();
|
|
}), m.call(this, arguments);
|
|
}, d(e, g), g;
|
|
}
|
|
function f(e, t) {
|
|
return c.call(this, e, function(e) {
|
|
return t(e) ? e : m;
|
|
});
|
|
}
|
|
function p(e) {
|
|
function t(e, t) {
|
|
return function() {
|
|
return t.apply(this, [ e ].concat(Array.prototype.slice.call(arguments, 0)));
|
|
};
|
|
}
|
|
e[v] = {
|
|
map: t(e, c),
|
|
filter: t(e, f)
|
|
};
|
|
}
|
|
function d(e, t) {
|
|
return e.utils.extend(t, e[v]), t;
|
|
}
|
|
function h(e) {
|
|
e.projections = {
|
|
_exclusionMarker: m
|
|
}, p(e), d(e, e.observableArray.fn);
|
|
}
|
|
function g() {
|
|
if ("undefined" != typeof module && "undefined" != typeof module.exports) {
|
|
var t = require("knockout");
|
|
h(t), module.exports = t;
|
|
} else "function" == typeof define && define.amd ? define("knockout-projections", [ "knockout" ], h) : "ko" in e && h(e.ko);
|
|
}
|
|
var m = {};
|
|
n.prototype.dispose = function() {
|
|
this.mappedValueComputed.dispose(), this.disposeResultFromMostRecentEvaluation();
|
|
}, n.prototype.disposeResultFromMostRecentEvaluation = function() {
|
|
if (this.disposeFuncFromMostRecentMapping && (this.disposeFuncFromMostRecentMapping(),
|
|
this.disposeFuncFromMostRecentMapping = null), this.mappingOptions.disposeItem) {
|
|
var e = this.mappedValueComputed();
|
|
this.mappingOptions.disposeItem(e);
|
|
}
|
|
}, n.prototype.mappingEvaluator = function() {
|
|
null !== this.isIncluded && this.disposeResultFromMostRecentEvaluation();
|
|
var e;
|
|
if (this.mappingOptions.mapping) e = this.mappingOptions.mapping(this.inputItem, this.outputArrayIndex); else {
|
|
if (!this.mappingOptions.mappingWithDisposeCallback) throw new Error("No mapping callback given.");
|
|
var t = this.mappingOptions.mappingWithDisposeCallback(this.inputItem, this.outputArrayIndex);
|
|
if (!("mappedValue" in t)) throw new Error("Return value from mappingWithDisposeCallback should have a 'mappedItem' property.");
|
|
e = t.mappedValue, this.disposeFuncFromMostRecentMapping = t.dispose;
|
|
}
|
|
var n = e !== m;
|
|
return this.isIncluded !== n && (null !== this.isIncluded && this.moveSubsequentItemsBecauseInclusionStateChanged(n),
|
|
this.isIncluded = n), e;
|
|
}, n.prototype.onMappingResultChanged = function(e) {
|
|
e !== this.previousMappedValue && (this.isIncluded && this.outputArray.splice(this.outputArrayIndex.peek(), 1, e),
|
|
this.suppressNotification || this.outputObservableArray.valueHasMutated(), this.previousMappedValue = e);
|
|
}, n.prototype.moveSubsequentItemsBecauseInclusionStateChanged = function(e) {
|
|
var t, n, i = this.outputArrayIndex.peek();
|
|
if (e) for (this.outputArray.splice(i, 0, null), t = this.stateArrayIndex + 1; t < this.arrayOfState.length; t++) n = this.arrayOfState[t],
|
|
n.setOutputArrayIndexSilently(n.outputArrayIndex.peek() + 1); else for (this.outputArray.splice(i, 1),
|
|
t = this.stateArrayIndex + 1; t < this.arrayOfState.length; t++) n = this.arrayOfState[t],
|
|
n.setOutputArrayIndexSilently(n.outputArrayIndex.peek() - 1);
|
|
}, n.prototype.setOutputArrayIndexSilently = function(e) {
|
|
this.suppressNotification = !0, this.outputArrayIndex(e), this.suppressNotification = !1;
|
|
};
|
|
var v = "_ko.projections.cache";
|
|
g();
|
|
}(this), function(e) {
|
|
function t(e, t, n, i, r) {
|
|
this._listener = t, this._isOnce = n, this.context = i, this._signal = e, this._priority = r || 0;
|
|
}
|
|
function n(e, t) {
|
|
if ("function" != typeof e) throw Error("listener is a required param of {fn}() and should be a Function.".replace("{fn}", t));
|
|
}
|
|
function i() {
|
|
this._bindings = [], this._prevParams = null;
|
|
var e = this;
|
|
this.dispatch = function() {
|
|
i.prototype.dispatch.apply(e, arguments);
|
|
};
|
|
}
|
|
t.prototype = {
|
|
active: !0,
|
|
params: null,
|
|
execute: function(e) {
|
|
var t;
|
|
return this.active && this._listener && (e = this.params ? this.params.concat(e) : e,
|
|
t = this._listener.apply(this.context, e), this._isOnce && this.detach()), t;
|
|
},
|
|
detach: function() {
|
|
return this.isBound() ? this._signal.remove(this._listener, this.context) : null;
|
|
},
|
|
isBound: function() {
|
|
return !!this._signal && !!this._listener;
|
|
},
|
|
isOnce: function() {
|
|
return this._isOnce;
|
|
},
|
|
getListener: function() {
|
|
return this._listener;
|
|
},
|
|
getSignal: function() {
|
|
return this._signal;
|
|
},
|
|
_destroy: function() {
|
|
delete this._signal, delete this._listener, delete this.context;
|
|
},
|
|
toString: function() {
|
|
return "[SignalBinding isOnce:" + this._isOnce + ", isBound:" + this.isBound() + ", active:" + this.active + "]";
|
|
}
|
|
}, i.prototype = {
|
|
VERSION: "1.0.0",
|
|
memorize: !1,
|
|
_shouldPropagate: !0,
|
|
active: !0,
|
|
_registerListener: function(e, n, i, r) {
|
|
var o = this._indexOfListener(e, i);
|
|
if (-1 !== o) {
|
|
if (e = this._bindings[o], e.isOnce() !== n) throw Error("You cannot add" + (n ? "" : "Once") + "() then add" + (n ? "Once" : "") + "() the same listener without removing the relationship first.");
|
|
} else e = new t(this, e, n, i, r), this._addBinding(e);
|
|
return this.memorize && this._prevParams && e.execute(this._prevParams), e;
|
|
},
|
|
_addBinding: function(e) {
|
|
var t = this._bindings.length;
|
|
do --t; while (this._bindings[t] && e._priority <= this._bindings[t]._priority);
|
|
this._bindings.splice(t + 1, 0, e);
|
|
},
|
|
_indexOfListener: function(e, t) {
|
|
for (var n, i = this._bindings.length; i--; ) if (n = this._bindings[i], n._listener === e && n.context === t) return i;
|
|
return -1;
|
|
},
|
|
has: function(e, t) {
|
|
return -1 !== this._indexOfListener(e, t);
|
|
},
|
|
add: function(e, t, i) {
|
|
return n(e, "add"), this._registerListener(e, !1, t, i);
|
|
},
|
|
addOnce: function(e, t, i) {
|
|
return n(e, "addOnce"), this._registerListener(e, !0, t, i);
|
|
},
|
|
remove: function(e, t) {
|
|
n(e, "remove");
|
|
var i = this._indexOfListener(e, t);
|
|
return -1 !== i && (this._bindings[i]._destroy(), this._bindings.splice(i, 1)),
|
|
e;
|
|
},
|
|
removeAll: function() {
|
|
for (var e = this._bindings.length; e--; ) this._bindings[e]._destroy();
|
|
this._bindings.length = 0;
|
|
},
|
|
getNumListeners: function() {
|
|
return this._bindings.length;
|
|
},
|
|
halt: function() {
|
|
this._shouldPropagate = !1;
|
|
},
|
|
dispatch: function(e) {
|
|
if (this.active) {
|
|
var t, n = Array.prototype.slice.call(arguments), i = this._bindings.length;
|
|
if (this.memorize && (this._prevParams = n), i) {
|
|
t = this._bindings.slice(), this._shouldPropagate = !0;
|
|
do i--; while (t[i] && this._shouldPropagate && t[i].execute(n) !== !1);
|
|
}
|
|
}
|
|
},
|
|
forget: function() {
|
|
this._prevParams = null;
|
|
},
|
|
dispose: function() {
|
|
this.removeAll(), delete this._bindings, delete this._prevParams;
|
|
},
|
|
toString: function() {
|
|
return "[Signal active:" + this.active + " numListeners:" + this.getNumListeners() + "]";
|
|
}
|
|
};
|
|
var r = i;
|
|
r.Signal = i, "function" == typeof define && define.amd ? define("signals", [], function() {
|
|
return r;
|
|
}) : "undefined" != typeof module && module.exports ? module.exports = r : e.signals = r;
|
|
}(this), function() {
|
|
var e = function(e) {
|
|
function t(e, t) {
|
|
if (e.indexOf) return e.indexOf(t);
|
|
for (var n = e.length; n--; ) if (e[n] === t) return n;
|
|
return -1;
|
|
}
|
|
function n(e, n) {
|
|
var i = t(e, n);
|
|
-1 !== i && e.splice(i, 1);
|
|
}
|
|
function i(e, t) {
|
|
return "[object " + t + "]" === Object.prototype.toString.call(e);
|
|
}
|
|
function r(e) {
|
|
return i(e, "RegExp");
|
|
}
|
|
function o(e) {
|
|
return i(e, "Array");
|
|
}
|
|
function a(e) {
|
|
return "function" == typeof e;
|
|
}
|
|
function s(e) {
|
|
var t;
|
|
return t = null === e || "null" === e ? null : "true" === e ? !0 : "false" === e ? !1 : e === h || "undefined" === e ? h : "" === e || isNaN(e) ? e : parseFloat(e);
|
|
}
|
|
function u(e) {
|
|
for (var t = e.length, n = []; t--; ) n[t] = s(e[t]);
|
|
return n;
|
|
}
|
|
function l(e, t) {
|
|
for (var n, i, r, a, u = (e || "").replace("?", "").split("&"), l = -1, c = {}; i = u[++l]; ) n = i.indexOf("="),
|
|
a = i.substring(0, n), r = decodeURIComponent(i.substring(n + 1)), t !== !1 && (r = s(r)),
|
|
a in c ? o(c[a]) ? c[a].push(r) : c[a] = [ c[a], r ] : c[a] = r;
|
|
return c;
|
|
}
|
|
function c() {
|
|
this.bypassed = new e.Signal(), this.routed = new e.Signal(), this._routes = [],
|
|
this._prevRoutes = [], this._piped = [], this.resetState();
|
|
}
|
|
function f(t, n, i, o) {
|
|
var a = r(t), s = o.patternLexer;
|
|
this._router = o, this._pattern = t, this._paramsIds = a ? null : s.getParamIds(t),
|
|
this._optionalParamsIds = a ? null : s.getOptionalParamsIds(t), this._matchRegexp = a ? t : s.compilePattern(t, o.ignoreCase),
|
|
this.matched = new e.Signal(), this.switched = new e.Signal(), n && this.matched.add(n),
|
|
this._priority = i || 0;
|
|
}
|
|
var p, d, h;
|
|
return d = "" === /t(.+)?/.exec("t")[1], c.prototype = {
|
|
greedy: !1,
|
|
greedyEnabled: !0,
|
|
ignoreCase: !0,
|
|
ignoreState: !1,
|
|
shouldTypecast: !1,
|
|
normalizeFn: null,
|
|
resetState: function() {
|
|
this._prevRoutes.length = 0, this._prevMatchedRequest = null, this._prevBypassedRequest = null;
|
|
},
|
|
create: function() {
|
|
return new c();
|
|
},
|
|
addRoute: function(e, t, n) {
|
|
var i = new f(e, t, n, this);
|
|
return this._sortedInsert(i), i;
|
|
},
|
|
removeRoute: function(e) {
|
|
n(this._routes, e), e._destroy();
|
|
},
|
|
removeAllRoutes: function() {
|
|
for (var e = this.getNumRoutes(); e--; ) this._routes[e]._destroy();
|
|
this._routes.length = 0;
|
|
},
|
|
parse: function(e, t) {
|
|
if (e = e || "", t = t || [], this.ignoreState || e !== this._prevMatchedRequest && e !== this._prevBypassedRequest) {
|
|
var n, i = this._getMatchedRoutes(e), r = 0, o = i.length;
|
|
if (o) for (this._prevMatchedRequest = e, this._notifyPrevRoutes(i, e), this._prevRoutes = i; o > r; ) n = i[r],
|
|
n.route.matched.dispatch.apply(n.route.matched, t.concat(n.params)), n.isFirst = !r,
|
|
this.routed.dispatch.apply(this.routed, t.concat([ e, n ])), r += 1; else this._prevBypassedRequest = e,
|
|
this.bypassed.dispatch.apply(this.bypassed, t.concat([ e ]));
|
|
this._pipeParse(e, t);
|
|
}
|
|
},
|
|
_notifyPrevRoutes: function(e, t) {
|
|
for (var n, i = 0; n = this._prevRoutes[i++]; ) n.route.switched && this._didSwitch(n.route, e) && n.route.switched.dispatch(t);
|
|
},
|
|
_didSwitch: function(e, t) {
|
|
for (var n, i = 0; n = t[i++]; ) if (n.route === e) return !1;
|
|
return !0;
|
|
},
|
|
_pipeParse: function(e, t) {
|
|
for (var n, i = 0; n = this._piped[i++]; ) n.parse(e, t);
|
|
},
|
|
getNumRoutes: function() {
|
|
return this._routes.length;
|
|
},
|
|
_sortedInsert: function(e) {
|
|
var t = this._routes, n = t.length;
|
|
do --n; while (t[n] && e._priority <= t[n]._priority);
|
|
t.splice(n + 1, 0, e);
|
|
},
|
|
_getMatchedRoutes: function(e) {
|
|
for (var t, n = [], i = this._routes, r = i.length; (t = i[--r]) && ((!n.length || this.greedy || t.greedy) && t.match(e) && n.push({
|
|
route: t,
|
|
params: t._getParamsArray(e)
|
|
}), this.greedyEnabled || !n.length); ) ;
|
|
return n;
|
|
},
|
|
pipe: function(e) {
|
|
this._piped.push(e);
|
|
},
|
|
unpipe: function(e) {
|
|
n(this._piped, e);
|
|
},
|
|
toString: function() {
|
|
return "[crossroads numRoutes:" + this.getNumRoutes() + "]";
|
|
}
|
|
}, p = new c(), p.VERSION = "0.12.2", p.NORM_AS_ARRAY = function(e, t) {
|
|
return [ t.vals_ ];
|
|
}, p.NORM_AS_OBJECT = function(e, t) {
|
|
return [ t ];
|
|
}, f.prototype = {
|
|
greedy: !1,
|
|
rules: void 0,
|
|
match: function(e) {
|
|
return e = e || "", this._matchRegexp.test(e) && this._validateParams(e);
|
|
},
|
|
_validateParams: function(e) {
|
|
var t, n = this.rules, i = this._getParamsObject(e);
|
|
for (t in n) if ("normalize_" !== t && n.hasOwnProperty(t) && !this._isValidParam(e, t, i)) return !1;
|
|
return !0;
|
|
},
|
|
_isValidParam: function(e, n, i) {
|
|
var s = this.rules[n], u = i[n], l = !1, c = 0 === n.indexOf("?");
|
|
return null == u && this._optionalParamsIds && -1 !== t(this._optionalParamsIds, n) ? l = !0 : r(s) ? (c && (u = i[n + "_"]),
|
|
l = s.test(u)) : o(s) ? (c && (u = i[n + "_"]), l = this._isValidArrayRule(s, u)) : a(s) && (l = s(u, e, i)),
|
|
l;
|
|
},
|
|
_isValidArrayRule: function(e, n) {
|
|
if (!this._router.ignoreCase) return -1 !== t(e, n);
|
|
"string" == typeof n && (n = n.toLowerCase());
|
|
for (var i, r, o = e.length; o--; ) if (i = e[o], r = "string" == typeof i ? i.toLowerCase() : i,
|
|
r === n) return !0;
|
|
return !1;
|
|
},
|
|
_getParamsObject: function(e) {
|
|
for (var n, i, r = this._router.shouldTypecast, o = this._router.patternLexer.getParamValues(e, this._matchRegexp, r), a = {}, u = o.length; u--; ) i = o[u],
|
|
this._paramsIds && (n = this._paramsIds[u], 0 === n.indexOf("?") && i && (a[n + "_"] = i,
|
|
i = l(i, r), o[u] = i), d && "" === i && -1 !== t(this._optionalParamsIds, n) && (i = void 0,
|
|
o[u] = i), a[n] = i), a[u] = i;
|
|
return a.request_ = r ? s(e) : e, a.vals_ = o, a;
|
|
},
|
|
_getParamsArray: function(e) {
|
|
var t, n = this.rules ? this.rules.normalize_ : null;
|
|
return n = n || this._router.normalizeFn, t = n && a(n) ? n(e, this._getParamsObject(e)) : this._getParamsObject(e).vals_;
|
|
},
|
|
interpolate: function(e) {
|
|
var t = this._router.patternLexer.interpolate(this._pattern, e);
|
|
if (!this._validateParams(t)) throw new Error("Generated string doesn't validate against `Route.rules`.");
|
|
return t;
|
|
},
|
|
dispose: function() {
|
|
this._router.removeRoute(this);
|
|
},
|
|
_destroy: function() {
|
|
this.matched.dispose(), this.switched.dispose(), this.matched = this.switched = this._pattern = this._matchRegexp = null;
|
|
},
|
|
toString: function() {
|
|
return '[Route pattern:"' + this._pattern + '", numListeners:' + this.matched.getNumListeners() + "]";
|
|
}
|
|
}, c.prototype.patternLexer = function() {
|
|
function e() {
|
|
var e, t;
|
|
for (e in h) h.hasOwnProperty(e) && (t = h[e], t.id = "__CR_" + e + "__", t.save = "save" in t ? t.save.replace("{{id}}", t.id) : t.id,
|
|
t.rRestore = new RegExp(t.id, "g"));
|
|
}
|
|
function t(e, t) {
|
|
var n, i = [];
|
|
for (e.lastIndex = 0; n = e.exec(t); ) i.push(n[1]);
|
|
return i;
|
|
}
|
|
function n(e) {
|
|
return t(d, e);
|
|
}
|
|
function i(e) {
|
|
return t(h.OP.rgx, e);
|
|
}
|
|
function r(e, t) {
|
|
return e = e || "", e && (y === g ? e = e.replace(f, "") : y === v && (e = e.replace(p, "")),
|
|
e = a(e, "rgx", "save"), e = e.replace(c, "\\$&"), e = a(e, "rRestore", "res"),
|
|
y === g && (e = "\\/?" + e)), y !== m && (e += "\\/?"), new RegExp("^" + e + "$", t ? "i" : "");
|
|
}
|
|
function a(e, t, n) {
|
|
var i, r;
|
|
for (r in h) h.hasOwnProperty(r) && (i = h[r], e = e.replace(i[t], i[n]));
|
|
return e;
|
|
}
|
|
function s(e, t, n) {
|
|
var i = t.exec(e);
|
|
return i && (i.shift(), n && (i = u(i))), i;
|
|
}
|
|
function l(e, t) {
|
|
if (t = t || {}, "string" != typeof e) throw new Error("Route pattern should be a string.");
|
|
var n = function(e, n) {
|
|
var i;
|
|
if (n = "?" === n.substr(0, 1) ? n.substr(1) : n, null != t[n]) {
|
|
if ("object" == typeof t[n]) {
|
|
var r, a = [];
|
|
for (var s in t[n]) if (r = t[n][s], o(r)) for (var u in r) "[]" == s.slice(-2) ? a.push(encodeURI(s.slice(0, -2)) + "[]=" + encodeURI(r[u])) : a.push(encodeURI(s + "=" + r[u])); else a.push(encodeURI(s + "=" + r));
|
|
i = "?" + a.join("&");
|
|
} else i = String(t[n]);
|
|
if (-1 === e.indexOf("*") && -1 !== i.indexOf("/")) throw new Error('Invalid value "' + i + '" for segment "' + e + '".');
|
|
} else {
|
|
if (-1 !== e.indexOf("{")) throw new Error("The segment " + e + " is required.");
|
|
i = "";
|
|
}
|
|
return i;
|
|
};
|
|
return h.OS.trail || (h.OS.trail = new RegExp("(?:" + h.OS.id + ")+$")), e.replace(h.OS.rgx, h.OS.save).replace(d, n).replace(h.OS.trail, "").replace(h.OS.rRestore, "/");
|
|
}
|
|
var c = /[\\.+*?\^$\[\](){}\/'#]/g, f = /^\/|\/$/g, p = /\/$/g, d = /(?:\{|:)([^}:]+)(?:\}|:)/g, h = {
|
|
OS: {
|
|
rgx: /([:}]|\w(?=\/))\/?(:|(?:\{\?))/g,
|
|
save: "$1{{id}}$2",
|
|
res: "\\/?"
|
|
},
|
|
RS: {
|
|
rgx: /([:}])\/?(\{)/g,
|
|
save: "$1{{id}}$2",
|
|
res: "\\/"
|
|
},
|
|
RQ: {
|
|
rgx: /\{\?([^}]+)\}/g,
|
|
res: "\\?([^#]+)"
|
|
},
|
|
OQ: {
|
|
rgx: /:\?([^:]+):/g,
|
|
res: "(?:\\?([^#]*))?"
|
|
},
|
|
OR: {
|
|
rgx: /:([^:]+)\*:/g,
|
|
res: "(.*)?"
|
|
},
|
|
RR: {
|
|
rgx: /\{([^}]+)\*\}/g,
|
|
res: "(.+)"
|
|
},
|
|
RP: {
|
|
rgx: /\{([^}]+)\}/g,
|
|
res: "([^\\/?]+)"
|
|
},
|
|
OP: {
|
|
rgx: /:([^:]+):/g,
|
|
res: "([^\\/?]+)?/?"
|
|
}
|
|
}, g = 1, m = 2, v = 3, y = g;
|
|
return e(), {
|
|
strict: function() {
|
|
y = m;
|
|
},
|
|
loose: function() {
|
|
y = g;
|
|
},
|
|
legacy: function() {
|
|
y = v;
|
|
},
|
|
getParamIds: n,
|
|
getOptionalParamsIds: i,
|
|
getParamValues: s,
|
|
compilePattern: r,
|
|
interpolate: l
|
|
};
|
|
}(), p;
|
|
};
|
|
"function" == typeof define && define.amd ? define("crossroads", [ "signals" ], e) : "undefined" != typeof module && module.exports ? module.exports = e(require("signals")) : window.crossroads = e(window.signals);
|
|
}(), /*!
|
|
* Hasher <http://github.com/millermedeiros/hasher>
|
|
* @author Miller Medeiros
|
|
* @version 1.2.0 (2013/11/11 03:18 PM)
|
|
* Released under the MIT License
|
|
*/
|
|
function() {
|
|
var e = function(e) {
|
|
var t = function(t) {
|
|
function n(e) {
|
|
return String(e || "").replace(/\W/g, "\\$&");
|
|
}
|
|
function i(e) {
|
|
if (!e) return "";
|
|
var t = new RegExp("^" + n(d.prependHash) + "|" + n(d.appendHash) + "$", "g");
|
|
return e.replace(t, "");
|
|
}
|
|
function r() {
|
|
var e = C.exec(d.getURL()), t = e && e[1] || "";
|
|
try {
|
|
return d.raw ? t : decodeURIComponent(t);
|
|
} catch (n) {
|
|
return t;
|
|
}
|
|
}
|
|
function o() {
|
|
return v ? v.contentWindow.frameHash : null;
|
|
}
|
|
function a() {
|
|
v = x.createElement("iframe"), v.src = "about:blank", v.style.display = "none",
|
|
x.body.appendChild(v);
|
|
}
|
|
function s() {
|
|
if (v && h !== o()) {
|
|
var e = v.contentWindow.document;
|
|
e.open(), e.write("<html><head><title>" + x.title + '</title><script type="text/javascript">var frameHash="' + h + '";</script></head><body> </body></html>'),
|
|
e.close();
|
|
}
|
|
}
|
|
function u(e, t) {
|
|
if (h !== e) {
|
|
var n = h;
|
|
h = e, N && (t ? v.contentWindow.frameHash = e : s()), d.changed.dispatch(i(e), i(n));
|
|
}
|
|
}
|
|
function l(e, t, n) {
|
|
e.addEventListener ? e.addEventListener(t, n, !1) : e.attachEvent && e.attachEvent("on" + t, n);
|
|
}
|
|
function c(e, t, n) {
|
|
e.removeEventListener ? e.removeEventListener(t, n, !1) : e.detachEvent && e.detachEvent("on" + t, n);
|
|
}
|
|
function f(e) {
|
|
e = Array.prototype.slice.call(arguments);
|
|
var t = e.join(d.separator);
|
|
return t = t ? d.prependHash + t.replace(T, "") + d.appendHash : t;
|
|
}
|
|
function p(e) {
|
|
return e = encodeURI(e), E && _ && (e = e.replace(/\?/, "%3F")), e;
|
|
}
|
|
var d, h, g, m, v, y, b = 25, x = t.document, w = (t.history, e.Signal), C = /#(.*)$/, k = /(\?.*)|(\#.*)/, T = /^\#/, E = !1, S = "onhashchange" in t && 7 !== x.documentMode, N = E && !S, _ = "file:" === location.protocol;
|
|
return y = N ? function() {
|
|
var e = r(), t = o();
|
|
t !== h && t !== e ? d.setHash(i(t)) : e !== h && u(e);
|
|
} : function() {
|
|
var e = r();
|
|
e !== h && u(e);
|
|
}, d = {
|
|
VERSION: "1.2.0",
|
|
raw: !1,
|
|
appendHash: "",
|
|
prependHash: "/",
|
|
separator: "/",
|
|
changed: new w(),
|
|
stopped: new w(),
|
|
initialized: new w(),
|
|
init: function() {
|
|
m || (h = r(), S ? l(t, "hashchange", y) : (N && (v || a(), s()), g = setInterval(y, b)),
|
|
m = !0, d.initialized.dispatch(i(h)));
|
|
},
|
|
stop: function() {
|
|
m && (S ? c(t, "hashchange", y) : (clearInterval(g), g = null), m = !1, d.stopped.dispatch(i(h)));
|
|
},
|
|
isActive: function() {
|
|
return m;
|
|
},
|
|
getURL: function() {
|
|
return t.location.href;
|
|
},
|
|
getBaseURL: function() {
|
|
return d.getURL().replace(k, "");
|
|
},
|
|
setHash: function(e) {
|
|
e = f.apply(null, arguments), e !== h && (u(e), e === h && (d.raw || (e = p(e)),
|
|
t.location.hash = "#" + e));
|
|
},
|
|
replaceHash: function(e) {
|
|
e = f.apply(null, arguments), e !== h && (u(e, !0), e === h && (d.raw || (e = p(e)),
|
|
t.location.replace("#" + e)));
|
|
},
|
|
getHash: function() {
|
|
return i(h);
|
|
},
|
|
getHashAsArray: function() {
|
|
return d.getHash().split(d.separator);
|
|
},
|
|
dispose: function() {
|
|
d.stop(), d.initialized.dispose(), d.stopped.dispose(), d.changed.dispose(), v = d = t.hasher = null;
|
|
},
|
|
toString: function() {
|
|
return '[hasher version="' + d.VERSION + '" hash="' + d.getHash() + '"]';
|
|
}
|
|
}, d.initialized.memorize = !0, d;
|
|
}(window);
|
|
return t;
|
|
};
|
|
"function" == typeof define && define.amd ? define("hasher", [ "signals" ], e) : "object" == typeof exports ? module.exports = e(require("signals")) : window.hasher = e(window.signals);
|
|
}(), define("app/router", [ "exports", "module", "knockout", "crossroads", "hasher" ], function(e, t, n, i, r) {
|
|
function o(e) {
|
|
return e && e.__esModule ? e : {
|
|
"default": e
|
|
};
|
|
}
|
|
function a(e, t) {
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
}
|
|
var s = o(n), u = o(i), l = o(r), c = function p(e) {
|
|
var t = this;
|
|
a(this, p), this.currentRoute = s["default"].observable({}), s["default"].utils.arrayForEach(e.routes, function(e) {
|
|
u["default"].addRoute(e.url, function(n) {
|
|
t.currentRoute(s["default"].utils.extend(n, e.params));
|
|
});
|
|
}), u["default"].normalizeFn = u["default"].NORM_AS_OBJECT, l["default"].initialized.add(function(e) {
|
|
return u["default"].parse(e);
|
|
}), l["default"].changed.add(function(e) {
|
|
return u["default"].parse(e);
|
|
}), l["default"].init();
|
|
}, f = new c({
|
|
routes: [ {
|
|
url: "",
|
|
params: {
|
|
page: "home-page"
|
|
}
|
|
}, {
|
|
url: "about",
|
|
params: {
|
|
page: "about-page"
|
|
}
|
|
}, {
|
|
url: "contact",
|
|
params: {
|
|
page: "contact-page"
|
|
}
|
|
}, {
|
|
url: "login",
|
|
params: {
|
|
page: "login"
|
|
}
|
|
} ]
|
|
});
|
|
t.exports = f;
|
|
}), define("app/startup", [ "exports", "jquery", "bootstrap", "knockout", "knockout-projections", "./router" ], function(e, t, n, i, r, o) {
|
|
function a(e) {
|
|
return e && e.__esModule ? e : {
|
|
"default": e
|
|
};
|
|
}
|
|
var s = a(i);
|
|
s["default"].components.register("nav-bar", {
|
|
require: "components/nav-bar/nav-bar"
|
|
}), s["default"].components.register("home-page", {
|
|
require: "components/home-page/home"
|
|
}), s["default"].components.register("about-page", {
|
|
template: {
|
|
require: "text!components/about-page/about.html"
|
|
}
|
|
}), s["default"].components.register("contact-page", {
|
|
template: {
|
|
require: "text!components/contact-page/contact.html"
|
|
}
|
|
}), s["default"].components.register("login", {
|
|
require: "components/login/login"
|
|
}), s["default"].applyBindings({
|
|
route: o.currentRoute
|
|
});
|
|
}), /**
|
|
* @license text 2.0.15 Copyright jQuery Foundation and other contributors.
|
|
* Released under MIT license, http://github.com/requirejs/text/LICENSE
|
|
*/
|
|
define("text", [ "module" ], function(e) {
|
|
function t(e, t) {
|
|
return void 0 === e || "" === e ? t : e;
|
|
}
|
|
function n(e, n, i, r) {
|
|
if (n === r) return !0;
|
|
if (e === i) {
|
|
if ("http" === e) return t(n, "80") === t(r, "80");
|
|
if ("https" === e) return t(n, "443") === t(r, "443");
|
|
}
|
|
return !1;
|
|
}
|
|
var i, r, o, a, s, u = [ "Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0" ], l = /^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im, c = /<body[^>]*>\s*([\s\S]+)\s*<\/body>/im, f = "undefined" != typeof location && location.href, p = f && location.protocol && location.protocol.replace(/\:/, ""), d = f && location.hostname, h = f && (location.port || void 0), g = {}, m = e.config && e.config() || {};
|
|
return i = {
|
|
version: "2.0.15",
|
|
strip: function(e) {
|
|
if (e) {
|
|
e = e.replace(l, "");
|
|
var t = e.match(c);
|
|
t && (e = t[1]);
|
|
} else e = "";
|
|
return e;
|
|
},
|
|
jsEscape: function(e) {
|
|
return e.replace(/(['\\])/g, "\\$1").replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n").replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r").replace(/[\u2028]/g, "\\u2028").replace(/[\u2029]/g, "\\u2029");
|
|
},
|
|
createXhr: m.createXhr || function() {
|
|
var e, t, n;
|
|
if ("undefined" != typeof XMLHttpRequest) return new XMLHttpRequest();
|
|
if ("undefined" != typeof ActiveXObject) for (t = 0; 3 > t; t += 1) {
|
|
n = u[t];
|
|
try {
|
|
e = new ActiveXObject(n);
|
|
} catch (i) {}
|
|
if (e) {
|
|
u = [ n ];
|
|
break;
|
|
}
|
|
}
|
|
return e;
|
|
},
|
|
parseName: function(e) {
|
|
var t, n, i, r = !1, o = e.lastIndexOf("."), a = 0 === e.indexOf("./") || 0 === e.indexOf("../");
|
|
return -1 !== o && (!a || o > 1) ? (t = e.substring(0, o), n = e.substring(o + 1)) : t = e,
|
|
i = n || t, o = i.indexOf("!"), -1 !== o && (r = "strip" === i.substring(o + 1),
|
|
i = i.substring(0, o), n ? n = i : t = i), {
|
|
moduleName: t,
|
|
ext: n,
|
|
strip: r
|
|
};
|
|
},
|
|
xdRegExp: /^((\w+)\:)?\/\/([^\/\\]+)/,
|
|
useXhr: function(e, t, r, o) {
|
|
var a, s, u, l = i.xdRegExp.exec(e);
|
|
return l ? (a = l[2], s = l[3], s = s.split(":"), u = s[1], s = s[0], (!a || a === t) && (!s || s.toLowerCase() === r.toLowerCase()) && (!u && !s || n(a, u, t, o))) : !0;
|
|
},
|
|
finishLoad: function(e, t, n, r) {
|
|
n = t ? i.strip(n) : n, m.isBuild && (g[e] = n), r(n);
|
|
},
|
|
load: function(e, t, n, r) {
|
|
if (r && r.isBuild && !r.inlineText) return void n();
|
|
m.isBuild = r && r.isBuild;
|
|
var o = i.parseName(e), a = o.moduleName + (o.ext ? "." + o.ext : ""), s = t.toUrl(a), u = m.useXhr || i.useXhr;
|
|
//!strip part to avoid file system issues.
|
|
return 0 === s.indexOf("empty:") ? void n() : void (!f || u(s, p, d, h) ? i.get(s, function(t) {
|
|
i.finishLoad(e, o.strip, t, n);
|
|
}, function(e) {
|
|
n.error && n.error(e);
|
|
}) : t([ a ], function(e) {
|
|
i.finishLoad(o.moduleName + "." + o.ext, o.strip, e, n);
|
|
}));
|
|
},
|
|
write: function(e, t, n, r) {
|
|
if (g.hasOwnProperty(t)) {
|
|
var o = i.jsEscape(g[t]);
|
|
n.asModule(e + "!" + t, "define(function () { return '" + o + "';});\n");
|
|
}
|
|
},
|
|
writeFile: function(e, t, n, r, o) {
|
|
var a = i.parseName(t), s = a.ext ? "." + a.ext : "", u = a.moduleName + s, l = n.toUrl(a.moduleName + s) + ".js";
|
|
i.load(u, n, function(t) {
|
|
var n = function(e) {
|
|
return r(l, e);
|
|
};
|
|
n.asModule = function(e, t) {
|
|
return r.asModule(e, l, t);
|
|
}, i.write(e, u, n, o);
|
|
}, o);
|
|
}
|
|
}, "node" === m.env || !m.env && "undefined" != typeof process && process.versions && process.versions.node && !process.versions["node-webkit"] && !process.versions["atom-shell"] ? (r = require.nodeRequire("fs"),
|
|
i.get = function(e, t, n) {
|
|
try {
|
|
var i = r.readFileSync(e, "utf8");
|
|
"\ufeff" === i[0] && (i = i.substring(1)), t(i);
|
|
} catch (o) {
|
|
n && n(o);
|
|
}
|
|
}) : "xhr" === m.env || !m.env && i.createXhr() ? i.get = function(e, t, n, r) {
|
|
var o, a = i.createXhr();
|
|
if (a.open("GET", e, !0), r) for (o in r) r.hasOwnProperty(o) && a.setRequestHeader(o.toLowerCase(), r[o]);
|
|
m.onXhr && m.onXhr(a, e), a.onreadystatechange = function(i) {
|
|
var r, o;
|
|
4 === a.readyState && (r = a.status || 0, r > 399 && 600 > r ? (o = new Error(e + " HTTP status: " + r),
|
|
o.xhr = a, n && n(o)) : t(a.responseText), m.onXhrComplete && m.onXhrComplete(a, e));
|
|
}, a.send(null);
|
|
} : "rhino" === m.env || !m.env && "undefined" != typeof Packages && "undefined" != typeof java ? i.get = function(e, t) {
|
|
var n, i, r = "utf-8", o = new java.io.File(e), a = java.lang.System.getProperty("line.separator"), s = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(o), r)), u = "";
|
|
try {
|
|
for (n = new java.lang.StringBuffer(), i = s.readLine(), i && i.length() && 65279 === i.charAt(0) && (i = i.substring(1)),
|
|
null !== i && n.append(i); null !== (i = s.readLine()); ) n.append(a), n.append(i);
|
|
u = String(n.toString());
|
|
} finally {
|
|
s.close();
|
|
}
|
|
t(u);
|
|
} : ("xpconnect" === m.env || !m.env && "undefined" != typeof Components && Components.classes && Components.interfaces) && (o = Components.classes,
|
|
a = Components.interfaces, Components.utils["import"]("resource://gre/modules/FileUtils.jsm"),
|
|
s = "@mozilla.org/windows-registry-key;1" in o, i.get = function(e, t) {
|
|
var n, i, r, u = {};
|
|
s && (e = e.replace(/\//g, "\\")), r = new FileUtils.File(e);
|
|
try {
|
|
n = o["@mozilla.org/network/file-input-stream;1"].createInstance(a.nsIFileInputStream),
|
|
n.init(r, 1, 0, !1), i = o["@mozilla.org/intl/converter-input-stream;1"].createInstance(a.nsIConverterInputStream),
|
|
i.init(n, "utf-8", n.available(), a.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER),
|
|
i.readString(n.available(), u), i.close(), n.close(), t(u.value);
|
|
} catch (l) {
|
|
throw new Error((r && r.path || "") + ": " + l);
|
|
}
|
|
}), i;
|
|
}), define("text!components/nav-bar/nav-bar.html", [], function() {
|
|
return '<!--\n The navigation UI that is docked to the top of the window. Most of this markup simply\n follows Bootstrap conventions. The only Knockout-specific parts are the data-bind\n attributes on the <li> elements.\n-->\n<nav class="navbar navbar-light bg-faded navbar-fixed-top" role="navigation">\n <div class="container">\n <div class="navbar-header">\n <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">\n <span class="sr-only">Toggle navigation</span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </button>\n <a class="navbar-brand" href="#">OBrand Admin</a>\n </div>\n <div class="collapse navbar-collapse">\n\n <ul class="nav navbar-nav">\n <li data-bind="css: { active: route().page === \'home-page\' }">\n <a href="#">Home</a>\n </li>\n\n <li data-bind="css: { active: route().page === \'about-page\' }">\n <a href="#about">About</a>\n </li>\n\n <li data-bind="css: { active: route().page === \'contact-page\' }">\n <a href="#contact">Contact</a>\n </li>\n\n <li data-bind="css: { active: route().page === \'profile-page\' }">\n <a href="#profile">Profile</a>\n </li>\n <li data-bind="css: { active: route().page === \'company-page\' }">\n <a href="#company">Company</a>\n </li>\n\n <li data-bind="css: { active: route().page === \'venues-page\' }">\n <a href="#venues">Venues</a>\n </li>\n\n <li data-bind="css: { active: route().page === \'beacons-page\' }">\n <a href="#beacons">Beacons</a>\n </li>\n\n <li data-bind="css: { active: route().page === \'pages-page\' }">\n <a href="#pages">Pages</a>\n </li>\n </ul>\n <div class="pull-xs-right">\n <ul class="nav navbar-nav">\n <li>\n <a href="#login">Login</a>\n </li>\n </ul>\n\n\n </div>\n\n\n </div>\n </div>\n</nav>\n';
|
|
}), define("components/nav-bar/nav-bar", [ "exports", "module", "knockout", "text!./nav-bar.html" ], function(e, t, n, i) {
|
|
function r(e) {
|
|
return e && e.__esModule ? e : {
|
|
"default": e
|
|
};
|
|
}
|
|
function o(e, t) {
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
}
|
|
var a = (r(n), r(i)), s = function u(e) {
|
|
o(this, u), this.route = e.route;
|
|
};
|
|
t.exports = {
|
|
viewModel: s,
|
|
template: a["default"]
|
|
};
|
|
}), define("text!components/home-page/home.html", [], function() {
|
|
return '<div class="alert alert-info">\n You can <a href="#login" class=\'alert-link\'>log in</a> with login <code>m@g.com</code> and password <code>password</code>.\n </div>\n\n<div class="jumbotron">\n <div class="container" style="background: linear-gradient(-226deg, rgba(142, 130, 236, 0.8) 0%, rgba(8, 81, 152, 0.92) 100%),url(\'images/skyview.jpg\');background-size:100%;">\n <span class="colour-bg">\n <h1>Welcome to OBrand</h1>\n <p>Warm and welcoming text about oBrand</p>\n\n </span>\n </div>\n</div>\n\n<p data-bind=\'text: message\'></p>\n\n<button data-bind=\'click: doSomething\'>Click me</button>\n';
|
|
}), define("components/home-page/home", [ "exports", "module", "knockout", "text!./home.html" ], function(e, t, n, i) {
|
|
function r(e) {
|
|
return e && e.__esModule ? e : {
|
|
"default": e
|
|
};
|
|
}
|
|
function o(e, t) {
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
}
|
|
var a = function() {
|
|
function e(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0),
|
|
Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
return function(t, n, i) {
|
|
return n && e(t.prototype, n), i && e(t, i), t;
|
|
};
|
|
}(), s = r(n), u = r(i), l = function() {
|
|
function e(t) {
|
|
o(this, e), this.message = s["default"].observable("Welcome to obrand-ko!");
|
|
}
|
|
return a(e, [ {
|
|
key: "doSomething",
|
|
value: function() {
|
|
this.message("You invoked doSomething() on the viewmodel.");
|
|
}
|
|
} ]), e;
|
|
}();
|
|
t.exports = {
|
|
viewModel: l,
|
|
template: u["default"]
|
|
};
|
|
}), define("text!components/about-page/about.html", [], function() {
|
|
return '<div class="jumbotron">\n <div class="container">\n <h1>Welcome to OBrand</h1>\n <p>Warm and welcoming text about oBrand</p>\n </div>\n</div>';
|
|
}), define("text!components/login/login.html", [], function() {
|
|
return '\n<div class="container">\n <div class="col-sm-4 col-sm-offset-4">\n\n<form class="form-signin" data-bind="submit: authenticate">\n <div>\n <h2 class="form-signin-heading">Please login</h2>\n <label for="inputEmail" class="sr-only">Email address</label>\n <input type=\'email\' required="required" autofocus="autofocus" id=\'inputEmail\' placeholder=\'Email address\' class="form-control" data-bind="textInput: username">\n <label for="inputPassword" class="sr-only">Password</label>\n <input id=\'inputPassword\' placeholder=\'Password\' type=\'password\' class="form-control" required="required" data-bind="textInput: password">\n\n <div class="checkbox">\n <label>\n <input type="checkbox" value="remember-me"> Remember me\n </label>\n </div>\n <button type=\'submit\' class="btn btn-lg btn-primary btn-block">Login</button>\n </div>\n <div data-bind="visible: errorMessage">\n <div class="alert alert-danger" role="alert" data-bind="text: errorMessage"></div>\n <div class="alert alert-info">\n If you don\'t have an account, click <strong>SIGN UP</strong> and create one now.\n </div>\n\n </div>\n\n</form>\n\n </div>\n</div>\n\n\n<div class="alert alert-danger" role="alert" data-bind="text: authenticated"></div>\n<div class="alert alert-danger" role="alert" data-bind="text: auth_access_token"></div>\n\n';
|
|
}), define("components/login/login", [ "exports", "module", "knockout", "text!./login.html" ], function(e, t, n, i) {
|
|
function r(e) {
|
|
return e && e.__esModule ? e : {
|
|
"default": e
|
|
};
|
|
}
|
|
function o(e, t) {
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
|
|
}
|
|
var a = function() {
|
|
function e(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var i = t[n];
|
|
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0),
|
|
Object.defineProperty(e, i.key, i);
|
|
}
|
|
}
|
|
return function(t, n, i) {
|
|
return n && e(t.prototype, n), i && e(t, i), t;
|
|
};
|
|
}(), s = r(n), u = r(i), l = function() {
|
|
function e(t) {
|
|
o(this, e);
|
|
this.username = s["default"].observable(""), this.password = s["default"].observable(""),
|
|
this.errorMessage = s["default"].observable("broken"), this.authenticated = s["default"].observable(),
|
|
this.auth_access_token = s["default"].observable(), this.auth_account_id = s["default"].observable(),
|
|
this.auth_username = s["default"].observable(), this.auth_account = s["default"].observable(),
|
|
this.authenticated.subscribe(function(e) {
|
|
this.auth_access_token(e.access_token), this.auth_account_id(e.account_id), this.auth_username(e.username),
|
|
this.auth_account(e.account), this.postAuthenticate(e.account_id);
|
|
}.bind(this));
|
|
}
|
|
return a(e, [ {
|
|
key: "dispose",
|
|
value: function() {}
|
|
}, {
|
|
key: "authenticate",
|
|
value: function() {
|
|
console.log("+++ AUTHENTICATE"), console.log(this.username());
|
|
var e = function() {
|
|
var e = {
|
|
username: this.username(),
|
|
password: this.password(),
|
|
grant_type: "password"
|
|
};
|
|
$.post("http://localhost:8086/token", e, this.authenticated, "json");
|
|
};
|
|
e.call(this);
|
|
}
|
|
}, {
|
|
key: "postAuthenticate",
|
|
value: function(e) {
|
|
console.log("+ postAuthenticate"), console.log("- postAuthenticate");
|
|
}
|
|
} ]), e;
|
|
}();
|
|
t.exports = {
|
|
viewModel: l,
|
|
template: u["default"]
|
|
};
|
|
}), require([ "app/startup" ]), require.config({
|
|
bundles: {}
|
|
}); |