Last active
February 21, 2016 17:44
-
-
Save trinvh2/83a056fc29f0a059a01d to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*! Fimplus - v1.2.3 - 17-02-2016 */ | |
(function() { | |
function a(a) { | |
function b(b, c, d, e, f, g) { | |
for (; f >= 0 && g > f; f += a) { | |
var h = e ? e[f] : f; | |
d = c(d, b[h], h, b) | |
} | |
return d | |
} | |
return function(c, d, e, f) { | |
d = t(d, f, 4); | |
var g = !A(c) && s.keys(c), | |
h = (g || c).length, | |
i = a > 0 ? 0 : h - 1; | |
return arguments.length < 3 && (e = c[g ? g[i] : i], i += a), b(c, d, e, g, i, h) | |
} | |
} | |
function b(a) { | |
return function(b, c, d) { | |
c = u(c, d); | |
for (var e = z(b), f = a > 0 ? 0 : e - 1; f >= 0 && e > f; f += a) | |
if (c(b[f], f, b)) return f; | |
return -1 | |
} | |
} | |
function c(a, b, c) { | |
return function(d, e, f) { | |
var g = 0, | |
h = z(d); | |
if ("number" == typeof f) a > 0 ? g = f >= 0 ? f : Math.max(f + h, g) : h = f >= 0 ? Math.min(f + 1, h) : f + h + 1; | |
else if (c && f && h) return f = c(d, e), d[f] === e ? f : -1; | |
if (e !== e) return f = b(k.call(d, g, h), s.isNaN), f >= 0 ? f + g : -1; | |
for (f = a > 0 ? g : h - 1; f >= 0 && h > f; f += a) | |
if (d[f] === e) return f; | |
return -1 | |
} | |
} | |
function d(a, b) { | |
var c = F.length, | |
d = a.constructor, | |
e = s.isFunction(d) && d.prototype || h, | |
f = "constructor"; | |
for (s.has(a, f) && !s.contains(b, f) && b.push(f); c--;) f = F[c], f in a && a[f] !== e[f] && !s.contains(b, f) && b.push(f) | |
} | |
var e = this, | |
f = e._, | |
g = Array.prototype, | |
h = Object.prototype, | |
i = Function.prototype, | |
j = g.push, | |
k = g.slice, | |
l = h.toString, | |
m = h.hasOwnProperty, | |
n = Array.isArray, | |
o = Object.keys, | |
p = i.bind, | |
q = Object.create, | |
r = function() {}, | |
s = function(a) { | |
return a instanceof s ? a : this instanceof s ? void(this._wrapped = a) : new s(a) | |
}; | |
"undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = s), exports._ = s) : e._ = s, s.VERSION = "1.8.3"; | |
var t = function(a, b, c) { | |
if (void 0 === b) return a; | |
switch (null == c ? 3 : c) { | |
case 1: | |
return function(c) { | |
return a.call(b, c) | |
}; | |
case 2: | |
return function(c, d) { | |
return a.call(b, c, d) | |
}; | |
case 3: | |
return function(c, d, e) { | |
return a.call(b, c, d, e) | |
}; | |
case 4: | |
return function(c, d, e, f) { | |
return a.call(b, c, d, e, f) | |
} | |
} | |
return function() { | |
return a.apply(b, arguments) | |
} | |
}, | |
u = function(a, b, c) { | |
return null == a ? s.identity : s.isFunction(a) ? t(a, b, c) : s.isObject(a) ? s.matcher(a) : s.property(a) | |
}; | |
s.iteratee = function(a, b) { | |
return u(a, b, 1 / 0) | |
}; | |
var v = function(a, b) { | |
return function(c) { | |
var d = arguments.length; | |
if (2 > d || null == c) return c; | |
for (var e = 1; d > e; e++) | |
for (var f = arguments[e], g = a(f), h = g.length, i = 0; h > i; i++) { | |
var j = g[i]; | |
b && void 0 !== c[j] || (c[j] = f[j]) | |
} | |
return c | |
} | |
}, | |
w = function(a) { | |
if (!s.isObject(a)) return {}; | |
if (q) return q(a); | |
r.prototype = a; | |
var b = new r; | |
return r.prototype = null, b | |
}, | |
x = function(a) { | |
return function(b) { | |
return null == b ? void 0 : b[a] | |
} | |
}, | |
y = Math.pow(2, 53) - 1, | |
z = x("length"), | |
A = function(a) { | |
var b = z(a); | |
return "number" == typeof b && b >= 0 && y >= b | |
}; | |
s.each = s.forEach = function(a, b, c) { | |
b = t(b, c); | |
var d, e; | |
if (A(a)) | |
for (d = 0, e = a.length; e > d; d++) b(a[d], d, a); | |
else { | |
var f = s.keys(a); | |
for (d = 0, e = f.length; e > d; d++) b(a[f[d]], f[d], a) | |
} | |
return a | |
}, s.map = s.collect = function(a, b, c) { | |
b = u(b, c); | |
for (var d = !A(a) && s.keys(a), e = (d || a).length, f = Array(e), g = 0; e > g; g++) { | |
var h = d ? d[g] : g; | |
f[g] = b(a[h], h, a) | |
} | |
return f | |
}, s.reduce = s.foldl = s.inject = a(1), s.reduceRight = s.foldr = a(-1), s.find = s.detect = function(a, b, c) { | |
var d; | |
return d = A(a) ? s.findIndex(a, b, c) : s.findKey(a, b, c), void 0 !== d && -1 !== d ? a[d] : void 0 | |
}, s.filter = s.select = function(a, b, c) { | |
var d = []; | |
return b = u(b, c), s.each(a, function(a, c, e) { | |
b(a, c, e) && d.push(a) | |
}), d | |
}, s.reject = function(a, b, c) { | |
return s.filter(a, s.negate(u(b)), c) | |
}, s.every = s.all = function(a, b, c) { | |
b = u(b, c); | |
for (var d = !A(a) && s.keys(a), e = (d || a).length, f = 0; e > f; f++) { | |
var g = d ? d[f] : f; | |
if (!b(a[g], g, a)) return !1 | |
} | |
return !0 | |
}, s.some = s.any = function(a, b, c) { | |
b = u(b, c); | |
for (var d = !A(a) && s.keys(a), e = (d || a).length, f = 0; e > f; f++) { | |
var g = d ? d[f] : f; | |
if (b(a[g], g, a)) return !0 | |
} | |
return !1 | |
}, s.contains = s.includes = s.include = function(a, b, c, d) { | |
return A(a) || (a = s.values(a)), ("number" != typeof c || d) && (c = 0), s.indexOf(a, b, c) >= 0 | |
}, s.invoke = function(a, b) { | |
var c = k.call(arguments, 2), | |
d = s.isFunction(b); | |
return s.map(a, function(a) { | |
var e = d ? b : a[b]; | |
return null == e ? e : e.apply(a, c) | |
}) | |
}, s.pluck = function(a, b) { | |
return s.map(a, s.property(b)) | |
}, s.where = function(a, b) { | |
return s.filter(a, s.matcher(b)) | |
}, s.findWhere = function(a, b) { | |
return s.find(a, s.matcher(b)) | |
}, s.max = function(a, b, c) { | |
var d, e, f = -(1 / 0), | |
g = -(1 / 0); | |
if (null == b && null != a) { | |
a = A(a) ? a : s.values(a); | |
for (var h = 0, i = a.length; i > h; h++) d = a[h], d > f && (f = d) | |
} else b = u(b, c), s.each(a, function(a, c, d) { | |
e = b(a, c, d), (e > g || e === -(1 / 0) && f === -(1 / 0)) && (f = a, g = e) | |
}); | |
return f | |
}, s.min = function(a, b, c) { | |
var d, e, f = 1 / 0, | |
g = 1 / 0; | |
if (null == b && null != a) { | |
a = A(a) ? a : s.values(a); | |
for (var h = 0, i = a.length; i > h; h++) d = a[h], f > d && (f = d) | |
} else b = u(b, c), s.each(a, function(a, c, d) { | |
e = b(a, c, d), (g > e || e === 1 / 0 && f === 1 / 0) && (f = a, g = e) | |
}); | |
return f | |
}, s.shuffle = function(a) { | |
for (var b, c = A(a) ? a : s.values(a), d = c.length, e = Array(d), f = 0; d > f; f++) b = s.random(0, f), b !== f && (e[f] = e[b]), e[b] = c[f]; | |
return e | |
}, s.sample = function(a, b, c) { | |
return null == b || c ? (A(a) || (a = s.values(a)), a[s.random(a.length - 1)]) : s.shuffle(a).slice(0, Math.max(0, b)) | |
}, s.sortBy = function(a, b, c) { | |
return b = u(b, c), s.pluck(s.map(a, function(a, c, d) { | |
return { | |
value: a, | |
index: c, | |
criteria: b(a, c, d) | |
} | |
}).sort(function(a, b) { | |
var c = a.criteria, | |
d = b.criteria; | |
if (c !== d) { | |
if (c > d || void 0 === c) return 1; | |
if (d > c || void 0 === d) return -1 | |
} | |
return a.index - b.index | |
}), "value") | |
}; | |
var B = function(a) { | |
return function(b, c, d) { | |
var e = {}; | |
return c = u(c, d), s.each(b, function(d, f) { | |
var g = c(d, f, b); | |
a(e, d, g) | |
}), e | |
} | |
}; | |
s.groupBy = B(function(a, b, c) { | |
s.has(a, c) ? a[c].push(b) : a[c] = [b] | |
}), s.indexBy = B(function(a, b, c) { | |
a[c] = b | |
}), s.countBy = B(function(a, b, c) { | |
s.has(a, c) ? a[c]++ : a[c] = 1 | |
}), s.toArray = function(a) { | |
return a ? s.isArray(a) ? k.call(a) : A(a) ? s.map(a, s.identity) : s.values(a) : [] | |
}, s.size = function(a) { | |
return null == a ? 0 : A(a) ? a.length : s.keys(a).length | |
}, s.partition = function(a, b, c) { | |
b = u(b, c); | |
var d = [], | |
e = []; | |
return s.each(a, function(a, c, f) { | |
(b(a, c, f) ? d : e).push(a) | |
}), [d, e] | |
}, s.first = s.head = s.take = function(a, b, c) { | |
return null == a ? void 0 : null == b || c ? a[0] : s.initial(a, a.length - b) | |
}, s.initial = function(a, b, c) { | |
return k.call(a, 0, Math.max(0, a.length - (null == b || c ? 1 : b))) | |
}, s.last = function(a, b, c) { | |
return null == a ? void 0 : null == b || c ? a[a.length - 1] : s.rest(a, Math.max(0, a.length - b)) | |
}, s.rest = s.tail = s.drop = function(a, b, c) { | |
return k.call(a, null == b || c ? 1 : b) | |
}, s.compact = function(a) { | |
return s.filter(a, s.identity) | |
}; | |
var C = function(a, b, c, d) { | |
for (var e = [], f = 0, g = d || 0, h = z(a); h > g; g++) { | |
var i = a[g]; | |
if (A(i) && (s.isArray(i) || s.isArguments(i))) { | |
b || (i = C(i, b, c)); | |
var j = 0, | |
k = i.length; | |
for (e.length += k; k > j;) e[f++] = i[j++] | |
} else c || (e[f++] = i) | |
} | |
return e | |
}; | |
s.flatten = function(a, b) { | |
return C(a, b, !1) | |
}, s.without = function(a) { | |
return s.difference(a, k.call(arguments, 1)) | |
}, s.uniq = s.unique = function(a, b, c, d) { | |
s.isBoolean(b) || (d = c, c = b, b = !1), null != c && (c = u(c, d)); | |
for (var e = [], f = [], g = 0, h = z(a); h > g; g++) { | |
var i = a[g], | |
j = c ? c(i, g, a) : i; | |
b ? (g && f === j || e.push(i), f = j) : c ? s.contains(f, j) || (f.push(j), e.push(i)) : s.contains(e, i) || e.push(i) | |
} | |
return e | |
}, s.union = function() { | |
return s.uniq(C(arguments, !0, !0)) | |
}, s.intersection = function(a) { | |
for (var b = [], c = arguments.length, d = 0, e = z(a); e > d; d++) { | |
var f = a[d]; | |
if (!s.contains(b, f)) { | |
for (var g = 1; c > g && s.contains(arguments[g], f); g++); | |
g === c && b.push(f) | |
} | |
} | |
return b | |
}, s.difference = function(a) { | |
var b = C(arguments, !0, !0, 1); | |
return s.filter(a, function(a) { | |
return !s.contains(b, a) | |
}) | |
}, s.zip = function() { | |
return s.unzip(arguments) | |
}, s.unzip = function(a) { | |
for (var b = a && s.max(a, z).length || 0, c = Array(b), d = 0; b > d; d++) c[d] = s.pluck(a, d); | |
return c | |
}, s.object = function(a, b) { | |
for (var c = {}, d = 0, e = z(a); e > d; d++) b ? c[a[d]] = b[d] : c[a[d][0]] = a[d][1]; | |
return c | |
}, s.findIndex = b(1), s.findLastIndex = b(-1), s.sortedIndex = function(a, b, c, d) { | |
c = u(c, d, 1); | |
for (var e = c(b), f = 0, g = z(a); g > f;) { | |
var h = Math.floor((f + g) / 2); | |
c(a[h]) < e ? f = h + 1 : g = h | |
} | |
return f | |
}, s.indexOf = c(1, s.findIndex, s.sortedIndex), s.lastIndexOf = c(-1, s.findLastIndex), s.range = function(a, b, c) { | |
null == b && (b = a || 0, a = 0), c = c || 1; | |
for (var d = Math.max(Math.ceil((b - a) / c), 0), e = Array(d), f = 0; d > f; f++, a += c) e[f] = a; | |
return e | |
}; | |
var D = function(a, b, c, d, e) { | |
if (!(d instanceof b)) return a.apply(c, e); | |
var f = w(a.prototype), | |
g = a.apply(f, e); | |
return s.isObject(g) ? g : f | |
}; | |
s.bind = function(a, b) { | |
if (p && a.bind === p) return p.apply(a, k.call(arguments, 1)); | |
if (!s.isFunction(a)) throw new TypeError("Bind must be called on a function"); | |
var c = k.call(arguments, 2), | |
d = function() { | |
return D(a, d, b, this, c.concat(k.call(arguments))) | |
}; | |
return d | |
}, s.partial = function(a) { | |
var b = k.call(arguments, 1), | |
c = function() { | |
for (var d = 0, e = b.length, f = Array(e), g = 0; e > g; g++) f[g] = b[g] === s ? arguments[d++] : b[g]; | |
for (; d < arguments.length;) f.push(arguments[d++]); | |
return D(a, c, this, this, f) | |
}; | |
return c | |
}, s.bindAll = function(a) { | |
var b, c, d = arguments.length; | |
if (1 >= d) throw new Error("bindAll must be passed function names"); | |
for (b = 1; d > b; b++) c = arguments[b], a[c] = s.bind(a[c], a); | |
return a | |
}, s.memoize = function(a, b) { | |
var c = function(d) { | |
var e = c.cache, | |
f = "" + (b ? b.apply(this, arguments) : d); | |
return s.has(e, f) || (e[f] = a.apply(this, arguments)), e[f] | |
}; | |
return c.cache = {}, c | |
}, s.delay = function(a, b) { | |
var c = k.call(arguments, 2); | |
return setTimeout(function() { | |
return a.apply(null, c) | |
}, b) | |
}, s.defer = s.partial(s.delay, s, 1), s.throttle = function(a, b, c) { | |
var d, e, f, g = null, | |
h = 0; | |
c || (c = {}); | |
var i = function() { | |
h = c.leading === !1 ? 0 : s.now(), g = null, f = a.apply(d, e), g || (d = e = null) | |
}; | |
return function() { | |
var j = s.now(); | |
h || c.leading !== !1 || (h = j); | |
var k = b - (j - h); | |
return d = this, e = arguments, 0 >= k || k > b ? (g && (clearTimeout(g), g = null), h = j, f = a.apply(d, e), g || (d = e = null)) : g || c.trailing === !1 || (g = setTimeout(i, k)), f | |
} | |
}, s.debounce = function(a, b, c) { | |
var d, e, f, g, h, i = function() { | |
var j = s.now() - g; | |
b > j && j >= 0 ? d = setTimeout(i, b - j) : (d = null, c || (h = a.apply(f, e), d || (f = e = null))) | |
}; | |
return function() { | |
f = this, e = arguments, g = s.now(); | |
var j = c && !d; | |
return d || (d = setTimeout(i, b)), j && (h = a.apply(f, e), f = e = null), h | |
} | |
}, s.wrap = function(a, b) { | |
return s.partial(b, a) | |
}, s.negate = function(a) { | |
return function() { | |
return !a.apply(this, arguments) | |
} | |
}, s.compose = function() { | |
var a = arguments, | |
b = a.length - 1; | |
return function() { | |
for (var c = b, d = a[b].apply(this, arguments); c--;) d = a[c].call(this, d); | |
return d | |
} | |
}, s.after = function(a, b) { | |
return function() { | |
return --a < 1 ? b.apply(this, arguments) : void 0 | |
} | |
}, s.before = function(a, b) { | |
var c; | |
return function() { | |
return --a > 0 && (c = b.apply(this, arguments)), 1 >= a && (b = null), c | |
} | |
}, s.once = s.partial(s.before, 2); | |
var E = !{ | |
toString: null | |
}.propertyIsEnumerable("toString"), | |
F = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"]; | |
s.keys = function(a) { | |
if (!s.isObject(a)) return []; | |
if (o) return o(a); | |
var b = []; | |
for (var c in a) s.has(a, c) && b.push(c); | |
return E && d(a, b), b | |
}, s.allKeys = function(a) { | |
if (!s.isObject(a)) return []; | |
var b = []; | |
for (var c in a) b.push(c); | |
return E && d(a, b), b | |
}, s.values = function(a) { | |
for (var b = s.keys(a), c = b.length, d = Array(c), e = 0; c > e; e++) d[e] = a[b[e]]; | |
return d | |
}, s.mapObject = function(a, b, c) { | |
b = u(b, c); | |
for (var d, e = s.keys(a), f = e.length, g = {}, h = 0; f > h; h++) d = e[h], g[d] = b(a[d], d, a); | |
return g | |
}, s.pairs = function(a) { | |
for (var b = s.keys(a), c = b.length, d = Array(c), e = 0; c > e; e++) d[e] = [b[e], a[b[e]]]; | |
return d | |
}, s.invert = function(a) { | |
for (var b = {}, c = s.keys(a), d = 0, e = c.length; e > d; d++) b[a[c[d]]] = c[d]; | |
return b | |
}, s.functions = s.methods = function(a) { | |
var b = []; | |
for (var c in a) s.isFunction(a[c]) && b.push(c); | |
return b.sort() | |
}, s.extend = v(s.allKeys), s.extendOwn = s.assign = v(s.keys), s.findKey = function(a, b, c) { | |
b = u(b, c); | |
for (var d, e = s.keys(a), f = 0, g = e.length; g > f; f++) | |
if (d = e[f], b(a[d], d, a)) return d | |
}, s.pick = function(a, b, c) { | |
var d, e, f = {}, | |
g = a; | |
if (null == g) return f; | |
s.isFunction(b) ? (e = s.allKeys(g), d = t(b, c)) : (e = C(arguments, !1, !1, 1), d = function(a, b, c) { | |
return b in c | |
}, g = Object(g)); | |
for (var h = 0, i = e.length; i > h; h++) { | |
var j = e[h], | |
k = g[j]; | |
d(k, j, g) && (f[j] = k) | |
} | |
return f | |
}, s.omit = function(a, b, c) { | |
if (s.isFunction(b)) b = s.negate(b); | |
else { | |
var d = s.map(C(arguments, !1, !1, 1), String); | |
b = function(a, b) { | |
return !s.contains(d, b) | |
} | |
} | |
return s.pick(a, b, c) | |
}, s.defaults = v(s.allKeys, !0), s.create = function(a, b) { | |
var c = w(a); | |
return b && s.extendOwn(c, b), c | |
}, s.clone = function(a) { | |
return s.isObject(a) ? s.isArray(a) ? a.slice() : s.extend({}, a) : a | |
}, s.tap = function(a, b) { | |
return b(a), a | |
}, s.isMatch = function(a, b) { | |
var c = s.keys(b), | |
d = c.length; | |
if (null == a) return !d; | |
for (var e = Object(a), f = 0; d > f; f++) { | |
var g = c[f]; | |
if (b[g] !== e[g] || !(g in e)) return !1 | |
} | |
return !0 | |
}; | |
var G = function(a, b, c, d) { | |
if (a === b) return 0 !== a || 1 / a === 1 / b; | |
if (null == a || null == b) return a === b; | |
a instanceof s && (a = a._wrapped), b instanceof s && (b = b._wrapped); | |
var e = l.call(a); | |
if (e !== l.call(b)) return !1; | |
switch (e) { | |
case "[object RegExp]": | |
case "[object String]": | |
return "" + a == "" + b; | |
case "[object Number]": | |
return +a !== +a ? +b !== +b : 0 === +a ? 1 / +a === 1 / b : +a === +b; | |
case "[object Date]": | |
case "[object Boolean]": | |
return +a === +b | |
} | |
var f = "[object Array]" === e; | |
if (!f) { | |
if ("object" != typeof a || "object" != typeof b) return !1; | |
var g = a.constructor, | |
h = b.constructor; | |
if (g !== h && !(s.isFunction(g) && g instanceof g && s.isFunction(h) && h instanceof h) && "constructor" in a && "constructor" in b) return !1 | |
} | |
c = c || [], d = d || []; | |
for (var i = c.length; i--;) | |
if (c[i] === a) return d[i] === b; | |
if (c.push(a), d.push(b), f) { | |
if (i = a.length, i !== b.length) return !1; | |
for (; i--;) | |
if (!G(a[i], b[i], c, d)) return !1 | |
} else { | |
var j, k = s.keys(a); | |
if (i = k.length, s.keys(b).length !== i) return !1; | |
for (; i--;) | |
if (j = k[i], !s.has(b, j) || !G(a[j], b[j], c, d)) return !1 | |
} | |
return c.pop(), d.pop(), !0 | |
}; | |
s.isEqual = function(a, b) { | |
return G(a, b) | |
}, s.isEmpty = function(a) { | |
return null == a ? !0 : A(a) && (s.isArray(a) || s.isString(a) || s.isArguments(a)) ? 0 === a.length : 0 === s.keys(a).length | |
}, s.isElement = function(a) { | |
return !(!a || 1 !== a.nodeType) | |
}, s.isArray = n || function(a) { | |
return "[object Array]" === l.call(a) | |
}, s.isObject = function(a) { | |
var b = typeof a; | |
return "function" === b || "object" === b && !!a | |
}, s.each(["Arguments", "Function", "String", "Number", "Date", "RegExp", "Error"], function(a) { | |
s["is" + a] = function(b) { | |
return l.call(b) === "[object " + a + "]" | |
} | |
}), s.isArguments(arguments) || (s.isArguments = function(a) { | |
return s.has(a, "callee") | |
}), "function" != typeof /./ && "object" != typeof Int8Array && (s.isFunction = function(a) { | |
return "function" == typeof a || !1 | |
}), s.isFinite = function(a) { | |
return isFinite(a) && !isNaN(parseFloat(a)) | |
}, s.isNaN = function(a) { | |
return s.isNumber(a) && a !== +a | |
}, s.isBoolean = function(a) { | |
return a === !0 || a === !1 || "[object Boolean]" === l.call(a) | |
}, s.isNull = function(a) { | |
return null === a | |
}, s.isUndefined = function(a) { | |
return void 0 === a | |
}, s.has = function(a, b) { | |
return null != a && m.call(a, b) | |
}, s.noConflict = function() { | |
return e._ = f, this | |
}, s.identity = function(a) { | |
return a | |
}, s.constant = function(a) { | |
return function() { | |
return a | |
} | |
}, s.noop = function() {}, s.property = x, s.propertyOf = function(a) { | |
return null == a ? function() {} : function(b) { | |
return a[b] | |
} | |
}, s.matcher = s.matches = function(a) { | |
return a = s.extendOwn({}, a), | |
function(b) { | |
return s.isMatch(b, a) | |
} | |
}, s.times = function(a, b, c) { | |
var d = Array(Math.max(0, a)); | |
b = t(b, c, 1); | |
for (var e = 0; a > e; e++) d[e] = b(e); | |
return d | |
}, s.random = function(a, b) { | |
return null == b && (b = a, a = 0), a + Math.floor(Math.random() * (b - a + 1)) | |
}, s.now = Date.now || function() { | |
return (new Date).getTime() | |
}; | |
var H = { | |
"&": "&", | |
"<": "<", | |
">": ">", | |
'"': """, | |
"'": "'", | |
"`": "`" | |
}, | |
I = s.invert(H), | |
J = function(a) { | |
var b = function(b) { | |
return a[b] | |
}, | |
c = "(?:" + s.keys(a).join("|") + ")", | |
d = RegExp(c), | |
e = RegExp(c, "g"); | |
return function(a) { | |
return a = null == a ? "" : "" + a, d.test(a) ? a.replace(e, b) : a | |
} | |
}; | |
s.escape = J(H), s.unescape = J(I), s.result = function(a, b, c) { | |
var d = null == a ? void 0 : a[b]; | |
return void 0 === d && (d = c), s.isFunction(d) ? d.call(a) : d | |
}; | |
var K = 0; | |
s.uniqueId = function(a) { | |
var b = ++K + ""; | |
return a ? a + b : b | |
}, s.templateSettings = { | |
evaluate: /<%([\s\S]+?)%>/g, | |
interpolate: /<%=([\s\S]+?)%>/g, | |
escape: /<%-([\s\S]+?)%>/g | |
}; | |
var L = /(.)^/, | |
M = { | |
"'": "'", | |
"\\": "\\", | |
"\r": "r", | |
"\n": "n", | |
"\u2028": "u2028", | |
"\u2029": "u2029" | |
}, | |
N = /\\|'|\r|\n|\u2028|\u2029/g, | |
O = function(a) { | |
return "\\" + M[a] | |
}; | |
s.template = function(a, b, c) { | |
!b && c && (b = c), b = s.defaults({}, b, s.templateSettings); | |
var d = RegExp([(b.escape || L).source, (b.interpolate || L).source, (b.evaluate || L).source].join("|") + "|$", "g"), | |
e = 0, | |
f = "__p+='"; | |
a.replace(d, function(b, c, d, g, h) { | |
return f += a.slice(e, h).replace(N, O), e = h + b.length, c ? f += "'+\n((__t=(" + c + "))==null?'':_.escape(__t))+\n'" : d ? f += "'+\n((__t=(" + d + "))==null?'':__t)+\n'" : g && (f += "';\n" + g + "\n__p+='"), b | |
}), f += "';\n", b.variable || (f = "with(obj||{}){\n" + f + "}\n"), f = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + f + "return __p;\n"; | |
try { | |
var g = new Function(b.variable || "obj", "_", f) | |
} catch (h) { | |
throw h.source = f, h | |
} | |
var i = function(a) { | |
return g.call(this, a, s) | |
}, | |
j = b.variable || "obj"; | |
return i.source = "function(" + j + "){\n" + f + "}", i | |
}, s.chain = function(a) { | |
var b = s(a); | |
return b._chain = !0, b | |
}; | |
var P = function(a, b) { | |
return a._chain ? s(b).chain() : b | |
}; | |
s.mixin = function(a) { | |
s.each(s.functions(a), function(b) { | |
var c = s[b] = a[b]; | |
s.prototype[b] = function() { | |
var a = [this._wrapped]; | |
return j.apply(a, arguments), P(this, c.apply(s, a)) | |
} | |
}) | |
}, s.mixin(s), s.each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(a) { | |
var b = g[a]; | |
s.prototype[a] = function() { | |
var c = this._wrapped; | |
return b.apply(c, arguments), "shift" !== a && "splice" !== a || 0 !== c.length || delete c[0], P(this, c) | |
} | |
}), s.each(["concat", "join", "slice"], function(a) { | |
var b = g[a]; | |
s.prototype[a] = function() { | |
return P(this, b.apply(this._wrapped, arguments)) | |
} | |
}), s.prototype.value = function() { | |
return this._wrapped | |
}, s.prototype.valueOf = s.prototype.toJSON = s.prototype.value, s.prototype.toString = function() { | |
return "" + this._wrapped | |
}, "function" == typeof define && define.amd && define("underscore", [], function() { | |
return s | |
}) | |
}).call(this), | |
function(a, b) { | |
"object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function(a) { | |
if (!a.document) throw new Error("jQuery requires a window with a document"); | |
return b(a) | |
} : b(a) | |
}("undefined" != typeof window ? window : this, function(a, b) { | |
function c(a) { | |
var b = !!a && "length" in a && a.length, | |
c = fa.type(a); | |
return "function" === c || fa.isWindow(a) ? !1 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a | |
} | |
function d(a, b, c) { | |
if (fa.isFunction(b)) return fa.grep(a, function(a, d) { | |
return !!b.call(a, d, a) !== c | |
}); | |
if (b.nodeType) return fa.grep(a, function(a) { | |
return a === b !== c | |
}); | |
if ("string" == typeof b) { | |
if (pa.test(b)) return fa.filter(b, a, c); | |
b = fa.filter(b, a) | |
} | |
return fa.grep(a, function(a) { | |
return _.call(b, a) > -1 !== c | |
}) | |
} | |
function e(a, b) { | |
for (; | |
(a = a[b]) && 1 !== a.nodeType;); | |
return a | |
} | |
function f(a) { | |
var b = {}; | |
return fa.each(a.match(va) || [], function(a, c) { | |
b[c] = !0 | |
}), b | |
} | |
function g() { | |
X.removeEventListener("DOMContentLoaded", g), a.removeEventListener("load", g), fa.ready() | |
} | |
function h() { | |
this.expando = fa.expando + h.uid++ | |
} | |
function i(a, b, c) { | |
var d; | |
if (void 0 === c && 1 === a.nodeType) | |
if (d = "data-" + b.replace(Ca, "-$&").toLowerCase(), c = a.getAttribute(d), "string" == typeof c) { | |
try { | |
c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : Ba.test(c) ? fa.parseJSON(c) : c | |
} catch (e) {} | |
Aa.set(a, b, c) | |
} else c = void 0; | |
return c | |
} | |
function j(a, b, c, d) { | |
var e, f = 1, | |
g = 20, | |
h = d ? function() { | |
return d.cur() | |
} : function() { | |
return fa.css(a, b, "") | |
}, | |
i = h(), | |
j = c && c[3] || (fa.cssNumber[b] ? "" : "px"), | |
k = (fa.cssNumber[b] || "px" !== j && +i) && Ea.exec(fa.css(a, b)); | |
if (k && k[3] !== j) { | |
j = j || k[3], c = c || [], k = +i || 1; | |
do f = f || ".5", k /= f, fa.style(a, b, k + j); while (f !== (f = h() / i) && 1 !== f && --g) | |
} | |
return c && (k = +k || +i || 0, e = c[1] ? k + (c[1] + 1) * c[2] : +c[2], d && (d.unit = j, d.start = k, d.end = e)), e | |
} | |
function k(a, b) { | |
var c = "undefined" != typeof a.getElementsByTagName ? a.getElementsByTagName(b || "*") : "undefined" != typeof a.querySelectorAll ? a.querySelectorAll(b || "*") : []; | |
return void 0 === b || b && fa.nodeName(a, b) ? fa.merge([a], c) : c | |
} | |
function l(a, b) { | |
for (var c = 0, d = a.length; d > c; c++) za.set(a[c], "globalEval", !b || za.get(b[c], "globalEval")) | |
} | |
function m(a, b, c, d, e) { | |
for (var f, g, h, i, j, m, n = b.createDocumentFragment(), o = [], p = 0, q = a.length; q > p; p++) | |
if (f = a[p], f || 0 === f) | |
if ("object" === fa.type(f)) fa.merge(o, f.nodeType ? [f] : f); | |
else if (La.test(f)) { | |
for (g = g || n.appendChild(b.createElement("div")), h = (Ia.exec(f) || ["", ""])[1].toLowerCase(), i = Ka[h] || Ka._default, g.innerHTML = i[1] + fa.htmlPrefilter(f) + i[2], m = i[0]; m--;) g = g.lastChild; | |
fa.merge(o, g.childNodes), g = n.firstChild, g.textContent = "" | |
} else o.push(b.createTextNode(f)); | |
for (n.textContent = "", p = 0; f = o[p++];) | |
if (d && fa.inArray(f, d) > -1) e && e.push(f); | |
else if (j = fa.contains(f.ownerDocument, f), g = k(n.appendChild(f), "script"), j && l(g), c) | |
for (m = 0; f = g[m++];) Ja.test(f.type || "") && c.push(f); | |
return n | |
} | |
function n() { | |
return !0 | |
} | |
function o() { | |
return !1 | |
} | |
function p() { | |
try { | |
return X.activeElement | |
} catch (a) {} | |
} | |
function q(a, b, c, d, e, f) { | |
var g, h; | |
if ("object" == typeof b) { | |
"string" != typeof c && (d = d || c, c = void 0); | |
for (h in b) q(a, h, c, d, b[h], f); | |
return a | |
} | |
if (null == d && null == e ? (e = c, d = c = void 0) : null == e && ("string" == typeof c ? (e = d, d = void 0) : (e = d, d = c, c = void 0)), e === !1) e = o; | |
else if (!e) return this; | |
return 1 === f && (g = e, e = function(a) { | |
return fa().off(a), g.apply(this, arguments) | |
}, e.guid = g.guid || (g.guid = fa.guid++)), a.each(function() { | |
fa.event.add(this, b, e, d, c) | |
}) | |
} | |
function r(a, b) { | |
return fa.nodeName(a, "table") && fa.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a : a | |
} | |
function s(a) { | |
return a.type = (null !== a.getAttribute("type")) + "/" + a.type, a | |
} | |
function t(a) { | |
var b = Sa.exec(a.type); | |
return b ? a.type = b[1] : a.removeAttribute("type"), a | |
} | |
function u(a, b) { | |
var c, d, e, f, g, h, i, j; | |
if (1 === b.nodeType) { | |
if (za.hasData(a) && (f = za.access(a), g = za.set(b, f), j = f.events)) { | |
delete g.handle, g.events = {}; | |
for (e in j) | |
for (c = 0, d = j[e].length; d > c; c++) fa.event.add(b, e, j[e][c]) | |
} | |
Aa.hasData(a) && (h = Aa.access(a), i = fa.extend({}, h), Aa.set(b, i)) | |
} | |
} | |
function v(a, b) { | |
var c = b.nodeName.toLowerCase(); | |
"input" === c && Ha.test(a.type) ? b.checked = a.checked : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue) | |
} | |
function w(a, b, c, d) { | |
b = Z.apply([], b); | |
var e, f, g, h, i, j, l = 0, | |
n = a.length, | |
o = n - 1, | |
p = b[0], | |
q = fa.isFunction(p); | |
if (q || n > 1 && "string" == typeof p && !da.checkClone && Ra.test(p)) return a.each(function(e) { | |
var f = a.eq(e); | |
q && (b[0] = p.call(this, e, f.html())), w(f, b, c, d) | |
}); | |
if (n && (e = m(b, a[0].ownerDocument, !1, a, d), f = e.firstChild, 1 === e.childNodes.length && (e = f), f || d)) { | |
for (g = fa.map(k(e, "script"), s), h = g.length; n > l; l++) i = e, l !== o && (i = fa.clone(i, !0, !0), h && fa.merge(g, k(i, "script"))), c.call(a[l], i, l); | |
if (h) | |
for (j = g[g.length - 1].ownerDocument, fa.map(g, t), l = 0; h > l; l++) i = g[l], Ja.test(i.type || "") && !za.access(i, "globalEval") && fa.contains(j, i) && (i.src ? fa._evalUrl && fa._evalUrl(i.src) : fa.globalEval(i.textContent.replace(Ta, ""))) | |
} | |
return a | |
} | |
function x(a, b, c) { | |
for (var d, e = b ? fa.filter(b, a) : a, f = 0; null != (d = e[f]); f++) c || 1 !== d.nodeType || fa.cleanData(k(d)), d.parentNode && (c && fa.contains(d.ownerDocument, d) && l(k(d, "script")), d.parentNode.removeChild(d)); | |
return a | |
} | |
function y(a, b) { | |
var c = fa(b.createElement(a)).appendTo(b.body), | |
d = fa.css(c[0], "display"); | |
return c.detach(), d | |
} | |
function z(a) { | |
var b = X, | |
c = Va[a]; | |
return c || (c = y(a, b), "none" !== c && c || (Ua = (Ua || fa("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement), b = Ua[0].contentDocument, b.write(), b.close(), c = y(a, b), Ua.detach()), Va[a] = c), c | |
} | |
function A(a, b, c) { | |
var d, e, f, g, h = a.style; | |
return c = c || Ya(a), c && (g = c.getPropertyValue(b) || c[b], "" !== g || fa.contains(a.ownerDocument, a) || (g = fa.style(a, b)), !da.pixelMarginRight() && Xa.test(g) && Wa.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), void 0 !== g ? g + "" : g | |
} | |
function B(a, b) { | |
return { | |
get: function() { | |
return a() ? void delete this.get : (this.get = b).apply(this, arguments) | |
} | |
} | |
} | |
function C(a) { | |
if (a in db) return a; | |
for (var b = a[0].toUpperCase() + a.slice(1), c = cb.length; c--;) | |
if (a = cb[c] + b, a in db) return a | |
} | |
function D(a, b, c) { | |
var d = Ea.exec(b); | |
return d ? Math.max(0, d[2] - (c || 0)) + (d[3] || "px") : b | |
} | |
function E(a, b, c, d, e) { | |
for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2) "margin" === c && (g += fa.css(a, c + Fa[f], !0, e)), d ? ("content" === c && (g -= fa.css(a, "padding" + Fa[f], !0, e)), "margin" !== c && (g -= fa.css(a, "border" + Fa[f] + "Width", !0, e))) : (g += fa.css(a, "padding" + Fa[f], !0, e), "padding" !== c && (g += fa.css(a, "border" + Fa[f] + "Width", !0, e))); | |
return g | |
} | |
function F(b, c, d) { | |
var e = !0, | |
f = "width" === c ? b.offsetWidth : b.offsetHeight, | |
g = Ya(b), | |
h = "border-box" === fa.css(b, "boxSizing", !1, g); | |
if (X.msFullscreenElement && a.top !== a && b.getClientRects().length && (f = Math.round(100 * b.getBoundingClientRect()[c])), 0 >= f || null == f) { | |
if (f = A(b, c, g), (0 > f || null == f) && (f = b.style[c]), Xa.test(f)) return f; | |
e = h && (da.boxSizingReliable() || f === b.style[c]), f = parseFloat(f) || 0 | |
} | |
return f + E(b, c, d || (h ? "border" : "content"), e, g) + "px" | |
} | |
function G(a, b) { | |
for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++) d = a[g], d.style && (f[g] = za.get(d, "olddisplay"), c = d.style.display, b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && Ga(d) && (f[g] = za.access(d, "olddisplay", z(d.nodeName)))) : (e = Ga(d), "none" === c && e || za.set(d, "olddisplay", e ? c : fa.css(d, "display")))); | |
for (g = 0; h > g; g++) d = a[g], d.style && (b && "none" !== d.style.display && "" !== d.style.display || (d.style.display = b ? f[g] || "" : "none")); | |
return a | |
} | |
function H(a, b, c, d, e) { | |
return new H.prototype.init(a, b, c, d, e) | |
} | |
function I() { | |
return a.setTimeout(function() { | |
eb = void 0 | |
}), eb = fa.now() | |
} | |
function J(a, b) { | |
var c, d = 0, | |
e = { | |
height: a | |
}; | |
for (b = b ? 1 : 0; 4 > d; d += 2 - b) c = Fa[d], e["margin" + c] = e["padding" + c] = a; | |
return b && (e.opacity = e.width = a), e | |
} | |
function K(a, b, c) { | |
for (var d, e = (N.tweeners[b] || []).concat(N.tweeners["*"]), f = 0, g = e.length; g > f; f++) | |
if (d = e[f].call(c, b, a)) return d | |
} | |
function L(a, b, c) { | |
var d, e, f, g, h, i, j, k, l = this, | |
m = {}, | |
n = a.style, | |
o = a.nodeType && Ga(a), | |
p = za.get(a, "fxshow"); | |
c.queue || (h = fa._queueHooks(a, "fx"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function() { | |
h.unqueued || i() | |
}), h.unqueued++, l.always(function() { | |
l.always(function() { | |
h.unqueued--, fa.queue(a, "fx").length || h.empty.fire() | |
}) | |
})), 1 === a.nodeType && ("height" in b || "width" in b) && (c.overflow = [n.overflow, n.overflowX, n.overflowY], j = fa.css(a, "display"), k = "none" === j ? za.get(a, "olddisplay") || z(a.nodeName) : j, "inline" === k && "none" === fa.css(a, "float") && (n.display = "inline-block")), c.overflow && (n.overflow = "hidden", l.always(function() { | |
n.overflow = c.overflow[0], n.overflowX = c.overflow[1], n.overflowY = c.overflow[2] | |
})); | |
for (d in b) | |
if (e = b[d], gb.exec(e)) { | |
if (delete b[d], f = f || "toggle" === e, e === (o ? "hide" : "show")) { | |
if ("show" !== e || !p || void 0 === p[d]) continue; | |
o = !0 | |
} | |
m[d] = p && p[d] || fa.style(a, d) | |
} else j = void 0; | |
if (fa.isEmptyObject(m)) "inline" === ("none" === j ? z(a.nodeName) : j) && (n.display = j); | |
else { | |
p ? "hidden" in p && (o = p.hidden) : p = za.access(a, "fxshow", {}), f && (p.hidden = !o), o ? fa(a).show() : l.done(function() { | |
fa(a).hide() | |
}), l.done(function() { | |
var b; | |
za.remove(a, "fxshow"); | |
for (b in m) fa.style(a, b, m[b]) | |
}); | |
for (d in m) g = K(o ? p[d] : 0, d, l), d in p || (p[d] = g.start, o && (g.end = g.start, g.start = "width" === d || "height" === d ? 1 : 0)) | |
} | |
} | |
function M(a, b) { | |
var c, d, e, f, g; | |
for (c in a) | |
if (d = fa.camelCase(c), e = b[d], f = a[c], fa.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = fa.cssHooks[d], g && "expand" in g) { | |
f = g.expand(f), delete a[d]; | |
for (c in f) c in a || (a[c] = f[c], b[c] = e) | |
} else b[d] = e | |
} | |
function N(a, b, c) { | |
var d, e, f = 0, | |
g = N.prefilters.length, | |
h = fa.Deferred().always(function() { | |
delete i.elem | |
}), | |
i = function() { | |
if (e) return !1; | |
for (var b = eb || I(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++) j.tweens[g].run(f); | |
return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1) | |
}, | |
j = h.promise({ | |
elem: a, | |
props: fa.extend({}, b), | |
opts: fa.extend(!0, { | |
specialEasing: {}, | |
easing: fa.easing._default | |
}, c), | |
originalProperties: b, | |
originalOptions: c, | |
startTime: eb || I(), | |
duration: c.duration, | |
tweens: [], | |
createTween: function(b, c) { | |
var d = fa.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing); | |
return j.tweens.push(d), d | |
}, | |
stop: function(b) { | |
var c = 0, | |
d = b ? j.tweens.length : 0; | |
if (e) return this; | |
for (e = !0; d > c; c++) j.tweens[c].run(1); | |
return b ? (h.notifyWith(a, [j, 1, 0]), h.resolveWith(a, [j, b])) : h.rejectWith(a, [j, b]), this | |
} | |
}), | |
k = j.props; | |
for (M(k, j.opts.specialEasing); g > f; f++) | |
if (d = N.prefilters[f].call(j, a, k, j.opts)) return fa.isFunction(d.stop) && (fa._queueHooks(j.elem, j.opts.queue).stop = fa.proxy(d.stop, d)), d; | |
return fa.map(k, K, j), fa.isFunction(j.opts.start) && j.opts.start.call(a, j), fa.fx.timer(fa.extend(i, { | |
elem: a, | |
anim: j, | |
queue: j.opts.queue | |
})), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always) | |
} | |
function O(a) { | |
return a.getAttribute && a.getAttribute("class") || "" | |
} | |
function P(a) { | |
return function(b, c) { | |
"string" != typeof b && (c = b, b = "*"); | |
var d, e = 0, | |
f = b.toLowerCase().match(va) || []; | |
if (fa.isFunction(c)) | |
for (; d = f[e++];) "+" === d[0] ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c) | |
} | |
} | |
function Q(a, b, c, d) { | |
function e(h) { | |
var i; | |
return f[h] = !0, fa.each(a[h] || [], function(a, h) { | |
var j = h(b, c, d); | |
return "string" != typeof j || g || f[j] ? g ? !(i = j) : void 0 : (b.dataTypes.unshift(j), e(j), !1) | |
}), i | |
} | |
var f = {}, | |
g = a === zb; | |
return e(b.dataTypes[0]) || !f["*"] && e("*") | |
} | |
function R(a, b) { | |
var c, d, e = fa.ajaxSettings.flatOptions || {}; | |
for (c in b) void 0 !== b[c] && ((e[c] ? a : d || (d = {}))[c] = b[c]); | |
return d && fa.extend(!0, a, d), a | |
} | |
function S(a, b, c) { | |
for (var d, e, f, g, h = a.contents, i = a.dataTypes; | |
"*" === i[0];) i.shift(), void 0 === d && (d = a.mimeType || b.getResponseHeader("Content-Type")); | |
if (d) | |
for (e in h) | |
if (h[e] && h[e].test(d)) { | |
i.unshift(e); | |
break | |
} | |
if (i[0] in c) f = i[0]; | |
else { | |
for (e in c) { | |
if (!i[0] || a.converters[e + " " + i[0]]) { | |
f = e; | |
break | |
} | |
g || (g = e) | |
} | |
f = f || g | |
} | |
return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0 | |
} | |
function T(a, b, c, d) { | |
var e, f, g, h, i, j = {}, | |
k = a.dataTypes.slice(); | |
if (k[1]) | |
for (g in a.converters) j[g.toLowerCase()] = a.converters[g]; | |
for (f = k.shift(); f;) | |
if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift()) | |
if ("*" === f) f = i; | |
else if ("*" !== i && i !== f) { | |
if (g = j[i + " " + f] || j["* " + f], !g) | |
for (e in j) | |
if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) { | |
g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1])); | |
break | |
} | |
if (g !== !0) | |
if (g && a["throws"]) b = g(b); | |
else try { | |
b = g(b) | |
} catch (l) { | |
return { | |
state: "parsererror", | |
error: g ? l : "No conversion from " + i + " to " + f | |
} | |
} | |
} | |
return { | |
state: "success", | |
data: b | |
} | |
} | |
function U(a, b, c, d) { | |
var e; | |
if (fa.isArray(b)) fa.each(b, function(b, e) { | |
c || Db.test(a) ? d(a, e) : U(a + "[" + ("object" == typeof e && null != e ? b : "") + "]", e, c, d) | |
}); | |
else if (c || "object" !== fa.type(b)) d(a, b); | |
else | |
for (e in b) U(a + "[" + e + "]", b[e], c, d) | |
} | |
function V(a) { | |
return fa.isWindow(a) ? a : 9 === a.nodeType && a.defaultView | |
} | |
var W = [], | |
X = a.document, | |
Y = W.slice, | |
Z = W.concat, | |
$ = W.push, | |
_ = W.indexOf, | |
aa = {}, | |
ba = aa.toString, | |
ca = aa.hasOwnProperty, | |
da = {}, | |
ea = "2.2.0", | |
fa = function(a, b) { | |
return new fa.fn.init(a, b) | |
}, | |
ga = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, | |
ha = /^-ms-/, | |
ia = /-([\da-z])/gi, | |
ja = function(a, b) { | |
return b.toUpperCase() | |
}; | |
fa.fn = fa.prototype = { | |
jquery: ea, | |
constructor: fa, | |
selector: "", | |
length: 0, | |
toArray: function() { | |
return Y.call(this) | |
}, | |
get: function(a) { | |
return null != a ? 0 > a ? this[a + this.length] : this[a] : Y.call(this) | |
}, | |
pushStack: function(a) { | |
var b = fa.merge(this.constructor(), a); | |
return b.prevObject = this, b.context = this.context, b | |
}, | |
each: function(a) { | |
return fa.each(this, a) | |
}, | |
map: function(a) { | |
return this.pushStack(fa.map(this, function(b, c) { | |
return a.call(b, c, b) | |
})) | |
}, | |
slice: function() { | |
return this.pushStack(Y.apply(this, arguments)) | |
}, | |
first: function() { | |
return this.eq(0) | |
}, | |
last: function() { | |
return this.eq(-1) | |
}, | |
eq: function(a) { | |
var b = this.length, | |
c = +a + (0 > a ? b : 0); | |
return this.pushStack(c >= 0 && b > c ? [this[c]] : []) | |
}, | |
end: function() { | |
return this.prevObject || this.constructor() | |
}, | |
push: $, | |
sort: W.sort, | |
splice: W.splice | |
}, fa.extend = fa.fn.extend = function() { | |
var a, b, c, d, e, f, g = arguments[0] || {}, | |
h = 1, | |
i = arguments.length, | |
j = !1; | |
for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || fa.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++) | |
if (null != (a = arguments[h])) | |
for (b in a) c = g[b], d = a[b], g !== d && (j && d && (fa.isPlainObject(d) || (e = fa.isArray(d))) ? (e ? (e = !1, f = c && fa.isArray(c) ? c : []) : f = c && fa.isPlainObject(c) ? c : {}, g[b] = fa.extend(j, f, d)) : void 0 !== d && (g[b] = d)); | |
return g | |
}, fa.extend({ | |
expando: "jQuery" + (ea + Math.random()).replace(/\D/g, ""), | |
isReady: !0, | |
error: function(a) { | |
throw new Error(a) | |
}, | |
noop: function() {}, | |
isFunction: function(a) { | |
return "function" === fa.type(a) | |
}, | |
isArray: Array.isArray, | |
isWindow: function(a) { | |
return null != a && a === a.window | |
}, | |
isNumeric: function(a) { | |
var b = a && a.toString(); | |
return !fa.isArray(a) && b - parseFloat(b) + 1 >= 0 | |
}, | |
isPlainObject: function(a) { | |
return "object" !== fa.type(a) || a.nodeType || fa.isWindow(a) ? !1 : a.constructor && !ca.call(a.constructor.prototype, "isPrototypeOf") ? !1 : !0 | |
}, | |
isEmptyObject: function(a) { | |
var b; | |
for (b in a) return !1; | |
return !0 | |
}, | |
type: function(a) { | |
return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? aa[ba.call(a)] || "object" : typeof a | |
}, | |
globalEval: function(a) { | |
var b, c = eval; | |
a = fa.trim(a), a && (1 === a.indexOf("use strict") ? (b = X.createElement("script"), b.text = a, X.head.appendChild(b).parentNode.removeChild(b)) : c(a)) | |
}, | |
camelCase: function(a) { | |
return a.replace(ha, "ms-").replace(ia, ja) | |
}, | |
nodeName: function(a, b) { | |
return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase() | |
}, | |
each: function(a, b) { | |
var d, e = 0; | |
if (c(a)) | |
for (d = a.length; d > e && b.call(a[e], e, a[e]) !== !1; e++); | |
else | |
for (e in a) | |
if (b.call(a[e], e, a[e]) === !1) break; return a | |
}, | |
trim: function(a) { | |
return null == a ? "" : (a + "").replace(ga, "") | |
}, | |
makeArray: function(a, b) { | |
var d = b || []; | |
return null != a && (c(Object(a)) ? fa.merge(d, "string" == typeof a ? [a] : a) : $.call(d, a)), d | |
}, | |
inArray: function(a, b, c) { | |
return null == b ? -1 : _.call(b, a, c) | |
}, | |
merge: function(a, b) { | |
for (var c = +b.length, d = 0, e = a.length; c > d; d++) a[e++] = b[d]; | |
return a.length = e, a | |
}, | |
grep: function(a, b, c) { | |
for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) d = !b(a[f], f), d !== h && e.push(a[f]); | |
return e | |
}, | |
map: function(a, b, d) { | |
var e, f, g = 0, | |
h = []; | |
if (c(a)) | |
for (e = a.length; e > g; g++) f = b(a[g], g, d), null != f && h.push(f); | |
else | |
for (g in a) f = b(a[g], g, d), null != f && h.push(f); | |
return Z.apply([], h) | |
}, | |
guid: 1, | |
proxy: function(a, b) { | |
var c, d, e; | |
return "string" == typeof b && (c = a[b], b = a, a = c), fa.isFunction(a) ? (d = Y.call(arguments, 2), e = function() { | |
return a.apply(b || this, d.concat(Y.call(arguments))) | |
}, e.guid = a.guid = a.guid || fa.guid++, e) : void 0 | |
}, | |
now: Date.now, | |
support: da | |
}), "function" == typeof Symbol && (fa.fn[Symbol.iterator] = W[Symbol.iterator]), fa.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(a, b) { | |
aa["[object " + b + "]"] = b.toLowerCase() | |
}); | |
var ka = function(a) { | |
function b(a, b, c, d) { | |
var e, f, g, h, i, j, l, n, o = b && b.ownerDocument, | |
p = b ? b.nodeType : 9; | |
if (c = c || [], "string" != typeof a || !a || 1 !== p && 9 !== p && 11 !== p) return c; | |
if (!d && ((b ? b.ownerDocument || b : O) !== G && F(b), b = b || G, I)) { | |
if (11 !== p && (j = ra.exec(a))) | |
if (e = j[1]) { | |
if (9 === p) { | |
if (!(g = b.getElementById(e))) return c; | |
if (g.id === e) return c.push(g), c | |
} else if (o && (g = o.getElementById(e)) && M(b, g) && g.id === e) return c.push(g), c | |
} else { | |
if (j[2]) return $.apply(c, b.getElementsByTagName(a)), c; | |
if ((e = j[3]) && v.getElementsByClassName && b.getElementsByClassName) return $.apply(c, b.getElementsByClassName(e)), c | |
} | |
if (v.qsa && !T[a + " "] && (!J || !J.test(a))) { | |
if (1 !== p) o = b, n = a; | |
else if ("object" !== b.nodeName.toLowerCase()) { | |
for ((h = b.getAttribute("id")) ? h = h.replace(ta, "\\$&") : b.setAttribute("id", h = N), l = z(a), f = l.length, i = ma.test(h) ? "#" + h : "[id='" + h + "']"; f--;) l[f] = i + " " + m(l[f]); | |
n = l.join(","), o = sa.test(a) && k(b.parentNode) || b | |
} | |
if (n) try { | |
return $.apply(c, o.querySelectorAll(n)), c | |
} catch (q) {} finally { | |
h === N && b.removeAttribute("id") | |
} | |
} | |
} | |
return B(a.replace(ha, "$1"), b, c, d) | |
} | |
function c() { | |
function a(c, d) { | |
return b.push(c + " ") > w.cacheLength && delete a[b.shift()], a[c + " "] = d | |
} | |
var b = []; | |
return a | |
} | |
function d(a) { | |
return a[N] = !0, a | |
} | |
function e(a) { | |
var b = G.createElement("div"); | |
try { | |
return !!a(b) | |
} catch (c) { | |
return !1 | |
} finally { | |
b.parentNode && b.parentNode.removeChild(b), b = null | |
} | |
} | |
function f(a, b) { | |
for (var c = a.split("|"), d = c.length; d--;) w.attrHandle[c[d]] = b | |
} | |
function g(a, b) { | |
var c = b && a, | |
d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || V) - (~a.sourceIndex || V); | |
if (d) return d; | |
if (c) | |
for (; c = c.nextSibling;) | |
if (c === b) return -1; | |
return a ? 1 : -1 | |
} | |
function h(a) { | |
return function(b) { | |
var c = b.nodeName.toLowerCase(); | |
return "input" === c && b.type === a | |
} | |
} | |
function i(a) { | |
return function(b) { | |
var c = b.nodeName.toLowerCase(); | |
return ("input" === c || "button" === c) && b.type === a | |
} | |
} | |
function j(a) { | |
return d(function(b) { | |
return b = +b, d(function(c, d) { | |
for (var e, f = a([], c.length, b), g = f.length; g--;) c[e = f[g]] && (c[e] = !(d[e] = c[e])) | |
}) | |
}) | |
} | |
function k(a) { | |
return a && "undefined" != typeof a.getElementsByTagName && a | |
} | |
function l() {} | |
function m(a) { | |
for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value; | |
return d | |
} | |
function n(a, b, c) { | |
var d = b.dir, | |
e = c && "parentNode" === d, | |
f = Q++; | |
return b.first ? function(b, c, f) { | |
for (; b = b[d];) | |
if (1 === b.nodeType || e) return a(b, c, f) | |
} : function(b, c, g) { | |
var h, i, j, k = [P, f]; | |
if (g) { | |
for (; b = b[d];) | |
if ((1 === b.nodeType || e) && a(b, c, g)) return !0 | |
} else | |
for (; b = b[d];) | |
if (1 === b.nodeType || e) { | |
if (j = b[N] || (b[N] = {}), i = j[b.uniqueID] || (j[b.uniqueID] = {}), (h = i[d]) && h[0] === P && h[1] === f) return k[2] = h[2]; | |
if (i[d] = k, k[2] = a(b, c, g)) return !0 | |
} | |
} | |
} | |
function o(a) { | |
return a.length > 1 ? function(b, c, d) { | |
for (var e = a.length; e--;) | |
if (!a[e](b, c, d)) return !1; | |
return !0 | |
} : a[0] | |
} | |
function p(a, c, d) { | |
for (var e = 0, f = c.length; f > e; e++) b(a, c[e], d); | |
return d | |
} | |
function q(a, b, c, d, e) { | |
for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)(f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h)); | |
return g | |
} | |
function r(a, b, c, e, f, g) { | |
return e && !e[N] && (e = r(e)), f && !f[N] && (f = r(f, g)), d(function(d, g, h, i) { | |
var j, k, l, m = [], | |
n = [], | |
o = g.length, | |
r = d || p(b || "*", h.nodeType ? [h] : h, []), | |
s = !a || !d && b ? r : q(r, m, a, h, i), | |
t = c ? f || (d ? a : o || e) ? [] : g : s; | |
if (c && c(s, t, h, i), e) | |
for (j = q(t, n), e(j, [], h, i), k = j.length; k--;)(l = j[k]) && (t[n[k]] = !(s[n[k]] = l)); | |
if (d) { | |
if (f || a) { | |
if (f) { | |
for (j = [], k = t.length; k--;)(l = t[k]) && j.push(s[k] = l); | |
f(null, t = [], j, i) | |
} | |
for (k = t.length; k--;)(l = t[k]) && (j = f ? aa(d, l) : m[k]) > -1 && (d[j] = !(g[j] = l)) | |
} | |
} else t = q(t === g ? t.splice(o, t.length) : t), f ? f(null, g, t, i) : $.apply(g, t) | |
}) | |
} | |
function s(a) { | |
for (var b, c, d, e = a.length, f = w.relative[a[0].type], g = f || w.relative[" "], h = f ? 1 : 0, i = n(function(a) { | |
return a === b | |
}, g, !0), j = n(function(a) { | |
return aa(b, a) > -1 | |
}, g, !0), k = [function(a, c, d) { | |
var e = !f && (d || c !== C) || ((b = c).nodeType ? i(a, c, d) : j(a, c, d)); | |
return b = null, e | |
}]; e > h; h++) | |
if (c = w.relative[a[h].type]) k = [n(o(k), c)]; | |
else { | |
if (c = w.filter[a[h].type].apply(null, a[h].matches), c[N]) { | |
for (d = ++h; e > d && !w.relative[a[d].type]; d++); | |
return r(h > 1 && o(k), h > 1 && m(a.slice(0, h - 1).concat({ | |
value: " " === a[h - 2].type ? "*" : "" | |
})).replace(ha, "$1"), c, d > h && s(a.slice(h, d)), e > d && s(a = a.slice(d)), e > d && m(a)) | |
} | |
k.push(c) | |
} | |
return o(k) | |
} | |
function t(a, c) { | |
var e = c.length > 0, | |
f = a.length > 0, | |
g = function(d, g, h, i, j) { | |
var k, l, m, n = 0, | |
o = "0", | |
p = d && [], | |
r = [], | |
s = C, | |
t = d || f && w.find.TAG("*", j), | |
u = P += null == s ? 1 : Math.random() || .1, | |
v = t.length; | |
for (j && (C = g === G || g || j); o !== v && null != (k = t[o]); o++) { | |
if (f && k) { | |
for (l = 0, g || k.ownerDocument === G || (F(k), h = !I); m = a[l++];) | |
if (m(k, g || G, h)) { | |
i.push(k); | |
break | |
} | |
j && (P = u) | |
} | |
e && ((k = !m && k) && n--, d && p.push(k)) | |
} | |
if (n += o, e && o !== n) { | |
for (l = 0; m = c[l++];) m(p, r, g, h); | |
if (d) { | |
if (n > 0) | |
for (; o--;) p[o] || r[o] || (r[o] = Y.call(i)); | |
r = q(r) | |
} | |
$.apply(i, r), j && !d && r.length > 0 && n + c.length > 1 && b.uniqueSort(i) | |
} | |
return j && (P = u, C = s), p | |
}; | |
return e ? d(g) : g | |
} | |
var u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N = "sizzle" + 1 * new Date, | |
O = a.document, | |
P = 0, | |
Q = 0, | |
R = c(), | |
S = c(), | |
T = c(), | |
U = function(a, b) { | |
return a === b && (E = !0), 0 | |
}, | |
V = 1 << 31, | |
W = {}.hasOwnProperty, | |
X = [], | |
Y = X.pop, | |
Z = X.push, | |
$ = X.push, | |
_ = X.slice, | |
aa = function(a, b) { | |
for (var c = 0, d = a.length; d > c; c++) | |
if (a[c] === b) return c; | |
return -1 | |
}, | |
ba = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", | |
ca = "[\\x20\\t\\r\\n\\f]", | |
da = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", | |
ea = "\\[" + ca + "*(" + da + ")(?:" + ca + "*([*^$|!~]?=)" + ca + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + da + "))|)" + ca + "*\\]", | |
fa = ":(" + da + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ea + ")*)|.*)\\)|)", | |
ga = new RegExp(ca + "+", "g"), | |
ha = new RegExp("^" + ca + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ca + "+$", "g"), | |
ia = new RegExp("^" + ca + "*," + ca + "*"), | |
ja = new RegExp("^" + ca + "*([>+~]|" + ca + ")" + ca + "*"), | |
ka = new RegExp("=" + ca + "*([^\\]'\"]*?)" + ca + "*\\]", "g"), | |
la = new RegExp(fa), | |
ma = new RegExp("^" + da + "$"), | |
na = { | |
ID: new RegExp("^#(" + da + ")"), | |
CLASS: new RegExp("^\\.(" + da + ")"), | |
TAG: new RegExp("^(" + da + "|[*])"), | |
ATTR: new RegExp("^" + ea), | |
PSEUDO: new RegExp("^" + fa), | |
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ca + "*(even|odd|(([+-]|)(\\d*)n|)" + ca + "*(?:([+-]|)" + ca + "*(\\d+)|))" + ca + "*\\)|)", "i"), | |
bool: new RegExp("^(?:" + ba + ")$", "i"), | |
needsContext: new RegExp("^" + ca + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ca + "*((?:-\\d)?\\d*)" + ca + "*\\)|)(?=[^-]|$)", "i") | |
}, | |
oa = /^(?:input|select|textarea|button)$/i, | |
pa = /^h\d$/i, | |
qa = /^[^{]+\{\s*\[native \w/, | |
ra = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, | |
sa = /[+~]/, | |
ta = /'|\\/g, | |
ua = new RegExp("\\\\([\\da-f]{1,6}" + ca + "?|(" + ca + ")|.)", "ig"), | |
va = function(a, b, c) { | |
var d = "0x" + b - 65536; | |
return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320) | |
}, | |
wa = function() { | |
F() | |
}; | |
try { | |
$.apply(X = _.call(O.childNodes), O.childNodes), X[O.childNodes.length].nodeType | |
} catch (xa) { | |
$ = { | |
apply: X.length ? function(a, b) { | |
Z.apply(a, _.call(b)) | |
} : function(a, b) { | |
for (var c = a.length, d = 0; a[c++] = b[d++];); | |
a.length = c - 1 | |
} | |
} | |
} | |
v = b.support = {}, y = b.isXML = function(a) { | |
var b = a && (a.ownerDocument || a).documentElement; | |
return b ? "HTML" !== b.nodeName : !1 | |
}, F = b.setDocument = function(a) { | |
var b, c, d = a ? a.ownerDocument || a : O; | |
return d !== G && 9 === d.nodeType && d.documentElement ? (G = d, H = G.documentElement, I = !y(G), (c = G.defaultView) && c.top !== c && (c.addEventListener ? c.addEventListener("unload", wa, !1) : c.attachEvent && c.attachEvent("onunload", wa)), v.attributes = e(function(a) { | |
return a.className = "i", !a.getAttribute("className") | |
}), v.getElementsByTagName = e(function(a) { | |
return a.appendChild(G.createComment("")), !a.getElementsByTagName("*").length | |
}), v.getElementsByClassName = qa.test(G.getElementsByClassName), v.getById = e(function(a) { | |
return H.appendChild(a).id = N, !G.getElementsByName || !G.getElementsByName(N).length | |
}), v.getById ? (w.find.ID = function(a, b) { | |
if ("undefined" != typeof b.getElementById && I) { | |
var c = b.getElementById(a); | |
return c ? [c] : [] | |
} | |
}, w.filter.ID = function(a) { | |
var b = a.replace(ua, va); | |
return function(a) { | |
return a.getAttribute("id") === b | |
} | |
}) : (delete w.find.ID, w.filter.ID = function(a) { | |
var b = a.replace(ua, va); | |
return function(a) { | |
var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id"); | |
return c && c.value === b | |
} | |
}), w.find.TAG = v.getElementsByTagName ? function(a, b) { | |
return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : v.qsa ? b.querySelectorAll(a) : void 0 | |
} : function(a, b) { | |
var c, d = [], | |
e = 0, | |
f = b.getElementsByTagName(a); | |
if ("*" === a) { | |
for (; c = f[e++];) 1 === c.nodeType && d.push(c); | |
return d | |
} | |
return f | |
}, w.find.CLASS = v.getElementsByClassName && function(a, b) { | |
return "undefined" != typeof b.getElementsByClassName && I ? b.getElementsByClassName(a) : void 0 | |
}, K = [], J = [], (v.qsa = qa.test(G.querySelectorAll)) && (e(function(a) { | |
H.appendChild(a).innerHTML = "<a id='" + N + "'></a><select id='" + N + "-\r\\' msallowcapture=''><option selected=''></option></select>", a.querySelectorAll("[msallowcapture^='']").length && J.push("[*^$]=" + ca + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || J.push("\\[" + ca + "*(?:value|" + ba + ")"), a.querySelectorAll("[id~=" + N + "-]").length || J.push("~="), a.querySelectorAll(":checked").length || J.push(":checked"), a.querySelectorAll("a#" + N + "+*").length || J.push(".#.+[+~]") | |
}), e(function(a) { | |
var b = G.createElement("input"); | |
b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && J.push("name" + ca + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || J.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), J.push(",.*:") | |
})), (v.matchesSelector = qa.test(L = H.matches || H.webkitMatchesSelector || H.mozMatchesSelector || H.oMatchesSelector || H.msMatchesSelector)) && e(function(a) { | |
v.disconnectedMatch = L.call(a, "div"), L.call(a, "[s!='']:x"), K.push("!=", fa) | |
}), J = J.length && new RegExp(J.join("|")), K = K.length && new RegExp(K.join("|")), b = qa.test(H.compareDocumentPosition), M = b || qa.test(H.contains) ? function(a, b) { | |
var c = 9 === a.nodeType ? a.documentElement : a, | |
d = b && b.parentNode; | |
return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d))) | |
} : function(a, b) { | |
if (b) | |
for (; b = b.parentNode;) | |
if (b === a) return !0; | |
return !1 | |
}, U = b ? function(a, b) { | |
if (a === b) return E = !0, 0; | |
var c = !a.compareDocumentPosition - !b.compareDocumentPosition; | |
return c ? c : (c = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & c || !v.sortDetached && b.compareDocumentPosition(a) === c ? a === G || a.ownerDocument === O && M(O, a) ? -1 : b === G || b.ownerDocument === O && M(O, b) ? 1 : D ? aa(D, a) - aa(D, b) : 0 : 4 & c ? -1 : 1) | |
} : function(a, b) { | |
if (a === b) return E = !0, 0; | |
var c, d = 0, | |
e = a.parentNode, | |
f = b.parentNode, | |
h = [a], | |
i = [b]; | |
if (!e || !f) return a === G ? -1 : b === G ? 1 : e ? -1 : f ? 1 : D ? aa(D, a) - aa(D, b) : 0; | |
if (e === f) return g(a, b); | |
for (c = a; c = c.parentNode;) h.unshift(c); | |
for (c = b; c = c.parentNode;) i.unshift(c); | |
for (; h[d] === i[d];) d++; | |
return d ? g(h[d], i[d]) : h[d] === O ? -1 : i[d] === O ? 1 : 0 | |
}, G) : G | |
}, b.matches = function(a, c) { | |
return b(a, null, null, c) | |
}, b.matchesSelector = function(a, c) { | |
if ((a.ownerDocument || a) !== G && F(a), c = c.replace(ka, "='$1']"), v.matchesSelector && I && !T[c + " "] && (!K || !K.test(c)) && (!J || !J.test(c))) try { | |
var d = L.call(a, c); | |
if (d || v.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d | |
} catch (e) {} | |
return b(c, G, null, [a]).length > 0 | |
}, b.contains = function(a, b) { | |
return (a.ownerDocument || a) !== G && F(a), M(a, b) | |
}, b.attr = function(a, b) { | |
(a.ownerDocument || a) !== G && F(a); | |
var c = w.attrHandle[b.toLowerCase()], | |
d = c && W.call(w.attrHandle, b.toLowerCase()) ? c(a, b, !I) : void 0; | |
return void 0 !== d ? d : v.attributes || !I ? a.getAttribute(b) : (d = a.getAttributeNode(b)) && d.specified ? d.value : null | |
}, b.error = function(a) { | |
throw new Error("Syntax error, unrecognized expression: " + a) | |
}, b.uniqueSort = function(a) { | |
var b, c = [], | |
d = 0, | |
e = 0; | |
if (E = !v.detectDuplicates, D = !v.sortStable && a.slice(0), a.sort(U), E) { | |
for (; b = a[e++];) b === a[e] && (d = c.push(e)); | |
for (; d--;) a.splice(c[d], 1) | |
} | |
return D = null, a | |
}, x = b.getText = function(a) { | |
var b, c = "", | |
d = 0, | |
e = a.nodeType; | |
if (e) { | |
if (1 === e || 9 === e || 11 === e) { | |
if ("string" == typeof a.textContent) return a.textContent; | |
for (a = a.firstChild; a; a = a.nextSibling) c += x(a) | |
} else if (3 === e || 4 === e) return a.nodeValue | |
} else | |
for (; b = a[d++];) c += x(b); | |
return c | |
}, w = b.selectors = { | |
cacheLength: 50, | |
createPseudo: d, | |
match: na, | |
attrHandle: {}, | |
find: {}, | |
relative: { | |
">": { | |
dir: "parentNode", | |
first: !0 | |
}, | |
" ": { | |
dir: "parentNode" | |
}, | |
"+": { | |
dir: "previousSibling", | |
first: !0 | |
}, | |
"~": { | |
dir: "previousSibling" | |
} | |
}, | |
preFilter: { | |
ATTR: function(a) { | |
return a[1] = a[1].replace(ua, va), a[3] = (a[3] || a[4] || a[5] || "").replace(ua, va), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4) | |
}, | |
CHILD: function(a) { | |
return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || b.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && b.error(a[0]), a | |
}, | |
PSEUDO: function(a) { | |
var b, c = !a[6] && a[2]; | |
return na.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && la.test(c) && (b = z(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3)) | |
} | |
}, | |
filter: { | |
TAG: function(a) { | |
var b = a.replace(ua, va).toLowerCase(); | |
return "*" === a ? function() { | |
return !0 | |
} : function(a) { | |
return a.nodeName && a.nodeName.toLowerCase() === b | |
} | |
}, | |
CLASS: function(a) { | |
var b = R[a + " "]; | |
return b || (b = new RegExp("(^|" + ca + ")" + a + "(" + ca + "|$)")) && R(a, function(a) { | |
return b.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "") | |
}) | |
}, | |
ATTR: function(a, c, d) { | |
return function(e) { | |
var f = b.attr(e, a); | |
return null == f ? "!=" === c : c ? (f += "", "=" === c ? f === d : "!=" === c ? f !== d : "^=" === c ? d && 0 === f.indexOf(d) : "*=" === c ? d && f.indexOf(d) > -1 : "$=" === c ? d && f.slice(-d.length) === d : "~=" === c ? (" " + f.replace(ga, " ") + " ").indexOf(d) > -1 : "|=" === c ? f === d || f.slice(0, d.length + 1) === d + "-" : !1) : !0 | |
} | |
}, | |
CHILD: function(a, b, c, d, e) { | |
var f = "nth" !== a.slice(0, 3), | |
g = "last" !== a.slice(-4), | |
h = "of-type" === b; | |
return 1 === d && 0 === e ? function(a) { | |
return !!a.parentNode | |
} : function(b, c, i) { | |
var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling", | |
q = b.parentNode, | |
r = h && b.nodeName.toLowerCase(), | |
s = !i && !h, | |
t = !1; | |
if (q) { | |
if (f) { | |
for (; p;) { | |
for (m = b; m = m[p];) | |
if (h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType) return !1; | |
o = p = "only" === a && !o && "nextSibling" | |
} | |
return !0 | |
} | |
if (o = [g ? q.firstChild : q.lastChild], g && s) { | |
for (m = q, l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), j = k[a] || [], n = j[0] === P && j[1], t = n && j[2], m = n && q.childNodes[n]; m = ++n && m && m[p] || (t = n = 0) || o.pop();) | |
if (1 === m.nodeType && ++t && m === b) { | |
k[a] = [P, n, t]; | |
break | |
} | |
} else if (s && (m = b, l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), j = k[a] || [], n = j[0] === P && j[1], t = n), t === !1) | |
for (; | |
(m = ++n && m && m[p] || (t = n = 0) || o.pop()) && ((h ? m.nodeName.toLowerCase() !== r : 1 !== m.nodeType) || !++t || (s && (l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), k[a] = [P, t]), m !== b));); | |
return t -= e, t === d || t % d === 0 && t / d >= 0 | |
} | |
} | |
}, | |
PSEUDO: function(a, c) { | |
var e, f = w.pseudos[a] || w.setFilters[a.toLowerCase()] || b.error("unsupported pseudo: " + a); | |
return f[N] ? f(c) : f.length > 1 ? (e = [a, a, "", c], w.setFilters.hasOwnProperty(a.toLowerCase()) ? d(function(a, b) { | |
for (var d, e = f(a, c), g = e.length; g--;) d = aa(a, e[g]), a[d] = !(b[d] = e[g]) | |
}) : function(a) { | |
return f(a, 0, e) | |
}) : f | |
} | |
}, | |
pseudos: { | |
not: d(function(a) { | |
var b = [], | |
c = [], | |
e = A(a.replace(ha, "$1")); | |
return e[N] ? d(function(a, b, c, d) { | |
for (var f, g = e(a, null, d, []), h = a.length; h--;)(f = g[h]) && (a[h] = !(b[h] = f)) | |
}) : function(a, d, f) { | |
return b[0] = a, e(b, null, f, c), b[0] = null, !c.pop() | |
} | |
}), | |
has: d(function(a) { | |
return function(c) { | |
return b(a, c).length > 0 | |
} | |
}), | |
contains: d(function(a) { | |
return a = a.replace(ua, va), | |
function(b) { | |
return (b.textContent || b.innerText || x(b)).indexOf(a) > -1 | |
} | |
}), | |
lang: d(function(a) { | |
return ma.test(a || "") || b.error("unsupported lang: " + a), a = a.replace(ua, va).toLowerCase(), | |
function(b) { | |
var c; | |
do | |
if (c = I ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-"); | |
while ((b = b.parentNode) && 1 === b.nodeType); | |
return !1 | |
} | |
}), | |
target: function(b) { | |
var c = a.location && a.location.hash; | |
return c && c.slice(1) === b.id | |
}, | |
root: function(a) { | |
return a === H | |
}, | |
focus: function(a) { | |
return a === G.activeElement && (!G.hasFocus || G.hasFocus()) && !!(a.type || a.href || ~a.tabIndex) | |
}, | |
enabled: function(a) { | |
return a.disabled === !1 | |
}, | |
disabled: function(a) { | |
return a.disabled === !0 | |
}, | |
checked: function(a) { | |
var b = a.nodeName.toLowerCase(); | |
return "input" === b && !!a.checked || "option" === b && !!a.selected | |
}, | |
selected: function(a) { | |
return a.parentNode && a.parentNode.selectedIndex, a.selected === !0 | |
}, | |
empty: function(a) { | |
for (a = a.firstChild; a; a = a.nextSibling) | |
if (a.nodeType < 6) return !1; | |
return !0 | |
}, | |
parent: function(a) { | |
return !w.pseudos.empty(a) | |
}, | |
header: function(a) { | |
return pa.test(a.nodeName) | |
}, | |
input: function(a) { | |
return oa.test(a.nodeName) | |
}, | |
button: function(a) { | |
var b = a.nodeName.toLowerCase(); | |
return "input" === b && "button" === a.type || "button" === b | |
}, | |
text: function(a) { | |
var b; | |
return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase()) | |
}, | |
first: j(function() { | |
return [0] | |
}), | |
last: j(function(a, b) { | |
return [b - 1] | |
}), | |
eq: j(function(a, b, c) { | |
return [0 > c ? c + b : c] | |
}), | |
even: j(function(a, b) { | |
for (var c = 0; b > c; c += 2) a.push(c); | |
return a | |
}), | |
odd: j(function(a, b) { | |
for (var c = 1; b > c; c += 2) a.push(c); | |
return a | |
}), | |
lt: j(function(a, b, c) { | |
for (var d = 0 > c ? c + b : c; --d >= 0;) a.push(d); | |
return a | |
}), | |
gt: j(function(a, b, c) { | |
for (var d = 0 > c ? c + b : c; ++d < b;) a.push(d); | |
return a | |
}) | |
} | |
}, w.pseudos.nth = w.pseudos.eq; | |
for (u in { | |
radio: !0, | |
checkbox: !0, | |
file: !0, | |
password: !0, | |
image: !0 | |
}) w.pseudos[u] = h(u); | |
for (u in { | |
submit: !0, | |
reset: !0 | |
}) w.pseudos[u] = i(u); | |
return l.prototype = w.filters = w.pseudos, w.setFilters = new l, z = b.tokenize = function(a, c) { | |
var d, e, f, g, h, i, j, k = S[a + " "]; | |
if (k) return c ? 0 : k.slice(0); | |
for (h = a, i = [], j = w.preFilter; h;) { | |
(!d || (e = ia.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), d = !1, (e = ja.exec(h)) && (d = e.shift(), f.push({ | |
value: d, | |
type: e[0].replace(ha, " ") | |
}), h = h.slice(d.length)); | |
for (g in w.filter) !(e = na[g].exec(h)) || j[g] && !(e = j[g](e)) || (d = e.shift(), f.push({ | |
value: d, | |
type: g, | |
matches: e | |
}), h = h.slice(d.length)); | |
if (!d) break | |
} | |
return c ? h.length : h ? b.error(a) : S(a, i).slice(0) | |
}, A = b.compile = function(a, b) { | |
var c, d = [], | |
e = [], | |
f = T[a + " "]; | |
if (!f) { | |
for (b || (b = z(a)), c = b.length; c--;) f = s(b[c]), f[N] ? d.push(f) : e.push(f); | |
f = T(a, t(e, d)), f.selector = a | |
} | |
return f | |
}, B = b.select = function(a, b, c, d) { | |
var e, f, g, h, i, j = "function" == typeof a && a, | |
l = !d && z(a = j.selector || a); | |
if (c = c || [], 1 === l.length) { | |
if (f = l[0] = l[0].slice(0), f.length > 2 && "ID" === (g = f[0]).type && v.getById && 9 === b.nodeType && I && w.relative[f[1].type]) { | |
if (b = (w.find.ID(g.matches[0].replace(ua, va), b) || [])[0], !b) return c; | |
j && (b = b.parentNode), a = a.slice(f.shift().value.length) | |
} | |
for (e = na.needsContext.test(a) ? 0 : f.length; e-- && (g = f[e], !w.relative[h = g.type]);) | |
if ((i = w.find[h]) && (d = i(g.matches[0].replace(ua, va), sa.test(f[0].type) && k(b.parentNode) || b))) { | |
if (f.splice(e, 1), a = d.length && m(f), !a) return $.apply(c, d), c; | |
break | |
} | |
} | |
return (j || A(a, l))(d, b, !I, c, !b || sa.test(a) && k(b.parentNode) || b), c | |
}, v.sortStable = N.split("").sort(U).join("") === N, v.detectDuplicates = !!E, F(), v.sortDetached = e(function(a) { | |
return 1 & a.compareDocumentPosition(G.createElement("div")) | |
}), e(function(a) { | |
return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href") | |
}) || f("type|href|height|width", function(a, b, c) { | |
return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2) | |
}), v.attributes && e(function(a) { | |
return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value") | |
}) || f("value", function(a, b, c) { | |
return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue | |
}), e(function(a) { | |
return null == a.getAttribute("disabled") | |
}) || f(ba, function(a, b, c) { | |
var d; | |
return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null | |
}), b | |
}(a); | |
fa.find = ka, fa.expr = ka.selectors, fa.expr[":"] = fa.expr.pseudos, fa.uniqueSort = fa.unique = ka.uniqueSort, fa.text = ka.getText, fa.isXMLDoc = ka.isXML, fa.contains = ka.contains; | |
var la = function(a, b, c) { | |
for (var d = [], e = void 0 !== c; | |
(a = a[b]) && 9 !== a.nodeType;) | |
if (1 === a.nodeType) { | |
if (e && fa(a).is(c)) break; | |
d.push(a) | |
} | |
return d | |
}, | |
ma = function(a, b) { | |
for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a); | |
return c | |
}, | |
na = fa.expr.match.needsContext, | |
oa = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/, | |
pa = /^.[^:#\[\.,]*$/; | |
fa.filter = function(a, b, c) { | |
var d = b[0]; | |
return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? fa.find.matchesSelector(d, a) ? [d] : [] : fa.find.matches(a, fa.grep(b, function(a) { | |
return 1 === a.nodeType | |
})) | |
}, fa.fn.extend({ | |
find: function(a) { | |
var b, c = this.length, | |
d = [], | |
e = this; | |
if ("string" != typeof a) return this.pushStack(fa(a).filter(function() { | |
for (b = 0; c > b; b++) | |
if (fa.contains(e[b], this)) return !0 | |
})); | |
for (b = 0; c > b; b++) fa.find(a, e[b], d); | |
return d = this.pushStack(c > 1 ? fa.unique(d) : d), d.selector = this.selector ? this.selector + " " + a : a, d | |
}, | |
filter: function(a) { | |
return this.pushStack(d(this, a || [], !1)) | |
}, | |
not: function(a) { | |
return this.pushStack(d(this, a || [], !0)) | |
}, | |
is: function(a) { | |
return !!d(this, "string" == typeof a && na.test(a) ? fa(a) : a || [], !1).length | |
} | |
}); | |
var qa, ra = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, | |
sa = fa.fn.init = function(a, b, c) { | |
var d, e; | |
if (!a) return this; | |
if (c = c || qa, "string" == typeof a) { | |
if (d = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : ra.exec(a), !d || !d[1] && b) return !b || b.jquery ? (b || c).find(a) : this.constructor(b).find(a); | |
if (d[1]) { | |
if (b = b instanceof fa ? b[0] : b, fa.merge(this, fa.parseHTML(d[1], b && b.nodeType ? b.ownerDocument || b : X, !0)), oa.test(d[1]) && fa.isPlainObject(b)) | |
for (d in b) fa.isFunction(this[d]) ? this[d](b[d]) : this.attr(d, b[d]); | |
return this | |
} | |
return e = X.getElementById(d[2]), e && e.parentNode && (this.length = 1, this[0] = e), this.context = X, this.selector = a, this | |
} | |
return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : fa.isFunction(a) ? void 0 !== c.ready ? c.ready(a) : a(fa) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), fa.makeArray(a, this)) | |
}; | |
sa.prototype = fa.fn, qa = fa(X); | |
var ta = /^(?:parents|prev(?:Until|All))/, | |
ua = { | |
children: !0, | |
contents: !0, | |
next: !0, | |
prev: !0 | |
}; | |
fa.fn.extend({ | |
has: function(a) { | |
var b = fa(a, this), | |
c = b.length; | |
return this.filter(function() { | |
for (var a = 0; c > a; a++) | |
if (fa.contains(this, b[a])) return !0 | |
}) | |
}, | |
closest: function(a, b) { | |
for (var c, d = 0, e = this.length, f = [], g = na.test(a) || "string" != typeof a ? fa(a, b || this.context) : 0; e > d; d++) | |
for (c = this[d]; c && c !== b; c = c.parentNode) | |
if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && fa.find.matchesSelector(c, a))) { | |
f.push(c); | |
break | |
} | |
return this.pushStack(f.length > 1 ? fa.uniqueSort(f) : f) | |
}, | |
index: function(a) { | |
return a ? "string" == typeof a ? _.call(fa(a), this[0]) : _.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 | |
}, | |
add: function(a, b) { | |
return this.pushStack(fa.uniqueSort(fa.merge(this.get(), fa(a, b)))) | |
}, | |
addBack: function(a) { | |
return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) | |
} | |
}), fa.each({ | |
parent: function(a) { | |
var b = a.parentNode; | |
return b && 11 !== b.nodeType ? b : null | |
}, | |
parents: function(a) { | |
return la(a, "parentNode") | |
}, | |
parentsUntil: function(a, b, c) { | |
return la(a, "parentNode", c) | |
}, | |
next: function(a) { | |
return e(a, "nextSibling") | |
}, | |
prev: function(a) { | |
return e(a, "previousSibling") | |
}, | |
nextAll: function(a) { | |
return la(a, "nextSibling") | |
}, | |
prevAll: function(a) { | |
return la(a, "previousSibling") | |
}, | |
nextUntil: function(a, b, c) { | |
return la(a, "nextSibling", c) | |
}, | |
prevUntil: function(a, b, c) { | |
return la(a, "previousSibling", c) | |
}, | |
siblings: function(a) { | |
return ma((a.parentNode || {}).firstChild, a) | |
}, | |
children: function(a) { | |
return ma(a.firstChild) | |
}, | |
contents: function(a) { | |
return a.contentDocument || fa.merge([], a.childNodes) | |
} | |
}, function(a, b) { | |
fa.fn[a] = function(c, d) { | |
var e = fa.map(this, b, c); | |
return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = fa.filter(d, e)), this.length > 1 && (ua[a] || fa.uniqueSort(e), ta.test(a) && e.reverse()), this.pushStack(e) | |
} | |
}); | |
var va = /\S+/g; | |
fa.Callbacks = function(a) { | |
a = "string" == typeof a ? f(a) : fa.extend({}, a); | |
var b, c, d, e, g = [], | |
h = [], | |
i = -1, | |
j = function() { | |
for (e = a.once, d = b = !0; h.length; i = -1) | |
for (c = h.shift(); ++i < g.length;) g[i].apply(c[0], c[1]) === !1 && a.stopOnFalse && (i = g.length, c = !1); | |
a.memory || (c = !1), b = !1, e && (g = c ? [] : "") | |
}, | |
k = { | |
add: function() { | |
return g && (c && !b && (i = g.length - 1, h.push(c)), function d(b) { | |
fa.each(b, function(b, c) { | |
fa.isFunction(c) ? a.unique && k.has(c) || g.push(c) : c && c.length && "string" !== fa.type(c) && d(c) | |
}) | |
}(arguments), c && !b && j()), this | |
}, | |
remove: function() { | |
return fa.each(arguments, function(a, b) { | |
for (var c; | |
(c = fa.inArray(b, g, c)) > -1;) g.splice(c, 1), i >= c && i-- | |
}), this | |
}, | |
has: function(a) { | |
return a ? fa.inArray(a, g) > -1 : g.length > 0 | |
}, | |
empty: function() { | |
return g && (g = []), this | |
}, | |
disable: function() { | |
return e = h = [], g = c = "", this | |
}, | |
disabled: function() { | |
return !g | |
}, | |
lock: function() { | |
return e = h = [], c || (g = c = ""), this | |
}, | |
locked: function() { | |
return !!e | |
}, | |
fireWith: function(a, c) { | |
return e || (c = c || [], c = [a, c.slice ? c.slice() : c], h.push(c), b || j()), this | |
}, | |
fire: function() { | |
return k.fireWith(this, arguments), this | |
}, | |
fired: function() { | |
return !!d | |
} | |
}; | |
return k | |
}, fa.extend({ | |
Deferred: function(a) { | |
var b = [ | |
["resolve", "done", fa.Callbacks("once memory"), "resolved"], | |
["reject", "fail", fa.Callbacks("once memory"), "rejected"], | |
["notify", "progress", fa.Callbacks("memory")] | |
], | |
c = "pending", | |
d = { | |
state: function() { | |
return c | |
}, | |
always: function() { | |
return e.done(arguments).fail(arguments), this | |
}, | |
then: function() { | |
var a = arguments; | |
return fa.Deferred(function(c) { | |
fa.each(b, function(b, f) { | |
var g = fa.isFunction(a[b]) && a[b]; | |
e[f[1]](function() { | |
var a = g && g.apply(this, arguments); | |
a && fa.isFunction(a.promise) ? a.promise().progress(c.notify).done(c.resolve).fail(c.reject) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments) | |
}) | |
}), a = null | |
}).promise() | |
}, | |
promise: function(a) { | |
return null != a ? fa.extend(a, d) : d | |
} | |
}, | |
e = {}; | |
return d.pipe = d.then, fa.each(b, function(a, f) { | |
var g = f[2], | |
h = f[3]; | |
d[f[1]] = g.add, h && g.add(function() { | |
c = h | |
}, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function() { | |
return e[f[0] + "With"](this === e ? d : this, arguments), this | |
}, e[f[0] + "With"] = g.fireWith | |
}), d.promise(e), a && a.call(e, e), e | |
}, | |
when: function(a) { | |
var b, c, d, e = 0, | |
f = Y.call(arguments), | |
g = f.length, | |
h = 1 !== g || a && fa.isFunction(a.promise) ? g : 0, | |
i = 1 === h ? a : fa.Deferred(), | |
j = function(a, c, d) { | |
return function(e) { | |
c[a] = this, d[a] = arguments.length > 1 ? Y.call(arguments) : e, d === b ? i.notifyWith(c, d) : --h || i.resolveWith(c, d) | |
} | |
}; | |
if (g > 1) | |
for (b = new Array(g), c = new Array(g), d = new Array(g); g > e; e++) f[e] && fa.isFunction(f[e].promise) ? f[e].promise().progress(j(e, c, b)).done(j(e, d, f)).fail(i.reject) : --h; | |
return h || i.resolveWith(d, f), i.promise() | |
} | |
}); | |
var wa; | |
fa.fn.ready = function(a) { | |
return fa.ready.promise().done(a), this | |
}, fa.extend({ | |
isReady: !1, | |
readyWait: 1, | |
holdReady: function(a) { | |
a ? fa.readyWait++ : fa.ready(!0) | |
}, | |
ready: function(a) { | |
(a === !0 ? --fa.readyWait : fa.isReady) || (fa.isReady = !0, a !== !0 && --fa.readyWait > 0 || (wa.resolveWith(X, [fa]), fa.fn.triggerHandler && (fa(X).triggerHandler("ready"), fa(X).off("ready")))) | |
} | |
}), fa.ready.promise = function(b) { | |
return wa || (wa = fa.Deferred(), "complete" === X.readyState || "loading" !== X.readyState && !X.documentElement.doScroll ? a.setTimeout(fa.ready) : (X.addEventListener("DOMContentLoaded", g), a.addEventListener("load", g))), wa.promise(b) | |
}, fa.ready.promise(); | |
var xa = function(a, b, c, d, e, f, g) { | |
var h = 0, | |
i = a.length, | |
j = null == c; | |
if ("object" === fa.type(c)) { | |
e = !0; | |
for (h in c) xa(a, b, h, c[h], !0, f, g) | |
} else if (void 0 !== d && (e = !0, fa.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function(a, b, c) { | |
return j.call(fa(a), c) | |
})), b)) | |
for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c))); | |
return e ? a : j ? b.call(a) : i ? b(a[0], c) : f | |
}, | |
ya = function(a) { | |
return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType | |
}; | |
h.uid = 1, h.prototype = { | |
register: function(a, b) { | |
var c = b || {}; | |
return a.nodeType ? a[this.expando] = c : Object.defineProperty(a, this.expando, { | |
value: c, | |
writable: !0, | |
configurable: !0 | |
}), a[this.expando] | |
}, | |
cache: function(a) { | |
if (!ya(a)) return {}; | |
var b = a[this.expando]; | |
return b || (b = {}, ya(a) && (a.nodeType ? a[this.expando] = b : Object.defineProperty(a, this.expando, { | |
value: b, | |
configurable: !0 | |
}))), b | |
}, | |
set: function(a, b, c) { | |
var d, e = this.cache(a); | |
if ("string" == typeof b) e[b] = c; | |
else | |
for (d in b) e[d] = b[d]; | |
return e | |
}, | |
get: function(a, b) { | |
return void 0 === b ? this.cache(a) : a[this.expando] && a[this.expando][b] | |
}, | |
access: function(a, b, c) { | |
var d; | |
return void 0 === b || b && "string" == typeof b && void 0 === c ? (d = this.get(a, b), void 0 !== d ? d : this.get(a, fa.camelCase(b))) : (this.set(a, b, c), void 0 !== c ? c : b) | |
}, | |
remove: function(a, b) { | |
var c, d, e, f = a[this.expando]; | |
if (void 0 !== f) { | |
if (void 0 === b) this.register(a); | |
else { | |
fa.isArray(b) ? d = b.concat(b.map(fa.camelCase)) : (e = fa.camelCase(b), b in f ? d = [b, e] : (d = e, d = d in f ? [d] : d.match(va) || [])), c = d.length; | |
for (; c--;) delete f[d[c]] | |
}(void 0 === b || fa.isEmptyObject(f)) && (a.nodeType ? a[this.expando] = void 0 : delete a[this.expando]) | |
} | |
}, | |
hasData: function(a) { | |
var b = a[this.expando]; | |
return void 0 !== b && !fa.isEmptyObject(b) | |
} | |
}; | |
var za = new h, | |
Aa = new h, | |
Ba = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, | |
Ca = /[A-Z]/g; | |
fa.extend({ | |
hasData: function(a) { | |
return Aa.hasData(a) || za.hasData(a) | |
}, | |
data: function(a, b, c) { | |
return Aa.access(a, b, c) | |
}, | |
removeData: function(a, b) { | |
Aa.remove(a, b) | |
}, | |
_data: function(a, b, c) { | |
return za.access(a, b, c) | |
}, | |
_removeData: function(a, b) { | |
za.remove(a, b) | |
} | |
}), fa.fn.extend({ | |
data: function(a, b) { | |
var c, d, e, f = this[0], | |
g = f && f.attributes; | |
if (void 0 === a) { | |
if (this.length && (e = Aa.get(f), 1 === f.nodeType && !za.get(f, "hasDataAttrs"))) { | |
for (c = g.length; c--;) g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = fa.camelCase(d.slice(5)), i(f, d, e[d]))); | |
za.set(f, "hasDataAttrs", !0) | |
} | |
return e | |
} | |
return "object" == typeof a ? this.each(function() { | |
Aa.set(this, a) | |
}) : xa(this, function(b) { | |
var c, d; | |
if (f && void 0 === b) { | |
if (c = Aa.get(f, a) || Aa.get(f, a.replace(Ca, "-$&").toLowerCase()), void 0 !== c) return c; | |
if (d = fa.camelCase(a), c = Aa.get(f, d), void 0 !== c) return c; | |
if (c = i(f, d, void 0), void 0 !== c) return c | |
} else d = fa.camelCase(a), this.each(function() { | |
var c = Aa.get(this, d); | |
Aa.set(this, d, b), a.indexOf("-") > -1 && void 0 !== c && Aa.set(this, a, b) | |
}) | |
}, null, b, arguments.length > 1, null, !0) | |
}, | |
removeData: function(a) { | |
return this.each(function() { | |
Aa.remove(this, a) | |
}) | |
} | |
}), fa.extend({ | |
queue: function(a, b, c) { | |
var d; | |
return a ? (b = (b || "fx") + "queue", d = za.get(a, b), c && (!d || fa.isArray(c) ? d = za.access(a, b, fa.makeArray(c)) : d.push(c)), d || []) : void 0 | |
}, | |
dequeue: function(a, b) { | |
b = b || "fx"; | |
var c = fa.queue(a, b), | |
d = c.length, | |
e = c.shift(), | |
f = fa._queueHooks(a, b), | |
g = function() { | |
fa.dequeue(a, b) | |
}; | |
"inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire() | |
}, | |
_queueHooks: function(a, b) { | |
var c = b + "queueHooks"; | |
return za.get(a, c) || za.access(a, c, { | |
empty: fa.Callbacks("once memory").add(function() { | |
za.remove(a, [b + "queue", c]) | |
}) | |
}) | |
} | |
}), fa.fn.extend({ | |
queue: function(a, b) { | |
var c = 2; | |
return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? fa.queue(this[0], a) : void 0 === b ? this : this.each(function() { | |
var c = fa.queue(this, a, b); | |
fa._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && fa.dequeue(this, a) | |
}) | |
}, | |
dequeue: function(a) { | |
return this.each(function() { | |
fa.dequeue(this, a) | |
}) | |
}, | |
clearQueue: function(a) { | |
return this.queue(a || "fx", []) | |
}, | |
promise: function(a, b) { | |
var c, d = 1, | |
e = fa.Deferred(), | |
f = this, | |
g = this.length, | |
h = function() { | |
--d || e.resolveWith(f, [f]) | |
}; | |
for ("string" != typeof a && (b = a, a = void 0), a = a || "fx"; g--;) c = za.get(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h)); | |
return h(), e.promise(b) | |
} | |
}); | |
var Da = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, | |
Ea = new RegExp("^(?:([+-])=|)(" + Da + ")([a-z%]*)$", "i"), | |
Fa = ["Top", "Right", "Bottom", "Left"], | |
Ga = function(a, b) { | |
return a = b || a, "none" === fa.css(a, "display") || !fa.contains(a.ownerDocument, a) | |
}, | |
Ha = /^(?:checkbox|radio)$/i, | |
Ia = /<([\w:-]+)/, | |
Ja = /^$|\/(?:java|ecma)script/i, | |
Ka = { | |
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, "", ""] | |
}; | |
Ka.optgroup = Ka.option, Ka.tbody = Ka.tfoot = Ka.colgroup = Ka.caption = Ka.thead, Ka.th = Ka.td; | |
var La = /<|&#?\w+;/; | |
! function() { | |
var a = X.createDocumentFragment(), | |
b = a.appendChild(X.createElement("div")), | |
c = X.createElement("input"); | |
c.setAttribute("type", "radio"), c.setAttribute("checked", "checked"), c.setAttribute("name", "t"), b.appendChild(c), da.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, b.innerHTML = "<textarea>x</textarea>", da.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue | |
}(); | |
var Ma = /^key/, | |
Na = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, | |
Oa = /^([^.]*)(?:\.(.+)|)/; | |
fa.event = { | |
global: {}, | |
add: function(a, b, c, d, e) { | |
var f, g, h, i, j, k, l, m, n, o, p, q = za.get(a); | |
if (q) | |
for (c.handler && (f = c, c = f.handler, e = f.selector), c.guid || (c.guid = fa.guid++), (i = q.events) || (i = q.events = {}), (g = q.handle) || (g = q.handle = function(b) { | |
return "undefined" != typeof fa && fa.event.triggered !== b.type ? fa.event.dispatch.apply(a, arguments) : void 0 | |
}), b = (b || "").match(va) || [""], j = b.length; j--;) h = Oa.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n && (l = fa.event.special[n] || {}, n = (e ? l.delegateType : l.bindType) || n, l = fa.event.special[n] || {}, k = fa.extend({ | |
type: n, | |
origType: p, | |
data: d, | |
handler: c, | |
guid: c.guid, | |
selector: e, | |
needsContext: e && fa.expr.match.needsContext.test(e), | |
namespace: o.join(".") | |
}, f), (m = i[n]) || (m = i[n] = [], m.delegateCount = 0, l.setup && l.setup.call(a, d, o, g) !== !1 || a.addEventListener && a.addEventListener(n, g)), l.add && (l.add.call(a, k), k.handler.guid || (k.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, k) : m.push(k), fa.event.global[n] = !0) | |
}, | |
remove: function(a, b, c, d, e) { | |
var f, g, h, i, j, k, l, m, n, o, p, q = za.hasData(a) && za.get(a); | |
if (q && (i = q.events)) { | |
for (b = (b || "").match(va) || [""], j = b.length; j--;) | |
if (h = Oa.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n) { | |
for (l = fa.event.special[n] || {}, n = (d ? l.delegateType : l.bindType) || n, m = i[n] || [], h = h[2] && new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)"), g = f = m.length; f--;) k = m[f], !e && p !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ("**" !== d || !k.selector) || (m.splice(f, 1), | |
k.selector && m.delegateCount--, l.remove && l.remove.call(a, k)); | |
g && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || fa.removeEvent(a, n, q.handle), delete i[n]) | |
} else | |
for (n in i) fa.event.remove(a, n + b[j], c, d, !0); | |
fa.isEmptyObject(i) && za.remove(a, "handle events") | |
} | |
}, | |
dispatch: function(a) { | |
a = fa.event.fix(a); | |
var b, c, d, e, f, g = [], | |
h = Y.call(arguments), | |
i = (za.get(this, "events") || {})[a.type] || [], | |
j = fa.event.special[a.type] || {}; | |
if (h[0] = a, a.delegateTarget = this, !j.preDispatch || j.preDispatch.call(this, a) !== !1) { | |
for (g = fa.event.handlers.call(this, a, i), b = 0; | |
(e = g[b++]) && !a.isPropagationStopped();) | |
for (a.currentTarget = e.elem, c = 0; | |
(f = e.handlers[c++]) && !a.isImmediatePropagationStopped();)(!a.rnamespace || a.rnamespace.test(f.namespace)) && (a.handleObj = f, a.data = f.data, d = ((fa.event.special[f.origType] || {}).handle || f.handler).apply(e.elem, h), void 0 !== d && (a.result = d) === !1 && (a.preventDefault(), a.stopPropagation())); | |
return j.postDispatch && j.postDispatch.call(this, a), a.result | |
} | |
}, | |
handlers: function(a, b) { | |
var c, d, e, f, g = [], | |
h = b.delegateCount, | |
i = a.target; | |
if (h && i.nodeType && ("click" !== a.type || isNaN(a.button) || a.button < 1)) | |
for (; i !== this; i = i.parentNode || this) | |
if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) { | |
for (d = [], c = 0; h > c; c++) f = b[c], e = f.selector + " ", void 0 === d[e] && (d[e] = f.needsContext ? fa(e, this).index(i) > -1 : fa.find(e, this, null, [i]).length), d[e] && d.push(f); | |
d.length && g.push({ | |
elem: i, | |
handlers: d | |
}) | |
} | |
return h < b.length && g.push({ | |
elem: this, | |
handlers: b.slice(h) | |
}), g | |
}, | |
props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), | |
fixHooks: {}, | |
keyHooks: { | |
props: "char charCode key keyCode".split(" "), | |
filter: function(a, b) { | |
return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a | |
} | |
}, | |
mouseHooks: { | |
props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), | |
filter: function(a, b) { | |
var c, d, e, f = b.button; | |
return null == a.pageX && null != b.clientX && (c = a.target.ownerDocument || X, d = c.documentElement, e = c.body, a.pageX = b.clientX + (d && d.scrollLeft || e && e.scrollLeft || 0) - (d && d.clientLeft || e && e.clientLeft || 0), a.pageY = b.clientY + (d && d.scrollTop || e && e.scrollTop || 0) - (d && d.clientTop || e && e.clientTop || 0)), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a | |
} | |
}, | |
fix: function(a) { | |
if (a[fa.expando]) return a; | |
var b, c, d, e = a.type, | |
f = a, | |
g = this.fixHooks[e]; | |
for (g || (this.fixHooks[e] = g = Na.test(e) ? this.mouseHooks : Ma.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new fa.Event(f), b = d.length; b--;) c = d[b], a[c] = f[c]; | |
return a.target || (a.target = X), 3 === a.target.nodeType && (a.target = a.target.parentNode), g.filter ? g.filter(a, f) : a | |
}, | |
special: { | |
load: { | |
noBubble: !0 | |
}, | |
focus: { | |
trigger: function() { | |
return this !== p() && this.focus ? (this.focus(), !1) : void 0 | |
}, | |
delegateType: "focusin" | |
}, | |
blur: { | |
trigger: function() { | |
return this === p() && this.blur ? (this.blur(), !1) : void 0 | |
}, | |
delegateType: "focusout" | |
}, | |
click: { | |
trigger: function() { | |
return "checkbox" === this.type && this.click && fa.nodeName(this, "input") ? (this.click(), !1) : void 0 | |
}, | |
_default: function(a) { | |
return fa.nodeName(a.target, "a") | |
} | |
}, | |
beforeunload: { | |
postDispatch: function(a) { | |
void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result) | |
} | |
} | |
} | |
}, fa.removeEvent = function(a, b, c) { | |
a.removeEventListener && a.removeEventListener(b, c) | |
}, fa.Event = function(a, b) { | |
return this instanceof fa.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? n : o) : this.type = a, b && fa.extend(this, b), this.timeStamp = a && a.timeStamp || fa.now(), void(this[fa.expando] = !0)) : new fa.Event(a, b) | |
}, fa.Event.prototype = { | |
constructor: fa.Event, | |
isDefaultPrevented: o, | |
isPropagationStopped: o, | |
isImmediatePropagationStopped: o, | |
preventDefault: function() { | |
var a = this.originalEvent; | |
this.isDefaultPrevented = n, a && a.preventDefault() | |
}, | |
stopPropagation: function() { | |
var a = this.originalEvent; | |
this.isPropagationStopped = n, a && a.stopPropagation() | |
}, | |
stopImmediatePropagation: function() { | |
var a = this.originalEvent; | |
this.isImmediatePropagationStopped = n, a && a.stopImmediatePropagation(), this.stopPropagation() | |
} | |
}, fa.each({ | |
mouseenter: "mouseover", | |
mouseleave: "mouseout", | |
pointerenter: "pointerover", | |
pointerleave: "pointerout" | |
}, function(a, b) { | |
fa.event.special[a] = { | |
delegateType: b, | |
bindType: b, | |
handle: function(a) { | |
var c, d = this, | |
e = a.relatedTarget, | |
f = a.handleObj; | |
return (!e || e !== d && !fa.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c | |
} | |
} | |
}), fa.fn.extend({ | |
on: function(a, b, c, d) { | |
return q(this, a, b, c, d) | |
}, | |
one: function(a, b, c, d) { | |
return q(this, a, b, c, d, 1) | |
}, | |
off: function(a, b, c) { | |
var d, e; | |
if (a && a.preventDefault && a.handleObj) return d = a.handleObj, fa(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this; | |
if ("object" == typeof a) { | |
for (e in a) this.off(e, b, a[e]); | |
return this | |
} | |
return (b === !1 || "function" == typeof b) && (c = b, b = void 0), c === !1 && (c = o), this.each(function() { | |
fa.event.remove(this, a, c, b) | |
}) | |
} | |
}); | |
var Pa = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, | |
Qa = /<script|<style|<link/i, | |
Ra = /checked\s*(?:[^=]|=\s*.checked.)/i, | |
Sa = /^true\/(.*)/, | |
Ta = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; | |
fa.extend({ | |
htmlPrefilter: function(a) { | |
return a.replace(Pa, "<$1></$2>") | |
}, | |
clone: function(a, b, c) { | |
var d, e, f, g, h = a.cloneNode(!0), | |
i = fa.contains(a.ownerDocument, a); | |
if (!(da.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || fa.isXMLDoc(a))) | |
for (g = k(h), f = k(a), d = 0, e = f.length; e > d; d++) v(f[d], g[d]); | |
if (b) | |
if (c) | |
for (f = f || k(a), g = g || k(h), d = 0, e = f.length; e > d; d++) u(f[d], g[d]); | |
else u(a, h); | |
return g = k(h, "script"), g.length > 0 && l(g, !i && k(a, "script")), h | |
}, | |
cleanData: function(a) { | |
for (var b, c, d, e = fa.event.special, f = 0; void 0 !== (c = a[f]); f++) | |
if (ya(c)) { | |
if (b = c[za.expando]) { | |
if (b.events) | |
for (d in b.events) e[d] ? fa.event.remove(c, d) : fa.removeEvent(c, d, b.handle); | |
c[za.expando] = void 0 | |
} | |
c[Aa.expando] && (c[Aa.expando] = void 0) | |
} | |
} | |
}), fa.fn.extend({ | |
domManip: w, | |
detach: function(a) { | |
return x(this, a, !0) | |
}, | |
remove: function(a) { | |
return x(this, a) | |
}, | |
text: function(a) { | |
return xa(this, function(a) { | |
return void 0 === a ? fa.text(this) : this.empty().each(function() { | |
(1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && (this.textContent = a) | |
}) | |
}, null, a, arguments.length) | |
}, | |
append: function() { | |
return w(this, arguments, function(a) { | |
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { | |
var b = r(this, a); | |
b.appendChild(a) | |
} | |
}) | |
}, | |
prepend: function() { | |
return w(this, arguments, function(a) { | |
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { | |
var b = r(this, a); | |
b.insertBefore(a, b.firstChild) | |
} | |
}) | |
}, | |
before: function() { | |
return w(this, arguments, function(a) { | |
this.parentNode && this.parentNode.insertBefore(a, this) | |
}) | |
}, | |
after: function() { | |
return w(this, arguments, function(a) { | |
this.parentNode && this.parentNode.insertBefore(a, this.nextSibling) | |
}) | |
}, | |
empty: function() { | |
for (var a, b = 0; null != (a = this[b]); b++) 1 === a.nodeType && (fa.cleanData(k(a, !1)), a.textContent = ""); | |
return this | |
}, | |
clone: function(a, b) { | |
return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function() { | |
return fa.clone(this, a, b) | |
}) | |
}, | |
html: function(a) { | |
return xa(this, function(a) { | |
var b = this[0] || {}, | |
c = 0, | |
d = this.length; | |
if (void 0 === a && 1 === b.nodeType) return b.innerHTML; | |
if ("string" == typeof a && !Qa.test(a) && !Ka[(Ia.exec(a) || ["", ""])[1].toLowerCase()]) { | |
a = fa.htmlPrefilter(a); | |
try { | |
for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (fa.cleanData(k(b, !1)), b.innerHTML = a); | |
b = 0 | |
} catch (e) {} | |
} | |
b && this.empty().append(a) | |
}, null, a, arguments.length) | |
}, | |
replaceWith: function() { | |
var a = []; | |
return w(this, arguments, function(b) { | |
var c = this.parentNode; | |
fa.inArray(this, a) < 0 && (fa.cleanData(k(this)), c && c.replaceChild(b, this)) | |
}, a) | |
} | |
}), fa.each({ | |
appendTo: "append", | |
prependTo: "prepend", | |
insertBefore: "before", | |
insertAfter: "after", | |
replaceAll: "replaceWith" | |
}, function(a, b) { | |
fa.fn[a] = function(a) { | |
for (var c, d = [], e = fa(a), f = e.length - 1, g = 0; f >= g; g++) c = g === f ? this : this.clone(!0), fa(e[g])[b](c), $.apply(d, c.get()); | |
return this.pushStack(d) | |
} | |
}); | |
var Ua, Va = { | |
HTML: "block", | |
BODY: "block" | |
}, | |
Wa = /^margin/, | |
Xa = new RegExp("^(" + Da + ")(?!px)[a-z%]+$", "i"), | |
Ya = function(b) { | |
var c = b.ownerDocument.defaultView; | |
return c.opener || (c = a), c.getComputedStyle(b) | |
}, | |
Za = function(a, b, c, d) { | |
var e, f, g = {}; | |
for (f in b) g[f] = a.style[f], a.style[f] = b[f]; | |
e = c.apply(a, d || []); | |
for (f in b) a.style[f] = g[f]; | |
return e | |
}, | |
$a = X.documentElement; | |
! function() { | |
function b() { | |
h.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%", h.innerHTML = "", $a.appendChild(g); | |
var b = a.getComputedStyle(h); | |
c = "1%" !== b.top, f = "2px" === b.marginLeft, d = "4px" === b.width, h.style.marginRight = "50%", e = "4px" === b.marginRight, $a.removeChild(g) | |
} | |
var c, d, e, f, g = X.createElement("div"), | |
h = X.createElement("div"); | |
h.style && (h.style.backgroundClip = "content-box", h.cloneNode(!0).style.backgroundClip = "", da.clearCloneStyle = "content-box" === h.style.backgroundClip, g.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", g.appendChild(h), fa.extend(da, { | |
pixelPosition: function() { | |
return b(), c | |
}, | |
boxSizingReliable: function() { | |
return null == d && b(), d | |
}, | |
pixelMarginRight: function() { | |
return null == d && b(), e | |
}, | |
reliableMarginLeft: function() { | |
return null == d && b(), f | |
}, | |
reliableMarginRight: function() { | |
var b, c = h.appendChild(X.createElement("div")); | |
return c.style.cssText = h.style.cssText = "-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", c.style.marginRight = c.style.width = "0", h.style.width = "1px", $a.appendChild(g), b = !parseFloat(a.getComputedStyle(c).marginRight), $a.removeChild(g), h.removeChild(c), b | |
} | |
})) | |
}(); | |
var _a = /^(none|table(?!-c[ea]).+)/, | |
ab = { | |
position: "absolute", | |
visibility: "hidden", | |
display: "block" | |
}, | |
bb = { | |
letterSpacing: "0", | |
fontWeight: "400" | |
}, | |
cb = ["Webkit", "O", "Moz", "ms"], | |
db = X.createElement("div").style; | |
fa.extend({ | |
cssHooks: { | |
opacity: { | |
get: function(a, b) { | |
if (b) { | |
var c = A(a, "opacity"); | |
return "" === c ? "1" : c | |
} | |
} | |
} | |
}, | |
cssNumber: { | |
animationIterationCount: !0, | |
columnCount: !0, | |
fillOpacity: !0, | |
flexGrow: !0, | |
flexShrink: !0, | |
fontWeight: !0, | |
lineHeight: !0, | |
opacity: !0, | |
order: !0, | |
orphans: !0, | |
widows: !0, | |
zIndex: !0, | |
zoom: !0 | |
}, | |
cssProps: { | |
"float": "cssFloat" | |
}, | |
style: function(a, b, c, d) { | |
if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) { | |
var e, f, g, h = fa.camelCase(b), | |
i = a.style; | |
return b = fa.cssProps[h] || (fa.cssProps[h] = C(h) || h), g = fa.cssHooks[b] || fa.cssHooks[h], void 0 === c ? g && "get" in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b] : (f = typeof c, "string" === f && (e = Ea.exec(c)) && e[1] && (c = j(a, b, e), f = "number"), null != c && c === c && ("number" === f && (c += e && e[3] || (fa.cssNumber[h] ? "" : "px")), da.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), g && "set" in g && void 0 === (c = g.set(a, c, d)) || (i[b] = c)), void 0) | |
} | |
}, | |
css: function(a, b, c, d) { | |
var e, f, g, h = fa.camelCase(b); | |
return b = fa.cssProps[h] || (fa.cssProps[h] = C(h) || h), g = fa.cssHooks[b] || fa.cssHooks[h], g && "get" in g && (e = g.get(a, !0, c)), void 0 === e && (e = A(a, b, d)), "normal" === e && b in bb && (e = bb[b]), "" === c || c ? (f = parseFloat(e), c === !0 || isFinite(f) ? f || 0 : e) : e | |
} | |
}), fa.each(["height", "width"], function(a, b) { | |
fa.cssHooks[b] = { | |
get: function(a, c, d) { | |
return c ? _a.test(fa.css(a, "display")) && 0 === a.offsetWidth ? Za(a, ab, function() { | |
return F(a, b, d) | |
}) : F(a, b, d) : void 0 | |
}, | |
set: function(a, c, d) { | |
var e, f = d && Ya(a), | |
g = d && E(a, b, d, "border-box" === fa.css(a, "boxSizing", !1, f), f); | |
return g && (e = Ea.exec(c)) && "px" !== (e[3] || "px") && (a.style[b] = c, c = fa.css(a, b)), D(a, c, g) | |
} | |
} | |
}), fa.cssHooks.marginLeft = B(da.reliableMarginLeft, function(a, b) { | |
return b ? (parseFloat(A(a, "marginLeft")) || a.getBoundingClientRect().left - Za(a, { | |
marginLeft: 0 | |
}, function() { | |
return a.getBoundingClientRect().left | |
})) + "px" : void 0 | |
}), fa.cssHooks.marginRight = B(da.reliableMarginRight, function(a, b) { | |
return b ? Za(a, { | |
display: "inline-block" | |
}, A, [a, "marginRight"]) : void 0 | |
}), fa.each({ | |
margin: "", | |
padding: "", | |
border: "Width" | |
}, function(a, b) { | |
fa.cssHooks[a + b] = { | |
expand: function(c) { | |
for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++) e[a + Fa[d] + b] = f[d] || f[d - 2] || f[0]; | |
return e | |
} | |
}, Wa.test(a) || (fa.cssHooks[a + b].set = D) | |
}), fa.fn.extend({ | |
css: function(a, b) { | |
return xa(this, function(a, b, c) { | |
var d, e, f = {}, | |
g = 0; | |
if (fa.isArray(b)) { | |
for (d = Ya(a), e = b.length; e > g; g++) f[b[g]] = fa.css(a, b[g], !1, d); | |
return f | |
} | |
return void 0 !== c ? fa.style(a, b, c) : fa.css(a, b) | |
}, a, b, arguments.length > 1) | |
}, | |
show: function() { | |
return G(this, !0) | |
}, | |
hide: function() { | |
return G(this) | |
}, | |
toggle: function(a) { | |
return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() { | |
Ga(this) ? fa(this).show() : fa(this).hide() | |
}) | |
} | |
}), fa.Tween = H, H.prototype = { | |
constructor: H, | |
init: function(a, b, c, d, e, f) { | |
this.elem = a, this.prop = c, this.easing = e || fa.easing._default, this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (fa.cssNumber[c] ? "" : "px") | |
}, | |
cur: function() { | |
var a = H.propHooks[this.prop]; | |
return a && a.get ? a.get(this) : H.propHooks._default.get(this) | |
}, | |
run: function(a) { | |
var b, c = H.propHooks[this.prop]; | |
return this.options.duration ? this.pos = b = fa.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : this.pos = b = a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : H.propHooks._default.set(this), this | |
} | |
}, H.prototype.init.prototype = H.prototype, H.propHooks = { | |
_default: { | |
get: function(a) { | |
var b; | |
return 1 !== a.elem.nodeType || null != a.elem[a.prop] && null == a.elem.style[a.prop] ? a.elem[a.prop] : (b = fa.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0) | |
}, | |
set: function(a) { | |
fa.fx.step[a.prop] ? fa.fx.step[a.prop](a) : 1 !== a.elem.nodeType || null == a.elem.style[fa.cssProps[a.prop]] && !fa.cssHooks[a.prop] ? a.elem[a.prop] = a.now : fa.style(a.elem, a.prop, a.now + a.unit) | |
} | |
} | |
}, H.propHooks.scrollTop = H.propHooks.scrollLeft = { | |
set: function(a) { | |
a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now) | |
} | |
}, fa.easing = { | |
linear: function(a) { | |
return a | |
}, | |
swing: function(a) { | |
return .5 - Math.cos(a * Math.PI) / 2 | |
}, | |
_default: "swing" | |
}, fa.fx = H.prototype.init, fa.fx.step = {}; | |
var eb, fb, gb = /^(?:toggle|show|hide)$/, | |
hb = /queueHooks$/; | |
fa.Animation = fa.extend(N, { | |
tweeners: { | |
"*": [function(a, b) { | |
var c = this.createTween(a, b); | |
return j(c.elem, a, Ea.exec(b), c), c | |
}] | |
}, | |
tweener: function(a, b) { | |
fa.isFunction(a) ? (b = a, a = ["*"]) : a = a.match(va); | |
for (var c, d = 0, e = a.length; e > d; d++) c = a[d], N.tweeners[c] = N.tweeners[c] || [], N.tweeners[c].unshift(b) | |
}, | |
prefilters: [L], | |
prefilter: function(a, b) { | |
b ? N.prefilters.unshift(a) : N.prefilters.push(a) | |
} | |
}), fa.speed = function(a, b, c) { | |
var d = a && "object" == typeof a ? fa.extend({}, a) : { | |
complete: c || !c && b || fa.isFunction(a) && a, | |
duration: a, | |
easing: c && b || b && !fa.isFunction(b) && b | |
}; | |
return d.duration = fa.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in fa.fx.speeds ? fa.fx.speeds[d.duration] : fa.fx.speeds._default, (null == d.queue || d.queue === !0) && (d.queue = "fx"), d.old = d.complete, d.complete = function() { | |
fa.isFunction(d.old) && d.old.call(this), d.queue && fa.dequeue(this, d.queue) | |
}, d | |
}, fa.fn.extend({ | |
fadeTo: function(a, b, c, d) { | |
return this.filter(Ga).css("opacity", 0).show().end().animate({ | |
opacity: b | |
}, a, c, d) | |
}, | |
animate: function(a, b, c, d) { | |
var e = fa.isEmptyObject(a), | |
f = fa.speed(b, c, d), | |
g = function() { | |
var b = N(this, fa.extend({}, a), f); | |
(e || za.get(this, "finish")) && b.stop(!0) | |
}; | |
return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g) | |
}, | |
stop: function(a, b, c) { | |
var d = function(a) { | |
var b = a.stop; | |
delete a.stop, b(c) | |
}; | |
return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function() { | |
var b = !0, | |
e = null != a && a + "queueHooks", | |
f = fa.timers, | |
g = za.get(this); | |
if (e) g[e] && g[e].stop && d(g[e]); | |
else | |
for (e in g) g[e] && g[e].stop && hb.test(e) && d(g[e]); | |
for (e = f.length; e--;) f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1)); | |
(b || !c) && fa.dequeue(this, a) | |
}) | |
}, | |
finish: function(a) { | |
return a !== !1 && (a = a || "fx"), this.each(function() { | |
var b, c = za.get(this), | |
d = c[a + "queue"], | |
e = c[a + "queueHooks"], | |
f = fa.timers, | |
g = d ? d.length : 0; | |
for (c.finish = !0, fa.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1)); | |
for (b = 0; g > b; b++) d[b] && d[b].finish && d[b].finish.call(this); | |
delete c.finish | |
}) | |
} | |
}), fa.each(["toggle", "show", "hide"], function(a, b) { | |
var c = fa.fn[b]; | |
fa.fn[b] = function(a, d, e) { | |
return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(J(b, !0), a, d, e) | |
} | |
}), fa.each({ | |
slideDown: J("show"), | |
slideUp: J("hide"), | |
slideToggle: J("toggle"), | |
fadeIn: { | |
opacity: "show" | |
}, | |
fadeOut: { | |
opacity: "hide" | |
}, | |
fadeToggle: { | |
opacity: "toggle" | |
} | |
}, function(a, b) { | |
fa.fn[a] = function(a, c, d) { | |
return this.animate(b, a, c, d) | |
} | |
}), fa.timers = [], fa.fx.tick = function() { | |
var a, b = 0, | |
c = fa.timers; | |
for (eb = fa.now(); b < c.length; b++) a = c[b], a() || c[b] !== a || c.splice(b--, 1); | |
c.length || fa.fx.stop(), eb = void 0 | |
}, fa.fx.timer = function(a) { | |
fa.timers.push(a), a() ? fa.fx.start() : fa.timers.pop() | |
}, fa.fx.interval = 13, fa.fx.start = function() { | |
fb || (fb = a.setInterval(fa.fx.tick, fa.fx.interval)) | |
}, fa.fx.stop = function() { | |
a.clearInterval(fb), fb = null | |
}, fa.fx.speeds = { | |
slow: 600, | |
fast: 200, | |
_default: 400 | |
}, fa.fn.delay = function(b, c) { | |
return b = fa.fx ? fa.fx.speeds[b] || b : b, c = c || "fx", this.queue(c, function(c, d) { | |
var e = a.setTimeout(c, b); | |
d.stop = function() { | |
a.clearTimeout(e) | |
} | |
}) | |
}, | |
function() { | |
var a = X.createElement("input"), | |
b = X.createElement("select"), | |
c = b.appendChild(X.createElement("option")); | |
a.type = "checkbox", da.checkOn = "" !== a.value, da.optSelected = c.selected, b.disabled = !0, da.optDisabled = !c.disabled, a = X.createElement("input"), a.value = "t", a.type = "radio", da.radioValue = "t" === a.value | |
}(); | |
var ib, jb = fa.expr.attrHandle; | |
fa.fn.extend({ | |
attr: function(a, b) { | |
return xa(this, fa.attr, a, b, arguments.length > 1) | |
}, | |
removeAttr: function(a) { | |
return this.each(function() { | |
fa.removeAttr(this, a) | |
}) | |
} | |
}), fa.extend({ | |
attr: function(a, b, c) { | |
var d, e, f = a.nodeType; | |
if (3 !== f && 8 !== f && 2 !== f) return "undefined" == typeof a.getAttribute ? fa.prop(a, b, c) : (1 === f && fa.isXMLDoc(a) || (b = b.toLowerCase(), e = fa.attrHooks[b] || (fa.expr.match.bool.test(b) ? ib : void 0)), void 0 !== c ? null === c ? void fa.removeAttr(a, b) : e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : (a.setAttribute(b, c + ""), c) : e && "get" in e && null !== (d = e.get(a, b)) ? d : (d = fa.find.attr(a, b), null == d ? void 0 : d)) | |
}, | |
attrHooks: { | |
type: { | |
set: function(a, b) { | |
if (!da.radioValue && "radio" === b && fa.nodeName(a, "input")) { | |
var c = a.value; | |
return a.setAttribute("type", b), c && (a.value = c), b | |
} | |
} | |
} | |
}, | |
removeAttr: function(a, b) { | |
var c, d, e = 0, | |
f = b && b.match(va); | |
if (f && 1 === a.nodeType) | |
for (; c = f[e++];) d = fa.propFix[c] || c, fa.expr.match.bool.test(c) && (a[d] = !1), a.removeAttribute(c) | |
} | |
}), ib = { | |
set: function(a, b, c) { | |
return b === !1 ? fa.removeAttr(a, c) : a.setAttribute(c, c), c | |
} | |
}, fa.each(fa.expr.match.bool.source.match(/\w+/g), function(a, b) { | |
var c = jb[b] || fa.find.attr; | |
jb[b] = function(a, b, d) { | |
var e, f; | |
return d || (f = jb[b], jb[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, jb[b] = f), e | |
} | |
}); | |
var kb = /^(?:input|select|textarea|button)$/i, | |
lb = /^(?:a|area)$/i; | |
fa.fn.extend({ | |
prop: function(a, b) { | |
return xa(this, fa.prop, a, b, arguments.length > 1) | |
}, | |
removeProp: function(a) { | |
return this.each(function() { | |
delete this[fa.propFix[a] || a] | |
}) | |
} | |
}), fa.extend({ | |
prop: function(a, b, c) { | |
var d, e, f = a.nodeType; | |
if (3 !== f && 8 !== f && 2 !== f) return 1 === f && fa.isXMLDoc(a) || (b = fa.propFix[b] || b, e = fa.propHooks[b]), void 0 !== c ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get" in e && null !== (d = e.get(a, b)) ? d : a[b] | |
}, | |
propHooks: { | |
tabIndex: { | |
get: function(a) { | |
var b = fa.find.attr(a, "tabindex"); | |
return b ? parseInt(b, 10) : kb.test(a.nodeName) || lb.test(a.nodeName) && a.href ? 0 : -1 | |
} | |
} | |
}, | |
propFix: { | |
"for": "htmlFor", | |
"class": "className" | |
} | |
}), da.optSelected || (fa.propHooks.selected = { | |
get: function(a) { | |
var b = a.parentNode; | |
return b && b.parentNode && b.parentNode.selectedIndex, null | |
} | |
}), fa.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() { | |
fa.propFix[this.toLowerCase()] = this | |
}); | |
var mb = /[\t\r\n\f]/g; | |
fa.fn.extend({ | |
addClass: function(a) { | |
var b, c, d, e, f, g, h, i = 0; | |
if (fa.isFunction(a)) return this.each(function(b) { | |
fa(this).addClass(a.call(this, b, O(this))) | |
}); | |
if ("string" == typeof a && a) | |
for (b = a.match(va) || []; c = this[i++];) | |
if (e = O(c), d = 1 === c.nodeType && (" " + e + " ").replace(mb, " ")) { | |
for (g = 0; f = b[g++];) d.indexOf(" " + f + " ") < 0 && (d += f + " "); | |
h = fa.trim(d), e !== h && c.setAttribute("class", h) | |
} | |
return this | |
}, | |
removeClass: function(a) { | |
var b, c, d, e, f, g, h, i = 0; | |
if (fa.isFunction(a)) return this.each(function(b) { | |
fa(this).removeClass(a.call(this, b, O(this))) | |
}); | |
if (!arguments.length) return this.attr("class", ""); | |
if ("string" == typeof a && a) | |
for (b = a.match(va) || []; c = this[i++];) | |
if (e = O(c), d = 1 === c.nodeType && (" " + e + " ").replace(mb, " ")) { | |
for (g = 0; f = b[g++];) | |
for (; d.indexOf(" " + f + " ") > -1;) d = d.replace(" " + f + " ", " "); | |
h = fa.trim(d), e !== h && c.setAttribute("class", h) | |
} | |
return this | |
}, | |
toggleClass: function(a, b) { | |
var c = typeof a; | |
return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : fa.isFunction(a) ? this.each(function(c) { | |
fa(this).toggleClass(a.call(this, c, O(this), b), b) | |
}) : this.each(function() { | |
var b, d, e, f; | |
if ("string" === c) | |
for (d = 0, e = fa(this), f = a.match(va) || []; b = f[d++];) e.hasClass(b) ? e.removeClass(b) : e.addClass(b); | |
else(void 0 === a || "boolean" === c) && (b = O(this), b && za.set(this, "__className__", b), this.setAttribute && this.setAttribute("class", b || a === !1 ? "" : za.get(this, "__className__") || "")) | |
}) | |
}, | |
hasClass: function(a) { | |
var b, c, d = 0; | |
for (b = " " + a + " "; c = this[d++];) | |
if (1 === c.nodeType && (" " + O(c) + " ").replace(mb, " ").indexOf(b) > -1) return !0; | |
return !1 | |
} | |
}); | |
var nb = /\r/g; | |
fa.fn.extend({ | |
val: function(a) { | |
var b, c, d, e = this[0]; { | |
if (arguments.length) return d = fa.isFunction(a), this.each(function(c) { | |
var e; | |
1 === this.nodeType && (e = d ? a.call(this, c, fa(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : fa.isArray(e) && (e = fa.map(e, function(a) { | |
return null == a ? "" : a + "" | |
})), b = fa.valHooks[this.type] || fa.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e)) | |
}); | |
if (e) return b = fa.valHooks[e.type] || fa.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(nb, "") : null == c ? "" : c) | |
} | |
} | |
}), fa.extend({ | |
valHooks: { | |
option: { | |
get: function(a) { | |
return fa.trim(a.value) | |
} | |
}, | |
select: { | |
get: function(a) { | |
for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++) | |
if (c = d[i], (c.selected || i === e) && (da.optDisabled ? !c.disabled : null === c.getAttribute("disabled")) && (!c.parentNode.disabled || !fa.nodeName(c.parentNode, "optgroup"))) { | |
if (b = fa(c).val(), f) return b; | |
g.push(b) | |
} | |
return g | |
}, | |
set: function(a, b) { | |
for (var c, d, e = a.options, f = fa.makeArray(b), g = e.length; g--;) d = e[g], (d.selected = fa.inArray(fa.valHooks.option.get(d), f) > -1) && (c = !0); | |
return c || (a.selectedIndex = -1), f | |
} | |
} | |
} | |
}), fa.each(["radio", "checkbox"], function() { | |
fa.valHooks[this] = { | |
set: function(a, b) { | |
return fa.isArray(b) ? a.checked = fa.inArray(fa(a).val(), b) > -1 : void 0 | |
} | |
}, da.checkOn || (fa.valHooks[this].get = function(a) { | |
return null === a.getAttribute("value") ? "on" : a.value | |
}) | |
}); | |
var ob = /^(?:focusinfocus|focusoutblur)$/; | |
fa.extend(fa.event, { | |
trigger: function(b, c, d, e) { | |
var f, g, h, i, j, k, l, m = [d || X], | |
n = ca.call(b, "type") ? b.type : b, | |
o = ca.call(b, "namespace") ? b.namespace.split(".") : []; | |
if (g = h = d = d || X, 3 !== d.nodeType && 8 !== d.nodeType && !ob.test(n + fa.event.triggered) && (n.indexOf(".") > -1 && (o = n.split("."), n = o.shift(), o.sort()), j = n.indexOf(":") < 0 && "on" + n, b = b[fa.expando] ? b : new fa.Event(n, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = o.join("."), b.rnamespace = b.namespace ? new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : fa.makeArray(c, [b]), l = fa.event.special[n] || {}, e || !l.trigger || l.trigger.apply(d, c) !== !1)) { | |
if (!e && !l.noBubble && !fa.isWindow(d)) { | |
for (i = l.delegateType || n, ob.test(i + n) || (g = g.parentNode); g; g = g.parentNode) m.push(g), h = g; | |
h === (d.ownerDocument || X) && m.push(h.defaultView || h.parentWindow || a) | |
} | |
for (f = 0; | |
(g = m[f++]) && !b.isPropagationStopped();) b.type = f > 1 ? i : l.bindType || n, k = (za.get(g, "events") || {})[b.type] && za.get(g, "handle"), k && k.apply(g, c), k = j && g[j], k && k.apply && ya(g) && (b.result = k.apply(g, c), b.result === !1 && b.preventDefault()); | |
return b.type = n, e || b.isDefaultPrevented() || l._default && l._default.apply(m.pop(), c) !== !1 || !ya(d) || j && fa.isFunction(d[n]) && !fa.isWindow(d) && (h = d[j], h && (d[j] = null), fa.event.triggered = n, d[n](), fa.event.triggered = void 0, h && (d[j] = h)), b.result | |
} | |
}, | |
simulate: function(a, b, c) { | |
var d = fa.extend(new fa.Event, c, { | |
type: a, | |
isSimulated: !0 | |
}); | |
fa.event.trigger(d, null, b), d.isDefaultPrevented() && c.preventDefault() | |
} | |
}), fa.fn.extend({ | |
trigger: function(a, b) { | |
return this.each(function() { | |
fa.event.trigger(a, b, this) | |
}) | |
}, | |
triggerHandler: function(a, b) { | |
var c = this[0]; | |
return c ? fa.event.trigger(a, b, c, !0) : void 0 | |
} | |
}), fa.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(a, b) { | |
fa.fn[b] = function(a, c) { | |
return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b) | |
} | |
}), fa.fn.extend({ | |
hover: function(a, b) { | |
return this.mouseenter(a).mouseleave(b || a) | |
} | |
}), da.focusin = "onfocusin" in a, da.focusin || fa.each({ | |
focus: "focusin", | |
blur: "focusout" | |
}, function(a, b) { | |
var c = function(a) { | |
fa.event.simulate(b, a.target, fa.event.fix(a)) | |
}; | |
fa.event.special[b] = { | |
setup: function() { | |
var d = this.ownerDocument || this, | |
e = za.access(d, b); | |
e || d.addEventListener(a, c, !0), za.access(d, b, (e || 0) + 1) | |
}, | |
teardown: function() { | |
var d = this.ownerDocument || this, | |
e = za.access(d, b) - 1; | |
e ? za.access(d, b, e) : (d.removeEventListener(a, c, !0), za.remove(d, b)) | |
} | |
} | |
}); | |
var pb = a.location, | |
qb = fa.now(), | |
rb = /\?/; | |
fa.parseJSON = function(a) { | |
return JSON.parse(a + "") | |
}, fa.parseXML = function(b) { | |
var c; | |
if (!b || "string" != typeof b) return null; | |
try { | |
c = (new a.DOMParser).parseFromString(b, "text/xml") | |
} catch (d) { | |
c = void 0 | |
} | |
return (!c || c.getElementsByTagName("parsererror").length) && fa.error("Invalid XML: " + b), c | |
}; | |
var sb = /#.*$/, | |
tb = /([?&])_=[^&]*/, | |
ub = /^(.*?):[ \t]*([^\r\n]*)$/gm, | |
vb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, | |
wb = /^(?:GET|HEAD)$/, | |
xb = /^\/\//, | |
yb = {}, | |
zb = {}, | |
Ab = "*/".concat("*"), | |
Bb = X.createElement("a"); | |
Bb.href = pb.href, fa.extend({ | |
active: 0, | |
lastModified: {}, | |
etag: {}, | |
ajaxSettings: { | |
url: pb.href, | |
type: "GET", | |
isLocal: vb.test(pb.protocol), | |
global: !0, | |
processData: !0, | |
async: !0, | |
contentType: "application/x-www-form-urlencoded; charset=UTF-8", | |
accepts: { | |
"*": Ab, | |
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": fa.parseJSON, | |
"text xml": fa.parseXML | |
}, | |
flatOptions: { | |
url: !0, | |
context: !0 | |
} | |
}, | |
ajaxSetup: function(a, b) { | |
return b ? R(R(a, fa.ajaxSettings), b) : R(fa.ajaxSettings, a) | |
}, | |
ajaxPrefilter: P(yb), | |
ajaxTransport: P(zb), | |
ajax: function(b, c) { | |
function d(b, c, d, h) { | |
var j, l, s, t, v, x = c; | |
2 !== u && (u = 2, i && a.clearTimeout(i), e = void 0, g = h || "", w.readyState = b > 0 ? 4 : 0, j = b >= 200 && 300 > b || 304 === b, d && (t = S(m, w, d)), t = T(m, t, w, j), j ? (m.ifModified && (v = w.getResponseHeader("Last-Modified"), v && (fa.lastModified[f] = v), v = w.getResponseHeader("etag"), v && (fa.etag[f] = v)), 204 === b || "HEAD" === m.type ? x = "nocontent" : 304 === b ? x = "notmodified" : (x = t.state, l = t.data, s = t.error, j = !s)) : (s = x, (b || !x) && (x = "error", 0 > b && (b = 0))), w.status = b, w.statusText = (c || x) + "", j ? p.resolveWith(n, [l, x, w]) : p.rejectWith(n, [w, x, s]), w.statusCode(r), r = void 0, k && o.trigger(j ? "ajaxSuccess" : "ajaxError", [w, m, j ? l : s]), q.fireWith(n, [w, x]), k && (o.trigger("ajaxComplete", [w, m]), --fa.active || fa.event.trigger("ajaxStop"))) | |
} | |
"object" == typeof b && (c = b, b = void 0), c = c || {}; | |
var e, f, g, h, i, j, k, l, m = fa.ajaxSetup({}, c), | |
n = m.context || m, | |
o = m.context && (n.nodeType || n.jquery) ? fa(n) : fa.event, | |
p = fa.Deferred(), | |
q = fa.Callbacks("once memory"), | |
r = m.statusCode || {}, | |
s = {}, | |
t = {}, | |
u = 0, | |
v = "canceled", | |
w = { | |
readyState: 0, | |
getResponseHeader: function(a) { | |
var b; | |
if (2 === u) { | |
if (!h) | |
for (h = {}; b = ub.exec(g);) h[b[1].toLowerCase()] = b[2]; | |
b = h[a.toLowerCase()] | |
} | |
return null == b ? null : b | |
}, | |
getAllResponseHeaders: function() { | |
return 2 === u ? g : null | |
}, | |
setRequestHeader: function(a, b) { | |
var c = a.toLowerCase(); | |
return u || (a = t[c] = t[c] || a, s[a] = b), this | |
}, | |
overrideMimeType: function(a) { | |
return u || (m.mimeType = a), this | |
}, | |
statusCode: function(a) { | |
var b; | |
if (a) | |
if (2 > u) | |
for (b in a) r[b] = [r[b], a[b]]; | |
else w.always(a[w.status]); | |
return this | |
}, | |
abort: function(a) { | |
var b = a || v; | |
return e && e.abort(b), d(0, b), this | |
} | |
}; | |
if (p.promise(w).complete = q.add, w.success = w.done, w.error = w.fail, m.url = ((b || m.url || pb.href) + "").replace(sb, "").replace(xb, pb.protocol + "//"), m.type = c.method || c.type || m.method || m.type, m.dataTypes = fa.trim(m.dataType || "*").toLowerCase().match(va) || [""], null == m.crossDomain) { | |
j = X.createElement("a"); | |
try { | |
j.href = m.url, j.href = j.href, m.crossDomain = Bb.protocol + "//" + Bb.host != j.protocol + "//" + j.host | |
} catch (x) { | |
m.crossDomain = !0 | |
} | |
} | |
if (m.data && m.processData && "string" != typeof m.data && (m.data = fa.param(m.data, m.traditional)), Q(yb, m, c, w), 2 === u) return w; | |
k = fa.event && m.global, k && 0 === fa.active++ && fa.event.trigger("ajaxStart"), m.type = m.type.toUpperCase(), m.hasContent = !wb.test(m.type), f = m.url, m.hasContent || (m.data && (f = m.url += (rb.test(f) ? "&" : "?") + m.data, delete m.data), m.cache === !1 && (m.url = tb.test(f) ? f.replace(tb, "$1_=" + qb++) : f + (rb.test(f) ? "&" : "?") + "_=" + qb++)), m.ifModified && (fa.lastModified[f] && w.setRequestHeader("If-Modified-Since", fa.lastModified[f]), fa.etag[f] && w.setRequestHeader("If-None-Match", fa.etag[f])), (m.data && m.hasContent && m.contentType !== !1 || c.contentType) && w.setRequestHeader("Content-Type", m.contentType), w.setRequestHeader("Accept", m.dataTypes[0] && m.accepts[m.dataTypes[0]] ? m.accepts[m.dataTypes[0]] + ("*" !== m.dataTypes[0] ? ", " + Ab + "; q=0.01" : "") : m.accepts["*"]); | |
for (l in m.headers) w.setRequestHeader(l, m.headers[l]); | |
if (m.beforeSend && (m.beforeSend.call(n, w, m) === !1 || 2 === u)) return w.abort(); | |
v = "abort"; | |
for (l in { | |
success: 1, | |
error: 1, | |
complete: 1 | |
}) w[l](m[l]); | |
if (e = Q(zb, m, c, w)) { | |
if (w.readyState = 1, k && o.trigger("ajaxSend", [w, m]), 2 === u) return w; | |
m.async && m.timeout > 0 && (i = a.setTimeout(function() { | |
w.abort("timeout") | |
}, m.timeout)); | |
try { | |
u = 1, e.send(s, d) | |
} catch (x) { | |
if (!(2 > u)) throw x; | |
d(-1, x) | |
} | |
} else d(-1, "No Transport"); | |
return w | |
}, | |
getJSON: function(a, b, c) { | |
return fa.get(a, b, c, "json") | |
}, | |
getScript: function(a, b) { | |
return fa.get(a, void 0, b, "script") | |
} | |
}), fa.each(["get", "post"], function(a, b) { | |
fa[b] = function(a, c, d, e) { | |
return fa.isFunction(c) && (e = e || d, d = c, c = void 0), fa.ajax(fa.extend({ | |
url: a, | |
type: b, | |
dataType: e, | |
data: c, | |
success: d | |
}, fa.isPlainObject(a) && a)) | |
} | |
}), fa._evalUrl = function(a) { | |
return fa.ajax({ | |
url: a, | |
type: "GET", | |
dataType: "script", | |
async: !1, | |
global: !1, | |
"throws": !0 | |
}) | |
}, fa.fn.extend({ | |
wrapAll: function(a) { | |
var b; | |
return fa.isFunction(a) ? this.each(function(b) { | |
fa(this).wrapAll(a.call(this, b)) | |
}) : (this[0] && (b = fa(a, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && b.insertBefore(this[0]), b.map(function() { | |
for (var a = this; a.firstElementChild;) a = a.firstElementChild; | |
return a | |
}).append(this)), this) | |
}, | |
wrapInner: function(a) { | |
return fa.isFunction(a) ? this.each(function(b) { | |
fa(this).wrapInner(a.call(this, b)) | |
}) : this.each(function() { | |
var b = fa(this), | |
c = b.contents(); | |
c.length ? c.wrapAll(a) : b.append(a) | |
}) | |
}, | |
wrap: function(a) { | |
var b = fa.isFunction(a); | |
return this.each(function(c) { | |
fa(this).wrapAll(b ? a.call(this, c) : a) | |
}) | |
}, | |
unwrap: function() { | |
return this.parent().each(function() { | |
fa.nodeName(this, "body") || fa(this).replaceWith(this.childNodes) | |
}).end() | |
} | |
}), fa.expr.filters.hidden = function(a) { | |
return !fa.expr.filters.visible(a) | |
}, fa.expr.filters.visible = function(a) { | |
return a.offsetWidth > 0 || a.offsetHeight > 0 || a.getClientRects().length > 0 | |
}; | |
var Cb = /%20/g, | |
Db = /\[\]$/, | |
Eb = /\r?\n/g, | |
Fb = /^(?:submit|button|image|reset|file)$/i, | |
Gb = /^(?:input|select|textarea|keygen)/i; | |
fa.param = function(a, b) { | |
var c, d = [], | |
e = function(a, b) { | |
b = fa.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b) | |
}; | |
if (void 0 === b && (b = fa.ajaxSettings && fa.ajaxSettings.traditional), fa.isArray(a) || a.jquery && !fa.isPlainObject(a)) fa.each(a, function() { | |
e(this.name, this.value) | |
}); | |
else | |
for (c in a) U(c, a[c], b, e); | |
return d.join("&").replace(Cb, "+") | |
}, fa.fn.extend({ | |
serialize: function() { | |
return fa.param(this.serializeArray()) | |
}, | |
serializeArray: function() { | |
return this.map(function() { | |
var a = fa.prop(this, "elements"); | |
return a ? fa.makeArray(a) : this | |
}).filter(function() { | |
var a = this.type; | |
return this.name && !fa(this).is(":disabled") && Gb.test(this.nodeName) && !Fb.test(a) && (this.checked || !Ha.test(a)) | |
}).map(function(a, b) { | |
var c = fa(this).val(); | |
return null == c ? null : fa.isArray(c) ? fa.map(c, function(a) { | |
return { | |
name: b.name, | |
value: a.replace(Eb, "\r\n") | |
} | |
}) : { | |
name: b.name, | |
value: c.replace(Eb, "\r\n") | |
} | |
}).get() | |
} | |
}), fa.ajaxSettings.xhr = function() { | |
try { | |
return new a.XMLHttpRequest | |
} catch (b) {} | |
}; | |
var Hb = { | |
0: 200, | |
1223: 204 | |
}, | |
Ib = fa.ajaxSettings.xhr(); | |
da.cors = !!Ib && "withCredentials" in Ib, da.ajax = Ib = !!Ib, fa.ajaxTransport(function(b) { | |
var c, d; | |
return da.cors || Ib && !b.crossDomain ? { | |
send: function(e, f) { | |
var g, h = b.xhr(); | |
if (h.open(b.type, b.url, b.async, b.username, b.password), b.xhrFields) | |
for (g in b.xhrFields) h[g] = b.xhrFields[g]; | |
b.mimeType && h.overrideMimeType && h.overrideMimeType(b.mimeType), b.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"); | |
for (g in e) h.setRequestHeader(g, e[g]); | |
c = function(a) { | |
return function() { | |
c && (c = d = h.onload = h.onerror = h.onabort = h.onreadystatechange = null, | |
"abort" === a ? h.abort() : "error" === a ? "number" != typeof h.status ? f(0, "error") : f(h.status, h.statusText) : f(Hb[h.status] || h.status, h.statusText, "text" !== (h.responseType || "text") || "string" != typeof h.responseText ? { | |
binary: h.response | |
} : { | |
text: h.responseText | |
}, h.getAllResponseHeaders())) | |
} | |
}, h.onload = c(), d = h.onerror = c("error"), void 0 !== h.onabort ? h.onabort = d : h.onreadystatechange = function() { | |
4 === h.readyState && a.setTimeout(function() { | |
c && d() | |
}) | |
}, c = c("abort"); | |
try { | |
h.send(b.hasContent && b.data || null) | |
} catch (i) { | |
if (c) throw i | |
} | |
}, | |
abort: function() { | |
c && c() | |
} | |
} : void 0 | |
}), fa.ajaxSetup({ | |
accepts: { | |
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" | |
}, | |
contents: { | |
script: /\b(?:java|ecma)script\b/ | |
}, | |
converters: { | |
"text script": function(a) { | |
return fa.globalEval(a), a | |
} | |
} | |
}), fa.ajaxPrefilter("script", function(a) { | |
void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET") | |
}), fa.ajaxTransport("script", function(a) { | |
if (a.crossDomain) { | |
var b, c; | |
return { | |
send: function(d, e) { | |
b = fa("<script>").prop({ | |
charset: a.scriptCharset, | |
src: a.url | |
}).on("load error", c = function(a) { | |
b.remove(), c = null, a && e("error" === a.type ? 404 : 200, a.type) | |
}), X.head.appendChild(b[0]) | |
}, | |
abort: function() { | |
c && c() | |
} | |
} | |
} | |
}); | |
var Jb = [], | |
Kb = /(=)\?(?=&|$)|\?\?/; | |
fa.ajaxSetup({ | |
jsonp: "callback", | |
jsonpCallback: function() { | |
var a = Jb.pop() || fa.expando + "_" + qb++; | |
return this[a] = !0, a | |
} | |
}), fa.ajaxPrefilter("json jsonp", function(b, c, d) { | |
var e, f, g, h = b.jsonp !== !1 && (Kb.test(b.url) ? "url" : "string" == typeof b.data && 0 === (b.contentType || "").indexOf("application/x-www-form-urlencoded") && Kb.test(b.data) && "data"); | |
return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = fa.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(Kb, "$1" + e) : b.jsonp !== !1 && (b.url += (rb.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function() { | |
return g || fa.error(e + " was not called"), g[0] | |
}, b.dataTypes[0] = "json", f = a[e], a[e] = function() { | |
g = arguments | |
}, d.always(function() { | |
void 0 === f ? fa(a).removeProp(e) : a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, Jb.push(e)), g && fa.isFunction(f) && f(g[0]), g = f = void 0 | |
}), "script") : void 0 | |
}), da.createHTMLDocument = function() { | |
var a = X.implementation.createHTMLDocument("").body; | |
return a.innerHTML = "<form></form><form></form>", 2 === a.childNodes.length | |
}(), fa.parseHTML = function(a, b, c) { | |
if (!a || "string" != typeof a) return null; | |
"boolean" == typeof b && (c = b, b = !1), b = b || (da.createHTMLDocument ? X.implementation.createHTMLDocument("") : X); | |
var d = oa.exec(a), | |
e = !c && []; | |
return d ? [b.createElement(d[1])] : (d = m([a], b, e), e && e.length && fa(e).remove(), fa.merge([], d.childNodes)) | |
}; | |
var Lb = fa.fn.load; | |
fa.fn.load = function(a, b, c) { | |
if ("string" != typeof a && Lb) return Lb.apply(this, arguments); | |
var d, e, f, g = this, | |
h = a.indexOf(" "); | |
return h > -1 && (d = fa.trim(a.slice(h)), a = a.slice(0, h)), fa.isFunction(b) ? (c = b, b = void 0) : b && "object" == typeof b && (e = "POST"), g.length > 0 && fa.ajax({ | |
url: a, | |
type: e || "GET", | |
dataType: "html", | |
data: b | |
}).done(function(a) { | |
f = arguments, g.html(d ? fa("<div>").append(fa.parseHTML(a)).find(d) : a) | |
}).always(c && function(a, b) { | |
g.each(function() { | |
c.apply(g, f || [a.responseText, b, a]) | |
}) | |
}), this | |
}, fa.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(a, b) { | |
fa.fn[b] = function(a) { | |
return this.on(b, a) | |
} | |
}), fa.expr.filters.animated = function(a) { | |
return fa.grep(fa.timers, function(b) { | |
return a === b.elem | |
}).length | |
}, fa.offset = { | |
setOffset: function(a, b, c) { | |
var d, e, f, g, h, i, j, k = fa.css(a, "position"), | |
l = fa(a), | |
m = {}; | |
"static" === k && (a.style.position = "relative"), h = l.offset(), f = fa.css(a, "top"), i = fa.css(a, "left"), j = ("absolute" === k || "fixed" === k) && (f + i).indexOf("auto") > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), fa.isFunction(b) && (b = b.call(a, c, fa.extend({}, h))), null != b.top && (m.top = b.top - h.top + g), null != b.left && (m.left = b.left - h.left + e), "using" in b ? b.using.call(a, m) : l.css(m) | |
} | |
}, fa.fn.extend({ | |
offset: function(a) { | |
if (arguments.length) return void 0 === a ? this : this.each(function(b) { | |
fa.offset.setOffset(this, a, b) | |
}); | |
var b, c, d = this[0], | |
e = { | |
top: 0, | |
left: 0 | |
}, | |
f = d && d.ownerDocument; | |
if (f) return b = f.documentElement, fa.contains(b, d) ? (e = d.getBoundingClientRect(), c = V(f), { | |
top: e.top + c.pageYOffset - b.clientTop, | |
left: e.left + c.pageXOffset - b.clientLeft | |
}) : e | |
}, | |
position: function() { | |
if (this[0]) { | |
var a, b, c = this[0], | |
d = { | |
top: 0, | |
left: 0 | |
}; | |
return "fixed" === fa.css(c, "position") ? b = c.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), fa.nodeName(a[0], "html") || (d = a.offset()), d.top += fa.css(a[0], "borderTopWidth", !0) - a.scrollTop(), d.left += fa.css(a[0], "borderLeftWidth", !0) - a.scrollLeft()), { | |
top: b.top - d.top - fa.css(c, "marginTop", !0), | |
left: b.left - d.left - fa.css(c, "marginLeft", !0) | |
} | |
} | |
}, | |
offsetParent: function() { | |
return this.map(function() { | |
for (var a = this.offsetParent; a && "static" === fa.css(a, "position");) a = a.offsetParent; | |
return a || $a | |
}) | |
} | |
}), fa.each({ | |
scrollLeft: "pageXOffset", | |
scrollTop: "pageYOffset" | |
}, function(a, b) { | |
var c = "pageYOffset" === b; | |
fa.fn[a] = function(d) { | |
return xa(this, function(a, d, e) { | |
var f = V(a); | |
return void 0 === e ? f ? f[b] : a[d] : void(f ? f.scrollTo(c ? f.pageXOffset : e, c ? e : f.pageYOffset) : a[d] = e) | |
}, a, d, arguments.length) | |
} | |
}), fa.each(["top", "left"], function(a, b) { | |
fa.cssHooks[b] = B(da.pixelPosition, function(a, c) { | |
return c ? (c = A(a, b), Xa.test(c) ? fa(a).position()[b] + "px" : c) : void 0 | |
}) | |
}), fa.each({ | |
Height: "height", | |
Width: "width" | |
}, function(a, b) { | |
fa.each({ | |
padding: "inner" + a, | |
content: b, | |
"": "outer" + a | |
}, function(c, d) { | |
fa.fn[d] = function(d, e) { | |
var f = arguments.length && (c || "boolean" != typeof d), | |
g = c || (d === !0 || e === !0 ? "margin" : "border"); | |
return xa(this, function(b, c, d) { | |
var e; | |
return fa.isWindow(b) ? b.document.documentElement["client" + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body["scroll" + a], e["scroll" + a], b.body["offset" + a], e["offset" + a], e["client" + a])) : void 0 === d ? fa.css(b, c, g) : fa.style(b, c, d, g) | |
}, b, f ? d : void 0, f, null) | |
} | |
}) | |
}), fa.fn.extend({ | |
bind: function(a, b, c) { | |
return this.on(a, null, b, c) | |
}, | |
unbind: function(a, b) { | |
return this.off(a, null, b) | |
}, | |
delegate: function(a, b, c, d) { | |
return this.on(b, a, c, d) | |
}, | |
undelegate: function(a, b, c) { | |
return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c) | |
}, | |
size: function() { | |
return this.length | |
} | |
}), fa.fn.andSelf = fa.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function() { | |
return fa | |
}); | |
var Mb = a.jQuery, | |
Nb = a.$; | |
return fa.noConflict = function(b) { | |
return a.$ === fa && (a.$ = Nb), b && a.jQuery === fa && (a.jQuery = Mb), fa | |
}, b || (a.jQuery = a.$ = fa), fa | |
}), | |
function(a, b, c) { | |
"use strict"; | |
function d(a, b) { | |
return b = b || Error, | |
function() { | |
var c, d, e = 2, | |
f = arguments, | |
g = f[0], | |
h = "[" + (a ? a + ":" : "") + g + "] ", | |
i = f[1]; | |
for (h += i.replace(/\{\d+\}/g, function(a) { | |
var b = +a.slice(1, -1), | |
c = b + e; | |
return c < f.length ? ta(f[c]) : a | |
}), h += "\nhttp://errors.angularjs.org/1.4.9/" + (a ? a + "/" : "") + g, d = e, c = "?"; d < f.length; d++, c = "&") h += c + "p" + (d - e) + "=" + encodeURIComponent(ta(f[d])); | |
return new b(h) | |
} | |
} | |
function e(a) { | |
if (null == a || C(a)) return !1; | |
if (Qd(a) || x(a) || Ed && a instanceof Ed) return !0; | |
var b = "length" in Object(a) && a.length; | |
return y(b) && (b >= 0 && (b - 1 in a || a instanceof Array) || "function" == typeof a.item) | |
} | |
function f(a, b, c) { | |
var d, g; | |
if (a) | |
if (A(a)) | |
for (d in a) "prototype" == d || "length" == d || "name" == d || a.hasOwnProperty && !a.hasOwnProperty(d) || b.call(c, a[d], d, a); | |
else if (Qd(a) || e(a)) { | |
var h = "object" != typeof a; | |
for (d = 0, g = a.length; g > d; d++)(h || d in a) && b.call(c, a[d], d, a) | |
} else if (a.forEach && a.forEach !== f) a.forEach(b, c, a); | |
else if (w(a)) | |
for (d in a) b.call(c, a[d], d, a); | |
else if ("function" == typeof a.hasOwnProperty) | |
for (d in a) a.hasOwnProperty(d) && b.call(c, a[d], d, a); | |
else | |
for (d in a) zd.call(a, d) && b.call(c, a[d], d, a); | |
return a | |
} | |
function g(a, b, c) { | |
for (var d = Object.keys(a).sort(), e = 0; e < d.length; e++) b.call(c, a[d[e]], d[e]); | |
return d | |
} | |
function h(a) { | |
return function(b, c) { | |
a(c, b) | |
} | |
} | |
function i() { | |
return ++Od | |
} | |
function j(a, b) { | |
b ? a.$$hashKey = b : delete a.$$hashKey | |
} | |
function k(a, b, c) { | |
for (var d = a.$$hashKey, e = 0, f = b.length; f > e; ++e) { | |
var g = b[e]; | |
if (v(g) || A(g)) | |
for (var h = Object.keys(g), i = 0, l = h.length; l > i; i++) { | |
var m = h[i], | |
n = g[m]; | |
c && v(n) ? z(n) ? a[m] = new Date(n.valueOf()) : B(n) ? a[m] = new RegExp(n) : n.nodeName ? a[m] = n.cloneNode(!0) : K(n) ? a[m] = n.clone() : (v(a[m]) || (a[m] = Qd(n) ? [] : {}), k(a[m], [n], !0)) : a[m] = n | |
} | |
} | |
return j(a, d), a | |
} | |
function l(a) { | |
return k(a, Hd.call(arguments, 1), !1) | |
} | |
function m(a) { | |
return k(a, Hd.call(arguments, 1), !0) | |
} | |
function n(a) { | |
return parseInt(a, 10) | |
} | |
function o(a, b) { | |
return l(Object.create(a), b) | |
} | |
function p() {} | |
function q(a) { | |
return a | |
} | |
function r(a) { | |
return function() { | |
return a | |
} | |
} | |
function s(a) { | |
return A(a.toString) && a.toString !== Kd | |
} | |
function t(a) { | |
return "undefined" == typeof a | |
} | |
function u(a) { | |
return "undefined" != typeof a | |
} | |
function v(a) { | |
return null !== a && "object" == typeof a | |
} | |
function w(a) { | |
return null !== a && "object" == typeof a && !Ld(a) | |
} | |
function x(a) { | |
return "string" == typeof a | |
} | |
function y(a) { | |
return "number" == typeof a | |
} | |
function z(a) { | |
return "[object Date]" === Kd.call(a) | |
} | |
function A(a) { | |
return "function" == typeof a | |
} | |
function B(a) { | |
return "[object RegExp]" === Kd.call(a) | |
} | |
function C(a) { | |
return a && a.window === a | |
} | |
function D(a) { | |
return a && a.$evalAsync && a.$watch | |
} | |
function E(a) { | |
return "[object File]" === Kd.call(a) | |
} | |
function F(a) { | |
return "[object FormData]" === Kd.call(a) | |
} | |
function G(a) { | |
return "[object Blob]" === Kd.call(a) | |
} | |
function H(a) { | |
return "boolean" == typeof a | |
} | |
function I(a) { | |
return a && A(a.then) | |
} | |
function J(a) { | |
return a && y(a.length) && Rd.test(Kd.call(a)) | |
} | |
function K(a) { | |
return !(!a || !(a.nodeName || a.prop && a.attr && a.find)) | |
} | |
function L(a) { | |
var b, c = {}, | |
d = a.split(","); | |
for (b = 0; b < d.length; b++) c[d[b]] = !0; | |
return c | |
} | |
function M(a) { | |
return yd(a.nodeName || a[0] && a[0].nodeName) | |
} | |
function N(a, b) { | |
var c = a.indexOf(b); | |
return c >= 0 && a.splice(c, 1), c | |
} | |
function O(a, b) { | |
function c(a, b) { | |
var c, e = b.$$hashKey; | |
if (Qd(a)) | |
for (var f = 0, g = a.length; g > f; f++) b.push(d(a[f])); | |
else if (w(a)) | |
for (c in a) b[c] = d(a[c]); | |
else if (a && "function" == typeof a.hasOwnProperty) | |
for (c in a) a.hasOwnProperty(c) && (b[c] = d(a[c])); | |
else | |
for (c in a) zd.call(a, c) && (b[c] = d(a[c])); | |
return j(b, e), b | |
} | |
function d(a) { | |
if (!v(a)) return a; | |
var b = e.indexOf(a); | |
if (-1 !== b) return g[b]; | |
if (C(a) || D(a)) throw Md("cpws", "Can't copy! Making copies of Window or Scope instances is not supported."); | |
var d, f = !1; | |
return Qd(a) ? (d = [], f = !0) : J(a) ? d = new a.constructor(a) : z(a) ? d = new Date(a.getTime()) : B(a) ? (d = new RegExp(a.source, a.toString().match(/[^\/]*$/)[0]), d.lastIndex = a.lastIndex) : A(a.cloneNode) ? d = a.cloneNode(!0) : (d = Object.create(Ld(a)), f = !0), e.push(a), g.push(d), f ? c(a, d) : d | |
} | |
var e = [], | |
g = []; | |
if (b) { | |
if (J(b)) throw Md("cpta", "Can't copy! TypedArray destination cannot be mutated."); | |
if (a === b) throw Md("cpi", "Can't copy! Source and destination are identical."); | |
return Qd(b) ? b.length = 0 : f(b, function(a, c) { | |
"$$hashKey" !== c && delete b[c] | |
}), e.push(a), g.push(b), c(a, b) | |
} | |
return d(a) | |
} | |
function P(a, b) { | |
if (Qd(a)) { | |
b = b || []; | |
for (var c = 0, d = a.length; d > c; c++) b[c] = a[c] | |
} else if (v(a)) { | |
b = b || {}; | |
for (var e in a)("$" !== e.charAt(0) || "$" !== e.charAt(1)) && (b[e] = a[e]) | |
} | |
return b || a | |
} | |
function Q(a, b) { | |
if (a === b) return !0; | |
if (null === a || null === b) return !1; | |
if (a !== a && b !== b) return !0; | |
var c, d, e, f = typeof a, | |
g = typeof b; | |
if (f == g && "object" == f) { | |
if (!Qd(a)) { | |
if (z(a)) return z(b) ? Q(a.getTime(), b.getTime()) : !1; | |
if (B(a)) return B(b) ? a.toString() == b.toString() : !1; | |
if (D(a) || D(b) || C(a) || C(b) || Qd(b) || z(b) || B(b)) return !1; | |
e = qa(); | |
for (d in a) | |
if ("$" !== d.charAt(0) && !A(a[d])) { | |
if (!Q(a[d], b[d])) return !1; | |
e[d] = !0 | |
} | |
for (d in b) | |
if (!(d in e) && "$" !== d.charAt(0) && u(b[d]) && !A(b[d])) return !1; | |
return !0 | |
} | |
if (!Qd(b)) return !1; | |
if ((c = a.length) == b.length) { | |
for (d = 0; c > d; d++) | |
if (!Q(a[d], b[d])) return !1; | |
return !0 | |
} | |
} | |
return !1 | |
} | |
function R(a, b, c) { | |
return a.concat(Hd.call(b, c)) | |
} | |
function S(a, b) { | |
return Hd.call(a, b || 0) | |
} | |
function T(a, b) { | |
var c = arguments.length > 2 ? S(arguments, 2) : []; | |
return !A(b) || b instanceof RegExp ? b : c.length ? function() { | |
return arguments.length ? b.apply(a, R(c, arguments, 0)) : b.apply(a, c) | |
} : function() { | |
return arguments.length ? b.apply(a, arguments) : b.call(a) | |
} | |
} | |
function U(a, d) { | |
var e = d; | |
return "string" == typeof a && "$" === a.charAt(0) && "$" === a.charAt(1) ? e = c : C(d) ? e = "$WINDOW" : d && b === d ? e = "$DOCUMENT" : D(d) && (e = "$SCOPE"), e | |
} | |
function V(a, b) { | |
return "undefined" == typeof a ? c : (y(b) || (b = b ? 2 : null), JSON.stringify(a, U, b)) | |
} | |
function W(a) { | |
return x(a) ? JSON.parse(a) : a | |
} | |
function X(a, b) { | |
var c = Date.parse("Jan 01, 1970 00:00:00 " + a) / 6e4; | |
return isNaN(c) ? b : c | |
} | |
function Y(a, b) { | |
return a = new Date(a.getTime()), a.setMinutes(a.getMinutes() + b), a | |
} | |
function Z(a, b, c) { | |
c = c ? -1 : 1; | |
var d = X(b, a.getTimezoneOffset()); | |
return Y(a, c * (d - a.getTimezoneOffset())) | |
} | |
function $(a) { | |
a = Ed(a).clone(); | |
try { | |
a.empty() | |
} catch (b) {} | |
var c = Ed("<div>").append(a).html(); | |
try { | |
return a[0].nodeType === _d ? yd(c) : c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/, function(a, b) { | |
return "<" + yd(b) | |
}) | |
} catch (b) { | |
return yd(c) | |
} | |
} | |
function _(a) { | |
try { | |
return decodeURIComponent(a) | |
} catch (b) {} | |
} | |
function aa(a) { | |
var b = {}; | |
return f((a || "").split("&"), function(a) { | |
var c, d, e; | |
a && (d = a = a.replace(/\+/g, "%20"), c = a.indexOf("="), -1 !== c && (d = a.substring(0, c), e = a.substring(c + 1)), d = _(d), u(d) && (e = u(e) ? _(e) : !0, zd.call(b, d) ? Qd(b[d]) ? b[d].push(e) : b[d] = [b[d], e] : b[d] = e)) | |
}), b | |
} | |
function ba(a) { | |
var b = []; | |
return f(a, function(a, c) { | |
Qd(a) ? f(a, function(a) { | |
b.push(da(c, !0) + (a === !0 ? "" : "=" + da(a, !0))) | |
}) : b.push(da(c, !0) + (a === !0 ? "" : "=" + da(a, !0))) | |
}), b.length ? b.join("&") : "" | |
} | |
function ca(a) { | |
return da(a, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+") | |
} | |
function da(a, b) { | |
return encodeURIComponent(a).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%3B/gi, ";").replace(/%20/g, b ? "%20" : "+") | |
} | |
function ea(a, b) { | |
var c, d, e = Wd.length; | |
for (d = 0; e > d; ++d) | |
if (c = Wd[d] + b, x(c = a.getAttribute(c))) return c; | |
return null | |
} | |
function fa(a, b) { | |
var c, d, e = {}; | |
f(Wd, function(b) { | |
var e = b + "app"; | |
!c && a.hasAttribute && a.hasAttribute(e) && (c = a, d = a.getAttribute(e)) | |
}), f(Wd, function(b) { | |
var e, f = b + "app"; | |
!c && (e = a.querySelector("[" + f.replace(":", "\\:") + "]")) && (c = e, d = e.getAttribute(f)) | |
}), c && (e.strictDi = null !== ea(c, "strict-di"), b(c, d ? [d] : [], e)) | |
} | |
function ga(c, d, e) { | |
v(e) || (e = {}); | |
var g = { | |
strictDi: !1 | |
}; | |
e = l(g, e); | |
var h = function() { | |
if (c = Ed(c), c.injector()) { | |
var a = c[0] === b ? "document" : $(c); | |
throw Md("btstrpd", "App Already Bootstrapped with this Element '{0}'", a.replace(/</, "<").replace(/>/, ">")) | |
} | |
d = d || [], d.unshift(["$provide", function(a) { | |
a.value("$rootElement", c) | |
}]), e.debugInfoEnabled && d.push(["$compileProvider", function(a) { | |
a.debugInfoEnabled(!0) | |
}]), d.unshift("ng"); | |
var f = ab(d, e.strictDi); | |
return f.invoke(["$rootScope", "$rootElement", "$compile", "$injector", function(a, b, c, d) { | |
a.$apply(function() { | |
b.data("$injector", d), c(b)(a) | |
}) | |
}]), f | |
}, | |
i = /^NG_ENABLE_DEBUG_INFO!/, | |
j = /^NG_DEFER_BOOTSTRAP!/; | |
return a && i.test(a.name) && (e.debugInfoEnabled = !0, a.name = a.name.replace(i, "")), a && !j.test(a.name) ? h() : (a.name = a.name.replace(j, ""), Nd.resumeBootstrap = function(a) { | |
return f(a, function(a) { | |
d.push(a) | |
}), h() | |
}, void(A(Nd.resumeDeferredBootstrap) && Nd.resumeDeferredBootstrap())) | |
} | |
function ha() { | |
a.name = "NG_ENABLE_DEBUG_INFO!" + a.name, a.location.reload() | |
} | |
function ia(a) { | |
var b = Nd.element(a).injector(); | |
if (!b) throw Md("test", "no injector found for element argument to getTestability"); | |
return b.get("$$testability") | |
} | |
function ja(a, b) { | |
return b = b || "_", a.replace(Xd, function(a, c) { | |
return (c ? b : "") + a.toLowerCase() | |
}) | |
} | |
function ka() { | |
var b; | |
if (!Yd) { | |
var d = Vd(); | |
Fd = t(d) ? a.jQuery : d ? a[d] : c, Fd && Fd.fn.on ? (Ed = Fd, l(Fd.fn, { | |
scope: se.scope, | |
isolateScope: se.isolateScope, | |
controller: se.controller, | |
injector: se.injector, | |
inheritedData: se.inheritedData | |
}), b = Fd.cleanData, Fd.cleanData = function(a) { | |
var c; | |
if (Pd) Pd = !1; | |
else | |
for (var d, e = 0; null != (d = a[e]); e++) c = Fd._data(d, "events"), c && c.$destroy && Fd(d).triggerHandler("$destroy"); | |
b(a) | |
}) : Ed = Ca, Nd.element = Ed, Yd = !0 | |
} | |
} | |
function la(a, b, c) { | |
if (!a) throw Md("areq", "Argument '{0}' is {1}", b || "?", c || "required"); | |
return a | |
} | |
function ma(a, b, c) { | |
return c && Qd(a) && (a = a[a.length - 1]), la(A(a), b, "not a function, got " + (a && "object" == typeof a ? a.constructor.name || "Object" : typeof a)), a | |
} | |
function na(a, b) { | |
if ("hasOwnProperty" === a) throw Md("badname", "hasOwnProperty is not a valid {0} name", b) | |
} | |
function oa(a, b, c) { | |
if (!b) return a; | |
for (var d, e = b.split("."), f = a, g = e.length, h = 0; g > h; h++) d = e[h], a && (a = (f = a)[d]); | |
return !c && A(a) ? T(f, a) : a | |
} | |
function pa(a) { | |
for (var b, c = a[0], d = a[a.length - 1], e = 1; c !== d && (c = c.nextSibling); e++)(b || a[e] !== c) && (b || (b = Ed(Hd.call(a, 0, e))), b.push(c)); | |
return b || a | |
} | |
function qa() { | |
return Object.create(null) | |
} | |
function ra(a) { | |
function b(a, b, c) { | |
return a[b] || (a[b] = c()) | |
} | |
var c = d("$injector"), | |
e = d("ng"), | |
f = b(a, "angular", Object); | |
return f.$$minErr = f.$$minErr || d, b(f, "module", function() { | |
var a = {}; | |
return function(d, f, g) { | |
var h = function(a, b) { | |
if ("hasOwnProperty" === a) throw e("badname", "hasOwnProperty is not a valid {0} name", b) | |
}; | |
return h(d, "module"), f && a.hasOwnProperty(d) && (a[d] = null), b(a, d, function() { | |
function a(a, b, c, d) { | |
return d || (d = e), | |
function() { | |
return d[c || "push"]([a, b, arguments]), k | |
} | |
} | |
function b(a, b) { | |
return function(c, f) { | |
return f && A(f) && (f.$$moduleName = d), e.push([a, b, arguments]), k | |
} | |
} | |
if (!f) throw c("nomod", "Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.", d); | |
var e = [], | |
h = [], | |
i = [], | |
j = a("$injector", "invoke", "push", h), | |
k = { | |
_invokeQueue: e, | |
_configBlocks: h, | |
_runBlocks: i, | |
requires: f, | |
name: d, | |
provider: b("$provide", "provider"), | |
factory: b("$provide", "factory"), | |
service: b("$provide", "service"), | |
value: a("$provide", "value"), | |
constant: a("$provide", "constant", "unshift"), | |
decorator: b("$provide", "decorator"), | |
animation: b("$animateProvider", "register"), | |
filter: b("$filterProvider", "register"), | |
controller: b("$controllerProvider", "register"), | |
directive: b("$compileProvider", "directive"), | |
config: j, | |
run: function(a) { | |
return i.push(a), this | |
} | |
}; | |
return g && j(g), k | |
}) | |
} | |
}) | |
} | |
function sa(a) { | |
var b = []; | |
return JSON.stringify(a, function(a, c) { | |
if (c = U(a, c), v(c)) { | |
if (b.indexOf(c) >= 0) return "..."; | |
b.push(c) | |
} | |
return c | |
}) | |
} | |
function ta(a) { | |
return "function" == typeof a ? a.toString().replace(/ \{[\s\S]*$/, "") : t(a) ? "undefined" : "string" != typeof a ? sa(a) : a | |
} | |
function ua(b) { | |
l(b, { | |
bootstrap: ga, | |
copy: O, | |
extend: l, | |
merge: m, | |
equals: Q, | |
element: Ed, | |
forEach: f, | |
injector: ab, | |
noop: p, | |
bind: T, | |
toJson: V, | |
fromJson: W, | |
identity: q, | |
isUndefined: t, | |
isDefined: u, | |
isString: x, | |
isFunction: A, | |
isObject: v, | |
isNumber: y, | |
isElement: K, | |
isArray: Qd, | |
version: de, | |
isDate: z, | |
lowercase: yd, | |
uppercase: Ad, | |
callbacks: { | |
counter: 0 | |
}, | |
getTestability: ia, | |
$$minErr: d, | |
$$csp: Ud, | |
reloadWithDebugInfo: ha | |
}), (Gd = ra(a))("ng", ["ngLocale"], ["$provide", function(a) { | |
a.provider({ | |
$$sanitizeUri: sc | |
}), a.provider("$compile", kb).directive({ | |
a: xf, | |
input: Of, | |
textarea: Of, | |
form: Cf, | |
script: Gg, | |
select: Jg, | |
style: Lg, | |
option: Kg, | |
ngBind: Rf, | |
ngBindHtml: Tf, | |
ngBindTemplate: Sf, | |
ngClass: Vf, | |
ngClassEven: Xf, | |
ngClassOdd: Wf, | |
ngCloak: Yf, | |
ngController: Zf, | |
ngForm: Df, | |
ngHide: Ag, | |
ngIf: ag, | |
ngInclude: bg, | |
ngInit: dg, | |
ngNonBindable: rg, | |
ngPluralize: vg, | |
ngRepeat: wg, | |
ngShow: zg, | |
ngStyle: Bg, | |
ngSwitch: Cg, | |
ngSwitchWhen: Dg, | |
ngSwitchDefault: Eg, | |
ngOptions: ug, | |
ngTransclude: Fg, | |
ngModel: og, | |
ngList: eg, | |
ngChange: Uf, | |
pattern: Ng, | |
ngPattern: Ng, | |
required: Mg, | |
ngRequired: Mg, | |
minlength: Pg, | |
ngMinlength: Pg, | |
maxlength: Og, | |
ngMaxlength: Og, | |
ngValue: Qf, | |
ngModelOptions: qg | |
}).directive({ | |
ngInclude: cg | |
}).directive(yf).directive($f), a.provider({ | |
$anchorScroll: bb, | |
$animate: He, | |
$animateCss: Ke, | |
$$animateJs: Fe, | |
$$animateQueue: Ge, | |
$$AnimateRunner: Je, | |
$$animateAsyncRun: Ie, | |
$browser: hb, | |
$cacheFactory: ib, | |
$controller: pb, | |
$document: qb, | |
$exceptionHandler: rb, | |
$filter: Gc, | |
$$forceReflow: Pe, | |
$interpolate: Fb, | |
$interval: Gb, | |
$http: Bb, | |
$httpParamSerializer: tb, | |
$httpParamSerializerJQLike: ub, | |
$httpBackend: Db, | |
$xhrFactory: Cb, | |
$location: Ub, | |
$log: Vb, | |
$parse: mc, | |
$rootScope: rc, | |
$q: nc, | |
$$q: oc, | |
$sce: wc, | |
$sceDelegate: vc, | |
$sniffer: xc, | |
$templateCache: jb, | |
$templateRequest: yc, | |
$$testability: zc, | |
$timeout: Ac, | |
$window: Dc, | |
$$rAF: qc, | |
$$jqLite: Xa, | |
$$HashMap: we, | |
$$cookieReader: Fc | |
}) | |
}]) | |
} | |
function va() { | |
return ++fe | |
} | |
function wa(a) { | |
return a.replace(ie, function(a, b, c, d) { | |
return d ? c.toUpperCase() : c | |
}).replace(je, "Moz$1") | |
} | |
function xa(a) { | |
return !ne.test(a) | |
} | |
function ya(a) { | |
var b = a.nodeType; | |
return b === Zd || !b || b === be | |
} | |
function za(a) { | |
for (var b in ee[a.ng339]) return !0; | |
return !1 | |
} | |
function Aa(a, b) { | |
var c, d, e, g, h = b.createDocumentFragment(), | |
i = []; | |
if (xa(a)) i.push(b.createTextNode(a)); | |
else { | |
for (c = c || h.appendChild(b.createElement("div")), d = (oe.exec(a) || ["", ""])[1].toLowerCase(), e = qe[d] || qe._default, c.innerHTML = e[1] + a.replace(pe, "<$1></$2>") + e[2], g = e[0]; g--;) c = c.lastChild; | |
i = R(i, c.childNodes), c = h.firstChild, c.textContent = "" | |
} | |
return h.textContent = "", h.innerHTML = "", f(i, function(a) { | |
h.appendChild(a) | |
}), h | |
} | |
function Ba(a, c) { | |
c = c || b; | |
var d; | |
return (d = me.exec(a)) ? [c.createElement(d[1])] : (d = Aa(a, c)) ? d.childNodes : [] | |
} | |
function Ca(a) { | |
if (a instanceof Ca) return a; | |
var b; | |
if (x(a) && (a = Sd(a), b = !0), !(this instanceof Ca)) { | |
if (b && "<" != a.charAt(0)) throw le("nosel", "Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element"); | |
return new Ca(a) | |
} | |
b ? Ma(this, Ba(a)) : Ma(this, a) | |
} | |
function Da(a) { | |
return a.cloneNode(!0) | |
} | |
function Ea(a, b) { | |
if (b || Ga(a), a.querySelectorAll) | |
for (var c = a.querySelectorAll("*"), d = 0, e = c.length; e > d; d++) Ga(c[d]) | |
} | |
function Fa(a, b, c, d) { | |
if (u(d)) throw le("offargs", "jqLite#off() does not support the `selector` argument"); | |
var e = Ha(a), | |
g = e && e.events, | |
h = e && e.handle; | |
if (h) | |
if (b) { | |
var i = function(b) { | |
var d = g[b]; | |
u(c) && N(d || [], c), u(c) && d && d.length > 0 || (he(a, b, h), delete g[b]) | |
}; | |
f(b.split(" "), function(a) { | |
i(a), ke[a] && i(ke[a]) | |
}) | |
} else | |
for (b in g) "$destroy" !== b && he(a, b, h), delete g[b] | |
} | |
function Ga(a, b) { | |
var d = a.ng339, | |
e = d && ee[d]; | |
if (e) { | |
if (b) return void delete e.data[b]; | |
e.handle && (e.events.$destroy && e.handle({}, "$destroy"), Fa(a)), delete ee[d], a.ng339 = c | |
} | |
} | |
function Ha(a, b) { | |
var d = a.ng339, | |
e = d && ee[d]; | |
return b && !e && (a.ng339 = d = va(), e = ee[d] = { | |
events: {}, | |
data: {}, | |
handle: c | |
}), e | |
} | |
function Ia(a, b, c) { | |
if (ya(a)) { | |
var d = u(c), | |
e = !d && b && !v(b), | |
f = !b, | |
g = Ha(a, !e), | |
h = g && g.data; | |
if (d) h[b] = c; | |
else { | |
if (f) return h; | |
if (e) return h && h[b]; | |
l(h, b) | |
} | |
} | |
} | |
function Ja(a, b) { | |
return a.getAttribute ? (" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").indexOf(" " + b + " ") > -1 : !1 | |
} | |
function Ka(a, b) { | |
b && a.setAttribute && f(b.split(" "), function(b) { | |
a.setAttribute("class", Sd((" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").replace(" " + Sd(b) + " ", " "))) | |
}) | |
} | |
function La(a, b) { | |
if (b && a.setAttribute) { | |
var c = (" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " "); | |
f(b.split(" "), function(a) { | |
a = Sd(a), -1 === c.indexOf(" " + a + " ") && (c += a + " ") | |
}), a.setAttribute("class", Sd(c)) | |
} | |
} | |
function Ma(a, b) { | |
if (b) | |
if (b.nodeType) a[a.length++] = b; | |
else { | |
var c = b.length; | |
if ("number" == typeof c && b.window !== b) { | |
if (c) | |
for (var d = 0; c > d; d++) a[a.length++] = b[d] | |
} else a[a.length++] = b | |
} | |
} | |
function Na(a, b) { | |
return Oa(a, "$" + (b || "ngController") + "Controller") | |
} | |
function Oa(a, b, c) { | |
a.nodeType == be && (a = a.documentElement); | |
for (var d = Qd(b) ? b : [b]; a;) { | |
for (var e = 0, f = d.length; f > e; e++) | |
if (u(c = Ed.data(a, d[e]))) return c; | |
a = a.parentNode || a.nodeType === ce && a.host | |
} | |
} | |
function Pa(a) { | |
for (Ea(a, !0); a.firstChild;) a.removeChild(a.firstChild) | |
} | |
function Qa(a, b) { | |
b || Ea(a); | |
var c = a.parentNode; | |
c && c.removeChild(a) | |
} | |
function Ra(b, c) { | |
c = c || a, "complete" === c.document.readyState ? c.setTimeout(b) : Ed(c).on("load", b) | |
} | |
function Sa(a, b) { | |
var c = te[b.toLowerCase()]; | |
return c && ue[M(a)] && c | |
} | |
function Ta(a) { | |
return ve[a] | |
} | |
function Ua(a, b) { | |
var c = function(c, d) { | |
c.isDefaultPrevented = function() { | |
return c.defaultPrevented | |
}; | |
var e = b[d || c.type], | |
f = e ? e.length : 0; | |
if (f) { | |
if (t(c.immediatePropagationStopped)) { | |
var g = c.stopImmediatePropagation; | |
c.stopImmediatePropagation = function() { | |
c.immediatePropagationStopped = !0, c.stopPropagation && c.stopPropagation(), g && g.call(c) | |
} | |
} | |
c.isImmediatePropagationStopped = function() { | |
return c.immediatePropagationStopped === !0 | |
}; | |
var h = e.specialHandlerWrapper || Va; | |
f > 1 && (e = P(e)); | |
for (var i = 0; f > i; i++) c.isImmediatePropagationStopped() || h(a, c, e[i]) | |
} | |
}; | |
return c.elem = a, c | |
} | |
function Va(a, b, c) { | |
c.call(a, b) | |
} | |
function Wa(a, b, c) { | |
var d = b.relatedTarget; | |
(!d || d !== a && !re.call(a, d)) && c.call(a, b) | |
} | |
function Xa() { | |
this.$get = function() { | |
return l(Ca, { | |
hasClass: function(a, b) { | |
return a.attr && (a = a[0]), Ja(a, b) | |
}, | |
addClass: function(a, b) { | |
return a.attr && (a = a[0]), La(a, b) | |
}, | |
removeClass: function(a, b) { | |
return a.attr && (a = a[0]), Ka(a, b) | |
} | |
}) | |
} | |
} | |
function Ya(a, b) { | |
var c = a && a.$$hashKey; | |
if (c) return "function" == typeof c && (c = a.$$hashKey()), c; | |
var d = typeof a; | |
return c = "function" == d || "object" == d && null !== a ? a.$$hashKey = d + ":" + (b || i)() : d + ":" + a | |
} | |
function Za(a, b) { | |
if (b) { | |
var c = 0; | |
this.nextUid = function() { | |
return ++c | |
} | |
} | |
f(a, this.put, this) | |
} | |
function $a(a) { | |
var b = a.toString().replace(Ae, ""), | |
c = b.match(xe); | |
return c ? "function(" + (c[1] || "").replace(/[\s\r\n]+/, " ") + ")" : "fn" | |
} | |
function _a(a, b, c) { | |
var d, e, g, h; | |
if ("function" == typeof a) { | |
if (!(d = a.$inject)) { | |
if (d = [], a.length) { | |
if (b) throw x(c) && c || (c = a.name || $a(a)), Be("strictdi", "{0} is not using explicit annotation and cannot be invoked in strict mode", c); | |
e = a.toString().replace(Ae, ""), g = e.match(xe), f(g[1].split(ye), function(a) { | |
a.replace(ze, function(a, b, c) { | |
d.push(c) | |
}) | |
}) | |
} | |
a.$inject = d | |
} | |
} else Qd(a) ? (h = a.length - 1, ma(a[h], "fn"), d = a.slice(0, h)) : ma(a, "fn", !0); | |
return d | |
} | |
function ab(a, b) { | |
function d(a) { | |
return function(b, c) { | |
return v(b) ? void f(b, h(a)) : a(b, c) | |
} | |
} | |
function e(a, b) { | |
if (na(a, "service"), (A(b) || Qd(b)) && (b = y.instantiate(b)), !b.$get) throw Be("pget", "Provider '{0}' must define $get factory method.", a); | |
return w[a + q] = b | |
} | |
function g(a, b) { | |
return function() { | |
var c = B.invoke(b, this); | |
if (t(c)) throw Be("undef", "Provider '{0}' must return a value from $get factory method.", a); | |
return c | |
} | |
} | |
function i(a, b, c) { | |
return e(a, { | |
$get: c !== !1 ? g(a, b) : b | |
}) | |
} | |
function j(a, b) { | |
return i(a, ["$injector", function(a) { | |
return a.instantiate(b) | |
}]) | |
} | |
function k(a, b) { | |
return i(a, r(b), !1) | |
} | |
function l(a, b) { | |
na(a, "constant"), w[a] = b, z[a] = b | |
} | |
function m(a, b) { | |
var c = y.get(a + q), | |
d = c.$get; | |
c.$get = function() { | |
var a = B.invoke(d, c); | |
return B.invoke(b, null, { | |
$delegate: a | |
}) | |
} | |
} | |
function n(a) { | |
la(t(a) || Qd(a), "modulesToLoad", "not an array"); | |
var b, c = []; | |
return f(a, function(a) { | |
function d(a) { | |
var b, c; | |
for (b = 0, c = a.length; c > b; b++) { | |
var d = a[b], | |
e = y.get(d[0]); | |
e[d[1]].apply(e, d[2]) | |
} | |
} | |
if (!u.get(a)) { | |
u.put(a, !0); | |
try { | |
x(a) ? (b = Gd(a), c = c.concat(n(b.requires)).concat(b._runBlocks), d(b._invokeQueue), d(b._configBlocks)) : A(a) ? c.push(y.invoke(a)) : Qd(a) ? c.push(y.invoke(a)) : ma(a, "module") | |
} catch (e) { | |
throw Qd(a) && (a = a[a.length - 1]), e.message && e.stack && -1 == e.stack.indexOf(e.message) && (e = e.message + "\n" + e.stack), Be("modulerr", "Failed to instantiate module {0} due to:\n{1}", a, e.stack || e.message || e) | |
} | |
} | |
}), c | |
} | |
function o(a, c) { | |
function d(b, d) { | |
if (a.hasOwnProperty(b)) { | |
if (a[b] === p) throw Be("cdep", "Circular dependency found: {0}", b + " <- " + s.join(" <- ")); | |
return a[b] | |
} | |
try { | |
return s.unshift(b), a[b] = p, a[b] = c(b, d) | |
} catch (e) { | |
throw a[b] === p && delete a[b], e | |
} finally { | |
s.shift() | |
} | |
} | |
function e(a, c, e, f) { | |
"string" == typeof e && (f = e, e = null); | |
var g, h, i, j = [], | |
k = ab.$$annotate(a, b, f); | |
for (h = 0, g = k.length; g > h; h++) { | |
if (i = k[h], "string" != typeof i) throw Be("itkn", "Incorrect injection token! Expected service name as string, got {0}", i); | |
j.push(e && e.hasOwnProperty(i) ? e[i] : d(i, f)) | |
} | |
return Qd(a) && (a = a[g]), a.apply(c, j) | |
} | |
function f(a, b, c) { | |
var d = Object.create((Qd(a) ? a[a.length - 1] : a).prototype || null), | |
f = e(a, d, b, c); | |
return v(f) || A(f) ? f : d | |
} | |
return { | |
invoke: e, | |
instantiate: f, | |
get: d, | |
annotate: ab.$$annotate, | |
has: function(b) { | |
return w.hasOwnProperty(b + q) || a.hasOwnProperty(b) | |
} | |
} | |
} | |
b = b === !0; | |
var p = {}, | |
q = "Provider", | |
s = [], | |
u = new Za([], !0), | |
w = { | |
$provide: { | |
provider: d(e), | |
factory: d(i), | |
service: d(j), | |
value: d(k), | |
constant: d(l), | |
decorator: m | |
} | |
}, | |
y = w.$injector = o(w, function(a, b) { | |
throw Nd.isString(b) && s.push(b), Be("unpr", "Unknown provider: {0}", s.join(" <- ")) | |
}), | |
z = {}, | |
B = z.$injector = o(z, function(a, b) { | |
var d = y.get(a + q, b); | |
return B.invoke(d.$get, d, c, a) | |
}); | |
return f(n(a), function(a) { | |
a && B.invoke(a) | |
}), B | |
} | |
function bb() { | |
var a = !0; | |
this.disableAutoScrolling = function() { | |
a = !1 | |
}, this.$get = ["$window", "$location", "$rootScope", function(b, c, d) { | |
function e(a) { | |
var b = null; | |
return Array.prototype.some.call(a, function(a) { | |
return "a" === M(a) ? (b = a, !0) : void 0 | |
}), b | |
} | |
function f() { | |
var a = h.yOffset; | |
if (A(a)) a = a(); | |
else if (K(a)) { | |
var c = a[0], | |
d = b.getComputedStyle(c); | |
a = "fixed" !== d.position ? 0 : c.getBoundingClientRect().bottom | |
} else y(a) || (a = 0); | |
return a | |
} | |
function g(a) { | |
if (a) { | |
a.scrollIntoView(); | |
var c = f(); | |
if (c) { | |
var d = a.getBoundingClientRect().top; | |
b.scrollBy(0, d - c) | |
} | |
} else b.scrollTo(0, 0) | |
} | |
function h(a) { | |
a = x(a) ? a : c.hash(); | |
var b; | |
a ? (b = i.getElementById(a)) ? g(b) : (b = e(i.getElementsByName(a))) ? g(b) : "top" === a && g(null) : g(null) | |
} | |
var i = b.document; | |
return a && d.$watch(function() { | |
return c.hash() | |
}, function(a, b) { | |
(a !== b || "" !== a) && Ra(function() { | |
d.$evalAsync(h) | |
}) | |
}), h | |
}] | |
} | |
function cb(a, b) { | |
return a || b ? a ? b ? (Qd(a) && (a = a.join(" ")), Qd(b) && (b = b.join(" ")), a + " " + b) : a : b : "" | |
} | |
function db(a) { | |
for (var b = 0; b < a.length; b++) { | |
var c = a[b]; | |
if (c.nodeType === De) return c | |
} | |
} | |
function eb(a) { | |
x(a) && (a = a.split(" ")); | |
var b = qa(); | |
return f(a, function(a) { | |
a.length && (b[a] = !0) | |
}), b | |
} | |
function fb(a) { | |
return v(a) ? a : {} | |
} | |
function gb(a, b, c, d) { | |
function e(a) { | |
try { | |
a.apply(null, S(arguments, 1)) | |
} finally { | |
if (s--, 0 === s) | |
for (; u.length;) try { | |
u.pop()() | |
} catch (b) { | |
c.error(b) | |
} | |
} | |
} | |
function g(a) { | |
var b = a.indexOf("#"); | |
return -1 === b ? "" : a.substr(b) | |
} | |
function h() { | |
z = null, j(), k() | |
} | |
function i() { | |
try { | |
return n.state | |
} catch (a) {} | |
} | |
function j() { | |
v = i(), v = t(v) ? null : v, Q(v, C) && (v = C), C = v | |
} | |
function k() { | |
(x !== l.url() || w !== v) && (x = l.url(), w = v, f(A, function(a) { | |
a(l.url(), v) | |
})) | |
} | |
var l = this, | |
m = (b[0], a.location), | |
n = a.history, | |
o = a.setTimeout, | |
q = a.clearTimeout, | |
r = {}; | |
l.isMock = !1; | |
var s = 0, | |
u = []; | |
l.$$completeOutstandingRequest = e, l.$$incOutstandingRequestCount = function() { | |
s++ | |
}, l.notifyWhenNoOutstandingRequests = function(a) { | |
0 === s ? a() : u.push(a) | |
}; | |
var v, w, x = m.href, | |
y = b.find("base"), | |
z = null; | |
j(), w = v, l.url = function(b, c, e) { | |
if (t(e) && (e = null), m !== a.location && (m = a.location), n !== a.history && (n = a.history), b) { | |
var f = w === e; | |
if (x === b && (!d.history || f)) return l; | |
var h = x && Lb(x) === Lb(b); | |
return x = b, w = e, !d.history || h && f ? ((!h || z) && (z = b), c ? m.replace(b) : h ? m.hash = g(b) : m.href = b, m.href !== b && (z = b)) : (n[c ? "replaceState" : "pushState"](e, "", b), j(), w = v), l | |
} | |
return z || m.href.replace(/%27/g, "'") | |
}, l.state = function() { | |
return v | |
}; | |
var A = [], | |
B = !1, | |
C = null; | |
l.onUrlChange = function(b) { | |
return B || (d.history && Ed(a).on("popstate", h), Ed(a).on("hashchange", h), B = !0), A.push(b), b | |
}, l.$$applicationDestroyed = function() { | |
Ed(a).off("hashchange popstate", h) | |
}, l.$$checkUrlChange = k, l.baseHref = function() { | |
var a = y.attr("href"); | |
return a ? a.replace(/^(https?\:)?\/\/[^\/]*/, "") : "" | |
}, l.defer = function(a, b) { | |
var c; | |
return s++, c = o(function() { | |
delete r[c], e(a) | |
}, b || 0), r[c] = !0, c | |
}, l.defer.cancel = function(a) { | |
return r[a] ? (delete r[a], q(a), e(p), !0) : !1 | |
} | |
} | |
function hb() { | |
this.$get = ["$window", "$log", "$sniffer", "$document", function(a, b, c, d) { | |
return new gb(a, d, b, c) | |
}] | |
} | |
function ib() { | |
this.$get = function() { | |
function a(a, c) { | |
function e(a) { | |
a != m && (n ? n == a && (n = a.n) : n = a, f(a.n, a.p), f(a, m), m = a, m.n = null) | |
} | |
function f(a, b) { | |
a != b && (a && (a.p = b), b && (b.n = a)) | |
} | |
if (a in b) throw d("$cacheFactory")("iid", "CacheId '{0}' is already taken!", a); | |
var g = 0, | |
h = l({}, c, { | |
id: a | |
}), | |
i = qa(), | |
j = c && c.capacity || Number.MAX_VALUE, | |
k = qa(), | |
m = null, | |
n = null; | |
return b[a] = { | |
put: function(a, b) { | |
if (!t(b)) { | |
if (j < Number.MAX_VALUE) { | |
var c = k[a] || (k[a] = { | |
key: a | |
}); | |
e(c) | |
} | |
return a in i || g++, i[a] = b, g > j && this.remove(n.key), b | |
} | |
}, | |
get: function(a) { | |
if (j < Number.MAX_VALUE) { | |
var b = k[a]; | |
if (!b) return; | |
e(b) | |
} | |
return i[a] | |
}, | |
remove: function(a) { | |
if (j < Number.MAX_VALUE) { | |
var b = k[a]; | |
if (!b) return; | |
b == m && (m = b.p), b == n && (n = b.n), f(b.n, b.p), delete k[a] | |
} | |
a in i && (delete i[a], g--) | |
}, | |
removeAll: function() { | |
i = qa(), g = 0, k = qa(), m = n = null | |
}, | |
destroy: function() { | |
i = null, h = null, k = null, delete b[a] | |
}, | |
info: function() { | |
return l({}, h, { | |
size: g | |
}) | |
} | |
} | |
} | |
var b = {}; | |
return a.info = function() { | |
var a = {}; | |
return f(b, function(b, c) { | |
a[c] = b.info() | |
}), a | |
}, a.get = function(a) { | |
return b[a] | |
}, a | |
} | |
} | |
function jb() { | |
this.$get = ["$cacheFactory", function(a) { | |
return a("templates") | |
}] | |
} | |
function kb(a, d) { | |
function e(a, b, c) { | |
var d = /^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/, | |
e = {}; | |
return f(a, function(a, f) { | |
var g = a.match(d); | |
if (!g) throw Le("iscp", "Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}", b, f, a, c ? "controller bindings definition" : "isolate scope definition"); | |
e[f] = { | |
mode: g[1][0], | |
collection: "*" === g[2], | |
optional: "?" === g[3], | |
attrName: g[4] || f | |
} | |
}), e | |
} | |
function g(a, b) { | |
var c = { | |
isolateScope: null, | |
bindToController: null | |
}; | |
if (v(a.scope) && (a.bindToController === !0 ? (c.bindToController = e(a.scope, b, !0), c.isolateScope = {}) : c.isolateScope = e(a.scope, b, !1)), v(a.bindToController) && (c.bindToController = e(a.bindToController, b, !0)), v(c.bindToController)) { | |
var d = a.controller, | |
f = a.controllerAs; | |
if (!d) throw Le("noctrl", "Cannot bind to controller without directive '{0}'s controller.", b); | |
if (!ob(d, f)) throw Le("noident", "Cannot bind to controller without identifier for directive '{0}'.", b) | |
} | |
return c | |
} | |
function i(a) { | |
var b = a.charAt(0); | |
if (!b || b !== yd(b)) throw Le("baddir", "Directive name '{0}' is invalid. The first character must be a lowercase letter", a); | |
if (a !== a.trim()) throw Le("baddir", "Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces", a) | |
} | |
var j = {}, | |
k = "Directive", | |
m = /^\s*directive\:\s*([\w\-]+)\s+(.*)$/, | |
n = /(([\w\-]+)(?:\:([^;]+))?;?)/, | |
s = L("ngSrc,ngSrcset,src,srcset"), | |
w = /^(?:(\^\^?)?(\?)?(\^\^?)?)?/, | |
y = /^(on[a-z]+|formaction)$/; | |
this.directive = function B(b, c) { | |
return na(b, "directive"), x(b) ? (i(b), la(c, "directiveFactory"), j.hasOwnProperty(b) || (j[b] = [], a.factory(b + k, ["$injector", "$exceptionHandler", function(a, c) { | |
var d = []; | |
return f(j[b], function(e, f) { | |
try { | |
var h = a.invoke(e); | |
A(h) ? h = { | |
compile: r(h) | |
} : !h.compile && h.link && (h.compile = r(h.link)), h.priority = h.priority || 0, h.index = f, h.name = h.name || b, h.require = h.require || h.controller && h.name, | |
h.restrict = h.restrict || "EA"; | |
var i = h.$$bindings = g(h, h.name); | |
v(i.isolateScope) && (h.$$isolateBindings = i.isolateScope), h.$$moduleName = e.$$moduleName, d.push(h) | |
} catch (j) { | |
c(j) | |
} | |
}), d | |
}])), j[b].push(c)) : f(b, h(B)), this | |
}, this.aHrefSanitizationWhitelist = function(a) { | |
return u(a) ? (d.aHrefSanitizationWhitelist(a), this) : d.aHrefSanitizationWhitelist() | |
}, this.imgSrcSanitizationWhitelist = function(a) { | |
return u(a) ? (d.imgSrcSanitizationWhitelist(a), this) : d.imgSrcSanitizationWhitelist() | |
}; | |
var z = !0; | |
this.debugInfoEnabled = function(a) { | |
return u(a) ? (z = a, this) : z | |
}, this.$get = ["$injector", "$interpolate", "$exceptionHandler", "$templateRequest", "$parse", "$controller", "$rootScope", "$sce", "$animate", "$$sanitizeUri", function(a, d, e, g, h, i, r, u, B, C) { | |
function E(a, b) { | |
try { | |
a.addClass(b) | |
} catch (c) {} | |
} | |
function F(a, b, c, d, e) { | |
a instanceof Ed || (a = Ed(a)), f(a, function(b, c) { | |
b.nodeType == _d && b.nodeValue.match(/\S+/) && (a[c] = Ed(b).wrap("<span></span>").parent()[0]) | |
}); | |
var g = H(a, b, a, c, d, e); | |
F.$$addScopeClass(a); | |
var h = null; | |
return function(b, c, d) { | |
la(b, "scope"), e && e.needsNewScope && (b = b.$parent.$new()), d = d || {}; | |
var f = d.parentBoundTranscludeFn, | |
i = d.transcludeControllers, | |
j = d.futureParentElement; | |
f && f.$$boundTransclude && (f = f.$$boundTransclude), h || (h = G(j)); | |
var k; | |
if (k = "html" !== h ? Ed(Z(h, Ed("<div>").append(a).html())) : c ? se.clone.call(a) : a, i) | |
for (var l in i) k.data("$" + l + "Controller", i[l].instance); | |
return F.$$addScopeInfo(k, b), c && c(k, b), g && g(b, k, k, f), k | |
} | |
} | |
function G(a) { | |
var b = a && a[0]; | |
return b && "foreignobject" !== M(b) && b.toString().match(/SVG/) ? "svg" : "html" | |
} | |
function H(a, b, d, e, f, g) { | |
function h(a, d, e, f) { | |
var g, h, i, j, k, l, m, n, q; | |
if (o) { | |
var r = d.length; | |
for (q = new Array(r), k = 0; k < p.length; k += 3) m = p[k], q[m] = d[m] | |
} else q = d; | |
for (k = 0, l = p.length; l > k;) i = q[p[k++]], g = p[k++], h = p[k++], g ? (g.scope ? (j = a.$new(), F.$$addScopeInfo(Ed(i), j)) : j = a, n = g.transcludeOnThisElement ? I(a, g.transclude, f) : !g.templateOnThisElement && f ? f : !f && b ? I(a, b) : null, g(h, j, i, e, n)) : h && h(a, i.childNodes, c, f) | |
} | |
for (var i, j, k, l, m, n, o, p = [], q = 0; q < a.length; q++) i = new fa, j = J(a[q], [], i, 0 === q ? e : c, f), k = j.length ? O(j, a[q], i, b, d, null, [], [], g) : null, k && k.scope && F.$$addScopeClass(i.$$element), m = k && k.terminal || !(l = a[q].childNodes) || !l.length ? null : H(l, k ? (k.transcludeOnThisElement || !k.templateOnThisElement) && k.transclude : b), (k || m) && (p.push(q, k, m), n = !0, o = o || k), g = null; | |
return n ? h : null | |
} | |
function I(a, b, c) { | |
var d = function(d, e, f, g, h) { | |
return d || (d = a.$new(!1, h), d.$$transcluded = !0), b(d, e, { | |
parentBoundTranscludeFn: c, | |
transcludeControllers: f, | |
futureParentElement: g | |
}) | |
}; | |
return d | |
} | |
function J(a, b, c, d, e) { | |
var f, g, h = a.nodeType, | |
i = c.$attr; | |
switch (h) { | |
case Zd: | |
R(b, lb(M(a)), "E", d, e); | |
for (var j, k, l, o, p, q, r = a.attributes, s = 0, t = r && r.length; t > s; s++) { | |
var u = !1, | |
w = !1; | |
j = r[s], k = j.name, p = Sd(j.value), o = lb(k), (q = ka.test(o)) && (k = k.replace(Me, "").substr(8).replace(/_(.)/g, function(a, b) { | |
return b.toUpperCase() | |
})); | |
var y = o.match(ma); | |
y && T(y[1]) && (u = k, w = k.substr(0, k.length - 5) + "end", k = k.substr(0, k.length - 6)), l = lb(k.toLowerCase()), i[l] = k, (q || !c.hasOwnProperty(l)) && (c[l] = p, Sa(a, l) && (c[l] = !0)), aa(a, b, p, l, q), R(b, l, "A", d, e, u, w) | |
} | |
if (g = a.className, v(g) && (g = g.animVal), x(g) && "" !== g) | |
for (; f = n.exec(g);) l = lb(f[2]), R(b, l, "C", d, e) && (c[l] = Sd(f[3])), g = g.substr(f.index + f[0].length); | |
break; | |
case _d: | |
if (11 === Dd) | |
for (; a.parentNode && a.nextSibling && a.nextSibling.nodeType === _d;) a.nodeValue = a.nodeValue + a.nextSibling.nodeValue, a.parentNode.removeChild(a.nextSibling); | |
Y(b, a.nodeValue); | |
break; | |
case ae: | |
try { | |
f = m.exec(a.nodeValue), f && (l = lb(f[1]), R(b, l, "M", d, e) && (c[l] = Sd(f[2]))) | |
} catch (z) {} | |
} | |
return b.sort(W), b | |
} | |
function K(a, b, c) { | |
var d = [], | |
e = 0; | |
if (b && a.hasAttribute && a.hasAttribute(b)) { | |
do { | |
if (!a) throw Le("uterdir", "Unterminated attribute, found '{0}' but no matching '{1}' found.", b, c); | |
a.nodeType == Zd && (a.hasAttribute(b) && e++, a.hasAttribute(c) && e--), d.push(a), a = a.nextSibling | |
} while (e > 0) | |
} else d.push(a); | |
return Ed(d) | |
} | |
function L(a, b, c) { | |
return function(d, e, f, g, h) { | |
return e = K(e[0], b, c), a(d, e, f, g, h) | |
} | |
} | |
function O(a, d, f, g, h, j, k, l, m) { | |
function n(a, b, c, d) { | |
a && (c && (a = L(a, c, d)), a.require = r.require, a.directiveName = s, (E === r || r.$$isolateScope) && (a = ca(a, { | |
isolateScope: !0 | |
})), k.push(a)), b && (c && (b = L(b, c, d)), b.require = r.require, b.directiveName = s, (E === r || r.$$isolateScope) && (b = ca(b, { | |
isolateScope: !0 | |
})), l.push(b)) | |
} | |
function o(a, b, c, d) { | |
var e; | |
if (x(b)) { | |
var f = b.match(w), | |
g = b.substring(f[0].length), | |
h = f[1] || f[3], | |
i = "?" === f[2]; | |
if ("^^" === h ? c = c.parent() : (e = d && d[g], e = e && e.instance), !e) { | |
var j = "$" + g + "Controller"; | |
e = h ? c.inheritedData(j) : c.data(j) | |
} | |
if (!e && !i) throw Le("ctreq", "Controller '{0}', required by directive '{1}', can't be found!", g, a) | |
} else if (Qd(b)) { | |
e = []; | |
for (var k = 0, l = b.length; l > k; k++) e[k] = o(a, b[k], c, d) | |
} | |
return e || null | |
} | |
function p(a, b, c, d, e, f) { | |
var g = qa(); | |
for (var h in d) { | |
var j = d[h], | |
k = { | |
$scope: j === E || j.$$isolateScope ? e : f, | |
$element: a, | |
$attrs: b, | |
$transclude: c | |
}, | |
l = j.controller; | |
"@" == l && (l = b[j.name]); | |
var m = i(l, k, !0, j.controllerAs); | |
g[j.name] = m, N || a.data("$" + j.name + "Controller", m.instance) | |
} | |
return g | |
} | |
function q(a, b, e, g, h) { | |
function i(a, b, d) { | |
var e; | |
return D(a) || (d = b, b = a, a = c), N && (e = q), d || (d = N ? s.parent() : s), h(a, b, e, d, H) | |
} | |
var j, m, n, q, r, s, t, u, v; | |
d === e ? (t = f, s = f.$$element) : (s = Ed(e), t = new fa(s, f)), n = b, E ? m = b.$new(!0) : B && (n = b.$parent), h && (r = i, r.$$boundTransclude = h), C && (q = p(s, t, r, C, m, b)), E && (F.$$addScopeInfo(s, m, !0, !(G && (G === E || G === E.$$originalDirective))), F.$$addScopeClass(s, !0), m.$$isolateBindings = E.$$isolateBindings, u = ea(b, t, m, m.$$isolateBindings, E), u && m.$on("$destroy", u)); | |
for (var w in q) { | |
var x = C[w], | |
y = q[w], | |
z = x.$$bindings.bindToController; | |
y.identifier && z && (v = ea(n, t, y.instance, z, x)); | |
var A = y(); | |
A !== y.instance && (y.instance = A, s.data("$" + x.name + "Controller", A), v && v(), v = ea(n, t, y.instance, z, x)) | |
} | |
for (T = 0, W = k.length; W > T; T++) j = k[T], da(j, j.isolateScope ? m : b, s, t, j.require && o(j.directiveName, j.require, s, q), r); | |
var H = b; | |
for (E && (E.template || null === E.templateUrl) && (H = m), a && a(H, e.childNodes, c, h), T = l.length - 1; T >= 0; T--) j = l[T], da(j, j.isolateScope ? m : b, s, t, j.require && o(j.directiveName, j.require, s, q), r) | |
} | |
m = m || {}; | |
for (var r, s, t, u, y, z = -Number.MAX_VALUE, B = m.newScopeDirective, C = m.controllerDirectives, E = m.newIsolateScopeDirective, G = m.templateDirective, H = m.nonTlbTranscludeDirective, I = !1, M = !1, N = m.hasElementTranscludeDirective, O = f.$$element = Ed(d), Q = j, R = g, T = 0, W = a.length; W > T; T++) { | |
r = a[T]; | |
var Y = r.$$start, | |
_ = r.$$end; | |
if (Y && (O = K(d, Y, _)), t = c, z > r.priority) break; | |
if ((y = r.scope) && (r.templateUrl || (v(y) ? (X("new/isolated scope", E || B, r, O), E = r) : X("new/isolated scope", E, r, O)), B = B || r), s = r.name, !r.templateUrl && r.controller && (y = r.controller, C = C || qa(), X("'" + s + "' controller", C[s], r, O), C[s] = r), (y = r.transclude) && (I = !0, r.$$tlb || (X("transclusion", H, r, O), H = r), "element" == y ? (N = !0, z = r.priority, t = O, O = f.$$element = Ed(b.createComment(" " + s + ": " + f[s] + " ")), d = O[0], ba(h, S(t), d), R = F(t, g, z, Q && Q.name, { | |
nonTlbTranscludeDirective: H | |
})) : (t = Ed(Da(d)).contents(), O.empty(), R = F(t, g, c, c, { | |
needsNewScope: r.$$isolateScope || r.$$newScope | |
}))), r.template) | |
if (M = !0, X("template", G, r, O), G = r, y = A(r.template) ? r.template(O, f) : r.template, y = ia(y), r.replace) { | |
if (Q = r, t = xa(y) ? [] : nb(Z(r.templateNamespace, Sd(y))), d = t[0], 1 != t.length || d.nodeType !== Zd) throw Le("tplrt", "Template for directive '{0}' must have exactly one root element. {1}", s, ""); | |
ba(h, O, d); | |
var aa = { | |
$attr: {} | |
}, | |
ga = J(d, [], aa), | |
ha = a.splice(T + 1, a.length - (T + 1)); | |
(E || B) && P(ga, E, B), a = a.concat(ga).concat(ha), U(f, aa), W = a.length | |
} else O.html(y); | |
if (r.templateUrl) M = !0, X("template", G, r, O), G = r, r.replace && (Q = r), q = V(a.splice(T, a.length - T), O, f, h, I && R, k, l, { | |
controllerDirectives: C, | |
newScopeDirective: B !== r && B, | |
newIsolateScopeDirective: E, | |
templateDirective: G, | |
nonTlbTranscludeDirective: H | |
}), W = a.length; | |
else if (r.compile) try { | |
u = r.compile(O, f, R), A(u) ? n(null, u, Y, _) : u && n(u.pre, u.post, Y, _) | |
} catch (ja) { | |
e(ja, $(O)) | |
} | |
r.terminal && (q.terminal = !0, z = Math.max(z, r.priority)) | |
} | |
return q.scope = B && B.scope === !0, q.transcludeOnThisElement = I, q.templateOnThisElement = M, q.transclude = R, m.hasElementTranscludeDirective = N, q | |
} | |
function P(a, b, c) { | |
for (var d = 0, e = a.length; e > d; d++) a[d] = o(a[d], { | |
$$isolateScope: b, | |
$$newScope: c | |
}) | |
} | |
function R(b, c, d, f, g, h, i) { | |
if (c === g) return null; | |
var l = null; | |
if (j.hasOwnProperty(c)) | |
for (var m, n = a.get(c + k), p = 0, q = n.length; q > p; p++) try { | |
m = n[p], (t(f) || f > m.priority) && -1 != m.restrict.indexOf(d) && (h && (m = o(m, { | |
$$start: h, | |
$$end: i | |
})), b.push(m), l = m) | |
} catch (r) { | |
e(r) | |
} | |
return l | |
} | |
function T(b) { | |
if (j.hasOwnProperty(b)) | |
for (var c, d = a.get(b + k), e = 0, f = d.length; f > e; e++) | |
if (c = d[e], c.multiElement) return !0; | |
return !1 | |
} | |
function U(a, b) { | |
var c = b.$attr, | |
d = a.$attr, | |
e = a.$$element; | |
f(a, function(d, e) { | |
"$" != e.charAt(0) && (b[e] && b[e] !== d && (d += ("style" === e ? ";" : " ") + b[e]), a.$set(e, d, !0, c[e])) | |
}), f(b, function(b, f) { | |
"class" == f ? (E(e, b), a["class"] = (a["class"] ? a["class"] + " " : "") + b) : "style" == f ? (e.attr("style", e.attr("style") + ";" + b), a.style = (a.style ? a.style + ";" : "") + b) : "$" == f.charAt(0) || a.hasOwnProperty(f) || (a[f] = b, d[f] = c[f]) | |
}) | |
} | |
function V(a, b, c, d, e, h, i, j) { | |
var k, l, m = [], | |
n = b[0], | |
p = a.shift(), | |
q = o(p, { | |
templateUrl: null, | |
transclude: null, | |
replace: null, | |
$$originalDirective: p | |
}), | |
r = A(p.templateUrl) ? p.templateUrl(b, c) : p.templateUrl, | |
s = p.templateNamespace; | |
return b.empty(), g(r).then(function(g) { | |
var o, t, u, w; | |
if (g = ia(g), p.replace) { | |
if (u = xa(g) ? [] : nb(Z(s, Sd(g))), o = u[0], 1 != u.length || o.nodeType !== Zd) throw Le("tplrt", "Template for directive '{0}' must have exactly one root element. {1}", p.name, r); | |
t = { | |
$attr: {} | |
}, ba(d, b, o); | |
var x = J(o, [], t); | |
v(p.scope) && P(x, !0), a = x.concat(a), U(c, t) | |
} else o = n, b.html(g); | |
for (a.unshift(q), k = O(a, o, c, e, b, p, h, i, j), f(d, function(a, c) { | |
a == o && (d[c] = b[0]) | |
}), l = H(b[0].childNodes, e); m.length;) { | |
var y = m.shift(), | |
z = m.shift(), | |
A = m.shift(), | |
B = m.shift(), | |
C = b[0]; | |
if (!y.$$destroyed) { | |
if (z !== n) { | |
var D = z.className; | |
j.hasElementTranscludeDirective && p.replace || (C = Da(o)), ba(A, Ed(z), C), E(Ed(C), D) | |
} | |
w = k.transcludeOnThisElement ? I(y, k.transclude, B) : B, k(l, y, C, d, w) | |
} | |
} | |
m = null | |
}), | |
function(a, b, c, d, e) { | |
var f = e; | |
b.$$destroyed || (m ? m.push(b, c, d, f) : (k.transcludeOnThisElement && (f = I(b, k.transclude, e)), k(l, b, c, d, f))) | |
} | |
} | |
function W(a, b) { | |
var c = b.priority - a.priority; | |
return 0 !== c ? c : a.name !== b.name ? a.name < b.name ? -1 : 1 : a.index - b.index | |
} | |
function X(a, b, c, d) { | |
function e(a) { | |
return a ? " (module: " + a + ")" : "" | |
} | |
if (b) throw Le("multidir", "Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}", b.name, e(b.$$moduleName), c.name, e(c.$$moduleName), a, $(d)) | |
} | |
function Y(a, b) { | |
var c = d(b, !0); | |
c && a.push({ | |
priority: 0, | |
compile: function(a) { | |
var b = a.parent(), | |
d = !!b.length; | |
return d && F.$$addBindingClass(b), | |
function(a, b) { | |
var e = b.parent(); | |
d || F.$$addBindingClass(e), F.$$addBindingInfo(e, c.expressions), a.$watch(c, function(a) { | |
b[0].nodeValue = a | |
}) | |
} | |
} | |
}) | |
} | |
function Z(a, c) { | |
switch (a = yd(a || "html")) { | |
case "svg": | |
case "math": | |
var d = b.createElement("div"); | |
return d.innerHTML = "<" + a + ">" + c + "</" + a + ">", d.childNodes[0].childNodes; | |
default: | |
return c | |
} | |
} | |
function _(a, b) { | |
if ("srcdoc" == b) return u.HTML; | |
var c = M(a); | |
return "xlinkHref" == b || "form" == c && "action" == b || "img" != c && ("src" == b || "ngSrc" == b) ? u.RESOURCE_URL : void 0 | |
} | |
function aa(a, b, c, e, f) { | |
var g = _(a, e); | |
f = s[e] || f; | |
var h = d(c, !0, g, f); | |
if (h) { | |
if ("multiple" === e && "select" === M(a)) throw Le("selmulti", "Binding to the 'multiple' attribute is not supported. Element: {0}", $(a)); | |
b.push({ | |
priority: 100, | |
compile: function() { | |
return { | |
pre: function(a, b, i) { | |
var j = i.$$observers || (i.$$observers = qa()); | |
if (y.test(e)) throw Le("nodomevents", "Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead."); | |
var k = i[e]; | |
k !== c && (h = k && d(k, !0, g, f), c = k), h && (i[e] = h(a), (j[e] || (j[e] = [])).$$inter = !0, (i.$$observers && i.$$observers[e].$$scope || a).$watch(h, function(a, b) { | |
"class" === e && a != b ? i.$updateClass(a, b) : i.$set(e, a) | |
})) | |
} | |
} | |
} | |
}) | |
} | |
} | |
function ba(a, c, d) { | |
var e, f, g = c[0], | |
h = c.length, | |
i = g.parentNode; | |
if (a) | |
for (e = 0, f = a.length; f > e; e++) | |
if (a[e] == g) { | |
a[e++] = d; | |
for (var j = e, k = j + h - 1, l = a.length; l > j; j++, k++) l > k ? a[j] = a[k] : delete a[j]; | |
a.length -= h - 1, a.context === g && (a.context = d); | |
break | |
} | |
i && i.replaceChild(d, g); | |
var m = b.createDocumentFragment(); | |
m.appendChild(g), Ed.hasData(g) && (Ed.data(d, Ed.data(g)), Fd ? (Pd = !0, Fd.cleanData([g])) : delete Ed.cache[g[Ed.expando]]); | |
for (var n = 1, o = c.length; o > n; n++) { | |
var p = c[n]; | |
Ed(p).remove(), m.appendChild(p), delete c[n] | |
} | |
c[0] = d, c.length = 1 | |
} | |
function ca(a, b) { | |
return l(function() { | |
return a.apply(null, arguments) | |
}, a, b) | |
} | |
function da(a, b, c, d, f, g) { | |
try { | |
a(b, c, d, f, g) | |
} catch (h) { | |
e(h, $(c)) | |
} | |
} | |
function ea(a, b, c, e, g) { | |
var i = []; | |
return f(e, function(e, f) { | |
var j, k, l, m, n = e.attrName, | |
o = e.optional, | |
q = e.mode; | |
switch (q) { | |
case "@": | |
o || zd.call(b, n) || (c[f] = b[n] = void 0), b.$observe(n, function(a) { | |
x(a) && (c[f] = a) | |
}), b.$$observers[n].$$scope = a, x(b[n]) && (c[f] = d(b[n])(a)); | |
break; | |
case "=": | |
if (!zd.call(b, n)) { | |
if (o) break; | |
b[n] = void 0 | |
} | |
if (o && !b[n]) break; | |
k = h(b[n]), m = k.literal ? Q : function(a, b) { | |
return a === b || a !== a && b !== b | |
}, l = k.assign || function() { | |
throw j = c[f] = k(a), Le("nonassign", "Expression '{0}' used with directive '{1}' is non-assignable!", b[n], g.name) | |
}, j = c[f] = k(a); | |
var r = function(b) { | |
return m(b, c[f]) || (m(b, j) ? l(a, b = c[f]) : c[f] = b), j = b | |
}; | |
r.$stateful = !0; | |
var s; | |
s = e.collection ? a.$watchCollection(b[n], r) : a.$watch(h(b[n], r), null, k.literal), i.push(s); | |
break; | |
case "&": | |
if (k = b.hasOwnProperty(n) ? h(b[n]) : p, k === p && o) break; | |
c[f] = function(b) { | |
return k(a, b) | |
} | |
} | |
}), i.length && function() { | |
for (var a = 0, b = i.length; b > a; ++a) i[a]() | |
} | |
} | |
var fa = function(a, b) { | |
if (b) { | |
var c, d, e, f = Object.keys(b); | |
for (c = 0, d = f.length; d > c; c++) e = f[c], this[e] = b[e] | |
} else this.$attr = {}; | |
this.$$element = a | |
}; | |
fa.prototype = { | |
$normalize: lb, | |
$addClass: function(a) { | |
a && a.length > 0 && B.addClass(this.$$element, a) | |
}, | |
$removeClass: function(a) { | |
a && a.length > 0 && B.removeClass(this.$$element, a) | |
}, | |
$updateClass: function(a, b) { | |
var c = mb(a, b); | |
c && c.length && B.addClass(this.$$element, c); | |
var d = mb(b, a); | |
d && d.length && B.removeClass(this.$$element, d) | |
}, | |
$set: function(a, b, c, d) { | |
var g, h = this.$$element[0], | |
i = Sa(h, a), | |
j = Ta(a), | |
k = a; | |
if (i ? (this.$$element.prop(a, b), d = i) : j && (this[j] = b, k = j), this[a] = b, d ? this.$attr[a] = d : (d = this.$attr[a], d || (this.$attr[a] = d = ja(a, "-"))), g = M(this.$$element), "a" === g && "href" === a || "img" === g && "src" === a) this[a] = b = C(b, "src" === a); | |
else if ("img" === g && "srcset" === a) { | |
for (var l = "", m = Sd(b), n = /(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/, o = /\s/.test(m) ? n : /(,)/, p = m.split(o), q = Math.floor(p.length / 2), r = 0; q > r; r++) { | |
var s = 2 * r; | |
l += C(Sd(p[s]), !0), l += " " + Sd(p[s + 1]) | |
} | |
var u = Sd(p[2 * r]).split(/\s/); | |
l += C(Sd(u[0]), !0), 2 === u.length && (l += " " + Sd(u[1])), this[a] = b = l | |
} | |
c !== !1 && (null === b || t(b) ? this.$$element.removeAttr(d) : this.$$element.attr(d, b)); | |
var v = this.$$observers; | |
v && f(v[k], function(a) { | |
try { | |
a(b) | |
} catch (c) { | |
e(c) | |
} | |
}) | |
}, | |
$observe: function(a, b) { | |
var c = this, | |
d = c.$$observers || (c.$$observers = qa()), | |
e = d[a] || (d[a] = []); | |
return e.push(b), r.$evalAsync(function() { | |
e.$$inter || !c.hasOwnProperty(a) || t(c[a]) || b(c[a]) | |
}), | |
function() { | |
N(e, b) | |
} | |
} | |
}; | |
var ga = d.startSymbol(), | |
ha = d.endSymbol(), | |
ia = "{{" == ga || "}}" == ha ? q : function(a) { | |
return a.replace(/\{\{/g, ga).replace(/}}/g, ha) | |
}, | |
ka = /^ngAttr[A-Z]/, | |
ma = /^(.+)Start$/; | |
return F.$$addBindingInfo = z ? function(a, b) { | |
var c = a.data("$binding") || []; | |
Qd(b) ? c = c.concat(b) : c.push(b), a.data("$binding", c) | |
} : p, F.$$addBindingClass = z ? function(a) { | |
E(a, "ng-binding") | |
} : p, F.$$addScopeInfo = z ? function(a, b, c, d) { | |
var e = c ? d ? "$isolateScopeNoTemplate" : "$isolateScope" : "$scope"; | |
a.data(e, b) | |
} : p, F.$$addScopeClass = z ? function(a, b) { | |
E(a, b ? "ng-isolate-scope" : "ng-scope") | |
} : p, F | |
}] | |
} | |
function lb(a) { | |
return wa(a.replace(Me, "")) | |
} | |
function mb(a, b) { | |
var c = "", | |
d = a.split(/\s+/), | |
e = b.split(/\s+/); | |
a: for (var f = 0; f < d.length; f++) { | |
for (var g = d[f], h = 0; h < e.length; h++) | |
if (g == e[h]) continue a; | |
c += (c.length > 0 ? " " : "") + g | |
} | |
return c | |
} | |
function nb(a) { | |
a = Ed(a); | |
var b = a.length; | |
if (1 >= b) return a; | |
for (; b--;) { | |
var c = a[b]; | |
c.nodeType === ae && Id.call(a, b, 1) | |
} | |
return a | |
} | |
function ob(a, b) { | |
if (b && x(b)) return b; | |
if (x(a)) { | |
var c = Oe.exec(a); | |
if (c) return c[3] | |
} | |
} | |
function pb() { | |
var a = {}, | |
b = !1; | |
this.register = function(b, c) { | |
na(b, "controller"), v(b) ? l(a, b) : a[b] = c | |
}, this.allowGlobals = function() { | |
b = !0 | |
}, this.$get = ["$injector", "$window", function(e, f) { | |
function g(a, b, c, e) { | |
if (!a || !v(a.$scope)) throw d("$controller")("noscp", "Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.", e, b); | |
a.$scope[b] = c | |
} | |
return function(d, h, i, j) { | |
var k, m, n, o; | |
if (i = i === !0, j && x(j) && (o = j), x(d)) { | |
if (m = d.match(Oe), !m) throw Ne("ctrlfmt", "Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.", d); | |
n = m[1], o = o || m[3], d = a.hasOwnProperty(n) ? a[n] : oa(h.$scope, n, !0) || (b ? oa(f, n, !0) : c), ma(d, n, !0) | |
} | |
if (i) { | |
var p = (Qd(d) ? d[d.length - 1] : d).prototype; | |
k = Object.create(p || null), o && g(h, o, k, n || d.name); | |
var q; | |
return q = l(function() { | |
var a = e.invoke(d, k, h, n); | |
return a !== k && (v(a) || A(a)) && (k = a, o && g(h, o, k, n || d.name)), k | |
}, { | |
instance: k, | |
identifier: o | |
}) | |
} | |
return k = e.instantiate(d, h, n), o && g(h, o, k, n || d.name), k | |
} | |
}] | |
} | |
function qb() { | |
this.$get = ["$window", function(a) { | |
return Ed(a.document) | |
}] | |
} | |
function rb() { | |
this.$get = ["$log", function(a) { | |
return function(b, c) { | |
a.error.apply(a, arguments) | |
} | |
}] | |
} | |
function sb(a) { | |
return v(a) ? z(a) ? a.toISOString() : V(a) : a | |
} | |
function tb() { | |
this.$get = function() { | |
return function(a) { | |
if (!a) return ""; | |
var b = []; | |
return g(a, function(a, c) { | |
null === a || t(a) || (Qd(a) ? f(a, function(a, d) { | |
b.push(da(c) + "=" + da(sb(a))) | |
}) : b.push(da(c) + "=" + da(sb(a)))) | |
}), b.join("&") | |
} | |
} | |
} | |
function ub() { | |
this.$get = function() { | |
return function(a) { | |
function b(a, d, e) { | |
null === a || t(a) || (Qd(a) ? f(a, function(a, c) { | |
b(a, d + "[" + (v(a) ? c : "") + "]") | |
}) : v(a) && !z(a) ? g(a, function(a, c) { | |
b(a, d + (e ? "" : "[") + c + (e ? "" : "]")) | |
}) : c.push(da(d) + "=" + da(sb(a)))) | |
} | |
if (!a) return ""; | |
var c = []; | |
return b(a, "", !0), c.join("&") | |
} | |
} | |
} | |
function vb(a, b) { | |
if (x(a)) { | |
var c = a.replace(Ue, "").trim(); | |
if (c) { | |
var d = b("Content-Type"); | |
(d && 0 === d.indexOf(Qe) || wb(c)) && (a = W(c)) | |
} | |
} | |
return a | |
} | |
function wb(a) { | |
var b = a.match(Se); | |
return b && Te[b[0]].test(a) | |
} | |
function xb(a) { | |
function b(a, b) { | |
a && (d[a] = d[a] ? d[a] + ", " + b : b) | |
} | |
var c, d = qa(); | |
return x(a) ? f(a.split("\n"), function(a) { | |
c = a.indexOf(":"), b(yd(Sd(a.substr(0, c))), Sd(a.substr(c + 1))) | |
}) : v(a) && f(a, function(a, c) { | |
b(yd(c), Sd(a)) | |
}), d | |
} | |
function yb(a) { | |
var b; | |
return function(c) { | |
if (b || (b = xb(a)), c) { | |
var d = b[yd(c)]; | |
return void 0 === d && (d = null), d | |
} | |
return b | |
} | |
} | |
function zb(a, b, c, d) { | |
return A(d) ? d(a, b, c) : (f(d, function(d) { | |
a = d(a, b, c) | |
}), a) | |
} | |
function Ab(a) { | |
return a >= 200 && 300 > a | |
} | |
function Bb() { | |
var a = this.defaults = { | |
transformResponse: [vb], | |
transformRequest: [function(a) { | |
return !v(a) || E(a) || G(a) || F(a) ? a : V(a) | |
}], | |
headers: { | |
common: { | |
Accept: "application/json, text/plain, */*" | |
}, | |
post: P(Re), | |
put: P(Re), | |
patch: P(Re) | |
}, | |
xsrfCookieName: "XSRF-TOKEN", | |
xsrfHeaderName: "X-XSRF-TOKEN", | |
paramSerializer: "$httpParamSerializer" | |
}, | |
b = !1; | |
this.useApplyAsync = function(a) { | |
return u(a) ? (b = !!a, this) : b | |
}; | |
var e = !0; | |
this.useLegacyPromiseExtensions = function(a) { | |
return u(a) ? (e = !!a, this) : e | |
}; | |
var g = this.interceptors = []; | |
this.$get = ["$httpBackend", "$$cookieReader", "$cacheFactory", "$rootScope", "$q", "$injector", function(h, i, j, k, m, n) { | |
function o(b) { | |
function g(a) { | |
var b = l({}, a); | |
return b.data = zb(a.data, a.headers, a.status, j.transformResponse), Ab(a.status) ? b : m.reject(b) | |
} | |
function h(a, b) { | |
var c, d = {}; | |
return f(a, function(a, e) { | |
A(a) ? (c = a(b), null != c && (d[e] = c)) : d[e] = a | |
}), d | |
} | |
function i(b) { | |
var c, d, e, f = a.headers, | |
g = l({}, b.headers); | |
f = l({}, f.common, f[yd(b.method)]); | |
a: for (c in f) { | |
d = yd(c); | |
for (e in g) | |
if (yd(e) === d) continue a; | |
g[c] = f[c] | |
} | |
return h(g, P(b)) | |
} | |
if (!Nd.isObject(b)) throw d("$http")("badreq", "Http request configuration must be an object. Received: {0}", b); | |
if (!x(b.url)) throw d("$http")("badreq", "Http request configuration url must be a string. Received: {0}", b.url); | |
var j = l({ | |
method: "get", | |
transformRequest: a.transformRequest, | |
transformResponse: a.transformResponse, | |
paramSerializer: a.paramSerializer | |
}, b); | |
j.headers = i(b), j.method = Ad(j.method), j.paramSerializer = x(j.paramSerializer) ? n.get(j.paramSerializer) : j.paramSerializer; | |
var k = function(b) { | |
var d = b.headers, | |
e = zb(b.data, yb(d), c, b.transformRequest); | |
return t(e) && f(d, function(a, b) { | |
"content-type" === yd(b) && delete d[b] | |
}), t(b.withCredentials) && !t(a.withCredentials) && (b.withCredentials = a.withCredentials), r(b, e).then(g, g) | |
}, | |
o = [k, c], | |
p = m.when(j); | |
for (f(y, function(a) { | |
(a.request || a.requestError) && o.unshift(a.request, a.requestError), (a.response || a.responseError) && o.push(a.response, a.responseError) | |
}); o.length;) { | |
var q = o.shift(), | |
s = o.shift(); | |
p = p.then(q, s) | |
} | |
return e ? (p.success = function(a) { | |
return ma(a, "fn"), p.then(function(b) { | |
a(b.data, b.status, b.headers, j) | |
}), p | |
}, p.error = function(a) { | |
return ma(a, "fn"), p.then(null, function(b) { | |
a(b.data, b.status, b.headers, j) | |
}), p | |
}) : (p.success = We("success"), p.error = We("error")), p | |
} | |
function p(a) { | |
f(arguments, function(a) { | |
o[a] = function(b, c) { | |
return o(l({}, c || {}, { | |
method: a, | |
url: b | |
})) | |
} | |
}) | |
} | |
function q(a) { | |
f(arguments, function(a) { | |
o[a] = function(b, c, d) { | |
return o(l({}, d || {}, { | |
method: a, | |
url: b, | |
data: c | |
})) | |
} | |
}) | |
} | |
function r(d, e) { | |
function f(a, c, d, e) { | |
function f() { | |
g(c, a, d, e) | |
} | |
n && (Ab(a) ? n.put(y, [a, c, xb(d), e]) : n.remove(y)), b ? k.$applyAsync(f) : (f(), k.$$phase || k.$apply()) | |
} | |
function g(a, b, c, e) { | |
b = b >= -1 ? b : 0, (Ab(b) ? q.resolve : q.reject)({ | |
data: a, | |
status: b, | |
headers: yb(c), | |
config: d, | |
statusText: e | |
}) | |
} | |
function j(a) { | |
g(a.data, a.status, P(a.headers()), a.statusText) | |
} | |
function l() { | |
var a = o.pendingRequests.indexOf(d); - 1 !== a && o.pendingRequests.splice(a, 1) | |
} | |
var n, p, q = m.defer(), | |
r = q.promise, | |
x = d.headers, | |
y = s(d.url, d.paramSerializer(d.params)); | |
if (o.pendingRequests.push(d), r.then(l, l), !d.cache && !a.cache || d.cache === !1 || "GET" !== d.method && "JSONP" !== d.method || (n = v(d.cache) ? d.cache : v(a.cache) ? a.cache : w), n && (p = n.get(y), u(p) ? I(p) ? p.then(j, j) : Qd(p) ? g(p[1], p[0], P(p[2]), p[3]) : g(p, 200, {}, "OK") : n.put(y, r)), t(p)) { | |
var z = Cc(d.url) ? i()[d.xsrfCookieName || a.xsrfCookieName] : c; | |
z && (x[d.xsrfHeaderName || a.xsrfHeaderName] = z), h(d.method, y, e, f, x, d.timeout, d.withCredentials, d.responseType) | |
} | |
return r | |
} | |
function s(a, b) { | |
return b.length > 0 && (a += (-1 == a.indexOf("?") ? "?" : "&") + b), a | |
} | |
var w = j("$http"); | |
a.paramSerializer = x(a.paramSerializer) ? n.get(a.paramSerializer) : a.paramSerializer; | |
var y = []; | |
return f(g, function(a) { | |
y.unshift(x(a) ? n.get(a) : n.invoke(a)) | |
}), o.pendingRequests = [], p("get", "delete", "head", "jsonp"), q("post", "put", "patch"), o.defaults = a, o | |
}] | |
} | |
function Cb() { | |
this.$get = function() { | |
return function() { | |
return new a.XMLHttpRequest | |
} | |
} | |
} | |
function Db() { | |
this.$get = ["$browser", "$window", "$document", "$xhrFactory", function(a, b, c, d) { | |
return Eb(a, d, a.defer, b.angular.callbacks, c[0]) | |
}] | |
} | |
function Eb(a, b, c, d, e) { | |
function g(a, b, c) { | |
var f = e.createElement("script"), | |
g = null; | |
return f.type = "text/javascript", f.src = a, f.async = !0, g = function(a) { | |
he(f, "load", g), he(f, "error", g), e.body.removeChild(f), f = null; | |
var h = -1, | |
i = "unknown"; | |
a && ("load" !== a.type || d[b].called || (a = { | |
type: "error" | |
}), i = a.type, h = "error" === a.type ? 404 : 200), c && c(h, i) | |
}, ge(f, "load", g), ge(f, "error", g), e.body.appendChild(f), g | |
} | |
return function(e, h, i, j, k, l, m, n) { | |
function o() { | |
s && s(), v && v.abort() | |
} | |
function q(b, d, e, f, g) { | |
u(y) && c.cancel(y), s = v = null, b(d, e, f, g), a.$$completeOutstandingRequest(p) | |
} | |
if (a.$$incOutstandingRequestCount(), h = h || a.url(), "jsonp" == yd(e)) { | |
var r = "_" + (d.counter++).toString(36); | |
d[r] = function(a) { | |
d[r].data = a, d[r].called = !0 | |
}; | |
var s = g(h.replace("JSON_CALLBACK", "angular.callbacks." + r), r, function(a, b) { | |
q(j, a, d[r].data, "", b), d[r] = p | |
}) | |
} else { | |
var v = b(e, h); | |
v.open(e, h, !0), f(k, function(a, b) { | |
u(a) && v.setRequestHeader(b, a) | |
}), v.onload = function() { | |
var a = v.statusText || "", | |
b = "response" in v ? v.response : v.responseText, | |
c = 1223 === v.status ? 204 : v.status; | |
0 === c && (c = b ? 200 : "file" == Bc(h).protocol ? 404 : 0), q(j, c, b, v.getAllResponseHeaders(), a) | |
}; | |
var w = function() { | |
q(j, -1, null, null, "") | |
}; | |
if (v.onerror = w, v.onabort = w, m && (v.withCredentials = !0), n) try { | |
v.responseType = n | |
} catch (x) { | |
if ("json" !== n) throw x | |
} | |
v.send(t(i) ? null : i) | |
} | |
if (l > 0) var y = c(o, l); | |
else I(l) && l.then(o) | |
} | |
} | |
function Fb() { | |
var a = "{{", | |
b = "}}"; | |
this.startSymbol = function(b) { | |
return b ? (a = b, this) : a | |
}, this.endSymbol = function(a) { | |
return a ? (b = a, this) : b | |
}, this.$get = ["$parse", "$exceptionHandler", "$sce", function(c, d, e) { | |
function f(a) { | |
return "\\\\\\" + a | |
} | |
function g(c) { | |
return c.replace(m, a).replace(n, b) | |
} | |
function h(a) { | |
if (null == a) return ""; | |
switch (typeof a) { | |
case "string": | |
break; | |
case "number": | |
a = "" + a; | |
break; | |
default: | |
a = V(a) | |
} | |
return a | |
} | |
function i(f, i, m, n) { | |
function o(a) { | |
try { | |
return a = C(a), n && !u(a) ? a : h(a) | |
} catch (b) { | |
d(Xe.interr(f, b)) | |
} | |
} | |
n = !!n; | |
for (var p, q, r, s = 0, v = [], w = [], x = f.length, y = [], z = []; x > s;) { | |
if (-1 == (p = f.indexOf(a, s)) || -1 == (q = f.indexOf(b, p + j))) { | |
s !== x && y.push(g(f.substring(s))); | |
break | |
} | |
s !== p && y.push(g(f.substring(s, p))), r = f.substring(p + j, q), v.push(r), w.push(c(r, o)), s = q + k, z.push(y.length), y.push("") | |
} | |
if (m && y.length > 1 && Xe.throwNoconcat(f), !i || v.length) { | |
var B = function(a) { | |
for (var b = 0, c = v.length; c > b; b++) { | |
if (n && t(a[b])) return; | |
y[z[b]] = a[b] | |
} | |
return y.join("") | |
}, | |
C = function(a) { | |
return m ? e.getTrusted(m, a) : e.valueOf(a) | |
}; | |
return l(function(a) { | |
var b = 0, | |
c = v.length, | |
e = new Array(c); | |
try { | |
for (; c > b; b++) e[b] = w[b](a); | |
return B(e) | |
} catch (g) { | |
d(Xe.interr(f, g)) | |
} | |
}, { | |
exp: f, | |
expressions: v, | |
$$watchDelegate: function(a, b) { | |
var c; | |
return a.$watchGroup(w, function(d, e) { | |
var f = B(d); | |
A(b) && b.call(this, f, d !== e ? c : f, a), c = f | |
}) | |
} | |
}) | |
} | |
} | |
var j = a.length, | |
k = b.length, | |
m = new RegExp(a.replace(/./g, f), "g"), | |
n = new RegExp(b.replace(/./g, f), "g"); | |
return i.startSymbol = function() { | |
return a | |
}, i.endSymbol = function() { | |
return b | |
}, i | |
}] | |
} | |
function Gb() { | |
this.$get = ["$rootScope", "$window", "$q", "$$q", function(a, b, c, d) { | |
function e(e, g, h, i) { | |
var j = arguments.length > 4, | |
k = j ? S(arguments, 4) : [], | |
l = b.setInterval, | |
m = b.clearInterval, | |
n = 0, | |
o = u(i) && !i, | |
p = (o ? d : c).defer(), | |
q = p.promise; | |
return h = u(h) ? h : 0, q.then(null, null, j ? function() { | |
e.apply(null, k) | |
} : e), q.$$intervalId = l(function() { | |
p.notify(n++), h > 0 && n >= h && (p.resolve(n), m(q.$$intervalId), delete f[q.$$intervalId]), o || a.$apply() | |
}, g), f[q.$$intervalId] = p, q | |
} | |
var f = {}; | |
return e.cancel = function(a) { | |
return a && a.$$intervalId in f ? (f[a.$$intervalId].reject("canceled"), b.clearInterval(a.$$intervalId), delete f[a.$$intervalId], !0) : !1 | |
}, e | |
}] | |
} | |
function Hb(a) { | |
for (var b = a.split("/"), c = b.length; c--;) b[c] = ca(b[c]); | |
return b.join("/") | |
} | |
function Ib(a, b) { | |
var c = Bc(a); | |
b.$$protocol = c.protocol, b.$$host = c.hostname, b.$$port = n(c.port) || Ze[c.protocol] || null | |
} | |
function Jb(a, b) { | |
var c = "/" !== a.charAt(0); | |
c && (a = "/" + a); | |
var d = Bc(a); | |
b.$$path = decodeURIComponent(c && "/" === d.pathname.charAt(0) ? d.pathname.substring(1) : d.pathname), b.$$search = aa(d.search), b.$$hash = decodeURIComponent(d.hash), b.$$path && "/" != b.$$path.charAt(0) && (b.$$path = "/" + b.$$path) | |
} | |
function Kb(a, b) { | |
return 0 === b.indexOf(a) ? b.substr(a.length) : void 0 | |
} | |
function Lb(a) { | |
var b = a.indexOf("#"); | |
return -1 == b ? a : a.substr(0, b) | |
} | |
function Mb(a) { | |
return a.replace(/(#.+)|#$/, "$1") | |
} | |
function Nb(a) { | |
return a.substr(0, Lb(a).lastIndexOf("/") + 1) | |
} | |
function Ob(a) { | |
return a.substring(0, a.indexOf("/", a.indexOf("//") + 2)) | |
} | |
function Pb(a, b, c) { | |
this.$$html5 = !0, c = c || "", Ib(a, this), this.$$parse = function(a) { | |
var c = Kb(b, a); | |
if (!x(c)) throw $e("ipthprfx", 'Invalid url "{0}", missing path prefix "{1}".', a, b); | |
Jb(c, this), this.$$path || (this.$$path = "/"), this.$$compose() | |
}, this.$$compose = function() { | |
var a = ba(this.$$search), | |
c = this.$$hash ? "#" + ca(this.$$hash) : ""; | |
this.$$url = Hb(this.$$path) + (a ? "?" + a : "") + c, this.$$absUrl = b + this.$$url.substr(1) | |
}, this.$$parseLinkUrl = function(d, e) { | |
if (e && "#" === e[0]) return this.hash(e.slice(1)), !0; | |
var f, g, h; | |
return u(f = Kb(a, d)) ? (g = f, h = u(f = Kb(c, f)) ? b + (Kb("/", f) || f) : a + g) : u(f = Kb(b, d)) ? h = b + f : b == d + "/" && (h = b), h && this.$$parse(h), !!h | |
} | |
} | |
function Qb(a, b, c) { | |
Ib(a, this), this.$$parse = function(d) { | |
function e(a, b, c) { | |
var d, e = /^\/[A-Z]:(\/.*)/; | |
return 0 === b.indexOf(c) && (b = b.replace(c, "")), e.exec(b) ? a : (d = e.exec(a), d ? d[1] : a) | |
} | |
var f, g = Kb(a, d) || Kb(b, d); | |
t(g) || "#" !== g.charAt(0) ? this.$$html5 ? f = g : (f = "", t(g) && (a = d, this.replace())) : (f = Kb(c, g), t(f) && (f = g)), Jb(f, this), this.$$path = e(this.$$path, f, a), this.$$compose() | |
}, this.$$compose = function() { | |
var b = ba(this.$$search), | |
d = this.$$hash ? "#" + ca(this.$$hash) : ""; | |
this.$$url = Hb(this.$$path) + (b ? "?" + b : "") + d, this.$$absUrl = a + (this.$$url ? c + this.$$url : "") | |
}, this.$$parseLinkUrl = function(b, c) { | |
return Lb(a) == Lb(b) ? (this.$$parse(b), !0) : !1 | |
} | |
} | |
function Rb(a, b, c) { | |
this.$$html5 = !0, Qb.apply(this, arguments), this.$$parseLinkUrl = function(d, e) { | |
if (e && "#" === e[0]) return this.hash(e.slice(1)), !0; | |
var f, g; | |
return a == Lb(d) ? f = d : (g = Kb(b, d)) ? f = a + c + g : b === d + "/" && (f = b), f && this.$$parse(f), !!f | |
}, this.$$compose = function() { | |
var b = ba(this.$$search), | |
d = this.$$hash ? "#" + ca(this.$$hash) : ""; | |
this.$$url = Hb(this.$$path) + (b ? "?" + b : "") + d, this.$$absUrl = a + c + this.$$url | |
} | |
} | |
function Sb(a) { | |
return function() { | |
return this[a] | |
} | |
} | |
function Tb(a, b) { | |
return function(c) { | |
return t(c) ? this[a] : (this[a] = b(c), this.$$compose(), this) | |
} | |
} | |
function Ub() { | |
var a = "", | |
b = { | |
enabled: !1, | |
requireBase: !0, | |
rewriteLinks: !0 | |
}; | |
this.hashPrefix = function(b) { | |
return u(b) ? (a = b, this) : a | |
}, this.html5Mode = function(a) { | |
return H(a) ? (b.enabled = a, this) : v(a) ? (H(a.enabled) && (b.enabled = a.enabled), H(a.requireBase) && (b.requireBase = a.requireBase), H(a.rewriteLinks) && (b.rewriteLinks = a.rewriteLinks), this) : b | |
}, this.$get = ["$rootScope", "$browser", "$sniffer", "$rootElement", "$window", function(c, d, e, f, g) { | |
function h(a, b, c) { | |
var e = j.url(), | |
f = j.$$state; | |
try { | |
d.url(a, b, c), j.$$state = d.state() | |
} catch (g) { | |
throw j.url(e), j.$$state = f, g | |
} | |
} | |
function i(a, b) { | |
c.$broadcast("$locationChangeSuccess", j.absUrl(), a, j.$$state, b) | |
} | |
var j, k, l, m = d.baseHref(), | |
n = d.url(); | |
if (b.enabled) { | |
if (!m && b.requireBase) throw $e("nobase", "$location in HTML5 mode requires a <base> tag to be present!"); | |
l = Ob(n) + (m || "/"), k = e.history ? Pb : Rb | |
} else l = Lb(n), k = Qb; | |
var o = Nb(l); | |
j = new k(l, o, "#" + a), j.$$parseLinkUrl(n, n), j.$$state = d.state(); | |
var p = /^\s*(javascript|mailto):/i; | |
f.on("click", function(a) { | |
if (b.rewriteLinks && !a.ctrlKey && !a.metaKey && !a.shiftKey && 2 != a.which && 2 != a.button) { | |
for (var e = Ed(a.target); | |
"a" !== M(e[0]);) | |
if (e[0] === f[0] || !(e = e.parent())[0]) return; | |
var h = e.prop("href"), | |
i = e.attr("href") || e.attr("xlink:href"); | |
v(h) && "[object SVGAnimatedString]" === h.toString() && (h = Bc(h.animVal).href), p.test(h) || !h || e.attr("target") || a.isDefaultPrevented() || j.$$parseLinkUrl(h, i) && (a.preventDefault(), j.absUrl() != d.url() && (c.$apply(), g.angular["ff-684208-preventDefault"] = !0)) | |
} | |
}), Mb(j.absUrl()) != Mb(n) && d.url(j.absUrl(), !0); | |
var q = !0; | |
return d.onUrlChange(function(a, b) { | |
return t(Kb(o, a)) ? void(g.location.href = a) : (c.$evalAsync(function() { | |
var d, e = j.absUrl(), | |
f = j.$$state; | |
a = Mb(a), j.$$parse(a), j.$$state = b, d = c.$broadcast("$locationChangeStart", a, e, b, f).defaultPrevented, j.absUrl() === a && (d ? (j.$$parse(e), j.$$state = f, h(e, !1, f)) : (q = !1, i(e, f))) | |
}), void(c.$$phase || c.$digest())) | |
}), c.$watch(function() { | |
var a = Mb(d.url()), | |
b = Mb(j.absUrl()), | |
f = d.state(), | |
g = j.$$replace, | |
k = a !== b || j.$$html5 && e.history && f !== j.$$state; | |
(q || k) && (q = !1, c.$evalAsync(function() { | |
var b = j.absUrl(), | |
d = c.$broadcast("$locationChangeStart", b, a, j.$$state, f).defaultPrevented; | |
j.absUrl() === b && (d ? (j.$$parse(a), j.$$state = f) : (k && h(b, g, f === j.$$state ? null : j.$$state), i(a, f))) | |
})), j.$$replace = !1 | |
}), j | |
}] | |
} | |
function Vb() { | |
var a = !0, | |
b = this; | |
this.debugEnabled = function(b) { | |
return u(b) ? (a = b, this) : a | |
}, this.$get = ["$window", function(c) { | |
function d(a) { | |
return a instanceof Error && (a.stack ? a = a.message && -1 === a.stack.indexOf(a.message) ? "Error: " + a.message + "\n" + a.stack : a.stack : a.sourceURL && (a = a.message + "\n" + a.sourceURL + ":" + a.line)), a | |
} | |
function e(a) { | |
var b = c.console || {}, | |
e = b[a] || b.log || p, | |
g = !1; | |
try { | |
g = !!e.apply | |
} catch (h) {} | |
return g ? function() { | |
var a = []; | |
return f(arguments, function(b) { | |
a.push(d(b)) | |
}), e.apply(b, a) | |
} : function(a, b) { | |
e(a, null == b ? "" : b) | |
} | |
} | |
return { | |
log: e("log"), | |
info: e("info"), | |
warn: e("warn"), | |
error: e("error"), | |
debug: function() { | |
var c = e("debug"); | |
return function() { | |
a && c.apply(b, arguments) | |
} | |
}() | |
} | |
}] | |
} | |
function Wb(a, b) { | |
if ("__defineGetter__" === a || "__defineSetter__" === a || "__lookupGetter__" === a || "__lookupSetter__" === a || "__proto__" === a) throw af("isecfld", "Attempting to access a disallowed field in Angular expressions! Expression: {0}", b); | |
return a | |
} | |
function Xb(a, b) { | |
if (a += "", !x(a)) throw af("iseccst", "Cannot convert object to primitive value! Expression: {0}", b); | |
return a | |
} | |
function Yb(a, b) { | |
if (a) { | |
if (a.constructor === a) throw af("isecfn", "Referencing Function in Angular expressions is disallowed! Expression: {0}", b); | |
if (a.window === a) throw af("isecwindow", "Referencing the Window in Angular expressions is disallowed! Expression: {0}", b); | |
if (a.children && (a.nodeName || a.prop && a.attr && a.find)) throw af("isecdom", "Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}", b); | |
if (a === Object) throw af("isecobj", "Referencing Object in Angular expressions is disallowed! Expression: {0}", b) | |
} | |
return a | |
} | |
function Zb(a, b) { | |
if (a) { | |
if (a.constructor === a) throw af("isecfn", "Referencing Function in Angular expressions is disallowed! Expression: {0}", b); | |
if (a === bf || a === cf || a === df) throw af("isecff", "Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}", b) | |
} | |
} | |
function $b(a, b) { | |
if (a && (a === 0..constructor || a === (!1).constructor || a === "".constructor || a === {}.constructor || a === [].constructor || a === Function.constructor)) throw af("isecaf", "Assigning to a constructor is disallowed! Expression: {0}", b) | |
} | |
function _b(a, b) { | |
return "undefined" != typeof a ? a : b | |
} | |
function ac(a, b) { | |
return "undefined" == typeof a ? b : "undefined" == typeof b ? a : a + b | |
} | |
function bc(a, b) { | |
var c = a(b); | |
return !c.$stateful | |
} | |
function cc(a, b) { | |
var c, d; | |
switch (a.type) { | |
case hf.Program: | |
c = !0, f(a.body, function(a) { | |
cc(a.expression, b), c = c && a.expression.constant | |
}), a.constant = c; | |
break; | |
case hf.Literal: | |
a.constant = !0, a.toWatch = []; | |
break; | |
case hf.UnaryExpression: | |
cc(a.argument, b), a.constant = a.argument.constant, a.toWatch = a.argument.toWatch; | |
break; | |
case hf.BinaryExpression: | |
cc(a.left, b), cc(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = a.left.toWatch.concat(a.right.toWatch); | |
break; | |
case hf.LogicalExpression: | |
cc(a.left, b), cc(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = a.constant ? [] : [a]; | |
break; | |
case hf.ConditionalExpression: | |
cc(a.test, b), cc(a.alternate, b), cc(a.consequent, b), a.constant = a.test.constant && a.alternate.constant && a.consequent.constant, a.toWatch = a.constant ? [] : [a]; | |
break; | |
case hf.Identifier: | |
a.constant = !1, a.toWatch = [a]; | |
break; | |
case hf.MemberExpression: | |
cc(a.object, b), a.computed && cc(a.property, b), a.constant = a.object.constant && (!a.computed || a.property.constant), a.toWatch = [a]; | |
break; | |
case hf.CallExpression: | |
c = a.filter ? bc(b, a.callee.name) : !1, d = [], f(a.arguments, function(a) { | |
cc(a, b), c = c && a.constant, a.constant || d.push.apply(d, a.toWatch) | |
}), a.constant = c, a.toWatch = a.filter && bc(b, a.callee.name) ? d : [a]; | |
break; | |
case hf.AssignmentExpression: | |
cc(a.left, b), cc(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = [a]; | |
break; | |
case hf.ArrayExpression: | |
c = !0, d = [], f(a.elements, function(a) { | |
cc(a, b), c = c && a.constant, a.constant || d.push.apply(d, a.toWatch) | |
}), a.constant = c, a.toWatch = d; | |
break; | |
case hf.ObjectExpression: | |
c = !0, d = [], f(a.properties, function(a) { | |
cc(a.value, b), c = c && a.value.constant, a.value.constant || d.push.apply(d, a.value.toWatch) | |
}), a.constant = c, a.toWatch = d; | |
break; | |
case hf.ThisExpression: | |
a.constant = !1, a.toWatch = [] | |
} | |
} | |
function dc(a) { | |
if (1 == a.length) { | |
var b = a[0].expression, | |
d = b.toWatch; | |
return 1 !== d.length ? d : d[0] !== b ? d : c | |
} | |
} | |
function ec(a) { | |
return a.type === hf.Identifier || a.type === hf.MemberExpression | |
} | |
function fc(a) { | |
return 1 === a.body.length && ec(a.body[0].expression) ? { | |
type: hf.AssignmentExpression, | |
left: a.body[0].expression, | |
right: { | |
type: hf.NGValueParameter | |
}, | |
operator: "=" | |
} : void 0 | |
} | |
function gc(a) { | |
return 0 === a.body.length || 1 === a.body.length && (a.body[0].expression.type === hf.Literal || a.body[0].expression.type === hf.ArrayExpression || a.body[0].expression.type === hf.ObjectExpression) | |
} | |
function hc(a) { | |
return a.constant | |
} | |
function ic(a, b) { | |
this.astBuilder = a, this.$filter = b | |
} | |
function jc(a, b) { | |
this.astBuilder = a, this.$filter = b | |
} | |
function kc(a) { | |
return "constructor" == a | |
} | |
function lc(a) { | |
return A(a.valueOf) ? a.valueOf() : kf.call(a) | |
} | |
function mc() { | |
var a = qa(), | |
b = qa(); | |
this.$get = ["$filter", function(d) { | |
function e(a, b) { | |
return null == a || null == b ? a === b : "object" == typeof a && (a = lc(a), "object" == typeof a) ? !1 : a === b || a !== a && b !== b | |
} | |
function g(a, b, d, f, g) { | |
var h, i = f.inputs; | |
if (1 === i.length) { | |
var j = e; | |
return i = i[0], a.$watch(function(a) { | |
var b = i(a); | |
return e(b, j) || (h = f(a, c, c, [b]), j = b && lc(b)), h | |
}, b, d, g) | |
} | |
for (var k = [], l = [], m = 0, n = i.length; n > m; m++) k[m] = e, l[m] = null; | |
return a.$watch(function(a) { | |
for (var b = !1, d = 0, g = i.length; g > d; d++) { | |
var j = i[d](a); | |
(b || (b = !e(j, k[d]))) && (l[d] = j, k[d] = j && lc(j)) | |
} | |
return b && (h = f(a, c, c, l)), h | |
}, b, d, g) | |
} | |
function h(a, b, c, d) { | |
var e, f; | |
return e = a.$watch(function(a) { | |
return d(a) | |
}, function(a, c, d) { | |
f = a, A(b) && b.apply(this, arguments), u(a) && d.$$postDigest(function() { | |
u(f) && e() | |
}) | |
}, c) | |
} | |
function i(a, b, c, d) { | |
function e(a) { | |
var b = !0; | |
return f(a, function(a) { | |
u(a) || (b = !1) | |
}), b | |
} | |
var g, h; | |
return g = a.$watch(function(a) { | |
return d(a) | |
}, function(a, c, d) { | |
h = a, A(b) && b.call(this, a, c, d), e(a) && d.$$postDigest(function() { | |
e(h) && g() | |
}) | |
}, c) | |
} | |
function j(a, b, c, d) { | |
var e; | |
return e = a.$watch(function(a) { | |
return d(a) | |
}, function(a, c, d) { | |
A(b) && b.apply(this, arguments), e() | |
}, c) | |
} | |
function k(a, b) { | |
if (!b) return a; | |
var c = a.$$watchDelegate, | |
d = !1, | |
e = c !== i && c !== h, | |
f = e ? function(c, e, f, g) { | |
var h = d && g ? g[0] : a(c, e, f, g); | |
return b(h, c, e) | |
} : function(c, d, e, f) { | |
var g = a(c, d, e, f), | |
h = b(g, c, d); | |
return u(g) ? h : g | |
}; | |
return a.$$watchDelegate && a.$$watchDelegate !== g ? f.$$watchDelegate = a.$$watchDelegate : b.$stateful || (f.$$watchDelegate = g, d = !a.inputs, f.inputs = a.inputs ? a.inputs : [a]), f | |
} | |
var l = Ud().noUnsafeEval, | |
m = { | |
csp: l, | |
expensiveChecks: !1 | |
}, | |
n = { | |
csp: l, | |
expensiveChecks: !0 | |
}; | |
return function(c, e, f) { | |
var l, o, q; | |
switch (typeof c) { | |
case "string": | |
c = c.trim(), q = c; | |
var r = f ? b : a; | |
if (l = r[q], !l) { | |
":" === c.charAt(0) && ":" === c.charAt(1) && (o = !0, c = c.substring(2)); | |
var s = f ? n : m, | |
t = new gf(s), | |
u = new jf(t, d, s); | |
l = u.parse(c), l.constant ? l.$$watchDelegate = j : o ? l.$$watchDelegate = l.literal ? i : h : l.inputs && (l.$$watchDelegate = g), r[q] = l | |
} | |
return k(l, e); | |
case "function": | |
return k(c, e); | |
default: | |
return k(p, e) | |
} | |
} | |
}] | |
} | |
function nc() { | |
this.$get = ["$rootScope", "$exceptionHandler", function(a, b) { | |
return pc(function(b) { | |
a.$evalAsync(b) | |
}, b) | |
}] | |
} | |
function oc() { | |
this.$get = ["$browser", "$exceptionHandler", function(a, b) { | |
return pc(function(b) { | |
a.defer(b) | |
}, b) | |
}] | |
} | |
function pc(a, b) { | |
function e(a, b, c) { | |
function d(b) { | |
return function(c) { | |
e || (e = !0, b.call(a, c)) | |
} | |
} | |
var e = !1; | |
return [d(b), d(c)] | |
} | |
function g() { | |
this.$$state = { | |
status: 0 | |
} | |
} | |
function h(a, b) { | |
return function(c) { | |
b.call(a, c) | |
} | |
} | |
function i(a) { | |
var d, e, f; | |
f = a.pending, a.processScheduled = !1, a.pending = c; | |
for (var g = 0, h = f.length; h > g; ++g) { | |
e = f[g][0], d = f[g][a.status]; | |
try { | |
A(d) ? e.resolve(d(a.value)) : 1 === a.status ? e.resolve(a.value) : e.reject(a.value) | |
} catch (i) { | |
e.reject(i), b(i) | |
} | |
} | |
} | |
function j(b) { | |
!b.processScheduled && b.pending && (b.processScheduled = !0, a(function() { | |
i(b) | |
})) | |
} | |
function k() { | |
this.promise = new g, this.resolve = h(this, this.resolve), this.reject = h(this, this.reject), this.notify = h(this, this.notify) | |
} | |
function m(a) { | |
var b = new k, | |
c = 0, | |
d = Qd(a) ? [] : {}; | |
return f(a, function(a, e) { | |
c++, s(a).then(function(a) { | |
d.hasOwnProperty(e) || (d[e] = a, --c || b.resolve(d)) | |
}, function(a) { | |
d.hasOwnProperty(e) || b.reject(a) | |
}) | |
}), 0 === c && b.resolve(d), b.promise | |
} | |
var n = d("$q", TypeError), | |
o = function() { | |
return new k | |
}; | |
l(g.prototype, { | |
then: function(a, b, c) { | |
if (t(a) && t(b) && t(c)) return this; | |
var d = new k; | |
return this.$$state.pending = this.$$state.pending || [], this.$$state.pending.push([d, a, b, c]), this.$$state.status > 0 && j(this.$$state), d.promise | |
}, | |
"catch": function(a) { | |
return this.then(null, a) | |
}, | |
"finally": function(a, b) { | |
return this.then(function(b) { | |
return r(b, !0, a) | |
}, function(b) { | |
return r(b, !1, a) | |
}, b) | |
} | |
}), l(k.prototype, { | |
resolve: function(a) { | |
this.promise.$$state.status || (a === this.promise ? this.$$reject(n("qcycle", "Expected promise to be resolved with value other than itself '{0}'", a)) : this.$$resolve(a)) | |
}, | |
$$resolve: function(a) { | |
var c, d; | |
d = e(this, this.$$resolve, this.$$reject); | |
try { | |
(v(a) || A(a)) && (c = a && a.then), A(c) ? (this.promise.$$state.status = -1, c.call(a, d[0], d[1], this.notify)) : (this.promise.$$state.value = a, this.promise.$$state.status = 1, j(this.promise.$$state)) | |
} catch (f) { | |
d[1](f), b(f) | |
} | |
}, | |
reject: function(a) { | |
this.promise.$$state.status || this.$$reject(a) | |
}, | |
$$reject: function(a) { | |
this.promise.$$state.value = a, this.promise.$$state.status = 2, j(this.promise.$$state) | |
}, | |
notify: function(c) { | |
var d = this.promise.$$state.pending; | |
this.promise.$$state.status <= 0 && d && d.length && a(function() { | |
for (var a, e, f = 0, g = d.length; g > f; f++) { | |
e = d[f][0], a = d[f][3]; | |
try { | |
e.notify(A(a) ? a(c) : c) | |
} catch (h) { | |
b(h) | |
} | |
} | |
}) | |
} | |
}); | |
var p = function(a) { | |
var b = new k; | |
return b.reject(a), b.promise | |
}, | |
q = function(a, b) { | |
var c = new k; | |
return b ? c.resolve(a) : c.reject(a), c.promise | |
}, | |
r = function(a, b, c) { | |
var d = null; | |
try { | |
A(c) && (d = c()) | |
} catch (e) { | |
return q(e, !1) | |
} | |
return I(d) ? d.then(function() { | |
return q(a, b) | |
}, function(a) { | |
return q(a, !1) | |
}) : q(a, b) | |
}, | |
s = function(a, b, c, d) { | |
var e = new k; | |
return e.resolve(a), e.promise.then(b, c, d) | |
}, | |
u = s, | |
w = function x(a) { | |
function b(a) { | |
d.resolve(a) | |
} | |
function c(a) { | |
d.reject(a) | |
} | |
if (!A(a)) throw n("norslvr", "Expected resolverFn, got '{0}'", a); | |
if (!(this instanceof x)) return new x(a); | |
var d = new k; | |
return a(b, c), d.promise | |
}; | |
return w.defer = o, w.reject = p, w.when = s, w.resolve = u, w.all = m, w | |
} | |
function qc() { | |
this.$get = ["$window", "$timeout", function(a, b) { | |
var c = a.requestAnimationFrame || a.webkitRequestAnimationFrame, | |
d = a.cancelAnimationFrame || a.webkitCancelAnimationFrame || a.webkitCancelRequestAnimationFrame, | |
e = !!c, | |
f = e ? function(a) { | |
var b = c(a); | |
return function() { | |
d(b) | |
} | |
} : function(a) { | |
var c = b(a, 16.66, !1); | |
return function() { | |
b.cancel(c) | |
} | |
}; | |
return f.supported = e, f | |
}] | |
} | |
function rc() { | |
function a(a) { | |
function b() { | |
this.$$watchers = this.$$nextSibling = this.$$childHead = this.$$childTail = null, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$id = i(), this.$$ChildScope = null | |
} | |
return b.prototype = a, b | |
} | |
var b = 10, | |
c = d("$rootScope"), | |
g = null, | |
h = null; | |
this.digestTtl = function(a) { | |
return arguments.length && (b = a), b | |
}, this.$get = ["$injector", "$exceptionHandler", "$parse", "$browser", function(d, j, k, l) { | |
function m(a) { | |
a.currentScope.$$destroyed = !0 | |
} | |
function n(a) { | |
9 === Dd && (a.$$childHead && n(a.$$childHead), a.$$nextSibling && n(a.$$nextSibling)), a.$parent = a.$$nextSibling = a.$$prevSibling = a.$$childHead = a.$$childTail = a.$root = a.$$watchers = null | |
} | |
function o() { | |
this.$id = i(), this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null, this.$root = this, this.$$destroyed = !1, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$$isolateBindings = null | |
} | |
function q(a) { | |
if (z.$$phase) throw c("inprog", "{0} already in progress", z.$$phase); | |
z.$$phase = a | |
} | |
function r() { | |
z.$$phase = null | |
} | |
function s(a, b) { | |
do a.$$watchersCount += b; while (a = a.$parent) | |
} | |
function u(a, b, c) { | |
do a.$$listenerCount[c] -= b, 0 === a.$$listenerCount[c] && delete a.$$listenerCount[c]; while (a = a.$parent) | |
} | |
function w() {} | |
function x() { | |
for (; D.length;) try { | |
D.shift()() | |
} catch (a) { | |
j(a) | |
} | |
h = null | |
} | |
function y() { | |
null === h && (h = l.defer(function() { | |
z.$apply(x) | |
})) | |
} | |
o.prototype = { | |
constructor: o, | |
$new: function(b, c) { | |
var d; | |
return c = c || this, b ? (d = new o, d.$root = this.$root) : (this.$$ChildScope || (this.$$ChildScope = a(this)), d = new this.$$ChildScope), d.$parent = c, d.$$prevSibling = c.$$childTail, c.$$childHead ? (c.$$childTail.$$nextSibling = d, c.$$childTail = d) : c.$$childHead = c.$$childTail = d, (b || c != this) && d.$on("$destroy", m), d | |
}, | |
$watch: function(a, b, c, d) { | |
var e = k(a); | |
if (e.$$watchDelegate) return e.$$watchDelegate(this, b, c, e, a); | |
var f = this, | |
h = f.$$watchers, | |
i = { | |
fn: b, | |
last: w, | |
get: e, | |
exp: d || a, | |
eq: !!c | |
}; | |
return g = null, A(b) || (i.fn = p), h || (h = f.$$watchers = []), h.unshift(i), s(this, 1), | |
function() { | |
N(h, i) >= 0 && s(f, -1), g = null | |
} | |
}, | |
$watchGroup: function(a, b) { | |
function c() { | |
i = !1, j ? (j = !1, b(e, e, h)) : b(e, d, h) | |
} | |
var d = new Array(a.length), | |
e = new Array(a.length), | |
g = [], | |
h = this, | |
i = !1, | |
j = !0; | |
if (!a.length) { | |
var k = !0; | |
return h.$evalAsync(function() { | |
k && b(e, e, h) | |
}), | |
function() { | |
k = !1 | |
} | |
} | |
return 1 === a.length ? this.$watch(a[0], function(a, c, f) { | |
e[0] = a, d[0] = c, b(e, a === c ? e : d, f) | |
}) : (f(a, function(a, b) { | |
var f = h.$watch(a, function(a, f) { | |
e[b] = a, d[b] = f, i || (i = !0, h.$evalAsync(c)) | |
}); | |
g.push(f) | |
}), function() { | |
for (; g.length;) g.shift()() | |
}) | |
}, | |
$watchCollection: function(a, b) { | |
function c(a) { | |
f = a; | |
var b, c, d, h, i; | |
if (!t(f)) { | |
if (v(f)) | |
if (e(f)) { | |
g !== n && (g = n, q = g.length = 0, l++), b = f.length, q !== b && (l++, g.length = q = b); | |
for (var j = 0; b > j; j++) i = g[j], h = f[j], d = i !== i && h !== h, d || i === h || (l++, g[j] = h) | |
} else { | |
g !== o && (g = o = {}, q = 0, l++), b = 0; | |
for (c in f) zd.call(f, c) && (b++, h = f[c], i = g[c], c in g ? (d = i !== i && h !== h, d || i === h || (l++, g[c] = h)) : (q++, g[c] = h, l++)); | |
if (q > b) { | |
l++; | |
for (c in g) zd.call(f, c) || (q--, delete g[c]) | |
} | |
} | |
else g !== f && (g = f, l++); | |
return l | |
} | |
} | |
function d() { | |
if (p ? (p = !1, b(f, f, i)) : b(f, h, i), j) | |
if (v(f)) | |
if (e(f)) { | |
h = new Array(f.length); | |
for (var a = 0; a < f.length; a++) h[a] = f[a] | |
} else { | |
h = {}; | |
for (var c in f) zd.call(f, c) && (h[c] = f[c]) | |
} | |
else h = f | |
} | |
c.$stateful = !0; | |
var f, g, h, i = this, | |
j = b.length > 1, | |
l = 0, | |
m = k(a, c), | |
n = [], | |
o = {}, | |
p = !0, | |
q = 0; | |
return this.$watch(m, d) | |
}, | |
$digest: function() { | |
var a, d, e, f, i, k, m, n, o, p, s = b, | |
t = this, | |
u = []; | |
q("$digest"), l.$$checkUrlChange(), this === z && null !== h && (l.defer.cancel(h), x()), g = null; | |
do { | |
for (k = !1, n = t; B.length;) { | |
try { | |
p = B.shift(), p.scope.$eval(p.expression, p.locals) | |
} catch (v) { | |
j(v) | |
} | |
g = null | |
} | |
a: do { | |
if (f = n.$$watchers) | |
for (i = f.length; i--;) try { | |
if (a = f[i]) | |
if ((d = a.get(n)) === (e = a.last) || (a.eq ? Q(d, e) : "number" == typeof d && "number" == typeof e && isNaN(d) && isNaN(e))) { | |
if (a === g) { | |
k = !1; | |
break a | |
} | |
} else k = !0, g = a, a.last = a.eq ? O(d, null) : d, a.fn(d, e === w ? d : e, n), 5 > s && (o = 4 - s, u[o] || (u[o] = []), u[o].push({ | |
msg: A(a.exp) ? "fn: " + (a.exp.name || a.exp.toString()) : a.exp, | |
newVal: d, | |
oldVal: e | |
})) | |
} catch (v) { | |
j(v) | |
} | |
if (!(m = n.$$watchersCount && n.$$childHead || n !== t && n.$$nextSibling)) | |
for (; n !== t && !(m = n.$$nextSibling);) n = n.$parent | |
} while (n = m); | |
if ((k || B.length) && !s--) throw r(), c("infdig", "{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}", b, u) | |
} while (k || B.length); | |
for (r(); C.length;) try { | |
C.shift()() | |
} catch (v) { | |
j(v) | |
} | |
}, | |
$destroy: function() { | |
if (!this.$$destroyed) { | |
var a = this.$parent; | |
this.$broadcast("$destroy"), this.$$destroyed = !0, this === z && l.$$applicationDestroyed(), s(this, -this.$$watchersCount); | |
for (var b in this.$$listenerCount) u(this, this.$$listenerCount[b], b); | |
a && a.$$childHead == this && (a.$$childHead = this.$$nextSibling), a && a.$$childTail == this && (a.$$childTail = this.$$prevSibling), this.$$prevSibling && (this.$$prevSibling.$$nextSibling = this.$$nextSibling), this.$$nextSibling && (this.$$nextSibling.$$prevSibling = this.$$prevSibling), this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = p, this.$on = this.$watch = this.$watchGroup = function() { | |
return p | |
}, this.$$listeners = {}, this.$$nextSibling = null, n(this) | |
} | |
}, | |
$eval: function(a, b) { | |
return k(a)(this, b) | |
}, | |
$evalAsync: function(a, b) { | |
z.$$phase || B.length || l.defer(function() { | |
B.length && z.$digest() | |
}), B.push({ | |
scope: this, | |
expression: a, | |
locals: b | |
}) | |
}, | |
$$postDigest: function(a) { | |
C.push(a) | |
}, | |
$apply: function(a) { | |
try { | |
q("$apply"); | |
try { | |
return this.$eval(a) | |
} finally { | |
r() | |
} | |
} catch (b) { | |
j(b) | |
} finally { | |
try { | |
z.$digest() | |
} catch (b) { | |
throw j(b), b | |
} | |
} | |
}, | |
$applyAsync: function(a) { | |
function b() { | |
c.$eval(a) | |
} | |
var c = this; | |
a && D.push(b), y() | |
}, | |
$on: function(a, b) { | |
var c = this.$$listeners[a]; | |
c || (this.$$listeners[a] = c = []), c.push(b); | |
var d = this; | |
do d.$$listenerCount[a] || (d.$$listenerCount[a] = 0), d.$$listenerCount[a]++; while (d = d.$parent); | |
var e = this; | |
return function() { | |
var d = c.indexOf(b); - 1 !== d && (c[d] = null, u(e, 1, a)) | |
} | |
}, | |
$emit: function(a, b) { | |
var c, d, e, f = [], | |
g = this, | |
h = !1, | |
i = { | |
name: a, | |
targetScope: g, | |
stopPropagation: function() { | |
h = !0 | |
}, | |
preventDefault: function() { | |
i.defaultPrevented = !0 | |
}, | |
defaultPrevented: !1 | |
}, | |
k = R([i], arguments, 1); | |
do { | |
for (c = g.$$listeners[a] || f, i.currentScope = g, d = 0, e = c.length; e > d; d++) | |
if (c[d]) try { | |
c[d].apply(null, k) | |
} catch (l) { | |
j(l) | |
} else c.splice(d, 1), d--, e--; | |
if (h) return i.currentScope = null, i; | |
g = g.$parent | |
} while (g); | |
return i.currentScope = null, i | |
}, | |
$broadcast: function(a, b) { | |
var c = this, | |
d = c, | |
e = c, | |
f = { | |
name: a, | |
targetScope: c, | |
preventDefault: function() { | |
f.defaultPrevented = !0 | |
}, | |
defaultPrevented: !1 | |
}; | |
if (!c.$$listenerCount[a]) return f; | |
for (var g, h, i, k = R([f], arguments, 1); d = e;) { | |
for (f.currentScope = d, g = d.$$listeners[a] || [], h = 0, i = g.length; i > h; h++) | |
if (g[h]) try { | |
g[h].apply(null, k) | |
} catch (l) { | |
j(l) | |
} else g.splice(h, 1), h--, i--; | |
if (!(e = d.$$listenerCount[a] && d.$$childHead || d !== c && d.$$nextSibling)) | |
for (; d !== c && !(e = d.$$nextSibling);) d = d.$parent | |
} | |
return f.currentScope = null, f | |
} | |
}; | |
var z = new o, | |
B = z.$$asyncQueue = [], | |
C = z.$$postDigestQueue = [], | |
D = z.$$applyAsyncQueue = []; | |
return z | |
}] | |
} | |
function sc() { | |
var a = /^\s*(https?|ftp|mailto|tel|file):/, | |
b = /^\s*((https?|ftp|file|blob):|data:image\/)/; | |
this.aHrefSanitizationWhitelist = function(b) { | |
return u(b) ? (a = b, this) : a | |
}, this.imgSrcSanitizationWhitelist = function(a) { | |
return u(a) ? (b = a, this) : b | |
}, this.$get = function() { | |
return function(c, d) { | |
var e, f = d ? b : a; | |
return e = Bc(c).href, "" === e || e.match(f) ? c : "unsafe:" + e | |
} | |
} | |
} | |
function tc(a) { | |
if ("self" === a) return a; | |
if (x(a)) { | |
if (a.indexOf("***") > -1) throw lf("iwcard", "Illegal sequence *** in string matcher. String: {0}", a); | |
return a = Td(a).replace("\\*\\*", ".*").replace("\\*", "[^:/.?&;]*"), new RegExp("^" + a + "$") | |
} | |
if (B(a)) return new RegExp("^" + a.source + "$"); | |
throw lf("imatcher", 'Matchers may only be "self", string patterns or RegExp objects') | |
} | |
function uc(a) { | |
var b = []; | |
return u(a) && f(a, function(a) { | |
b.push(tc(a)) | |
}), b | |
} | |
function vc() { | |
this.SCE_CONTEXTS = mf; | |
var a = ["self"], | |
b = []; | |
this.resourceUrlWhitelist = function(b) { | |
return arguments.length && (a = uc(b)), a | |
}, this.resourceUrlBlacklist = function(a) { | |
return arguments.length && (b = uc(a)), b | |
}, this.$get = ["$injector", function(c) { | |
function d(a, b) { | |
return "self" === a ? Cc(b) : !!a.exec(b.href) | |
} | |
function e(c) { | |
var e, f, g = Bc(c.toString()), | |
h = !1; | |
for (e = 0, f = a.length; f > e; e++) | |
if (d(a[e], g)) { | |
h = !0; | |
break | |
} | |
if (h) | |
for (e = 0, f = b.length; f > e; e++) | |
if (d(b[e], g)) { | |
h = !1; | |
break | |
} | |
return h | |
} | |
function f(a) { | |
var b = function(a) { | |
this.$$unwrapTrustedValue = function() { | |
return a | |
} | |
}; | |
return a && (b.prototype = new a), b.prototype.valueOf = function() { | |
return this.$$unwrapTrustedValue() | |
}, b.prototype.toString = function() { | |
return this.$$unwrapTrustedValue().toString() | |
}, b | |
} | |
function g(a, b) { | |
var c = l.hasOwnProperty(a) ? l[a] : null; | |
if (!c) throw lf("icontext", "Attempted to trust a value in invalid context. Context: {0}; Value: {1}", a, b); | |
if (null === b || t(b) || "" === b) return b; | |
if ("string" != typeof b) throw lf("itype", "Attempted to trust a non-string value in a content requiring a string: Context: {0}", a); | |
return new c(b) | |
} | |
function h(a) { | |
return a instanceof k ? a.$$unwrapTrustedValue() : a | |
} | |
function i(a, b) { | |
if (null === b || t(b) || "" === b) return b; | |
var c = l.hasOwnProperty(a) ? l[a] : null; | |
if (c && b instanceof c) return b.$$unwrapTrustedValue(); | |
if (a === mf.RESOURCE_URL) { | |
if (e(b)) return b; | |
throw lf("insecurl", "Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}", b.toString()) | |
} | |
if (a === mf.HTML) return j(b); | |
throw lf("unsafe", "Attempting to use an unsafe value in a safe context.") | |
} | |
var j = function(a) { | |
throw lf("unsafe", "Attempting to use an unsafe value in a safe context.") | |
}; | |
c.has("$sanitize") && (j = c.get("$sanitize")); | |
var k = f(), | |
l = {}; | |
return l[mf.HTML] = f(k), l[mf.CSS] = f(k), l[mf.URL] = f(k), l[mf.JS] = f(k), l[mf.RESOURCE_URL] = f(l[mf.URL]), { | |
trustAs: g, | |
getTrusted: i, | |
valueOf: h | |
} | |
}] | |
} | |
function wc() { | |
var a = !0; | |
this.enabled = function(b) { | |
return arguments.length && (a = !!b), a | |
}, this.$get = ["$parse", "$sceDelegate", function(b, c) { | |
if (a && 8 > Dd) throw lf("iequirks", "Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information."); | |
var d = P(mf); | |
d.isEnabled = function() { | |
return a | |
}, d.trustAs = c.trustAs, d.getTrusted = c.getTrusted, d.valueOf = c.valueOf, a || (d.trustAs = d.getTrusted = function(a, b) { | |
return b | |
}, d.valueOf = q), d.parseAs = function(a, c) { | |
var e = b(c); | |
return e.literal && e.constant ? e : b(c, function(b) { | |
return d.getTrusted(a, b) | |
}) | |
}; | |
var e = d.parseAs, | |
g = d.getTrusted, | |
h = d.trustAs; | |
return f(mf, function(a, b) { | |
var c = yd(b); | |
d[wa("parse_as_" + c)] = function(b) { | |
return e(a, b) | |
}, d[wa("get_trusted_" + c)] = function(b) { | |
return g(a, b) | |
}, d[wa("trust_as_" + c)] = function(b) { | |
return h(a, b) | |
} | |
}), d | |
}] | |
} | |
function xc() { | |
this.$get = ["$window", "$document", function(a, b) { | |
var c, d, e = {}, | |
f = n((/android (\d+)/.exec(yd((a.navigator || {}).userAgent)) || [])[1]), | |
g = /Boxee/i.test((a.navigator || {}).userAgent), | |
h = b[0] || {}, | |
i = /^(Moz|webkit|ms)(?=[A-Z])/, | |
j = h.body && h.body.style, | |
k = !1, | |
l = !1; | |
if (j) { | |
for (var m in j) | |
if (d = i.exec(m)) { | |
c = d[0], c = c.substr(0, 1).toUpperCase() + c.substr(1); | |
break | |
} | |
c || (c = "WebkitOpacity" in j && "webkit"), k = !!("transition" in j || c + "Transition" in j), l = !!("animation" in j || c + "Animation" in j), !f || k && l || (k = x(j.webkitTransition), l = x(j.webkitAnimation)) | |
} | |
return { | |
history: !(!a.history || !a.history.pushState || 4 > f || g), | |
hasEvent: function(a) { | |
if ("input" === a && 11 >= Dd) return !1; | |
if (t(e[a])) { | |
var b = h.createElement("div"); | |
e[a] = "on" + a in b | |
} | |
return e[a] | |
}, | |
csp: Ud(), | |
vendorPrefix: c, | |
transitions: k, | |
animations: l, | |
android: f | |
} | |
}] | |
} | |
function yc() { | |
this.$get = ["$templateCache", "$http", "$q", "$sce", function(a, b, c, d) { | |
function e(f, g) { | |
function h(a) { | |
if (!g) throw Le("tpload", "Failed to load template: {0} (HTTP status: {1} {2})", f, a.status, a.statusText); | |
return c.reject(a) | |
} | |
e.totalPendingRequests++, x(f) && a.get(f) || (f = d.getTrustedResourceUrl(f)); | |
var i = b.defaults && b.defaults.transformResponse; | |
Qd(i) ? i = i.filter(function(a) { | |
return a !== vb | |
}) : i === vb && (i = null); | |
var j = { | |
cache: a, | |
transformResponse: i | |
}; | |
return b.get(f, j)["finally"](function() { | |
e.totalPendingRequests-- | |
}).then(function(b) { | |
return a.put(f, b.data), b.data | |
}, h) | |
} | |
return e.totalPendingRequests = 0, e | |
}] | |
} | |
function zc() { | |
this.$get = ["$rootScope", "$browser", "$location", function(a, b, c) { | |
var d = {}; | |
return d.findBindings = function(a, b, c) { | |
var d = a.getElementsByClassName("ng-binding"), | |
e = []; | |
return f(d, function(a) { | |
var d = Nd.element(a).data("$binding"); | |
d && f(d, function(d) { | |
if (c) { | |
var f = new RegExp("(^|\\s)" + Td(b) + "(\\s|\\||$)"); | |
f.test(d) && e.push(a) | |
} else -1 != d.indexOf(b) && e.push(a) | |
}) | |
}), e | |
}, d.findModels = function(a, b, c) { | |
for (var d = ["ng-", "data-ng-", "ng\\:"], e = 0; e < d.length; ++e) { | |
var f = c ? "=" : "*=", | |
g = "[" + d[e] + "model" + f + '"' + b + '"]', | |
h = a.querySelectorAll(g); | |
if (h.length) return h | |
} | |
}, d.getLocation = function() { | |
return c.url() | |
}, d.setLocation = function(b) { | |
b !== c.url() && (c.url(b), a.$digest()) | |
}, d.whenStable = function(a) { | |
b.notifyWhenNoOutstandingRequests(a) | |
}, d | |
}] | |
} | |
function Ac() { | |
this.$get = ["$rootScope", "$browser", "$q", "$$q", "$exceptionHandler", function(a, b, c, d, e) { | |
function f(f, h, i) { | |
A(f) || (i = h, h = f, f = p); | |
var j, k = S(arguments, 3), | |
l = u(i) && !i, | |
m = (l ? d : c).defer(), | |
n = m.promise; | |
return j = b.defer(function() { | |
try { | |
m.resolve(f.apply(null, k)) | |
} catch (b) { | |
m.reject(b), e(b) | |
} finally { | |
delete g[n.$$timeoutId] | |
} | |
l || a.$apply() | |
}, h), n.$$timeoutId = j, g[j] = m, n | |
} | |
var g = {}; | |
return f.cancel = function(a) { | |
return a && a.$$timeoutId in g ? (g[a.$$timeoutId].reject("canceled"), delete g[a.$$timeoutId], b.defer.cancel(a.$$timeoutId)) : !1 | |
}, f | |
}] | |
} | |
function Bc(a) { | |
var b = a; | |
return Dd && (nf.setAttribute("href", b), b = nf.href), nf.setAttribute("href", b), { | |
href: nf.href, | |
protocol: nf.protocol ? nf.protocol.replace(/:$/, "") : "", | |
host: nf.host, | |
search: nf.search ? nf.search.replace(/^\?/, "") : "", | |
hash: nf.hash ? nf.hash.replace(/^#/, "") : "", | |
hostname: nf.hostname, | |
port: nf.port, | |
pathname: "/" === nf.pathname.charAt(0) ? nf.pathname : "/" + nf.pathname | |
} | |
} | |
function Cc(a) { | |
var b = x(a) ? Bc(a) : a; | |
return b.protocol === of.protocol && b.host === of.host | |
} | |
function Dc() { | |
this.$get = r(a) | |
} | |
function Ec(a) { | |
function b(a) { | |
try { | |
return decodeURIComponent(a) | |
} catch (b) { | |
return a | |
} | |
} | |
var c = a[0] || {}, | |
d = {}, | |
e = ""; | |
return function() { | |
var a, f, g, h, i, j = c.cookie || ""; | |
if (j !== e) | |
for (e = j, a = e.split("; "), d = {}, g = 0; g < a.length; g++) f = a[g], h = f.indexOf("="), h > 0 && (i = b(f.substring(0, h)), t(d[i]) && (d[i] = b(f.substring(h + 1)))); | |
return d | |
} | |
} | |
function Fc() { | |
this.$get = Ec | |
} | |
function Gc(a) { | |
function b(d, e) { | |
if (v(d)) { | |
var g = {}; | |
return f(d, function(a, c) { | |
g[c] = b(c, a) | |
}), g | |
} | |
return a.factory(d + c, e) | |
} | |
var c = "Filter"; | |
this.register = b, this.$get = ["$injector", function(a) { | |
return function(b) { | |
return a.get(b + c) | |
} | |
}], b("currency", Lc), b("date", $c), b("filter", Hc), b("json", _c), b("limitTo", ad), b("lowercase", vf), b("number", Mc), b("orderBy", bd), b("uppercase", wf) | |
} | |
function Hc() { | |
return function(a, b, c) { | |
if (!e(a)) { | |
if (null == a) return a; | |
throw d("filter")("notarray", "Expected array but received: {0}", a) | |
} | |
var f, g, h = Kc(b); | |
switch (h) { | |
case "function": | |
f = b; | |
break; | |
case "boolean": | |
case "null": | |
case "number": | |
case "string": | |
g = !0; | |
case "object": | |
f = Ic(b, c, g); | |
break; | |
default: | |
return a | |
} | |
return Array.prototype.filter.call(a, f) | |
} | |
} | |
function Ic(a, b, c) { | |
var d, e = v(a) && "$" in a; | |
return b === !0 ? b = Q : A(b) || (b = function(a, b) { | |
return t(a) ? !1 : null === a || null === b ? a === b : v(b) || v(a) && !s(a) ? !1 : (a = yd("" + a), b = yd("" + b), -1 !== a.indexOf(b)) | |
}), d = function(d) { | |
return e && !v(d) ? Jc(d, a.$, b, !1) : Jc(d, a, b, c) | |
} | |
} | |
function Jc(a, b, c, d, e) { | |
var f = Kc(a), | |
g = Kc(b); | |
if ("string" === g && "!" === b.charAt(0)) return !Jc(a, b.substring(1), c, d); | |
if (Qd(a)) return a.some(function(a) { | |
return Jc(a, b, c, d) | |
}); | |
switch (f) { | |
case "object": | |
var h; | |
if (d) { | |
for (h in a) | |
if ("$" !== h.charAt(0) && Jc(a[h], b, c, !0)) return !0; | |
return e ? !1 : Jc(a, b, c, !1) | |
} | |
if ("object" === g) { | |
for (h in b) { | |
var i = b[h]; | |
if (!A(i) && !t(i)) { | |
var j = "$" === h, | |
k = j ? a : a[h]; | |
if (!Jc(k, i, c, j, j)) return !1 | |
} | |
} | |
return !0 | |
} | |
return c(a, b); | |
case "function": | |
return !1; | |
default: | |
return c(a, b) | |
} | |
} | |
function Kc(a) { | |
return null === a ? "null" : typeof a | |
} | |
function Lc(a) { | |
var b = a.NUMBER_FORMATS; | |
return function(a, c, d) { | |
return t(c) && (c = b.CURRENCY_SYM), t(d) && (d = b.PATTERNS[1].maxFrac), null == a ? a : Pc(a, b.PATTERNS[1], b.GROUP_SEP, b.DECIMAL_SEP, d).replace(/\u00A4/g, c) | |
} | |
} | |
function Mc(a) { | |
var b = a.NUMBER_FORMATS; | |
return function(a, c) { | |
return null == a ? a : Pc(a, b.PATTERNS[0], b.GROUP_SEP, b.DECIMAL_SEP, c) | |
} | |
} | |
function Nc(a) { | |
var b, c, d, e, f, g = 0; | |
for ((c = a.indexOf(qf)) > -1 && (a = a.replace(qf, "")), (d = a.search(/e/i)) > 0 ? (0 > c && (c = d), c += +a.slice(d + 1), a = a.substring(0, d)) : 0 > c && (c = a.length), d = 0; a.charAt(d) == rf; d++); | |
if (d == (f = a.length)) b = [0], c = 1; | |
else { | |
for (f--; a.charAt(f) == rf;) f--; | |
for (c -= d, b = [], e = 0; f >= d; d++, e++) b[e] = +a.charAt(d) | |
} | |
return c > pf && (b = b.splice(0, pf - 1), g = c - 1, c = 1), { | |
d: b, | |
e: g, | |
i: c | |
} | |
} | |
function Oc(a, b, c, d) { | |
var e = a.d, | |
f = e.length - a.i; | |
b = t(b) ? Math.min(Math.max(c, f), d) : +b; | |
var g = b + a.i, | |
h = e[g]; | |
if (g > 0) e.splice(g); | |
else { | |
a.i = 1, e.length = g = b + 1; | |
for (var i = 0; g > i; i++) e[i] = 0 | |
} | |
for (h >= 5 && e[g - 1]++; b > f; f++) e.push(0); | |
var j = e.reduceRight(function(a, b, c, d) { | |
return b += a, d[c] = b % 10, Math.floor(b / 10) | |
}, 0); | |
j && (e.unshift(j), a.i++) | |
} | |
function Pc(a, b, c, d, e) { | |
if (!x(a) && !y(a) || isNaN(a)) return ""; | |
var f, g = !isFinite(a), | |
h = !1, | |
i = Math.abs(a) + "", | |
j = ""; | |
if (g) j = "∞"; | |
else { | |
f = Nc(i), Oc(f, e, b.minFrac, b.maxFrac); | |
var k = f.d, | |
l = f.i, | |
m = f.e, | |
n = []; | |
for (h = k.reduce(function(a, b) { | |
return a && !b | |
}, !0); 0 > l;) k.unshift(0), l++; | |
l > 0 ? n = k.splice(l) : (n = k, k = [0]); | |
var o = []; | |
for (k.length > b.lgSize && o.unshift(k.splice(-b.lgSize).join("")); k.length > b.gSize;) o.unshift(k.splice(-b.gSize).join("")); | |
k.length && o.unshift(k.join("")), j = o.join(c), n.length && (j += d + n.join("")), m && (j += "e+" + m) | |
} | |
return 0 > a && !h ? b.negPre + j + b.negSuf : b.posPre + j + b.posSuf | |
} | |
function Qc(a, b, c) { | |
var d = ""; | |
for (0 > a && (d = "-", a = -a), a = "" + a; a.length < b;) a = rf + a; | |
return c && (a = a.substr(a.length - b)), d + a | |
} | |
function Rc(a, b, c, d) { | |
return c = c || 0, | |
function(e) { | |
var f = e["get" + a](); | |
return (c > 0 || f > -c) && (f += c), 0 === f && -12 == c && (f = 12), Qc(f, b, d) | |
} | |
} | |
function Sc(a, b) { | |
return function(c, d) { | |
var e = c["get" + a](), | |
f = Ad(b ? "SHORT" + a : a); | |
return d[f][e] | |
} | |
} | |
function Tc(a, b, c) { | |
var d = -1 * c, | |
e = d >= 0 ? "+" : ""; | |
return e += Qc(Math[d > 0 ? "floor" : "ceil"](d / 60), 2) + Qc(Math.abs(d % 60), 2) | |
} | |
function Uc(a) { | |
var b = new Date(a, 0, 1).getDay(); | |
return new Date(a, 0, (4 >= b ? 5 : 12) - b) | |
} | |
function Vc(a) { | |
return new Date(a.getFullYear(), a.getMonth(), a.getDate() + (4 - a.getDay())) | |
} | |
function Wc(a) { | |
return function(b) { | |
var c = Uc(b.getFullYear()), | |
d = Vc(b), | |
e = +d - +c, | |
f = 1 + Math.round(e / 6048e5); | |
return Qc(f, a) | |
} | |
} | |
function Xc(a, b) { | |
return a.getHours() < 12 ? b.AMPMS[0] : b.AMPMS[1] | |
} | |
function Yc(a, b) { | |
return a.getFullYear() <= 0 ? b.ERAS[0] : b.ERAS[1] | |
} | |
function Zc(a, b) { | |
return a.getFullYear() <= 0 ? b.ERANAMES[0] : b.ERANAMES[1] | |
} | |
function $c(a) { | |
function b(a) { | |
var b; | |
if (b = a.match(c)) { | |
var d = new Date(0), | |
e = 0, | |
f = 0, | |
g = b[8] ? d.setUTCFullYear : d.setFullYear, | |
h = b[8] ? d.setUTCHours : d.setHours; | |
b[9] && (e = n(b[9] + b[10]), f = n(b[9] + b[11])), g.call(d, n(b[1]), n(b[2]) - 1, n(b[3])); | |
var i = n(b[4] || 0) - e, | |
j = n(b[5] || 0) - f, | |
k = n(b[6] || 0), | |
l = Math.round(1e3 * parseFloat("0." + (b[7] || 0))); | |
return h.call(d, i, j, k, l), d | |
} | |
return a | |
} | |
var c = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/; | |
return function(c, d, e) { | |
var g, h, i = "", | |
j = []; | |
if (d = d || "mediumDate", d = a.DATETIME_FORMATS[d] || d, x(c) && (c = uf.test(c) ? n(c) : b(c)), y(c) && (c = new Date(c)), !z(c) || !isFinite(c.getTime())) return c; | |
for (; d;) h = tf.exec(d), h ? (j = R(j, h, 1), d = j.pop()) : (j.push(d), d = null); | |
var k = c.getTimezoneOffset(); | |
return e && (k = X(e, c.getTimezoneOffset()), c = Z(c, e, !0)), f(j, function(b) { | |
g = sf[b], i += g ? g(c, a.DATETIME_FORMATS, k) : b.replace(/(^'|'$)/g, "").replace(/''/g, "'") | |
}), i | |
} | |
} | |
function _c() { | |
return function(a, b) { | |
return t(b) && (b = 2), V(a, b) | |
} | |
} | |
function ad() { | |
return function(a, b, c) { | |
return b = Math.abs(Number(b)) === 1 / 0 ? Number(b) : n(b), isNaN(b) ? a : (y(a) && (a = a.toString()), Qd(a) || x(a) ? (c = !c || isNaN(c) ? 0 : n(c), c = 0 > c ? Math.max(0, a.length + c) : c, b >= 0 ? a.slice(c, c + b) : 0 === c ? a.slice(b, a.length) : a.slice(Math.max(0, c + b), c)) : a) | |
} | |
} | |
function bd(a) { | |
function b(b, c) { | |
return c = c ? -1 : 1, b.map(function(b) { | |
var d = 1, | |
e = q; | |
if (A(b)) e = b; | |
else if (x(b) && (("+" == b.charAt(0) || "-" == b.charAt(0)) && (d = "-" == b.charAt(0) ? -1 : 1, b = b.substring(1)), "" !== b && (e = a(b), e.constant))) { | |
var f = e(); | |
e = function(a) { | |
return a[f] | |
} | |
} | |
return { | |
get: e, | |
descending: d * c | |
} | |
}) | |
} | |
function c(a) { | |
switch (typeof a) { | |
case "number": | |
case "boolean": | |
case "string": | |
return !0; | |
default: | |
return !1 | |
} | |
} | |
function d(a, b) { | |
return "function" == typeof a.valueOf && (a = a.valueOf(), c(a)) ? a : s(a) && (a = a.toString(), c(a)) ? a : b | |
} | |
function f(a, b) { | |
var c = typeof a; | |
return null === a ? (c = "string", a = "null") : "string" === c ? a = a.toLowerCase() : "object" === c && (a = d(a, b)), { | |
value: a, | |
type: c | |
} | |
} | |
function g(a, b) { | |
var c = 0; | |
return a.type === b.type ? a.value !== b.value && (c = a.value < b.value ? -1 : 1) : c = a.type < b.type ? -1 : 1, c | |
} | |
return function(a, c, d) { | |
function h(a, b) { | |
return { | |
value: a, | |
predicateValues: j.map(function(c) { | |
return f(c.get(a), b) | |
}) | |
} | |
} | |
function i(a, b) { | |
for (var c = 0, d = 0, e = j.length; e > d && !(c = g(a.predicateValues[d], b.predicateValues[d]) * j[d].descending); ++d); | |
return c | |
} | |
if (!e(a)) return a; | |
Qd(c) || (c = [c]), 0 === c.length && (c = ["+"]); | |
var j = b(c, d); | |
j.push({ | |
get: function() { | |
return {} | |
}, | |
descending: d ? -1 : 1 | |
}); | |
var k = Array.prototype.map.call(a, h); | |
return k.sort(i), a = k.map(function(a) { | |
return a.value | |
}) | |
} | |
} | |
function cd(a) { | |
return A(a) && (a = { | |
link: a | |
}), a.restrict = a.restrict || "AC", r(a) | |
} | |
function dd(a, b) { | |
a.$name = b | |
} | |
function ed(a, b, d, e, g) { | |
var h = this, | |
i = []; | |
h.$error = {}, h.$$success = {}, h.$pending = c, h.$name = g(b.name || b.ngForm || "")(d), h.$dirty = !1, h.$pristine = !0, h.$valid = !0, h.$invalid = !1, h.$submitted = !1, h.$$parentForm = zf, h.$rollbackViewValue = function() { | |
f(i, function(a) { | |
a.$rollbackViewValue() | |
}) | |
}, h.$commitViewValue = function() { | |
f(i, function(a) { | |
a.$commitViewValue() | |
}) | |
}, h.$addControl = function(a) { | |
na(a.$name, "input"), i.push(a), a.$name && (h[a.$name] = a), a.$$parentForm = h | |
}, h.$$renameControl = function(a, b) { | |
var c = a.$name; | |
h[c] === a && delete h[c], h[b] = a, a.$name = b | |
}, h.$removeControl = function(a) { | |
a.$name && h[a.$name] === a && delete h[a.$name], f(h.$pending, function(b, c) { | |
h.$setValidity(c, null, a) | |
}), f(h.$error, function(b, c) { | |
h.$setValidity(c, null, a) | |
}), f(h.$$success, function(b, c) { | |
h.$setValidity(c, null, a) | |
}), N(i, a), a.$$parentForm = zf | |
}, td({ | |
ctrl: this, | |
$element: a, | |
set: function(a, b, c) { | |
var d = a[b]; | |
if (d) { | |
var e = d.indexOf(c); - 1 === e && d.push(c) | |
} else a[b] = [c] | |
}, | |
unset: function(a, b, c) { | |
var d = a[b]; | |
d && (N(d, c), 0 === d.length && delete a[b]) | |
}, | |
$animate: e | |
}), h.$setDirty = function() { | |
e.removeClass(a, hg), e.addClass(a, ig), h.$dirty = !0, h.$pristine = !1, h.$$parentForm.$setDirty() | |
}, h.$setPristine = function() { | |
e.setClass(a, hg, ig + " " + Af), h.$dirty = !1, h.$pristine = !0, h.$submitted = !1, f(i, function(a) { | |
a.$setPristine() | |
}) | |
}, h.$setUntouched = function() { | |
f(i, function(a) { | |
a.$setUntouched() | |
}) | |
}, h.$setSubmitted = function() { | |
e.addClass(a, Af), h.$submitted = !0, h.$$parentForm.$setSubmitted() | |
} | |
} | |
function fd(a) { | |
a.$formatters.push(function(b) { | |
return a.$isEmpty(b) ? b : b.toString() | |
}) | |
} | |
function gd(a, b, c, d, e, f) { | |
hd(a, b, c, d, e, f), fd(d) | |
} | |
function hd(a, b, c, d, e, f) { | |
var g = yd(b[0].type); | |
if (!e.android) { | |
var h = !1; | |
b.on("compositionstart", function(a) { | |
h = !0 | |
}), b.on("compositionend", function() { | |
h = !1, i() | |
}) | |
} | |
var i = function(a) { | |
if (j && (f.defer.cancel(j), j = null), !h) { | |
var e = b.val(), | |
i = a && a.type; | |
"password" === g || c.ngTrim && "false" === c.ngTrim || (e = Sd(e)), (d.$viewValue !== e || "" === e && d.$$hasNativeValidators) && d.$setViewValue(e, i) | |
} | |
}; | |
if (e.hasEvent("input")) b.on("input", i); | |
else { | |
var j, k = function(a, b, c) { | |
j || (j = f.defer(function() { | |
j = null, b && b.value === c || i(a) | |
})) | |
}; | |
b.on("keydown", function(a) { | |
var b = a.keyCode; | |
91 === b || b > 15 && 19 > b || b >= 37 && 40 >= b || k(a, this, this.value) | |
}), e.hasEvent("paste") && b.on("paste cut", k) | |
} | |
b.on("change", i), d.$render = function() { | |
var a = d.$isEmpty(d.$viewValue) ? "" : d.$viewValue; | |
b.val() !== a && b.val(a) | |
} | |
} | |
function id(a, b) { | |
if (z(a)) return a; | |
if (x(a)) { | |
Kf.lastIndex = 0; | |
var c = Kf.exec(a); | |
if (c) { | |
var d = +c[1], | |
e = +c[2], | |
f = 0, | |
g = 0, | |
h = 0, | |
i = 0, | |
j = Uc(d), | |
k = 7 * (e - 1); | |
return b && (f = b.getHours(), g = b.getMinutes(), h = b.getSeconds(), i = b.getMilliseconds()), new Date(d, 0, j.getDate() + k, f, g, h, i) | |
} | |
} | |
return NaN | |
} | |
function jd(a, b) { | |
return function(c, d) { | |
var e, g; | |
if (z(c)) return c; | |
if (x(c)) { | |
if ('"' == c.charAt(0) && '"' == c.charAt(c.length - 1) && (c = c.substring(1, c.length - 1)), Ef.test(c)) return new Date(c); | |
if (a.lastIndex = 0, e = a.exec(c)) return e.shift(), g = d ? { | |
yyyy: d.getFullYear(), | |
MM: d.getMonth() + 1, | |
dd: d.getDate(), | |
HH: d.getHours(), | |
mm: d.getMinutes(), | |
ss: d.getSeconds(), | |
sss: d.getMilliseconds() / 1e3 | |
} : { | |
yyyy: 1970, | |
MM: 1, | |
dd: 1, | |
HH: 0, | |
mm: 0, | |
ss: 0, | |
sss: 0 | |
}, f(e, function(a, c) { | |
c < b.length && (g[b[c]] = +a) | |
}), new Date(g.yyyy, g.MM - 1, g.dd, g.HH, g.mm, g.ss || 0, 1e3 * g.sss || 0) | |
} | |
return NaN | |
} | |
} | |
function kd(a, b, d, e) { | |
return function(f, g, h, i, j, k, l) { | |
function m(a) { | |
return a && !(a.getTime && a.getTime() !== a.getTime()) | |
} | |
function n(a) { | |
return u(a) && !z(a) ? d(a) || c : a | |
} | |
ld(f, g, h, i), hd(f, g, h, i, j, k); | |
var o, p = i && i.$options && i.$options.timezone; | |
if (i.$$parserName = a, i.$parsers.push(function(a) { | |
if (i.$isEmpty(a)) return null; | |
if (b.test(a)) { | |
var e = d(a, o); | |
return p && (e = Z(e, p)), e | |
} | |
return c | |
}), i.$formatters.push(function(a) { | |
if (a && !z(a)) throw mg("datefmt", "Expected `{0}` to be a date", a); | |
return m(a) ? (o = a, o && p && (o = Z(o, p, !0)), l("date")(a, e, p)) : (o = null, "") | |
}), u(h.min) || h.ngMin) { | |
var q; | |
i.$validators.min = function(a) { | |
return !m(a) || t(q) || d(a) >= q | |
}, h.$observe("min", function(a) { | |
q = n(a), i.$validate() | |
}) | |
} | |
if (u(h.max) || h.ngMax) { | |
var r; | |
i.$validators.max = function(a) { | |
return !m(a) || t(r) || d(a) <= r | |
}, h.$observe("max", function(a) { | |
r = n(a), i.$validate() | |
}) | |
} | |
} | |
} | |
function ld(a, b, d, e) { | |
var f = b[0], | |
g = e.$$hasNativeValidators = v(f.validity); | |
g && e.$parsers.push(function(a) { | |
var d = b.prop(xd) || {}; | |
return d.badInput && !d.typeMismatch ? c : a | |
}) | |
} | |
function md(a, b, d, e, f, g) { | |
if (ld(a, b, d, e), hd(a, b, d, e, f, g), e.$$parserName = "number", e.$parsers.push(function(a) { | |
return e.$isEmpty(a) ? null : Hf.test(a) ? parseFloat(a) : c | |
}), e.$formatters.push(function(a) { | |
if (!e.$isEmpty(a)) { | |
if (!y(a)) throw mg("numfmt", "Expected `{0}` to be a number", a); | |
a = a.toString() | |
} | |
return a | |
}), u(d.min) || d.ngMin) { | |
var h; | |
e.$validators.min = function(a) { | |
return e.$isEmpty(a) || t(h) || a >= h | |
}, d.$observe("min", function(a) { | |
u(a) && !y(a) && (a = parseFloat(a, 10)), h = y(a) && !isNaN(a) ? a : c, e.$validate() | |
}) | |
} | |
if (u(d.max) || d.ngMax) { | |
var i; | |
e.$validators.max = function(a) { | |
return e.$isEmpty(a) || t(i) || i >= a | |
}, d.$observe("max", function(a) { | |
u(a) && !y(a) && (a = parseFloat(a, 10)), i = y(a) && !isNaN(a) ? a : c, e.$validate() | |
}) | |
} | |
} | |
function nd(a, b, c, d, e, f) { | |
hd(a, b, c, d, e, f), fd(d), d.$$parserName = "url", d.$validators.url = function(a, b) { | |
var c = a || b; | |
return d.$isEmpty(c) || Ff.test(c) | |
} | |
} | |
function od(a, b, c, d, e, f) { | |
hd(a, b, c, d, e, f), fd(d), d.$$parserName = "email", d.$validators.email = function(a, b) { | |
var c = a || b; | |
return d.$isEmpty(c) || Gf.test(c) | |
} | |
} | |
function pd(a, b, c, d) { | |
t(c.name) && b.attr("name", i()); | |
var e = function(a) { | |
b[0].checked && d.$setViewValue(c.value, a && a.type) | |
}; | |
b.on("click", e), d.$render = function() { | |
var a = c.value; | |
b[0].checked = a == d.$viewValue | |
}, c.$observe("value", d.$render) | |
} | |
function qd(a, b, c, d, e) { | |
var f; | |
if (u(d)) { | |
if (f = a(d), !f.constant) throw mg("constexpr", "Expected constant expression for `{0}`, but saw `{1}`.", c, d); | |
return f(b) | |
} | |
return e | |
} | |
function rd(a, b, c, d, e, f, g, h) { | |
var i = qd(h, a, "ngTrueValue", c.ngTrueValue, !0), | |
j = qd(h, a, "ngFalseValue", c.ngFalseValue, !1), | |
k = function(a) { | |
d.$setViewValue(b[0].checked, a && a.type) | |
}; | |
b.on("click", k), d.$render = function() { | |
b[0].checked = d.$viewValue | |
}, d.$isEmpty = function(a) { | |
return a === !1 | |
}, d.$formatters.push(function(a) { | |
return Q(a, i) | |
}), d.$parsers.push(function(a) { | |
return a ? i : j | |
}) | |
} | |
function sd(a, b) { | |
return a = "ngClass" + a, ["$animate", function(c) { | |
function d(a, b) { | |
var c = []; | |
a: for (var d = 0; d < a.length; d++) { | |
for (var e = a[d], f = 0; f < b.length; f++) | |
if (e == b[f]) continue a; | |
c.push(e) | |
} | |
return c | |
} | |
function e(a) { | |
var b = []; | |
return Qd(a) ? (f(a, function(a) { | |
b = b.concat(e(a)) | |
}), b) : x(a) ? a.split(" ") : v(a) ? (f(a, function(a, c) { | |
a && (b = b.concat(c.split(" "))) | |
}), b) : a | |
} | |
return { | |
restrict: "AC", | |
link: function(g, h, i) { | |
function j(a) { | |
var b = l(a, 1); | |
i.$addClass(b) | |
} | |
function k(a) { | |
var b = l(a, -1); | |
i.$removeClass(b) | |
} | |
function l(a, b) { | |
var c = h.data("$classCounts") || qa(), | |
d = []; | |
return f(a, function(a) { | |
(b > 0 || c[a]) && (c[a] = (c[a] || 0) + b, c[a] === +(b > 0) && d.push(a)) | |
}), h.data("$classCounts", c), d.join(" ") | |
} | |
function m(a, b) { | |
var e = d(b, a), | |
f = d(a, b); | |
e = l(e, 1), f = l(f, -1), e && e.length && c.addClass(h, e), f && f.length && c.removeClass(h, f) | |
} | |
function n(a) { | |
if (b === !0 || g.$index % 2 === b) { | |
var c = e(a || []); | |
if (o) { | |
if (!Q(a, o)) { | |
var d = e(o); | |
m(d, c) | |
} | |
} else j(c) | |
} | |
o = P(a) | |
} | |
var o; | |
g.$watch(i[a], n, !0), i.$observe("class", function(b) { | |
n(g.$eval(i[a])) | |
}), "ngClass" !== a && g.$watch("$index", function(c, d) { | |
var f = 1 & c; | |
if (f !== (1 & d)) { | |
var h = e(g.$eval(i[a])); | |
f === b ? j(h) : k(h) | |
} | |
}) | |
} | |
} | |
}] | |
} | |
function td(a) { | |
function b(a, b, i) { | |
t(b) ? d("$pending", a, i) : e("$pending", a, i), H(b) ? b ? (l(h.$error, a, i), k(h.$$success, a, i)) : (k(h.$error, a, i), l(h.$$success, a, i)) : (l(h.$error, a, i), l(h.$$success, a, i)), h.$pending ? (f(lg, !0), h.$valid = h.$invalid = c, g("", null)) : (f(lg, !1), h.$valid = ud(h.$error), h.$invalid = !h.$valid, g("", h.$valid)); | |
var j; | |
j = h.$pending && h.$pending[a] ? c : h.$error[a] ? !1 : h.$$success[a] ? !0 : null, g(a, j), h.$$parentForm.$setValidity(a, j, h) | |
} | |
function d(a, b, c) { | |
h[a] || (h[a] = {}), k(h[a], b, c) | |
} | |
function e(a, b, d) { | |
h[a] && l(h[a], b, d), ud(h[a]) && (h[a] = c) | |
} | |
function f(a, b) { | |
b && !j[a] ? (m.addClass(i, a), j[a] = !0) : !b && j[a] && (m.removeClass(i, a), j[a] = !1) | |
} | |
function g(a, b) { | |
a = a ? "-" + ja(a, "-") : "", f(fg + a, b === !0), f(gg + a, b === !1) | |
} | |
var h = a.ctrl, | |
i = a.$element, | |
j = {}, | |
k = a.set, | |
l = a.unset, | |
m = a.$animate; | |
j[gg] = !(j[fg] = i.hasClass(fg)), h.$setValidity = b | |
} | |
function ud(a) { | |
if (a) | |
for (var b in a) | |
if (a.hasOwnProperty(b)) return !1; | |
return !0 | |
} | |
function vd(a) { | |
a[0].hasAttribute("selected") && (a[0].selected = !0) | |
} | |
var wd = /^\/(.+)\/([a-z]*)$/, | |
xd = "validity", | |
yd = function(a) { | |
return x(a) ? a.toLowerCase() : a | |
}, | |
zd = Object.prototype.hasOwnProperty, | |
Ad = function(a) { | |
return x(a) ? a.toUpperCase() : a | |
}, | |
Bd = function(a) { | |
return x(a) ? a.replace(/[A-Z]/g, function(a) { | |
return String.fromCharCode(32 | a.charCodeAt(0)) | |
}) : a | |
}, | |
Cd = function(a) { | |
return x(a) ? a.replace(/[a-z]/g, function(a) { | |
return String.fromCharCode(-33 & a.charCodeAt(0)) | |
}) : a | |
}; | |
"i" !== "I".toLowerCase() && (yd = Bd, Ad = Cd); | |
var Dd, Ed, Fd, Gd, Hd = [].slice, | |
Id = [].splice, | |
Jd = [].push, | |
Kd = Object.prototype.toString, | |
Ld = Object.getPrototypeOf, | |
Md = d("ng"), | |
Nd = a.angular || (a.angular = {}), | |
Od = 0; | |
Dd = b.documentMode, p.$inject = [], q.$inject = []; | |
var Pd, Qd = Array.isArray, | |
Rd = /^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/, | |
Sd = function(a) { | |
return x(a) ? a.trim() : a | |
}, | |
Td = function(a) { | |
return a.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08") | |
}, | |
Ud = function() { | |
function a() { | |
try { | |
return new Function(""), !1 | |
} catch (a) { | |
return !0 | |
} | |
} | |
if (!u(Ud.rules)) { | |
var c = b.querySelector("[ng-csp]") || b.querySelector("[data-ng-csp]"); | |
if (c) { | |
var d = c.getAttribute("ng-csp") || c.getAttribute("data-ng-csp"); | |
Ud.rules = { | |
noUnsafeEval: !d || -1 !== d.indexOf("no-unsafe-eval"), | |
noInlineStyle: !d || -1 !== d.indexOf("no-inline-style") | |
} | |
} else Ud.rules = { | |
noUnsafeEval: a(), | |
noInlineStyle: !1 | |
} | |
} | |
return Ud.rules | |
}, | |
Vd = function() { | |
if (u(Vd.name_)) return Vd.name_; | |
var a, c, d, e, f = Wd.length; | |
for (c = 0; f > c; ++c) | |
if (d = Wd[c], a = b.querySelector("[" + d.replace(":", "\\:") + "jq]")) { | |
e = a.getAttribute(d + "jq"); | |
break | |
} | |
return Vd.name_ = e | |
}, | |
Wd = ["ng-", "data-ng-", "ng:", "x-ng-"], | |
Xd = /[A-Z]/g, | |
Yd = !1, | |
Zd = 1, | |
$d = 2, | |
_d = 3, | |
ae = 8, | |
be = 9, | |
ce = 11, | |
de = { | |
full: "1.4.9", | |
major: 1, | |
minor: 4, | |
dot: 9, | |
codeName: "implicit-superannuation" | |
}; | |
Ca.expando = "ng339"; | |
var ee = Ca.cache = {}, | |
fe = 1, | |
ge = function(a, b, c) { | |
a.addEventListener(b, c, !1) | |
}, | |
he = function(a, b, c) { | |
a.removeEventListener(b, c, !1) | |
}; | |
Ca._data = function(a) { | |
return this.cache[a[this.expando]] || {} | |
}; | |
var ie = /([\:\-\_]+(.))/g, | |
je = /^moz([A-Z])/, | |
ke = { | |
mouseleave: "mouseout", | |
mouseenter: "mouseover" | |
}, | |
le = d("jqLite"), | |
me = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/, | |
ne = /<|&#?\w+;/, | |
oe = /<([\w:-]+)/, | |
pe = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, | |
qe = { | |
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, "", ""] | |
}; | |
qe.optgroup = qe.option, qe.tbody = qe.tfoot = qe.colgroup = qe.caption = qe.thead, qe.th = qe.td; | |
var re = Node.prototype.contains || function(a) { | |
return !!(16 & this.compareDocumentPosition(a)) | |
}, | |
se = Ca.prototype = { | |
ready: function(c) { | |
function d() { | |
e || (e = !0, c()) | |
} | |
var e = !1; | |
"complete" === b.readyState ? setTimeout(d) : (this.on("DOMContentLoaded", d), Ca(a).on("load", d)) | |
}, | |
toString: function() { | |
var a = []; | |
return f(this, function(b) { | |
a.push("" + b) | |
}), "[" + a.join(", ") + "]" | |
}, | |
eq: function(a) { | |
return Ed(a >= 0 ? this[a] : this[this.length + a]) | |
}, | |
length: 0, | |
push: Jd, | |
sort: [].sort, | |
splice: [].splice | |
}, | |
te = {}; | |
f("multiple,selected,checked,disabled,readOnly,required,open".split(","), function(a) { | |
te[yd(a)] = a | |
}); | |
var ue = {}; | |
f("input,select,option,textarea,button,form,details".split(","), function(a) { | |
ue[a] = !0 | |
}); | |
var ve = { | |
ngMinlength: "minlength", | |
ngMaxlength: "maxlength", | |
ngMin: "min", | |
ngMax: "max", | |
ngPattern: "pattern" | |
}; | |
f({ | |
data: Ia, | |
removeData: Ga, | |
hasData: za | |
}, function(a, b) { | |
Ca[b] = a | |
}), f({ | |
data: Ia, | |
inheritedData: Oa, | |
scope: function(a) { | |
return Ed.data(a, "$scope") || Oa(a.parentNode || a, ["$isolateScope", "$scope"]) | |
}, | |
isolateScope: function(a) { | |
return Ed.data(a, "$isolateScope") || Ed.data(a, "$isolateScopeNoTemplate") | |
}, | |
controller: Na, | |
injector: function(a) { | |
return Oa(a, "$injector") | |
}, | |
removeAttr: function(a, b) { | |
a.removeAttribute(b) | |
}, | |
hasClass: Ja, | |
css: function(a, b, c) { | |
return b = wa(b), u(c) ? void(a.style[b] = c) : a.style[b] | |
}, | |
attr: function(a, b, d) { | |
var e = a.nodeType; | |
if (e !== _d && e !== $d && e !== ae) { | |
var f = yd(b); | |
if (te[f]) { | |
if (!u(d)) return a[b] || (a.attributes.getNamedItem(b) || p).specified ? f : c; | |
d ? (a[b] = !0, a.setAttribute(b, f)) : (a[b] = !1, a.removeAttribute(f)) | |
} else if (u(d)) a.setAttribute(b, d); | |
else if (a.getAttribute) { | |
var g = a.getAttribute(b, 2); | |
return null === g ? c : g | |
} | |
} | |
}, | |
prop: function(a, b, c) { | |
return u(c) ? void(a[b] = c) : a[b] | |
}, | |
text: function() { | |
function a(a, b) { | |
if (t(b)) { | |
var c = a.nodeType; | |
return c === Zd || c === _d ? a.textContent : "" | |
} | |
a.textContent = b | |
} | |
return a.$dv = "", a | |
}(), | |
val: function(a, b) { | |
if (t(b)) { | |
if (a.multiple && "select" === M(a)) { | |
var c = []; | |
return f(a.options, function(a) { | |
a.selected && c.push(a.value || a.text) | |
}), 0 === c.length ? null : c | |
} | |
return a.value | |
} | |
a.value = b | |
}, | |
html: function(a, b) { | |
return t(b) ? a.innerHTML : (Ea(a, !0), void(a.innerHTML = b)) | |
}, | |
empty: Pa | |
}, function(a, b) { | |
Ca.prototype[b] = function(b, c) { | |
var d, e, f = this.length; | |
if (a !== Pa && t(2 == a.length && a !== Ja && a !== Na ? b : c)) { | |
if (v(b)) { | |
for (d = 0; f > d; d++) | |
if (a === Ia) a(this[d], b); | |
else | |
for (e in b) a(this[d], e, b[e]); | |
return this | |
} | |
for (var g = a.$dv, h = t(g) ? Math.min(f, 1) : f, i = 0; h > i; i++) { | |
var j = a(this[i], b, c); | |
g = g ? g + j : j | |
} | |
return g | |
} | |
for (d = 0; f > d; d++) a(this[d], b, c); | |
return this | |
} | |
}), f({ | |
removeData: Ga, | |
on: function(a, b, d, e) { | |
if (u(e)) throw le("onargs", "jqLite#on() does not support the `selector` or `eventData` parameters"); | |
if (ya(a)) { | |
var f = Ha(a, !0), | |
g = f.events, | |
h = f.handle; | |
h || (h = f.handle = Ua(a, g)); | |
for (var i = b.indexOf(" ") >= 0 ? b.split(" ") : [b], j = i.length, k = function(b, c, e) { | |
var f = g[b]; | |
f || (f = g[b] = [], f.specialHandlerWrapper = c, "$destroy" === b || e || ge(a, b, h)), f.push(d) | |
}; j--;) b = i[j], ke[b] ? (k(ke[b], Wa), k(b, c, !0)) : k(b) | |
} | |
}, | |
off: Fa, | |
one: function(a, b, c) { | |
a = Ed(a), a.on(b, function d() { | |
a.off(b, c), a.off(b, d) | |
}), a.on(b, c) | |
}, | |
replaceWith: function(a, b) { | |
var c, d = a.parentNode; | |
Ea(a), f(new Ca(b), function(b) { | |
c ? d.insertBefore(b, c.nextSibling) : d.replaceChild(b, a), c = b | |
}) | |
}, | |
children: function(a) { | |
var b = []; | |
return f(a.childNodes, function(a) { | |
a.nodeType === Zd && b.push(a) | |
}), b | |
}, | |
contents: function(a) { | |
return a.contentDocument || a.childNodes || [] | |
}, | |
append: function(a, b) { | |
var c = a.nodeType; | |
if (c === Zd || c === ce) { | |
b = new Ca(b); | |
for (var d = 0, e = b.length; e > d; d++) { | |
var f = b[d]; | |
a.appendChild(f) | |
} | |
} | |
}, | |
prepend: function(a, b) { | |
if (a.nodeType === Zd) { | |
var c = a.firstChild; | |
f(new Ca(b), function(b) { | |
a.insertBefore(b, c) | |
}) | |
} | |
}, | |
wrap: function(a, b) { | |
b = Ed(b).eq(0).clone()[0]; | |
var c = a.parentNode; | |
c && c.replaceChild(b, a), b.appendChild(a) | |
}, | |
remove: Qa, | |
detach: function(a) { | |
Qa(a, !0) | |
}, | |
after: function(a, b) { | |
var c = a, | |
d = a.parentNode; | |
b = new Ca(b); | |
for (var e = 0, f = b.length; f > e; e++) { | |
var g = b[e]; | |
d.insertBefore(g, c.nextSibling), c = g | |
} | |
}, | |
addClass: La, | |
removeClass: Ka, | |
toggleClass: function(a, b, c) { | |
b && f(b.split(" "), function(b) { | |
var d = c; | |
t(d) && (d = !Ja(a, b)), (d ? La : Ka)(a, b) | |
}) | |
}, | |
parent: function(a) { | |
var b = a.parentNode; | |
return b && b.nodeType !== ce ? b : null | |
}, | |
next: function(a) { | |
return a.nextElementSibling | |
}, | |
find: function(a, b) { | |
return a.getElementsByTagName ? a.getElementsByTagName(b) : [] | |
}, | |
clone: Da, | |
triggerHandler: function(a, b, c) { | |
var d, e, g, h = b.type || b, | |
i = Ha(a), | |
j = i && i.events, | |
k = j && j[h]; | |
k && (d = { | |
preventDefault: function() { | |
this.defaultPrevented = !0 | |
}, | |
isDefaultPrevented: function() { | |
return this.defaultPrevented === !0 | |
}, | |
stopImmediatePropagation: function() { | |
this.immediatePropagationStopped = !0 | |
}, | |
isImmediatePropagationStopped: function() { | |
return this.immediatePropagationStopped === !0 | |
}, | |
stopPropagation: p, | |
type: h, | |
target: a | |
}, b.type && (d = l(d, b)), e = P(k), g = c ? [d].concat(c) : [d], f(e, function(b) { | |
d.isImmediatePropagationStopped() || b.apply(a, g) | |
})) | |
} | |
}, function(a, b) { | |
Ca.prototype[b] = function(b, c, d) { | |
for (var e, f = 0, g = this.length; g > f; f++) t(e) ? (e = a(this[f], b, c, d), u(e) && (e = Ed(e))) : Ma(e, a(this[f], b, c, d)); | |
return u(e) ? e : this | |
}, Ca.prototype.bind = Ca.prototype.on, Ca.prototype.unbind = Ca.prototype.off | |
}), Za.prototype = { | |
put: function(a, b) { | |
this[Ya(a, this.nextUid)] = b | |
}, | |
get: function(a) { | |
return this[Ya(a, this.nextUid)] | |
}, | |
remove: function(a) { | |
var b = this[a = Ya(a, this.nextUid)]; | |
return delete this[a], b | |
} | |
}; | |
var we = [function() { | |
this.$get = [function() { | |
return Za | |
}] | |
}], | |
xe = /^[^\(]*\(\s*([^\)]*)\)/m, | |
ye = /,/, | |
ze = /^\s*(_?)(\S+?)\1\s*$/, | |
Ae = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm, | |
Be = d("$injector"); | |
ab.$$annotate = _a; | |
var Ce = d("$animate"), | |
De = 1, | |
Ee = "ng-animate", | |
Fe = function() { | |
this.$get = function() {} | |
}, | |
Ge = function() { | |
var a = new Za, | |
b = []; | |
this.$get = ["$$AnimateRunner", "$rootScope", function(c, d) { | |
function e(a, b, c) { | |
var d = !1; | |
return b && (b = x(b) ? b.split(" ") : Qd(b) ? b : [], f(b, function(b) { | |
b && (d = !0, a[b] = c) | |
})), d | |
} | |
function g() { | |
f(b, function(b) { | |
var c = a.get(b); | |
if (c) { | |
var d = eb(b.attr("class")), | |
e = "", | |
g = ""; | |
f(c, function(a, b) { | |
var c = !!d[b]; | |
a !== c && (a ? e += (e.length ? " " : "") + b : g += (g.length ? " " : "") + b) | |
}), f(b, function(a) { | |
e && La(a, e), g && Ka(a, g) | |
}), a.remove(b) | |
} | |
}), b.length = 0 | |
} | |
function h(c, f, h) { | |
var i = a.get(c) || {}, | |
j = e(i, f, !0), | |
k = e(i, h, !1); | |
(j || k) && (a.put(c, i), b.push(c), 1 === b.length && d.$$postDigest(g)) | |
} | |
return { | |
enabled: p, | |
on: p, | |
off: p, | |
pin: p, | |
push: function(a, b, d, e) { | |
e && e(), d = d || {}, d.from && a.css(d.from), d.to && a.css(d.to), (d.addClass || d.removeClass) && h(a, d.addClass, d.removeClass); | |
var f = new c; | |
return f.complete(), f | |
} | |
} | |
}] | |
}, | |
He = ["$provide", function(a) { | |
var b = this; | |
this.$$registeredAnimations = Object.create(null), this.register = function(c, d) { | |
if (c && "." !== c.charAt(0)) throw Ce("notcsel", "Expecting class selector starting with '.' got '{0}'.", c); | |
var e = c + "-animation"; | |
b.$$registeredAnimations[c.substr(1)] = e, a.factory(e, d) | |
}, this.classNameFilter = function(a) { | |
if (1 === arguments.length && (this.$$classNameFilter = a instanceof RegExp ? a : null, this.$$classNameFilter)) { | |
var b = new RegExp("(\\s+|\\/)" + Ee + "(\\s+|\\/)"); | |
if (b.test(this.$$classNameFilter.toString())) throw Ce("nongcls", '$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.', Ee) | |
} | |
return this.$$classNameFilter | |
}, this.$get = ["$$animateQueue", function(a) { | |
function b(a, b, c) { | |
if (c) { | |
var d = db(c); | |
!d || d.parentNode || d.previousElementSibling || (c = null) | |
} | |
c ? c.after(a) : b.prepend(a) | |
} | |
return { | |
on: a.on, | |
off: a.off, | |
pin: a.pin, | |
enabled: a.enabled, | |
cancel: function(a) { | |
a.end && a.end() | |
}, | |
enter: function(c, d, e, f) { | |
return d = d && Ed(d), e = e && Ed(e), d = d || e.parent(), b(c, d, e), a.push(c, "enter", fb(f)) | |
}, | |
move: function(c, d, e, f) { | |
return d = d && Ed(d), e = e && Ed(e), d = d || e.parent(), b(c, d, e), a.push(c, "move", fb(f)) | |
}, | |
leave: function(b, c) { | |
return a.push(b, "leave", fb(c), function() { | |
b.remove() | |
}) | |
}, | |
addClass: function(b, c, d) { | |
return d = fb(d), d.addClass = cb(d.addclass, c), a.push(b, "addClass", d) | |
}, | |
removeClass: function(b, c, d) { | |
return d = fb(d), d.removeClass = cb(d.removeClass, c), a.push(b, "removeClass", d) | |
}, | |
setClass: function(b, c, d, e) { | |
return e = fb(e), e.addClass = cb(e.addClass, c), e.removeClass = cb(e.removeClass, d), a.push(b, "setClass", e) | |
}, | |
animate: function(b, c, d, e, f) { | |
return f = fb(f), f.from = f.from ? l(f.from, c) : c, f.to = f.to ? l(f.to, d) : d, e = e || "ng-inline-animate", f.tempClasses = cb(f.tempClasses, e), a.push(b, "animate", f) | |
} | |
} | |
}] | |
}], | |
Ie = function() { | |
this.$get = ["$$rAF", function(a) { | |
function b(b) { | |
c.push(b), c.length > 1 || a(function() { | |
for (var a = 0; a < c.length; a++) c[a](); | |
c = [] | |
}) | |
} | |
var c = []; | |
return function() { | |
var a = !1; | |
return b(function() { | |
a = !0 | |
}), | |
function(c) { | |
a ? c() : b(c) | |
} | |
} | |
}] | |
}, | |
Je = function() { | |
this.$get = ["$q", "$sniffer", "$$animateAsyncRun", "$document", "$timeout", function(a, b, c, d, e) { | |
function g(a) { | |
this.setHost(a); | |
var b = c(), | |
f = function(a) { | |
e(a, 0, !1) | |
}; | |
this._doneCallbacks = [], this._tick = function(a) { | |
var c = d[0]; | |
c && c.hidden ? f(a) : b(a) | |
}, this._state = 0 | |
} | |
var h = 0, | |
i = 1, | |
j = 2; | |
return g.chain = function(a, b) { | |
function c() { | |
return d === a.length ? void b(!0) : void a[d](function(a) { | |
return a === !1 ? void b(!1) : (d++, void c()) | |
}) | |
} | |
var d = 0; | |
c() | |
}, g.all = function(a, b) { | |
function c(c) { | |
e = e && c, ++d === a.length && b(e) | |
} | |
var d = 0, | |
e = !0; | |
f(a, function(a) { | |
a.done(c) | |
}) | |
}, g.prototype = { | |
setHost: function(a) { | |
this.host = a || {} | |
}, | |
done: function(a) { | |
this._state === j ? a() : this._doneCallbacks.push(a) | |
}, | |
progress: p, | |
getPromise: function() { | |
if (!this.promise) { | |
var b = this; | |
this.promise = a(function(a, c) { | |
b.done(function(b) { | |
b === !1 ? c() : a() | |
}) | |
}) | |
} | |
return this.promise | |
}, | |
then: function(a, b) { | |
return this.getPromise().then(a, b) | |
}, | |
"catch": function(a) { | |
return this.getPromise()["catch"](a) | |
}, | |
"finally": function(a) { | |
return this.getPromise()["finally"](a) | |
}, | |
pause: function() { | |
this.host.pause && this.host.pause() | |
}, | |
resume: function() { | |
this.host.resume && this.host.resume() | |
}, | |
end: function() { | |
this.host.end && this.host.end(), this._resolve(!0) | |
}, | |
cancel: function() { | |
this.host.cancel && this.host.cancel(), this._resolve(!1) | |
}, | |
complete: function(a) { | |
var b = this; | |
b._state === h && (b._state = i, b._tick(function() { | |
b._resolve(a) | |
})) | |
}, | |
_resolve: function(a) { | |
this._state !== j && (f(this._doneCallbacks, function(b) { | |
b(a) | |
}), this._doneCallbacks.length = 0, this._state = j) | |
} | |
}, g | |
}] | |
}, | |
Ke = function() { | |
this.$get = ["$$rAF", "$q", "$$AnimateRunner", function(a, b, c) { | |
return function(b, d) { | |
function e() { | |
return a(function() { | |
f(), h || i.complete(), h = !0 | |
}), i | |
} | |
function f() { | |
g.addClass && (b.addClass(g.addClass), g.addClass = null), g.removeClass && (b.removeClass(g.removeClass), g.removeClass = null), g.to && (b.css(g.to), g.to = null) | |
} | |
var g = d || {}; | |
g.$$prepared || (g = O(g)), g.cleanupStyles && (g.from = g.to = null), g.from && (b.css(g.from), g.from = null); | |
var h, i = new c; | |
return { | |
start: e, | |
end: e | |
} | |
} | |
}] | |
}, | |
Le = d("$compile"); | |
kb.$inject = ["$provide", "$$sanitizeUriProvider"]; | |
var Me = /^((?:x|data)[\:\-_])/i, | |
Ne = d("$controller"), | |
Oe = /^(\S+)(\s+as\s+([\w$]+))?$/, | |
Pe = function() { | |
this.$get = ["$document", function(a) { | |
return function(b) { | |
return b ? !b.nodeType && b instanceof Ed && (b = b[0]) : b = a[0].body, b.offsetWidth + 1 | |
} | |
}] | |
}, | |
Qe = "application/json", | |
Re = { | |
"Content-Type": Qe + ";charset=utf-8" | |
}, | |
Se = /^\[|^\{(?!\{)/, | |
Te = { | |
"[": /]$/, | |
"{": /}$/ | |
}, | |
Ue = /^\)\]\}',?\n/, | |
Ve = d("$http"), | |
We = function(a) { | |
return function() { | |
throw Ve("legacy", "The method `{0}` on the promise returned from `$http` has been disabled.", a) | |
} | |
}, | |
Xe = Nd.$interpolateMinErr = d("$interpolate"); | |
Xe.throwNoconcat = function(a) { | |
throw Xe("noconcat", "Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce", a) | |
}, Xe.interr = function(a, b) { | |
return Xe("interr", "Can't interpolate: {0}\n{1}", a, b.toString()) | |
}; | |
var Ye = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/, | |
Ze = { | |
http: 80, | |
https: 443, | |
ftp: 21 | |
}, | |
$e = d("$location"), | |
_e = { | |
$$html5: !1, | |
$$replace: !1, | |
absUrl: Sb("$$absUrl"), | |
url: function(a) { | |
if (t(a)) return this.$$url; | |
var b = Ye.exec(a); | |
return (b[1] || "" === a) && this.path(decodeURIComponent(b[1])), (b[2] || b[1] || "" === a) && this.search(b[3] || ""), this.hash(b[5] || ""), this | |
}, | |
protocol: Sb("$$protocol"), | |
host: Sb("$$host"), | |
port: Sb("$$port"), | |
path: Tb("$$path", function(a) { | |
return a = null !== a ? a.toString() : "", "/" == a.charAt(0) ? a : "/" + a | |
}), | |
search: function(a, b) { | |
switch (arguments.length) { | |
case 0: | |
return this.$$search; | |
case 1: | |
if (x(a) || y(a)) a = a.toString(), this.$$search = aa(a); | |
else { | |
if (!v(a)) throw $e("isrcharg", "The first argument of the `$location#search()` call must be a string or an object."); | |
a = O(a, {}), f(a, function(b, c) { | |
null == b && delete a[c] | |
}), this.$$search = a | |
} | |
break; | |
default: | |
t(b) || null === b ? delete this.$$search[a] : this.$$search[a] = b | |
} | |
return this.$$compose(), this | |
}, | |
hash: Tb("$$hash", function(a) { | |
return null !== a ? a.toString() : "" | |
}), | |
replace: function() { | |
return this.$$replace = !0, this | |
} | |
}; | |
f([Rb, Qb, Pb], function(a) { | |
a.prototype = Object.create(_e), a.prototype.state = function(b) { | |
if (!arguments.length) return this.$$state; | |
if (a !== Pb || !this.$$html5) throw $e("nostate", "History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API"); | |
return this.$$state = t(b) ? null : b, this | |
} | |
}); | |
var af = d("$parse"), | |
bf = Function.prototype.call, | |
cf = Function.prototype.apply, | |
df = Function.prototype.bind, | |
ef = qa(); | |
f("+ - * / % === !== == != < > <= >= && || ! = |".split(" "), function(a) { | |
ef[a] = !0 | |
}); | |
var ff = { | |
n: "\n", | |
f: "\f", | |
r: "\r", | |
t: " ", | |
v: "", | |
"'": "'", | |
'"': '"' | |
}, | |
gf = function(a) { | |
this.options = a | |
}; | |
gf.prototype = { | |
constructor: gf, | |
lex: function(a) { | |
for (this.text = a, this.index = 0, this.tokens = []; this.index < this.text.length;) { | |
var b = this.text.charAt(this.index); | |
if ('"' === b || "'" === b) this.readString(b); | |
else if (this.isNumber(b) || "." === b && this.isNumber(this.peek())) this.readNumber(); | |
else if (this.isIdent(b)) this.readIdent(); | |
else if (this.is(b, "(){}[].,;:?")) this.tokens.push({ | |
index: this.index, | |
text: b | |
}), this.index++; | |
else if (this.isWhitespace(b)) this.index++; | |
else { | |
var c = b + this.peek(), | |
d = c + this.peek(2), | |
e = ef[b], | |
f = ef[c], | |
g = ef[d]; | |
if (e || f || g) { | |
var h = g ? d : f ? c : b; | |
this.tokens.push({ | |
index: this.index, | |
text: h, | |
operator: !0 | |
}), this.index += h.length | |
} else this.throwError("Unexpected next character ", this.index, this.index + 1) | |
} | |
} | |
return this.tokens | |
}, | |
is: function(a, b) { | |
return -1 !== b.indexOf(a) | |
}, | |
peek: function(a) { | |
var b = a || 1; | |
return this.index + b < this.text.length ? this.text.charAt(this.index + b) : !1 | |
}, | |
isNumber: function(a) { | |
return a >= "0" && "9" >= a && "string" == typeof a | |
}, | |
isWhitespace: function(a) { | |
return " " === a || "\r" === a || " " === a || "\n" === a || "" === a || " " === a | |
}, | |
isIdent: function(a) { | |
return a >= "a" && "z" >= a || a >= "A" && "Z" >= a || "_" === a || "$" === a | |
}, | |
isExpOperator: function(a) { | |
return "-" === a || "+" === a || this.isNumber(a) | |
}, | |
throwError: function(a, b, c) { | |
c = c || this.index; | |
var d = u(b) ? "s " + b + "-" + this.index + " [" + this.text.substring(b, c) + "]" : " " + c; | |
throw af("lexerr", "Lexer Error: {0} at column{1} in expression [{2}].", a, d, this.text) | |
}, | |
readNumber: function() { | |
for (var a = "", b = this.index; this.index < this.text.length;) { | |
var c = yd(this.text.charAt(this.index)); | |
if ("." == c || this.isNumber(c)) a += c; | |
else { | |
var d = this.peek(); | |
if ("e" == c && this.isExpOperator(d)) a += c; | |
else if (this.isExpOperator(c) && d && this.isNumber(d) && "e" == a.charAt(a.length - 1)) a += c; | |
else { | |
if (!this.isExpOperator(c) || d && this.isNumber(d) || "e" != a.charAt(a.length - 1)) break; | |
this.throwError("Invalid exponent") | |
} | |
} | |
this.index++ | |
} | |
this.tokens.push({ | |
index: b, | |
text: a, | |
constant: !0, | |
value: Number(a) | |
}) | |
}, | |
readIdent: function() { | |
for (var a = this.index; this.index < this.text.length;) { | |
var b = this.text.charAt(this.index); | |
if (!this.isIdent(b) && !this.isNumber(b)) break; | |
this.index++ | |
} | |
this.tokens.push({ | |
index: a, | |
text: this.text.slice(a, this.index), | |
identifier: !0 | |
}) | |
}, | |
readString: function(a) { | |
var b = this.index; | |
this.index++; | |
for (var c = "", d = a, e = !1; this.index < this.text.length;) { | |
var f = this.text.charAt(this.index); | |
if (d += f, e) { | |
if ("u" === f) { | |
var g = this.text.substring(this.index + 1, this.index + 5); | |
g.match(/[\da-f]{4}/i) || this.throwError("Invalid unicode escape [\\u" + g + "]"), this.index += 4, c += String.fromCharCode(parseInt(g, 16)) | |
} else { | |
var h = ff[f]; | |
c += h || f | |
} | |
e = !1 | |
} else if ("\\" === f) e = !0; | |
else { | |
if (f === a) return this.index++, void this.tokens.push({ | |
index: b, | |
text: d, | |
constant: !0, | |
value: c | |
}); | |
c += f | |
} | |
this.index++ | |
} | |
this.throwError("Unterminated quote", b) | |
} | |
}; | |
var hf = function(a, b) { | |
this.lexer = a, this.options = b | |
}; | |
hf.Program = "Program", hf.ExpressionStatement = "ExpressionStatement", hf.AssignmentExpression = "AssignmentExpression", hf.ConditionalExpression = "ConditionalExpression", hf.LogicalExpression = "LogicalExpression", hf.BinaryExpression = "BinaryExpression", hf.UnaryExpression = "UnaryExpression", hf.CallExpression = "CallExpression", hf.MemberExpression = "MemberExpression", hf.Identifier = "Identifier", hf.Literal = "Literal", hf.ArrayExpression = "ArrayExpression", hf.Property = "Property", hf.ObjectExpression = "ObjectExpression", hf.ThisExpression = "ThisExpression", hf.NGValueParameter = "NGValueParameter", hf.prototype = { | |
ast: function(a) { | |
this.text = a, this.tokens = this.lexer.lex(a); | |
var b = this.program(); | |
return 0 !== this.tokens.length && this.throwError("is an unexpected token", this.tokens[0]), b | |
}, | |
program: function() { | |
for (var a = [];;) | |
if (this.tokens.length > 0 && !this.peek("}", ")", ";", "]") && a.push(this.expressionStatement()), !this.expect(";")) return { | |
type: hf.Program, | |
body: a | |
} | |
}, | |
expressionStatement: function() { | |
return { | |
type: hf.ExpressionStatement, | |
expression: this.filterChain() | |
} | |
}, | |
filterChain: function() { | |
for (var a, b = this.expression(); a = this.expect("|");) b = this.filter(b); | |
return b | |
}, | |
expression: function() { | |
return this.assignment() | |
}, | |
assignment: function() { | |
var a = this.ternary(); | |
return this.expect("=") && (a = { | |
type: hf.AssignmentExpression, | |
left: a, | |
right: this.assignment(), | |
operator: "=" | |
}), a | |
}, | |
ternary: function() { | |
var a, b, c = this.logicalOR(); | |
return this.expect("?") && (a = this.expression(), this.consume(":")) ? (b = this.expression(), { | |
type: hf.ConditionalExpression, | |
test: c, | |
alternate: a, | |
consequent: b | |
}) : c | |
}, | |
logicalOR: function() { | |
for (var a = this.logicalAND(); this.expect("||");) a = { | |
type: hf.LogicalExpression, | |
operator: "||", | |
left: a, | |
right: this.logicalAND() | |
}; | |
return a | |
}, | |
logicalAND: function() { | |
for (var a = this.equality(); this.expect("&&");) a = { | |
type: hf.LogicalExpression, | |
operator: "&&", | |
left: a, | |
right: this.equality() | |
}; | |
return a | |
}, | |
equality: function() { | |
for (var a, b = this.relational(); a = this.expect("==", "!=", "===", "!==");) b = { | |
type: hf.BinaryExpression, | |
operator: a.text, | |
left: b, | |
right: this.relational() | |
}; | |
return b | |
}, | |
relational: function() { | |
for (var a, b = this.additive(); a = this.expect("<", ">", "<=", ">=");) b = { | |
type: hf.BinaryExpression, | |
operator: a.text, | |
left: b, | |
right: this.additive() | |
}; | |
return b | |
}, | |
additive: function() { | |
for (var a, b = this.multiplicative(); a = this.expect("+", "-");) b = { | |
type: hf.BinaryExpression, | |
operator: a.text, | |
left: b, | |
right: this.multiplicative() | |
}; | |
return b | |
}, | |
multiplicative: function() { | |
for (var a, b = this.unary(); a = this.expect("*", "/", "%");) b = { | |
type: hf.BinaryExpression, | |
operator: a.text, | |
left: b, | |
right: this.unary() | |
}; | |
return b | |
}, | |
unary: function() { | |
var a; | |
return (a = this.expect("+", "-", "!")) ? { | |
type: hf.UnaryExpression, | |
operator: a.text, | |
prefix: !0, | |
argument: this.unary() | |
} : this.primary() | |
}, | |
primary: function() { | |
var a; | |
this.expect("(") ? (a = this.filterChain(), this.consume(")")) : this.expect("[") ? a = this.arrayDeclaration() : this.expect("{") ? a = this.object() : this.constants.hasOwnProperty(this.peek().text) ? a = O(this.constants[this.consume().text]) : this.peek().identifier ? a = this.identifier() : this.peek().constant ? a = this.constant() : this.throwError("not a primary expression", this.peek()); | |
for (var b; b = this.expect("(", "[", ".");) "(" === b.text ? (a = { | |
type: hf.CallExpression, | |
callee: a, | |
arguments: this.parseArguments() | |
}, this.consume(")")) : "[" === b.text ? (a = { | |
type: hf.MemberExpression, | |
object: a, | |
property: this.expression(), | |
computed: !0 | |
}, this.consume("]")) : "." === b.text ? a = { | |
type: hf.MemberExpression, | |
object: a, | |
property: this.identifier(), | |
computed: !1 | |
} : this.throwError("IMPOSSIBLE"); | |
return a | |
}, | |
filter: function(a) { | |
for (var b = [a], c = { | |
type: hf.CallExpression, | |
callee: this.identifier(), | |
arguments: b, | |
filter: !0 | |
}; this.expect(":");) b.push(this.expression()); | |
return c | |
}, | |
parseArguments: function() { | |
var a = []; | |
if (")" !== this.peekToken().text) | |
do a.push(this.expression()); while (this.expect(",")); | |
return a | |
}, | |
identifier: function() { | |
var a = this.consume(); | |
return a.identifier || this.throwError("is not a valid identifier", a), { | |
type: hf.Identifier, | |
name: a.text | |
} | |
}, | |
constant: function() { | |
return { | |
type: hf.Literal, | |
value: this.consume().value | |
} | |
}, | |
arrayDeclaration: function() { | |
var a = []; | |
if ("]" !== this.peekToken().text) | |
do { | |
if (this.peek("]")) break; | |
a.push(this.expression()) | |
} while (this.expect(",")); | |
return this.consume("]"), { | |
type: hf.ArrayExpression, | |
elements: a | |
} | |
}, | |
object: function() { | |
var a, b = []; | |
if ("}" !== this.peekToken().text) | |
do { | |
if (this.peek("}")) break; | |
a = { | |
type: hf.Property, | |
kind: "init" | |
}, this.peek().constant ? a.key = this.constant() : this.peek().identifier ? a.key = this.identifier() : this.throwError("invalid key", this.peek()), this.consume(":"), a.value = this.expression(), b.push(a) | |
} while (this.expect(",")); | |
return this.consume("}"), { | |
type: hf.ObjectExpression, | |
properties: b | |
} | |
}, | |
throwError: function(a, b) { | |
throw af("syntax", "Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].", b.text, a, b.index + 1, this.text, this.text.substring(b.index)) | |
}, | |
consume: function(a) { | |
if (0 === this.tokens.length) throw af("ueoe", "Unexpected end of expression: {0}", this.text); | |
var b = this.expect(a); | |
return b || this.throwError("is unexpected, expecting [" + a + "]", this.peek()), b | |
}, | |
peekToken: function() { | |
if (0 === this.tokens.length) throw af("ueoe", "Unexpected end of expression: {0}", this.text); | |
return this.tokens[0] | |
}, | |
peek: function(a, b, c, d) { | |
return this.peekAhead(0, a, b, c, d) | |
}, | |
peekAhead: function(a, b, c, d, e) { | |
if (this.tokens.length > a) { | |
var f = this.tokens[a], | |
g = f.text; | |
if (g === b || g === c || g === d || g === e || !b && !c && !d && !e) return f | |
} | |
return !1 | |
}, | |
expect: function(a, b, c, d) { | |
var e = this.peek(a, b, c, d); | |
return e ? (this.tokens.shift(), e) : !1 | |
}, | |
constants: { | |
"true": { | |
type: hf.Literal, | |
value: !0 | |
}, | |
"false": { | |
type: hf.Literal, | |
value: !1 | |
}, | |
"null": { | |
type: hf.Literal, | |
value: null | |
}, | |
undefined: { | |
type: hf.Literal, | |
value: c | |
}, | |
"this": { | |
type: hf.ThisExpression | |
} | |
} | |
}, ic.prototype = { | |
compile: function(a, b) { | |
var d = this, | |
e = this.astBuilder.ast(a); | |
this.state = { | |
nextId: 0, | |
filters: {}, | |
expensiveChecks: b, | |
fn: { | |
vars: [], | |
body: [], | |
own: {} | |
}, | |
assign: { | |
vars: [], | |
body: [], | |
own: {} | |
}, | |
inputs: [] | |
}, cc(e, d.$filter); | |
var g, h = ""; | |
if (this.stage = "assign", g = fc(e)) { | |
this.state.computing = "assign"; | |
var i = this.nextId(); | |
this.recurse(g, i), this.return_(i), h = "fn.assign=" + this.generateFunction("assign", "s,v,l") | |
} | |
var j = dc(e.body); | |
d.stage = "inputs", f(j, function(a, b) { | |
var c = "fn" + b; | |
d.state[c] = { | |
vars: [], | |
body: [], | |
own: {} | |
}, d.state.computing = c; | |
var e = d.nextId(); | |
d.recurse(a, e), d.return_(e), d.state.inputs.push(c), a.watchId = b | |
}), this.state.computing = "fn", this.stage = "main", this.recurse(e); | |
var k = '"' + this.USE + " " + this.STRICT + '";\n' + this.filterPrefix() + "var fn=" + this.generateFunction("fn", "s,l,a,i") + h + this.watchFns() + "return fn;", | |
l = new Function("$filter", "ensureSafeMemberName", "ensureSafeObject", "ensureSafeFunction", "getStringValue", "ensureSafeAssignContext", "ifDefined", "plus", "text", k)(this.$filter, Wb, Yb, Zb, Xb, $b, _b, ac, a); | |
return this.state = this.stage = c, l.literal = gc(e), l.constant = hc(e), l | |
}, | |
USE: "use", | |
STRICT: "strict", | |
watchFns: function() { | |
var a = [], | |
b = this.state.inputs, | |
c = this; | |
return f(b, function(b) { | |
a.push("var " + b + "=" + c.generateFunction(b, "s")) | |
}), b.length && a.push("fn.inputs=[" + b.join(",") + "];"), a.join("") | |
}, | |
generateFunction: function(a, b) { | |
return "function(" + b + "){" + this.varsPrefix(a) + this.body(a) + "};" | |
}, | |
filterPrefix: function() { | |
var a = [], | |
b = this; | |
return f(this.state.filters, function(c, d) { | |
a.push(c + "=$filter(" + b.escape(d) + ")") | |
}), a.length ? "var " + a.join(",") + ";" : "" | |
}, | |
varsPrefix: function(a) { | |
return this.state[a].vars.length ? "var " + this.state[a].vars.join(",") + ";" : "" | |
}, | |
body: function(a) { | |
return this.state[a].body.join("") | |
}, | |
recurse: function(a, b, d, e, g, h) { | |
var i, j, k, l, m = this; | |
if (e = e || p, !h && u(a.watchId)) return b = b || this.nextId(), void this.if_("i", this.lazyAssign(b, this.computedMember("i", a.watchId)), this.lazyRecurse(a, b, d, e, g, !0)); | |
switch (a.type) { | |
case hf.Program: | |
f(a.body, function(b, d) { | |
m.recurse(b.expression, c, c, function(a) { | |
j = a | |
}), d !== a.body.length - 1 ? m.current().body.push(j, ";") : m.return_(j) | |
}); | |
break; | |
case hf.Literal: | |
l = this.escape(a.value), this.assign(b, l), e(l); | |
break; | |
case hf.UnaryExpression: | |
this.recurse(a.argument, c, c, function(a) { | |
j = a | |
}), l = a.operator + "(" + this.ifDefined(j, 0) + ")", this.assign(b, l), e(l); | |
break; | |
case hf.BinaryExpression: | |
this.recurse(a.left, c, c, function(a) { | |
i = a | |
}), this.recurse(a.right, c, c, function(a) { | |
j = a | |
}), l = "+" === a.operator ? this.plus(i, j) : "-" === a.operator ? this.ifDefined(i, 0) + a.operator + this.ifDefined(j, 0) : "(" + i + ")" + a.operator + "(" + j + ")", this.assign(b, l), e(l); | |
break; | |
case hf.LogicalExpression: | |
b = b || this.nextId(), m.recurse(a.left, b), m.if_("&&" === a.operator ? b : m.not(b), m.lazyRecurse(a.right, b)), e(b); | |
break; | |
case hf.ConditionalExpression: | |
b = b || this.nextId(), m.recurse(a.test, b), m.if_(b, m.lazyRecurse(a.alternate, b), m.lazyRecurse(a.consequent, b)), e(b); | |
break; | |
case hf.Identifier: | |
b = b || this.nextId(), d && (d.context = "inputs" === m.stage ? "s" : this.assign(this.nextId(), this.getHasOwnProperty("l", a.name) + "?l:s"), d.computed = !1, d.name = a.name), Wb(a.name), m.if_("inputs" === m.stage || m.not(m.getHasOwnProperty("l", a.name)), function() { | |
m.if_("inputs" === m.stage || "s", function() { | |
g && 1 !== g && m.if_(m.not(m.nonComputedMember("s", a.name)), m.lazyAssign(m.nonComputedMember("s", a.name), "{}")), m.assign(b, m.nonComputedMember("s", a.name)) | |
}) | |
}, b && m.lazyAssign(b, m.nonComputedMember("l", a.name))), (m.state.expensiveChecks || kc(a.name)) && m.addEnsureSafeObject(b), e(b); | |
break; | |
case hf.MemberExpression: | |
i = d && (d.context = this.nextId()) || this.nextId(), b = b || this.nextId(), m.recurse(a.object, i, c, function() { | |
m.if_(m.notNull(i), function() { | |
a.computed ? (j = m.nextId(), m.recurse(a.property, j), m.getStringValue(j), m.addEnsureSafeMemberName(j), g && 1 !== g && m.if_(m.not(m.computedMember(i, j)), m.lazyAssign(m.computedMember(i, j), "{}")), l = m.ensureSafeObject(m.computedMember(i, j)), m.assign(b, l), d && (d.computed = !0, d.name = j)) : (Wb(a.property.name), g && 1 !== g && m.if_(m.not(m.nonComputedMember(i, a.property.name)), m.lazyAssign(m.nonComputedMember(i, a.property.name), "{}")), l = m.nonComputedMember(i, a.property.name), (m.state.expensiveChecks || kc(a.property.name)) && (l = m.ensureSafeObject(l)), m.assign(b, l), d && (d.computed = !1, d.name = a.property.name)) | |
}, function() { | |
m.assign(b, "undefined") | |
}), e(b) | |
}, !!g); | |
break; | |
case hf.CallExpression: | |
b = b || this.nextId(), a.filter ? (j = m.filter(a.callee.name), k = [], f(a.arguments, function(a) { | |
var b = m.nextId(); | |
m.recurse(a, b), k.push(b) | |
}), l = j + "(" + k.join(",") + ")", m.assign(b, l), e(b)) : (j = m.nextId(), i = {}, k = [], m.recurse(a.callee, j, i, function() { | |
m.if_(m.notNull(j), function() { | |
m.addEnsureSafeFunction(j), f(a.arguments, function(a) { | |
m.recurse(a, m.nextId(), c, function(a) { | |
k.push(m.ensureSafeObject(a)) | |
}) | |
}), i.name ? (m.state.expensiveChecks || m.addEnsureSafeObject(i.context), l = m.member(i.context, i.name, i.computed) + "(" + k.join(",") + ")") : l = j + "(" + k.join(",") + ")", l = m.ensureSafeObject(l), m.assign(b, l) | |
}, function() { | |
m.assign(b, "undefined") | |
}), e(b) | |
})); | |
break; | |
case hf.AssignmentExpression: | |
if (j = this.nextId(), i = {}, !ec(a.left)) throw af("lval", "Trying to assign a value to a non l-value"); | |
this.recurse(a.left, c, i, function() { | |
m.if_(m.notNull(i.context), function() { | |
m.recurse(a.right, j), m.addEnsureSafeObject(m.member(i.context, i.name, i.computed)), m.addEnsureSafeAssignContext(i.context), l = m.member(i.context, i.name, i.computed) + a.operator + j, m.assign(b, l), e(b || l) | |
}) | |
}, 1); | |
break; | |
case hf.ArrayExpression: | |
k = [], f(a.elements, function(a) { | |
m.recurse(a, m.nextId(), c, function(a) { | |
k.push(a) | |
}) | |
}), l = "[" + k.join(",") + "]", this.assign(b, l), e(l); | |
break; | |
case hf.ObjectExpression: | |
k = [], f(a.properties, function(a) { | |
m.recurse(a.value, m.nextId(), c, function(b) { | |
k.push(m.escape(a.key.type === hf.Identifier ? a.key.name : "" + a.key.value) + ":" + b) | |
}) | |
}), l = "{" + k.join(",") + "}", this.assign(b, l), e(l); | |
break; | |
case hf.ThisExpression: | |
this.assign(b, "s"), e("s"); | |
break; | |
case hf.NGValueParameter: | |
this.assign(b, "v"), e("v") | |
} | |
}, | |
getHasOwnProperty: function(a, b) { | |
var c = a + "." + b, | |
d = this.current().own; | |
return d.hasOwnProperty(c) || (d[c] = this.nextId(!1, a + "&&(" + this.escape(b) + " in " + a + ")")), | |
d[c] | |
}, | |
assign: function(a, b) { | |
return a ? (this.current().body.push(a, "=", b, ";"), a) : void 0 | |
}, | |
filter: function(a) { | |
return this.state.filters.hasOwnProperty(a) || (this.state.filters[a] = this.nextId(!0)), this.state.filters[a] | |
}, | |
ifDefined: function(a, b) { | |
return "ifDefined(" + a + "," + this.escape(b) + ")" | |
}, | |
plus: function(a, b) { | |
return "plus(" + a + "," + b + ")" | |
}, | |
return_: function(a) { | |
this.current().body.push("return ", a, ";") | |
}, | |
if_: function(a, b, c) { | |
if (a === !0) b(); | |
else { | |
var d = this.current().body; | |
d.push("if(", a, "){"), b(), d.push("}"), c && (d.push("else{"), c(), d.push("}")) | |
} | |
}, | |
not: function(a) { | |
return "!(" + a + ")" | |
}, | |
notNull: function(a) { | |
return a + "!=null" | |
}, | |
nonComputedMember: function(a, b) { | |
return a + "." + b | |
}, | |
computedMember: function(a, b) { | |
return a + "[" + b + "]" | |
}, | |
member: function(a, b, c) { | |
return c ? this.computedMember(a, b) : this.nonComputedMember(a, b) | |
}, | |
addEnsureSafeObject: function(a) { | |
this.current().body.push(this.ensureSafeObject(a), ";") | |
}, | |
addEnsureSafeMemberName: function(a) { | |
this.current().body.push(this.ensureSafeMemberName(a), ";") | |
}, | |
addEnsureSafeFunction: function(a) { | |
this.current().body.push(this.ensureSafeFunction(a), ";") | |
}, | |
addEnsureSafeAssignContext: function(a) { | |
this.current().body.push(this.ensureSafeAssignContext(a), ";") | |
}, | |
ensureSafeObject: function(a) { | |
return "ensureSafeObject(" + a + ",text)" | |
}, | |
ensureSafeMemberName: function(a) { | |
return "ensureSafeMemberName(" + a + ",text)" | |
}, | |
ensureSafeFunction: function(a) { | |
return "ensureSafeFunction(" + a + ",text)" | |
}, | |
getStringValue: function(a) { | |
this.assign(a, "getStringValue(" + a + ",text)") | |
}, | |
ensureSafeAssignContext: function(a) { | |
return "ensureSafeAssignContext(" + a + ",text)" | |
}, | |
lazyRecurse: function(a, b, c, d, e, f) { | |
var g = this; | |
return function() { | |
g.recurse(a, b, c, d, e, f) | |
} | |
}, | |
lazyAssign: function(a, b) { | |
var c = this; | |
return function() { | |
c.assign(a, b) | |
} | |
}, | |
stringEscapeRegex: /[^ a-zA-Z0-9]/g, | |
stringEscapeFn: function(a) { | |
return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4) | |
}, | |
escape: function(a) { | |
if (x(a)) return "'" + a.replace(this.stringEscapeRegex, this.stringEscapeFn) + "'"; | |
if (y(a)) return a.toString(); | |
if (a === !0) return "true"; | |
if (a === !1) return "false"; | |
if (null === a) return "null"; | |
if ("undefined" == typeof a) return "undefined"; | |
throw af("esc", "IMPOSSIBLE") | |
}, | |
nextId: function(a, b) { | |
var c = "v" + this.state.nextId++; | |
return a || this.current().vars.push(c + (b ? "=" + b : "")), c | |
}, | |
current: function() { | |
return this.state[this.state.computing] | |
} | |
}, jc.prototype = { | |
compile: function(a, b) { | |
var c = this, | |
d = this.astBuilder.ast(a); | |
this.expression = a, this.expensiveChecks = b, cc(d, c.$filter); | |
var e, g; | |
(e = fc(d)) && (g = this.recurse(e)); | |
var h, i = dc(d.body); | |
i && (h = [], f(i, function(a, b) { | |
var d = c.recurse(a); | |
a.input = d, h.push(d), a.watchId = b | |
})); | |
var j = []; | |
f(d.body, function(a) { | |
j.push(c.recurse(a.expression)) | |
}); | |
var k = 0 === d.body.length ? function() {} : 1 === d.body.length ? j[0] : function(a, b) { | |
var c; | |
return f(j, function(d) { | |
c = d(a, b) | |
}), c | |
}; | |
return g && (k.assign = function(a, b, c) { | |
return g(a, c, b) | |
}), h && (k.inputs = h), k.literal = gc(d), k.constant = hc(d), k | |
}, | |
recurse: function(a, b, d) { | |
var e, g, h, i = this; | |
if (a.input) return this.inputs(a.input, a.watchId); | |
switch (a.type) { | |
case hf.Literal: | |
return this.value(a.value, b); | |
case hf.UnaryExpression: | |
return g = this.recurse(a.argument), this["unary" + a.operator](g, b); | |
case hf.BinaryExpression: | |
return e = this.recurse(a.left), g = this.recurse(a.right), this["binary" + a.operator](e, g, b); | |
case hf.LogicalExpression: | |
return e = this.recurse(a.left), g = this.recurse(a.right), this["binary" + a.operator](e, g, b); | |
case hf.ConditionalExpression: | |
return this["ternary?:"](this.recurse(a.test), this.recurse(a.alternate), this.recurse(a.consequent), b); | |
case hf.Identifier: | |
return Wb(a.name, i.expression), i.identifier(a.name, i.expensiveChecks || kc(a.name), b, d, i.expression); | |
case hf.MemberExpression: | |
return e = this.recurse(a.object, !1, !!d), a.computed || (Wb(a.property.name, i.expression), g = a.property.name), a.computed && (g = this.recurse(a.property)), a.computed ? this.computedMember(e, g, b, d, i.expression) : this.nonComputedMember(e, g, i.expensiveChecks, b, d, i.expression); | |
case hf.CallExpression: | |
return h = [], f(a.arguments, function(a) { | |
h.push(i.recurse(a)) | |
}), a.filter && (g = this.$filter(a.callee.name)), a.filter || (g = this.recurse(a.callee, !0)), a.filter ? function(a, d, e, f) { | |
for (var i = [], j = 0; j < h.length; ++j) i.push(h[j](a, d, e, f)); | |
var k = g.apply(c, i, f); | |
return b ? { | |
context: c, | |
name: c, | |
value: k | |
} : k | |
} : function(a, c, d, e) { | |
var f, j = g(a, c, d, e); | |
if (null != j.value) { | |
Yb(j.context, i.expression), Zb(j.value, i.expression); | |
for (var k = [], l = 0; l < h.length; ++l) k.push(Yb(h[l](a, c, d, e), i.expression)); | |
f = Yb(j.value.apply(j.context, k), i.expression) | |
} | |
return b ? { | |
value: f | |
} : f | |
}; | |
case hf.AssignmentExpression: | |
return e = this.recurse(a.left, !0, 1), g = this.recurse(a.right), | |
function(a, c, d, f) { | |
var h = e(a, c, d, f), | |
j = g(a, c, d, f); | |
return Yb(h.value, i.expression), $b(h.context), h.context[h.name] = j, b ? { | |
value: j | |
} : j | |
}; | |
case hf.ArrayExpression: | |
return h = [], f(a.elements, function(a) { | |
h.push(i.recurse(a)) | |
}), | |
function(a, c, d, e) { | |
for (var f = [], g = 0; g < h.length; ++g) f.push(h[g](a, c, d, e)); | |
return b ? { | |
value: f | |
} : f | |
}; | |
case hf.ObjectExpression: | |
return h = [], f(a.properties, function(a) { | |
h.push({ | |
key: a.key.type === hf.Identifier ? a.key.name : "" + a.key.value, | |
value: i.recurse(a.value) | |
}) | |
}), | |
function(a, c, d, e) { | |
for (var f = {}, g = 0; g < h.length; ++g) f[h[g].key] = h[g].value(a, c, d, e); | |
return b ? { | |
value: f | |
} : f | |
}; | |
case hf.ThisExpression: | |
return function(a) { | |
return b ? { | |
value: a | |
} : a | |
}; | |
case hf.NGValueParameter: | |
return function(a, c, d, e) { | |
return b ? { | |
value: d | |
} : d | |
} | |
} | |
}, | |
"unary+": function(a, b) { | |
return function(c, d, e, f) { | |
var g = a(c, d, e, f); | |
return g = u(g) ? +g : 0, b ? { | |
value: g | |
} : g | |
} | |
}, | |
"unary-": function(a, b) { | |
return function(c, d, e, f) { | |
var g = a(c, d, e, f); | |
return g = u(g) ? -g : 0, b ? { | |
value: g | |
} : g | |
} | |
}, | |
"unary!": function(a, b) { | |
return function(c, d, e, f) { | |
var g = !a(c, d, e, f); | |
return b ? { | |
value: g | |
} : g | |
} | |
}, | |
"binary+": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g), | |
i = b(d, e, f, g), | |
j = ac(h, i); | |
return c ? { | |
value: j | |
} : j | |
} | |
}, | |
"binary-": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g), | |
i = b(d, e, f, g), | |
j = (u(h) ? h : 0) - (u(i) ? i : 0); | |
return c ? { | |
value: j | |
} : j | |
} | |
}, | |
"binary*": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) * b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary/": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) / b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary%": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) % b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary===": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) === b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary!==": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) !== b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary==": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) == b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary!=": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) != b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary<": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) < b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary>": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) > b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary<=": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) <= b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary>=": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) >= b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary&&": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) && b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"binary||": function(a, b, c) { | |
return function(d, e, f, g) { | |
var h = a(d, e, f, g) || b(d, e, f, g); | |
return c ? { | |
value: h | |
} : h | |
} | |
}, | |
"ternary?:": function(a, b, c, d) { | |
return function(e, f, g, h) { | |
var i = a(e, f, g, h) ? b(e, f, g, h) : c(e, f, g, h); | |
return d ? { | |
value: i | |
} : i | |
} | |
}, | |
value: function(a, b) { | |
return function() { | |
return b ? { | |
context: c, | |
name: c, | |
value: a | |
} : a | |
} | |
}, | |
identifier: function(a, b, d, e, f) { | |
return function(g, h, i, j) { | |
var k = h && a in h ? h : g; | |
e && 1 !== e && k && !k[a] && (k[a] = {}); | |
var l = k ? k[a] : c; | |
return b && Yb(l, f), d ? { | |
context: k, | |
name: a, | |
value: l | |
} : l | |
} | |
}, | |
computedMember: function(a, b, c, d, e) { | |
return function(f, g, h, i) { | |
var j, k, l = a(f, g, h, i); | |
return null != l && (j = b(f, g, h, i), j = Xb(j), Wb(j, e), d && 1 !== d && l && !l[j] && (l[j] = {}), k = l[j], Yb(k, e)), c ? { | |
context: l, | |
name: j, | |
value: k | |
} : k | |
} | |
}, | |
nonComputedMember: function(a, b, d, e, f, g) { | |
return function(h, i, j, k) { | |
var l = a(h, i, j, k); | |
f && 1 !== f && l && !l[b] && (l[b] = {}); | |
var m = null != l ? l[b] : c; | |
return (d || kc(b)) && Yb(m, g), e ? { | |
context: l, | |
name: b, | |
value: m | |
} : m | |
} | |
}, | |
inputs: function(a, b) { | |
return function(c, d, e, f) { | |
return f ? f[b] : a(c, d, e) | |
} | |
} | |
}; | |
var jf = function(a, b, c) { | |
this.lexer = a, this.$filter = b, this.options = c, this.ast = new hf(this.lexer), this.astCompiler = c.csp ? new jc(this.ast, b) : new ic(this.ast, b) | |
}; | |
jf.prototype = { | |
constructor: jf, | |
parse: function(a) { | |
return this.astCompiler.compile(a, this.options.expensiveChecks) | |
} | |
}; | |
var kf = Object.prototype.valueOf, | |
lf = d("$sce"), | |
mf = { | |
HTML: "html", | |
CSS: "css", | |
URL: "url", | |
RESOURCE_URL: "resourceUrl", | |
JS: "js" | |
}, | |
Le = d("$compile"), | |
nf = b.createElement("a"), | |
of = Bc(a.location.href); | |
Ec.$inject = ["$document"], Gc.$inject = ["$provide"]; | |
var pf = 22, | |
qf = ".", | |
rf = "0"; | |
Lc.$inject = ["$locale"], Mc.$inject = ["$locale"]; | |
var sf = { | |
yyyy: Rc("FullYear", 4), | |
yy: Rc("FullYear", 2, 0, !0), | |
y: Rc("FullYear", 1), | |
MMMM: Sc("Month"), | |
MMM: Sc("Month", !0), | |
MM: Rc("Month", 2, 1), | |
M: Rc("Month", 1, 1), | |
dd: Rc("Date", 2), | |
d: Rc("Date", 1), | |
HH: Rc("Hours", 2), | |
H: Rc("Hours", 1), | |
hh: Rc("Hours", 2, -12), | |
h: Rc("Hours", 1, -12), | |
mm: Rc("Minutes", 2), | |
m: Rc("Minutes", 1), | |
ss: Rc("Seconds", 2), | |
s: Rc("Seconds", 1), | |
sss: Rc("Milliseconds", 3), | |
EEEE: Sc("Day"), | |
EEE: Sc("Day", !0), | |
a: Xc, | |
Z: Tc, | |
ww: Wc(2), | |
w: Wc(1), | |
G: Yc, | |
GG: Yc, | |
GGG: Yc, | |
GGGG: Zc | |
}, | |
tf = /((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, | |
uf = /^\-?\d+$/; | |
$c.$inject = ["$locale"]; | |
var vf = r(yd), | |
wf = r(Ad); | |
bd.$inject = ["$parse"]; | |
var xf = r({ | |
restrict: "E", | |
compile: function(a, b) { | |
return b.href || b.xlinkHref ? void 0 : function(a, b) { | |
if ("a" === b[0].nodeName.toLowerCase()) { | |
var c = "[object SVGAnimatedString]" === Kd.call(b.prop("href")) ? "xlink:href" : "href"; | |
b.on("click", function(a) { | |
b.attr(c) || a.preventDefault() | |
}) | |
} | |
} | |
} | |
}), | |
yf = {}; | |
f(te, function(a, b) { | |
function c(a, c, e) { | |
a.$watch(e[d], function(a) { | |
e.$set(b, !!a) | |
}) | |
} | |
if ("multiple" != a) { | |
var d = lb("ng-" + b), | |
e = c; | |
"checked" === a && (e = function(a, b, e) { | |
e.ngModel !== e[d] && c(a, b, e) | |
}), yf[d] = function() { | |
return { | |
restrict: "A", | |
priority: 100, | |
link: e | |
} | |
} | |
} | |
}), f(ve, function(a, b) { | |
yf[b] = function() { | |
return { | |
priority: 100, | |
link: function(a, c, d) { | |
if ("ngPattern" === b && "/" == d.ngPattern.charAt(0)) { | |
var e = d.ngPattern.match(wd); | |
if (e) return void d.$set("ngPattern", new RegExp(e[1], e[2])) | |
} | |
a.$watch(d[b], function(a) { | |
d.$set(b, a) | |
}) | |
} | |
} | |
} | |
}), f(["src", "srcset", "href"], function(a) { | |
var b = lb("ng-" + a); | |
yf[b] = function() { | |
return { | |
priority: 99, | |
link: function(c, d, e) { | |
var f = a, | |
g = a; | |
"href" === a && "[object SVGAnimatedString]" === Kd.call(d.prop("href")) && (g = "xlinkHref", e.$attr[g] = "xlink:href", f = null), e.$observe(b, function(b) { | |
return b ? (e.$set(g, b), void(Dd && f && d.prop(f, e[g]))) : void("href" === a && e.$set(g, null)) | |
}) | |
} | |
} | |
} | |
}); | |
var zf = { | |
$addControl: p, | |
$$renameControl: dd, | |
$removeControl: p, | |
$setValidity: p, | |
$setDirty: p, | |
$setPristine: p, | |
$setSubmitted: p | |
}, | |
Af = "ng-submitted"; | |
ed.$inject = ["$element", "$attrs", "$scope", "$animate", "$interpolate"]; | |
var Bf = function(a) { | |
return ["$timeout", "$parse", function(b, d) { | |
function e(a) { | |
return "" === a ? d('this[""]').assign : d(a).assign || p | |
} | |
var f = { | |
name: "form", | |
restrict: a ? "EAC" : "E", | |
require: ["form", "^^?form"], | |
controller: ed, | |
compile: function(d, f) { | |
d.addClass(hg).addClass(fg); | |
var g = f.name ? "name" : a && f.ngForm ? "ngForm" : !1; | |
return { | |
pre: function(a, d, f, h) { | |
var i = h[0]; | |
if (!("action" in f)) { | |
var j = function(b) { | |
a.$apply(function() { | |
i.$commitViewValue(), i.$setSubmitted() | |
}), b.preventDefault() | |
}; | |
ge(d[0], "submit", j), d.on("$destroy", function() { | |
b(function() { | |
he(d[0], "submit", j) | |
}, 0, !1) | |
}) | |
} | |
var k = h[1] || i.$$parentForm; | |
k.$addControl(i); | |
var m = g ? e(i.$name) : p; | |
g && (m(a, i), f.$observe(g, function(b) { | |
i.$name !== b && (m(a, c), i.$$parentForm.$$renameControl(i, b), (m = e(i.$name))(a, i)) | |
})), d.on("$destroy", function() { | |
i.$$parentForm.$removeControl(i), m(a, c), l(i, zf) | |
}) | |
} | |
} | |
} | |
}; | |
return f | |
}] | |
}, | |
Cf = Bf(), | |
Df = Bf(!0), | |
Ef = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/, | |
Ff = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i, | |
Gf = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i, | |
Hf = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/, | |
If = /^(\d{4})-(\d{2})-(\d{2})$/, | |
Jf = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/, | |
Kf = /^(\d{4})-W(\d\d)$/, | |
Lf = /^(\d{4})-(\d\d)$/, | |
Mf = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/, | |
Nf = { | |
text: gd, | |
date: kd("date", If, jd(If, ["yyyy", "MM", "dd"]), "yyyy-MM-dd"), | |
"datetime-local": kd("datetimelocal", Jf, jd(Jf, ["yyyy", "MM", "dd", "HH", "mm", "ss", "sss"]), "yyyy-MM-ddTHH:mm:ss.sss"), | |
time: kd("time", Mf, jd(Mf, ["HH", "mm", "ss", "sss"]), "HH:mm:ss.sss"), | |
week: kd("week", Kf, id, "yyyy-Www"), | |
month: kd("month", Lf, jd(Lf, ["yyyy", "MM"]), "yyyy-MM"), | |
number: md, | |
url: nd, | |
email: od, | |
radio: pd, | |
checkbox: rd, | |
hidden: p, | |
button: p, | |
submit: p, | |
reset: p, | |
file: p | |
}, | |
Of = ["$browser", "$sniffer", "$filter", "$parse", function(a, b, c, d) { | |
return { | |
restrict: "E", | |
require: ["?ngModel"], | |
link: { | |
pre: function(e, f, g, h) { | |
h[0] && (Nf[yd(g.type)] || Nf.text)(e, f, g, h[0], b, a, c, d) | |
} | |
} | |
} | |
}], | |
Pf = /^(true|false|\d+)$/, | |
Qf = function() { | |
return { | |
restrict: "A", | |
priority: 100, | |
compile: function(a, b) { | |
return Pf.test(b.ngValue) ? function(a, b, c) { | |
c.$set("value", a.$eval(c.ngValue)) | |
} : function(a, b, c) { | |
a.$watch(c.ngValue, function(a) { | |
c.$set("value", a) | |
}) | |
} | |
} | |
} | |
}, | |
Rf = ["$compile", function(a) { | |
return { | |
restrict: "AC", | |
compile: function(b) { | |
return a.$$addBindingClass(b), | |
function(b, c, d) { | |
a.$$addBindingInfo(c, d.ngBind), c = c[0], b.$watch(d.ngBind, function(a) { | |
c.textContent = t(a) ? "" : a | |
}) | |
} | |
} | |
} | |
}], | |
Sf = ["$interpolate", "$compile", function(a, b) { | |
return { | |
compile: function(c) { | |
return b.$$addBindingClass(c), | |
function(c, d, e) { | |
var f = a(d.attr(e.$attr.ngBindTemplate)); | |
b.$$addBindingInfo(d, f.expressions), d = d[0], e.$observe("ngBindTemplate", function(a) { | |
d.textContent = t(a) ? "" : a | |
}) | |
} | |
} | |
} | |
}], | |
Tf = ["$sce", "$parse", "$compile", function(a, b, c) { | |
return { | |
restrict: "A", | |
compile: function(d, e) { | |
var f = b(e.ngBindHtml), | |
g = b(e.ngBindHtml, function(a) { | |
return (a || "").toString() | |
}); | |
return c.$$addBindingClass(d), | |
function(b, d, e) { | |
c.$$addBindingInfo(d, e.ngBindHtml), b.$watch(g, function() { | |
d.html(a.getTrustedHtml(f(b)) || "") | |
}) | |
} | |
} | |
} | |
}], | |
Uf = r({ | |
restrict: "A", | |
require: "ngModel", | |
link: function(a, b, c, d) { | |
d.$viewChangeListeners.push(function() { | |
a.$eval(c.ngChange) | |
}) | |
} | |
}), | |
Vf = sd("", !0), | |
Wf = sd("Odd", 0), | |
Xf = sd("Even", 1), | |
Yf = cd({ | |
compile: function(a, b) { | |
b.$set("ngCloak", c), a.removeClass("ng-cloak") | |
} | |
}), | |
Zf = [function() { | |
return { | |
restrict: "A", | |
scope: !0, | |
controller: "@", | |
priority: 500 | |
} | |
}], | |
$f = {}, | |
_f = { | |
blur: !0, | |
focus: !0 | |
}; | |
f("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "), function(a) { | |
var b = lb("ng-" + a); | |
$f[b] = ["$parse", "$rootScope", function(c, d) { | |
return { | |
restrict: "A", | |
compile: function(e, f) { | |
var g = c(f[b], null, !0); | |
return function(b, c) { | |
c.on(a, function(c) { | |
var e = function() { | |
g(b, { | |
$event: c | |
}) | |
}; | |
_f[a] && d.$$phase ? b.$evalAsync(e) : b.$apply(e) | |
}) | |
} | |
} | |
} | |
}] | |
}); | |
var ag = ["$animate", function(a) { | |
return { | |
multiElement: !0, | |
transclude: "element", | |
priority: 600, | |
terminal: !0, | |
restrict: "A", | |
$$tlb: !0, | |
link: function(c, d, e, f, g) { | |
var h, i, j; | |
c.$watch(e.ngIf, function(c) { | |
c ? i || g(function(c, f) { | |
i = f, c[c.length++] = b.createComment(" end ngIf: " + e.ngIf + " "), h = { | |
clone: c | |
}, a.enter(c, d.parent(), d) | |
}) : (j && (j.remove(), j = null), i && (i.$destroy(), i = null), h && (j = pa(h.clone), a.leave(j).then(function() { | |
j = null | |
}), h = null)) | |
}) | |
} | |
} | |
}], | |
bg = ["$templateRequest", "$anchorScroll", "$animate", function(a, b, c) { | |
return { | |
restrict: "ECA", | |
priority: 400, | |
terminal: !0, | |
transclude: "element", | |
controller: Nd.noop, | |
compile: function(d, e) { | |
var f = e.ngInclude || e.src, | |
g = e.onload || "", | |
h = e.autoscroll; | |
return function(d, e, i, j, k) { | |
var l, m, n, o = 0, | |
p = function() { | |
m && (m.remove(), m = null), l && (l.$destroy(), l = null), n && (c.leave(n).then(function() { | |
m = null | |
}), m = n, n = null) | |
}; | |
d.$watch(f, function(f) { | |
var i = function() { | |
!u(h) || h && !d.$eval(h) || b() | |
}, | |
m = ++o; | |
f ? (a(f, !0).then(function(a) { | |
if (!d.$$destroyed && m === o) { | |
var b = d.$new(); | |
j.template = a; | |
var h = k(b, function(a) { | |
p(), c.enter(a, null, e).then(i) | |
}); | |
l = b, n = h, l.$emit("$includeContentLoaded", f), d.$eval(g) | |
} | |
}, function() { | |
d.$$destroyed || m === o && (p(), d.$emit("$includeContentError", f)) | |
}), d.$emit("$includeContentRequested", f)) : (p(), j.template = null) | |
}) | |
} | |
} | |
} | |
}], | |
cg = ["$compile", function(a) { | |
return { | |
restrict: "ECA", | |
priority: -400, | |
require: "ngInclude", | |
link: function(c, d, e, f) { | |
return /SVG/.test(d[0].toString()) ? (d.empty(), void a(Aa(f.template, b).childNodes)(c, function(a) { | |
d.append(a) | |
}, { | |
futureParentElement: d | |
})) : (d.html(f.template), void a(d.contents())(c)) | |
} | |
} | |
}], | |
dg = cd({ | |
priority: 450, | |
compile: function() { | |
return { | |
pre: function(a, b, c) { | |
a.$eval(c.ngInit) | |
} | |
} | |
} | |
}), | |
eg = function() { | |
return { | |
restrict: "A", | |
priority: 100, | |
require: "ngModel", | |
link: function(a, b, d, e) { | |
var g = b.attr(d.$attr.ngList) || ", ", | |
h = "false" !== d.ngTrim, | |
i = h ? Sd(g) : g, | |
j = function(a) { | |
if (!t(a)) { | |
var b = []; | |
return a && f(a.split(i), function(a) { | |
a && b.push(h ? Sd(a) : a) | |
}), b | |
} | |
}; | |
e.$parsers.push(j), e.$formatters.push(function(a) { | |
return Qd(a) ? a.join(g) : c | |
}), e.$isEmpty = function(a) { | |
return !a || !a.length | |
} | |
} | |
} | |
}, | |
fg = "ng-valid", | |
gg = "ng-invalid", | |
hg = "ng-pristine", | |
ig = "ng-dirty", | |
jg = "ng-untouched", | |
kg = "ng-touched", | |
lg = "ng-pending", | |
mg = d("ngModel"), | |
ng = ["$scope", "$exceptionHandler", "$attrs", "$element", "$parse", "$animate", "$timeout", "$rootScope", "$q", "$interpolate", function(a, b, d, e, g, h, i, j, k, l) { | |
this.$viewValue = Number.NaN, this.$modelValue = Number.NaN, this.$$rawModelValue = c, this.$validators = {}, this.$asyncValidators = {}, this.$parsers = [], this.$formatters = [], this.$viewChangeListeners = [], this.$untouched = !0, this.$touched = !1, this.$pristine = !0, this.$dirty = !1, this.$valid = !0, this.$invalid = !1, this.$error = {}, this.$$success = {}, this.$pending = c, this.$name = l(d.name || "", !1)(a), this.$$parentForm = zf; | |
var m, n = g(d.ngModel), | |
o = n.assign, | |
q = n, | |
r = o, | |
s = null, | |
v = this; | |
this.$$setOptions = function(a) { | |
if (v.$options = a, a && a.getterSetter) { | |
var b = g(d.ngModel + "()"), | |
c = g(d.ngModel + "($$$p)"); | |
q = function(a) { | |
var c = n(a); | |
return A(c) && (c = b(a)), c | |
}, r = function(a, b) { | |
A(n(a)) ? c(a, { | |
$$$p: v.$modelValue | |
}) : o(a, v.$modelValue) | |
} | |
} else if (!n.assign) throw mg("nonassign", "Expression '{0}' is non-assignable. Element: {1}", d.ngModel, $(e)) | |
}, this.$render = p, this.$isEmpty = function(a) { | |
return t(a) || "" === a || null === a || a !== a | |
}; | |
var w = 0; | |
td({ | |
ctrl: this, | |
$element: e, | |
set: function(a, b) { | |
a[b] = !0 | |
}, | |
unset: function(a, b) { | |
delete a[b] | |
}, | |
$animate: h | |
}), this.$setPristine = function() { | |
v.$dirty = !1, v.$pristine = !0, h.removeClass(e, ig), h.addClass(e, hg) | |
}, this.$setDirty = function() { | |
v.$dirty = !0, v.$pristine = !1, h.removeClass(e, hg), h.addClass(e, ig), v.$$parentForm.$setDirty() | |
}, this.$setUntouched = function() { | |
v.$touched = !1, v.$untouched = !0, h.setClass(e, jg, kg) | |
}, this.$setTouched = function() { | |
v.$touched = !0, v.$untouched = !1, h.setClass(e, kg, jg) | |
}, this.$rollbackViewValue = function() { | |
i.cancel(s), v.$viewValue = v.$$lastCommittedViewValue, v.$render() | |
}, this.$validate = function() { | |
if (!y(v.$modelValue) || !isNaN(v.$modelValue)) { | |
var a = v.$$lastCommittedViewValue, | |
b = v.$$rawModelValue, | |
d = v.$valid, | |
e = v.$modelValue, | |
f = v.$options && v.$options.allowInvalid; | |
v.$$runValidators(b, a, function(a) { | |
f || d === a || (v.$modelValue = a ? b : c, v.$modelValue !== e && v.$$writeModelToScope()) | |
}) | |
} | |
}, this.$$runValidators = function(a, b, d) { | |
function e() { | |
var a = v.$$parserName || "parse"; | |
return t(m) ? (i(a, null), !0) : (m || (f(v.$validators, function(a, b) { | |
i(b, null) | |
}), f(v.$asyncValidators, function(a, b) { | |
i(b, null) | |
})), i(a, m), m) | |
} | |
function g() { | |
var c = !0; | |
return f(v.$validators, function(d, e) { | |
var f = d(a, b); | |
c = c && f, i(e, f) | |
}), c ? !0 : (f(v.$asyncValidators, function(a, b) { | |
i(b, null) | |
}), !1) | |
} | |
function h() { | |
var d = [], | |
e = !0; | |
f(v.$asyncValidators, function(f, g) { | |
var h = f(a, b); | |
if (!I(h)) throw mg("nopromise", "Expected asynchronous validator to return a promise but got '{0}' instead.", h); | |
i(g, c), d.push(h.then(function() { | |
i(g, !0) | |
}, function(a) { | |
e = !1, i(g, !1) | |
})) | |
}), d.length ? k.all(d).then(function() { | |
j(e) | |
}, p) : j(!0) | |
} | |
function i(a, b) { | |
l === w && v.$setValidity(a, b) | |
} | |
function j(a) { | |
l === w && d(a) | |
} | |
w++; | |
var l = w; | |
return e() && g() ? void h() : void j(!1) | |
}, this.$commitViewValue = function() { | |
var a = v.$viewValue; | |
i.cancel(s), (v.$$lastCommittedViewValue !== a || "" === a && v.$$hasNativeValidators) && (v.$$lastCommittedViewValue = a, v.$pristine && this.$setDirty(), this.$$parseAndValidate()) | |
}, this.$$parseAndValidate = function() { | |
function b() { | |
v.$modelValue !== g && v.$$writeModelToScope() | |
} | |
var d = v.$$lastCommittedViewValue, | |
e = d; | |
if (m = t(e) ? c : !0) | |
for (var f = 0; f < v.$parsers.length; f++) | |
if (e = v.$parsers[f](e), t(e)) { | |
m = !1; | |
break | |
} | |
y(v.$modelValue) && isNaN(v.$modelValue) && (v.$modelValue = q(a)); | |
var g = v.$modelValue, | |
h = v.$options && v.$options.allowInvalid; | |
v.$$rawModelValue = e, h && (v.$modelValue = e, b()), v.$$runValidators(e, v.$$lastCommittedViewValue, function(a) { | |
h || (v.$modelValue = a ? e : c, b()) | |
}) | |
}, this.$$writeModelToScope = function() { | |
r(a, v.$modelValue), f(v.$viewChangeListeners, function(a) { | |
try { | |
a() | |
} catch (c) { | |
b(c) | |
} | |
}) | |
}, this.$setViewValue = function(a, b) { | |
v.$viewValue = a, (!v.$options || v.$options.updateOnDefault) && v.$$debounceViewValueCommit(b) | |
}, this.$$debounceViewValueCommit = function(b) { | |
var c, d = 0, | |
e = v.$options; | |
e && u(e.debounce) && (c = e.debounce, y(c) ? d = c : y(c[b]) ? d = c[b] : y(c["default"]) && (d = c["default"])), i.cancel(s), d ? s = i(function() { | |
v.$commitViewValue() | |
}, d) : j.$$phase ? v.$commitViewValue() : a.$apply(function() { | |
v.$commitViewValue() | |
}) | |
}, a.$watch(function() { | |
var b = q(a); | |
if (b !== v.$modelValue && (v.$modelValue === v.$modelValue || b === b)) { | |
v.$modelValue = v.$$rawModelValue = b, m = c; | |
for (var d = v.$formatters, e = d.length, f = b; e--;) f = d[e](f); | |
v.$viewValue !== f && (v.$viewValue = v.$$lastCommittedViewValue = f, v.$render(), v.$$runValidators(b, f, p)) | |
} | |
return b | |
}) | |
}], | |
og = ["$rootScope", function(a) { | |
return { | |
restrict: "A", | |
require: ["ngModel", "^?form", "^?ngModelOptions"], | |
controller: ng, | |
priority: 1, | |
compile: function(b) { | |
return b.addClass(hg).addClass(jg).addClass(fg), { | |
pre: function(a, b, c, d) { | |
var e = d[0], | |
f = d[1] || e.$$parentForm; | |
e.$$setOptions(d[2] && d[2].$options), f.$addControl(e), c.$observe("name", function(a) { | |
e.$name !== a && e.$$parentForm.$$renameControl(e, a) | |
}), a.$on("$destroy", function() { | |
e.$$parentForm.$removeControl(e) | |
}) | |
}, | |
post: function(b, c, d, e) { | |
var f = e[0]; | |
f.$options && f.$options.updateOn && c.on(f.$options.updateOn, function(a) { | |
f.$$debounceViewValueCommit(a && a.type) | |
}), c.on("blur", function(c) { | |
f.$touched || (a.$$phase ? b.$evalAsync(f.$setTouched) : b.$apply(f.$setTouched)) | |
}) | |
} | |
} | |
} | |
} | |
}], | |
pg = /(\s+|^)default(\s+|$)/, | |
qg = function() { | |
return { | |
restrict: "A", | |
controller: ["$scope", "$attrs", function(a, b) { | |
var c = this; | |
this.$options = O(a.$eval(b.ngModelOptions)), u(this.$options.updateOn) ? (this.$options.updateOnDefault = !1, this.$options.updateOn = Sd(this.$options.updateOn.replace(pg, function() { | |
return c.$options.updateOnDefault = !0, " " | |
}))) : this.$options.updateOnDefault = !0 | |
}] | |
} | |
}, | |
rg = cd({ | |
terminal: !0, | |
priority: 1e3 | |
}), | |
sg = d("ngOptions"), | |
tg = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/, | |
ug = ["$compile", "$parse", function(a, c) { | |
function d(a, b, d) { | |
function f(a, b, c, d, e) { | |
this.selectValue = a, this.viewValue = b, this.label = c, this.group = d, this.disabled = e | |
} | |
function g(a) { | |
var b; | |
if (!j && e(a)) b = a; | |
else { | |
b = []; | |
for (var c in a) a.hasOwnProperty(c) && "$" !== c.charAt(0) && b.push(c) | |
} | |
return b | |
} | |
var h = a.match(tg); | |
if (!h) throw sg("iexp", "Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}", a, $(b)); | |
var i = h[5] || h[7], | |
j = h[6], | |
k = / as /.test(h[0]) && h[1], | |
l = h[9], | |
m = c(h[2] ? h[1] : i), | |
n = k && c(k), | |
o = n || m, | |
p = l && c(l), | |
q = l ? function(a, b) { | |
return p(d, b) | |
} : function(a) { | |
return Ya(a) | |
}, | |
r = function(a, b) { | |
return q(a, x(a, b)) | |
}, | |
s = c(h[2] || h[1]), | |
t = c(h[3] || ""), | |
u = c(h[4] || ""), | |
v = c(h[8]), | |
w = {}, | |
x = j ? function(a, b) { | |
return w[j] = b, w[i] = a, w | |
} : function(a) { | |
return w[i] = a, w | |
}; | |
return { | |
trackBy: l, | |
getTrackByValue: r, | |
getWatchables: c(v, function(a) { | |
var b = []; | |
a = a || []; | |
for (var c = g(a), e = c.length, f = 0; e > f; f++) { | |
var i = a === c ? f : c[f], | |
j = (a[i], x(a[i], i)), | |
k = q(a[i], j); | |
if (b.push(k), h[2] || h[1]) { | |
var l = s(d, j); | |
b.push(l) | |
} | |
if (h[4]) { | |
var m = u(d, j); | |
b.push(m) | |
} | |
} | |
return b | |
}), | |
getOptions: function() { | |
for (var a = [], b = {}, c = v(d) || [], e = g(c), h = e.length, i = 0; h > i; i++) { | |
var j = c === e ? i : e[i], | |
k = c[j], | |
m = x(k, j), | |
n = o(d, m), | |
p = q(n, m), | |
w = s(d, m), | |
y = t(d, m), | |
z = u(d, m), | |
A = new f(p, n, w, y, z); | |
a.push(A), b[p] = A | |
} | |
return { | |
items: a, | |
selectValueMap: b, | |
getOptionFromViewValue: function(a) { | |
return b[r(a)] | |
}, | |
getViewValueFromOption: function(a) { | |
return l ? Nd.copy(a.viewValue) : a.viewValue | |
} | |
} | |
} | |
} | |
} | |
function g(b, c, e, g) { | |
function j(a, b) { | |
a.element = b, b.disabled = a.disabled, a.label !== b.label && (b.label = a.label, b.textContent = a.label), a.value !== b.value && (b.value = a.selectValue) | |
} | |
function k(a, b, c, d) { | |
var e; | |
return b && yd(b.nodeName) === c ? e = b : (e = d.cloneNode(!1), b ? a.insertBefore(e, b) : a.appendChild(e)), e | |
} | |
function l(a) { | |
for (var b; a;) b = a.nextSibling, Qa(a), a = b | |
} | |
function m(a) { | |
var b = p && p[0], | |
c = w && w[0]; | |
if (b || c) | |
for (; a && (a === b || a === c || a.nodeType === ae || "option" === M(a) && "" === a.value);) a = a.nextSibling; | |
return a | |
} | |
function n() { | |
var a = x && q.readValue(); | |
x = y.getOptions(); | |
var b = {}, | |
d = c[0].firstChild; | |
if (v && c.prepend(p), d = m(d), x.items.forEach(function(a) { | |
var e, f, g; | |
a.group ? (e = b[a.group], e || (f = k(c[0], d, "optgroup", i), d = f.nextSibling, f.label = a.group, e = b[a.group] = { | |
groupElement: f, | |
currentOptionElement: f.firstChild | |
}), g = k(e.groupElement, e.currentOptionElement, "option", h), j(a, g), e.currentOptionElement = g.nextSibling) : (g = k(c[0], d, "option", h), j(a, g), d = g.nextSibling) | |
}), Object.keys(b).forEach(function(a) { | |
l(b[a].currentOptionElement) | |
}), l(d), o.$render(), !o.$isEmpty(a)) { | |
var e = q.readValue(), | |
f = y.trackBy || r; | |
(f ? Q(a, e) : a === e) || (o.$setViewValue(e), o.$render()) | |
} | |
} | |
var o = g[1]; | |
if (o) { | |
for (var p, q = g[0], r = e.multiple, s = 0, t = c.children(), u = t.length; u > s; s++) | |
if ("" === t[s].value) { | |
p = t.eq(s); | |
break | |
} | |
var v = !!p, | |
w = Ed(h.cloneNode(!1)); | |
w.val("?"); | |
var x, y = d(e.ngOptions, c, b), | |
z = function() { | |
v || c.prepend(p), c.val(""), p.prop("selected", !0), p.attr("selected", !0) | |
}, | |
A = function() { | |
v || p.remove() | |
}, | |
B = function() { | |
c.prepend(w), c.val("?"), w.prop("selected", !0), w.attr("selected", !0) | |
}, | |
C = function() { | |
w.remove() | |
}; | |
r ? (o.$isEmpty = function(a) { | |
return !a || 0 === a.length | |
}, q.writeValue = function(a) { | |
x.items.forEach(function(a) { | |
a.element.selected = !1 | |
}), a && a.forEach(function(a) { | |
var b = x.getOptionFromViewValue(a); | |
b && !b.disabled && (b.element.selected = !0) | |
}) | |
}, q.readValue = function() { | |
var a = c.val() || [], | |
b = []; | |
return f(a, function(a) { | |
var c = x.selectValueMap[a]; | |
c && !c.disabled && b.push(x.getViewValueFromOption(c)) | |
}), b | |
}, y.trackBy && b.$watchCollection(function() { | |
return Qd(o.$viewValue) ? o.$viewValue.map(function(a) { | |
return y.getTrackByValue(a) | |
}) : void 0 | |
}, function() { | |
o.$render() | |
})) : (q.writeValue = function(a) { | |
var b = x.getOptionFromViewValue(a); | |
b && !b.disabled ? c[0].value !== b.selectValue && (C(), A(), c[0].value = b.selectValue, b.element.selected = !0, b.element.setAttribute("selected", "selected")) : null === a || v ? (C(), z()) : (A(), B()) | |
}, q.readValue = function() { | |
var a = x.selectValueMap[c.val()]; | |
return a && !a.disabled ? (A(), C(), x.getViewValueFromOption(a)) : null | |
}, y.trackBy && b.$watch(function() { | |
return y.getTrackByValue(o.$viewValue) | |
}, function() { | |
o.$render() | |
})), v ? (p.remove(), a(p)(b), p.removeClass("ng-scope")) : p = Ed(h.cloneNode(!1)), n(), b.$watchCollection(y.getWatchables, n) | |
} | |
} | |
var h = b.createElement("option"), | |
i = b.createElement("optgroup"); | |
return { | |
restrict: "A", | |
terminal: !0, | |
require: ["select", "?ngModel"], | |
link: { | |
pre: function(a, b, c, d) { | |
d[0].registerOption = p | |
}, | |
post: g | |
} | |
} | |
}], | |
vg = ["$locale", "$interpolate", "$log", function(a, b, c) { | |
var d = /{}/g, | |
e = /^when(Minus)?(.+)$/; | |
return { | |
link: function(g, h, i) { | |
function j(a) { | |
h.text(a || "") | |
} | |
var k, l = i.count, | |
m = i.$attr.when && h.attr(i.$attr.when), | |
n = i.offset || 0, | |
o = g.$eval(m) || {}, | |
q = {}, | |
r = b.startSymbol(), | |
s = b.endSymbol(), | |
u = r + l + "-" + n + s, | |
v = Nd.noop; | |
f(i, function(a, b) { | |
var c = e.exec(b); | |
if (c) { | |
var d = (c[1] ? "-" : "") + yd(c[2]); | |
o[d] = h.attr(i.$attr[b]) | |
} | |
}), f(o, function(a, c) { | |
q[c] = b(a.replace(d, u)) | |
}), g.$watch(l, function(b) { | |
var d = parseFloat(b), | |
e = isNaN(d); | |
if (e || d in o || (d = a.pluralCat(d - n)), d !== k && !(e && y(k) && isNaN(k))) { | |
v(); | |
var f = q[d]; | |
t(f) ? (null != b && c.debug("ngPluralize: no rule defined for '" + d + "' in " + m), v = p, j()) : v = g.$watch(f, j), k = d | |
} | |
}) | |
} | |
} | |
}], | |
wg = ["$parse", "$animate", function(a, g) { | |
var h = "$$NG_REMOVED", | |
i = d("ngRepeat"), | |
j = function(a, b, c, d, e, f, g) { | |
a[c] = d, e && (a[e] = f), a.$index = b, a.$first = 0 === b, a.$last = b === g - 1, a.$middle = !(a.$first || a.$last), a.$odd = !(a.$even = 0 === (1 & b)) | |
}, | |
k = function(a) { | |
return a.clone[0] | |
}, | |
l = function(a) { | |
return a.clone[a.clone.length - 1] | |
}; | |
return { | |
restrict: "A", | |
multiElement: !0, | |
transclude: "element", | |
priority: 1e3, | |
terminal: !0, | |
$$tlb: !0, | |
compile: function(d, m) { | |
var n = m.ngRepeat, | |
o = b.createComment(" end ngRepeat: " + n + " "), | |
p = n.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/); | |
if (!p) throw i("iexp", "Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.", n); | |
var q = p[1], | |
r = p[2], | |
s = p[3], | |
t = p[4]; | |
if (p = q.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/), !p) throw i("iidexp", "'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.", q); | |
var u = p[3] || p[1], | |
v = p[2]; | |
if (s && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(s) || /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(s))) throw i("badident", "alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.", s); | |
var w, x, y, z, A = { | |
$id: Ya | |
}; | |
return t ? w = a(t) : (y = function(a, b) { | |
return Ya(b) | |
}, z = function(a) { | |
return a | |
}), | |
function(a, b, d, m, p) { | |
w && (x = function(b, c, d) { | |
return v && (A[v] = b), A[u] = c, A.$index = d, w(a, A) | |
}); | |
var q = qa(); | |
a.$watchCollection(r, function(d) { | |
var m, r, t, w, A, B, C, D, E, F, G, H, I = b[0], | |
J = qa(); | |
if (s && (a[s] = d), e(d)) E = d, D = x || y; | |
else { | |
D = x || z, E = []; | |
for (var K in d) zd.call(d, K) && "$" !== K.charAt(0) && E.push(K) | |
} | |
for (w = E.length, G = new Array(w), m = 0; w > m; m++) | |
if (A = d === E ? m : E[m], B = d[A], C = D(A, B, m), q[C]) F = q[C], delete q[C], J[C] = F, G[m] = F; | |
else { | |
if (J[C]) throw f(G, function(a) { | |
a && a.scope && (q[a.id] = a) | |
}), i("dupes", "Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}", n, C, B); | |
G[m] = { | |
id: C, | |
scope: c, | |
clone: c | |
}, J[C] = !0 | |
} | |
for (var L in q) { | |
if (F = q[L], H = pa(F.clone), g.leave(H), H[0].parentNode) | |
for (m = 0, r = H.length; r > m; m++) H[m][h] = !0; | |
F.scope.$destroy() | |
} | |
for (m = 0; w > m; m++) | |
if (A = d === E ? m : E[m], B = d[A], F = G[m], F.scope) { | |
t = I; | |
do t = t.nextSibling; while (t && t[h]); | |
k(F) != t && g.move(pa(F.clone), null, Ed(I)), I = l(F), j(F.scope, m, u, B, v, A, w) | |
} else p(function(a, b) { | |
F.scope = b; | |
var c = o.cloneNode(!1); | |
a[a.length++] = c, g.enter(a, null, Ed(I)), I = c, F.clone = a, J[F.id] = F, j(F.scope, m, u, B, v, A, w) | |
}); | |
q = J | |
}) | |
} | |
} | |
} | |
}], | |
xg = "ng-hide", | |
yg = "ng-hide-animate", | |
zg = ["$animate", function(a) { | |
return { | |
restrict: "A", | |
multiElement: !0, | |
link: function(b, c, d) { | |
b.$watch(d.ngShow, function(b) { | |
a[b ? "removeClass" : "addClass"](c, xg, { | |
tempClasses: yg | |
}) | |
}) | |
} | |
} | |
}], | |
Ag = ["$animate", function(a) { | |
return { | |
restrict: "A", | |
multiElement: !0, | |
link: function(b, c, d) { | |
b.$watch(d.ngHide, function(b) { | |
a[b ? "addClass" : "removeClass"](c, xg, { | |
tempClasses: yg | |
}) | |
}) | |
} | |
} | |
}], | |
Bg = cd(function(a, b, c) { | |
a.$watch(c.ngStyle, function(a, c) { | |
c && a !== c && f(c, function(a, c) { | |
b.css(c, "") | |
}), a && b.css(a) | |
}, !0) | |
}), | |
Cg = ["$animate", function(a) { | |
return { | |
require: "ngSwitch", | |
controller: ["$scope", function() { | |
this.cases = {} | |
}], | |
link: function(c, d, e, g) { | |
var h = e.ngSwitch || e.on, | |
i = [], | |
j = [], | |
k = [], | |
l = [], | |
m = function(a, b) { | |
return function() { | |
a.splice(b, 1) | |
} | |
}; | |
c.$watch(h, function(c) { | |
var d, e; | |
for (d = 0, e = k.length; e > d; ++d) a.cancel(k[d]); | |
for (k.length = 0, d = 0, e = l.length; e > d; ++d) { | |
var h = pa(j[d].clone); | |
l[d].$destroy(); | |
var n = k[d] = a.leave(h); | |
n.then(m(k, d)) | |
} | |
j.length = 0, l.length = 0, (i = g.cases["!" + c] || g.cases["?"]) && f(i, function(c) { | |
c.transclude(function(d, e) { | |
l.push(e); | |
var f = c.element; | |
d[d.length++] = b.createComment(" end ngSwitchWhen: "); | |
var g = { | |
clone: d | |
}; | |
j.push(g), a.enter(d, f.parent(), f) | |
}) | |
}) | |
}) | |
} | |
} | |
}], | |
Dg = cd({ | |
transclude: "element", | |
priority: 1200, | |
require: "^ngSwitch", | |
multiElement: !0, | |
link: function(a, b, c, d, e) { | |
d.cases["!" + c.ngSwitchWhen] = d.cases["!" + c.ngSwitchWhen] || [], d.cases["!" + c.ngSwitchWhen].push({ | |
transclude: e, | |
element: b | |
}) | |
} | |
}), | |
Eg = cd({ | |
transclude: "element", | |
priority: 1200, | |
require: "^ngSwitch", | |
multiElement: !0, | |
link: function(a, b, c, d, e) { | |
d.cases["?"] = d.cases["?"] || [], d.cases["?"].push({ | |
transclude: e, | |
element: b | |
}) | |
} | |
}), | |
Fg = cd({ | |
restrict: "EAC", | |
link: function(a, b, c, e, f) { | |
if (!f) throw d("ngTransclude")("orphan", "Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}", $(b)); | |
f(function(a) { | |
b.empty(), b.append(a) | |
}) | |
} | |
}), | |
Gg = ["$templateCache", function(a) { | |
return { | |
restrict: "E", | |
terminal: !0, | |
compile: function(b, c) { | |
if ("text/ng-template" == c.type) { | |
var d = c.id, | |
e = b[0].text; | |
a.put(d, e) | |
} | |
} | |
} | |
}], | |
Hg = { | |
$setViewValue: p, | |
$render: p | |
}, | |
Ig = ["$element", "$scope", "$attrs", function(a, d, e) { | |
var f = this, | |
g = new Za; | |
f.ngModelCtrl = Hg, f.unknownOption = Ed(b.createElement("option")), f.renderUnknownOption = function(b) { | |
var c = "? " + Ya(b) + " ?"; | |
f.unknownOption.val(c), a.prepend(f.unknownOption), a.val(c) | |
}, d.$on("$destroy", function() { | |
f.renderUnknownOption = p | |
}), f.removeUnknownOption = function() { | |
f.unknownOption.parent() && f.unknownOption.remove() | |
}, f.readValue = function() { | |
return f.removeUnknownOption(), a.val() | |
}, f.writeValue = function(b) { | |
f.hasOption(b) ? (f.removeUnknownOption(), a.val(b), "" === b && f.emptyOption.prop("selected", !0)) : null == b && f.emptyOption ? (f.removeUnknownOption(), a.val("")) : f.renderUnknownOption(b) | |
}, f.addOption = function(a, b) { | |
na(a, '"option value"'), "" === a && (f.emptyOption = b); | |
var c = g.get(a) || 0; | |
g.put(a, c + 1), f.ngModelCtrl.$render(), vd(b) | |
}, f.removeOption = function(a) { | |
var b = g.get(a); | |
b && (1 === b ? (g.remove(a), "" === a && (f.emptyOption = c)) : g.put(a, b - 1)); | |
}, f.hasOption = function(a) { | |
return !!g.get(a) | |
}, f.registerOption = function(a, b, c, d, e) { | |
if (d) { | |
var g; | |
c.$observe("value", function(a) { | |
u(g) && f.removeOption(g), g = a, f.addOption(a, b) | |
}) | |
} else e ? a.$watch(e, function(a, d) { | |
c.$set("value", a), d !== a && f.removeOption(d), f.addOption(a, b) | |
}) : f.addOption(c.value, b); | |
b.on("$destroy", function() { | |
f.removeOption(c.value), f.ngModelCtrl.$render() | |
}) | |
} | |
}], | |
Jg = function() { | |
function a(a, b, c, d) { | |
var e = d[1]; | |
if (e) { | |
var g = d[0]; | |
if (g.ngModelCtrl = e, b.on("change", function() { | |
a.$apply(function() { | |
e.$setViewValue(g.readValue()) | |
}) | |
}), c.multiple) { | |
g.readValue = function() { | |
var a = []; | |
return f(b.find("option"), function(b) { | |
b.selected && a.push(b.value) | |
}), a | |
}, g.writeValue = function(a) { | |
var c = new Za(a); | |
f(b.find("option"), function(a) { | |
a.selected = u(c.get(a.value)) | |
}) | |
}; | |
var h, i = NaN; | |
a.$watch(function() { | |
i !== e.$viewValue || Q(h, e.$viewValue) || (h = P(e.$viewValue), e.$render()), i = e.$viewValue | |
}), e.$isEmpty = function(a) { | |
return !a || 0 === a.length | |
} | |
} | |
} | |
} | |
function b(a, b, c, d) { | |
var e = d[1]; | |
if (e) { | |
var f = d[0]; | |
e.$render = function() { | |
f.writeValue(e.$viewValue) | |
} | |
} | |
} | |
return { | |
restrict: "E", | |
require: ["select", "?ngModel"], | |
controller: Ig, | |
priority: 1, | |
link: { | |
pre: a, | |
post: b | |
} | |
} | |
}, | |
Kg = ["$interpolate", function(a) { | |
return { | |
restrict: "E", | |
priority: 100, | |
compile: function(b, c) { | |
if (u(c.value)) var d = a(c.value, !0); | |
else { | |
var e = a(b.text(), !0); | |
e || c.$set("value", b.text()) | |
} | |
return function(a, b, c) { | |
var f = "$selectController", | |
g = b.parent(), | |
h = g.data(f) || g.parent().data(f); | |
h && h.registerOption(a, b, c, d, e) | |
} | |
} | |
} | |
}], | |
Lg = r({ | |
restrict: "E", | |
terminal: !1 | |
}), | |
Mg = function() { | |
return { | |
restrict: "A", | |
require: "?ngModel", | |
link: function(a, b, c, d) { | |
d && (c.required = !0, d.$validators.required = function(a, b) { | |
return !c.required || !d.$isEmpty(b) | |
}, c.$observe("required", function() { | |
d.$validate() | |
})) | |
} | |
} | |
}, | |
Ng = function() { | |
return { | |
restrict: "A", | |
require: "?ngModel", | |
link: function(a, b, e, f) { | |
if (f) { | |
var g, h = e.ngPattern || e.pattern; | |
e.$observe("pattern", function(a) { | |
if (x(a) && a.length > 0 && (a = new RegExp("^" + a + "$")), a && !a.test) throw d("ngPattern")("noregexp", "Expected {0} to be a RegExp but was {1}. Element: {2}", h, a, $(b)); | |
g = a || c, f.$validate() | |
}), f.$validators.pattern = function(a, b) { | |
return f.$isEmpty(b) || t(g) || g.test(b) | |
} | |
} | |
} | |
} | |
}, | |
Og = function() { | |
return { | |
restrict: "A", | |
require: "?ngModel", | |
link: function(a, b, c, d) { | |
if (d) { | |
var e = -1; | |
c.$observe("maxlength", function(a) { | |
var b = n(a); | |
e = isNaN(b) ? -1 : b, d.$validate() | |
}), d.$validators.maxlength = function(a, b) { | |
return 0 > e || d.$isEmpty(b) || b.length <= e | |
} | |
} | |
} | |
} | |
}, | |
Pg = function() { | |
return { | |
restrict: "A", | |
require: "?ngModel", | |
link: function(a, b, c, d) { | |
if (d) { | |
var e = 0; | |
c.$observe("minlength", function(a) { | |
e = n(a) || 0, d.$validate() | |
}), d.$validators.minlength = function(a, b) { | |
return d.$isEmpty(b) || b.length >= e | |
} | |
} | |
} | |
} | |
}; | |
a.angular.bootstrap || (ka(), ua(Nd), Nd.module("ngLocale", [], ["$provide", function(a) { | |
function b(a) { | |
a += ""; | |
var b = a.indexOf("."); | |
return -1 == b ? 0 : a.length - b - 1 | |
} | |
function d(a, d) { | |
var e = d; | |
c === e && (e = Math.min(b(a), 3)); | |
var f = Math.pow(10, e), | |
g = (a * f | 0) % f; | |
return { | |
v: e, | |
f: g | |
} | |
} | |
var e = { | |
ZERO: "zero", | |
ONE: "one", | |
TWO: "two", | |
FEW: "few", | |
MANY: "many", | |
OTHER: "other" | |
}; | |
a.value("$locale", { | |
DATETIME_FORMATS: { | |
AMPMS: ["AM", "PM"], | |
DAY: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], | |
ERANAMES: ["Before Christ", "Anno Domini"], | |
ERAS: ["BC", "AD"], | |
FIRSTDAYOFWEEK: 6, | |
MONTH: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], | |
SHORTDAY: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], | |
SHORTMONTH: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], | |
STANDALONEMONTH: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], | |
WEEKENDRANGE: [5, 6], | |
fullDate: "EEEE, MMMM d, y", | |
longDate: "MMMM d, y", | |
medium: "MMM d, y h:mm:ss a", | |
mediumDate: "MMM d, y", | |
mediumTime: "h:mm:ss a", | |
"short": "M/d/yy h:mm a", | |
shortDate: "M/d/yy", | |
shortTime: "h:mm a" | |
}, | |
NUMBER_FORMATS: { | |
CURRENCY_SYM: "$", | |
DECIMAL_SEP: ".", | |
GROUP_SEP: ",", | |
PATTERNS: [{ | |
gSize: 3, | |
lgSize: 3, | |
maxFrac: 3, | |
minFrac: 0, | |
minInt: 1, | |
negPre: "-", | |
negSuf: "", | |
posPre: "", | |
posSuf: "" | |
}, { | |
gSize: 3, | |
lgSize: 3, | |
maxFrac: 2, | |
minFrac: 2, | |
minInt: 1, | |
negPre: "-¤", | |
negSuf: "", | |
posPre: "¤", | |
posSuf: "" | |
}] | |
}, | |
id: "en-us", | |
pluralCat: function(a, b) { | |
var c = 0 | a, | |
f = d(a, b); | |
return 1 == c && 0 == f.v ? e.ONE : e.OTHER | |
} | |
}) | |
}]), Ed(b).ready(function() { | |
fa(b, ga) | |
})) | |
}(window, document), !window.angular.$$csp().noInlineStyle && window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'), | |
function(a, b, c) { | |
"use strict"; | |
var d, e = {}, | |
f = { | |
sdk: !1, | |
ready: !1 | |
}; | |
b.module("facebook", []).value("settings", e).value("flags", f).provider("Facebook", [function() { | |
e.appId = null, this.setAppId = function(a) { | |
e.appId = a | |
}, this.getAppId = function() { | |
return e.appId | |
}, e.locale = "en_US", this.setLocale = function(a) { | |
e.locale = a | |
}, this.getLocale = function() { | |
return e.locale | |
}, e.status = !0, this.setStatus = function(a) { | |
e.status = a | |
}, this.getStatus = function() { | |
return e.status | |
}, e.channelUrl = null, this.setChannel = function(a) { | |
e.channelUrl = a | |
}, this.getChannel = function() { | |
return e.channelUrl | |
}, e.cookie = !0, this.setCookie = function(a) { | |
e.cookie = a | |
}, this.getCookie = function() { | |
return e.cookie | |
}, e.xfbml = !0, this.setXfbml = function(a) { | |
e.xfbml = a | |
}, this.getXfbml = function() { | |
return e.xfbml | |
}, this.setAuthResponse = function(a) { | |
e.authResponse = a || !0 | |
}, this.getAuthResponse = function() { | |
return e.authResponse | |
}, e.frictionlessRequests = !1, this.setFrictionlessRequests = function(a) { | |
e.frictionlessRequests = a | |
}, this.getFrictionlessRequests = function() { | |
return e.frictionlessRequests | |
}, e.hideFlashCallback = null, this.setHideFlashCallback = function(a) { | |
e.hideFlashCallback = a || null | |
}, this.getHideFlashCallback = function() { | |
return e.hideFlashCallback | |
}, this.setInitCustomOption = function(a, c) { | |
return b.isString(a) ? (e[a] = c, e[a]) : !1 | |
}, this.getInitOption = function(a) { | |
return b.isString(a) && e.hasOwnProperty(a) ? e[a] : !1 | |
}, e.loadSDK = !0, this.setLoadSDK = function(a) { | |
e.loadSDK = !!a | |
}, this.getLoadSDK = function() { | |
return e.loadSDK | |
}, e.version = "v2.5", this.setSdkVersion = function(a) { | |
e.version = a | |
}, this.getSdkVersion = function() { | |
return e.version | |
}, this.init = function(a, c) { | |
b.isString(a) && (e.appId = a || e.appId), b.isObject(a) && b.extend(e, a), b.isDefined(c) && (e.loadSDK = !!c) | |
}, this.$get = ["$q", "$rootScope", "$timeout", "$window", function(a, c, g, h) { | |
function i() { | |
this.appId = e.appId | |
} | |
return i.prototype.isReady = function() { | |
return f.ready | |
}, i.prototype.login = function() { | |
var c, d, e = a.defer(), | |
f = Array.prototype.slice.call(arguments); | |
return b.forEach(f, function(a, e) { | |
b.isFunction(a) && (c = a, d = e) | |
}), b.isFunction(c) && b.isNumber(d) && f.splice(d, 1, function(a) { | |
g(function() { | |
b.isUndefined(a.error) ? e.resolve(a) : e.reject(a), b.isFunction(c) && c(a) | |
}) | |
}), this.isReady() ? h.FB.login.apply(h.FB, f) : g(function() { | |
e.reject("Facebook.login() called before Facebook SDK has loaded.") | |
}), e.promise | |
}, b.forEach(["logout", "api", "ui", "getLoginStatus"], function(c) { | |
i.prototype[c] = function() { | |
var e, f, i = a.defer(), | |
j = Array.prototype.slice.call(arguments); | |
return b.forEach(j, function(a, c) { | |
b.isFunction(a) && (e = a, f = c) | |
}), b.isFunction(e) && b.isNumber(f) && j.splice(f, 1, function(a) { | |
g(function() { | |
a && "undefined" == typeof a.error ? i.resolve(a) : i.reject(a), b.isFunction(e) && e(a) | |
}) | |
}), g(function() { | |
d.promise.then(function() { | |
h.FB[c].apply(FB, j) | |
}, function() { | |
throw "Facebook API could not be initialized properly" | |
}) | |
}), i.promise | |
} | |
}), i.prototype.parseXFBML = function() { | |
var b = a.defer(); | |
return g(function() { | |
d.promise.then(function() { | |
h.FB.XFBML.parse(), b.resolve() | |
}, function() { | |
throw "Facebook API could not be initialized properly" | |
}) | |
}), b.promise | |
}, i.prototype.subscribe = function() { | |
var c, e, f = a.defer(), | |
i = Array.prototype.slice.call(arguments); | |
return b.forEach(i, function(a, d) { | |
b.isFunction(a) && (c = a, e = d) | |
}), b.isFunction(c) && b.isNumber(e) && i.splice(e, 1, function(a) { | |
g(function() { | |
a && "undefined" == typeof a.error ? f.resolve(a) : f.reject(a), b.isFunction(c) && c(a) | |
}) | |
}), g(function() { | |
d.promise.then(function() { | |
h.FB.Event.subscribe.apply(FB, i) | |
}, function() { | |
throw "Facebook API could not be initialized properly" | |
}) | |
}), f.promise | |
}, i.prototype.unsubscribe = function() { | |
var c, e, f = a.defer(), | |
i = Array.prototype.slice.call(arguments); | |
return b.forEach(i, function(a, d) { | |
b.isFunction(a) && (c = a, e = d) | |
}), b.isFunction(c) && b.isNumber(e) && i.splice(e, 1, function(a) { | |
g(function() { | |
a && "undefined" == typeof a.error ? f.resolve(a) : f.reject(a), b.isFunction(c) && c(a) | |
}) | |
}), g(function() { | |
d.promise.then(function() { | |
h.FB.Event.unsubscribe.apply(FB, i) | |
}, function() { | |
throw "Facebook API could not be initialized properly" | |
}) | |
}), f.promise | |
}, new i | |
}] | |
}]).run(["$rootScope", "$q", "$window", "$timeout", function(a, c, g, h) { | |
d = c.defer(); | |
var i = e.loadSDK; | |
delete e.loadSDK, g.fbAsyncInit = function() { | |
h(function() { | |
if (!e.appId) throw "Missing appId setting."; | |
FB.init(e), f.ready = !0, b.forEach({ | |
"auth.login": "login", | |
"auth.logout": "logout", | |
"auth.prompt": "prompt", | |
"auth.sessionChange": "sessionChange", | |
"auth.statusChange": "statusChange", | |
"auth.authResponseChange": "authResponseChange", | |
"xfbml.render": "xfbmlRender", | |
"edge.create": "like", | |
"edge.remove": "unlike", | |
"comment.create": "comment", | |
"comment.remove": "uncomment" | |
}, function(b, c) { | |
FB.Event.subscribe(c, function(c) { | |
h(function() { | |
a.$broadcast("Facebook:" + b, c) | |
}) | |
}) | |
}), a.$broadcast("Facebook:load"), d.resolve(FB) | |
}) | |
}, | |
function() { | |
var a = document.getElementById("fb-root"); | |
return a || (a = document.createElement("div"), a.id = "fb-root", document.body.insertBefore(a, document.body.childNodes[0])), a | |
}(), i && ! function() { | |
var a = "//connect.facebook.net/" + e.locale + "/sdk.js", | |
b = document.createElement("script"); | |
b.id = "facebook-jssdk", b.async = !0, -1 !== ["file", "file:"].indexOf(g.location.protocol) && (a = "https:" + a), b.src = a, b.onload = function() { | |
f.sdk = !0 | |
}, document.getElementsByTagName("head")[0].appendChild(b) | |
}() | |
}]) | |
}(window, angular), | |
function(a, b, c) { | |
"use strict"; | |
function d(a) { | |
if (null == a) return ""; | |
switch (typeof a) { | |
case "string": | |
return a; | |
case "number": | |
return "" + a; | |
default: | |
return x(a) | |
} | |
} | |
function e(a, b) { | |
for (var c = a.split(/\n/g), d = 0; d < c.length; d++) { | |
var e = c[d]; | |
if (!(b >= e.length)) return { | |
line: d + 1, | |
column: b + 1 | |
}; | |
b -= e.length | |
} | |
} | |
function f(a) { | |
function b(b) { | |
return a | |
} | |
var c = y[a]; | |
return null != c ? c : (b.$$watchDelegate = function(b, c, d) { | |
var e = b.$watch(v, function() { | |
w(c) && c.call(null, a, a, b), e() | |
}, d); | |
return e | |
}, y[a] = b, b.exp = a, b.expressions = [], b) | |
} | |
function g(a, b) { | |
function c(a) { | |
return void 0 == a ? a : a - b | |
} | |
function d(b) { | |
return c(a(b)) | |
} | |
if (0 === b) return a; | |
var e; | |
return d.$$watchDelegate = function(b, d, f) { | |
return e = b.$watch(a, function(a, e) { | |
w(d) && d.call(null, c(a), c(e), b) | |
}, f) | |
}, d | |
} | |
function h(a, b) { | |
var c = this; | |
if (this.expressionFn = a, this.choices = b, void 0 === b.other) throw u("reqother", "“other” is a required option."); | |
this.parsedFn = function(a) { | |
return c.getResult(a) | |
}, this.parsedFn.$$watchDelegate = function(a, b, d) { | |
return c.watchDelegate(a, b, d) | |
}, this.parsedFn.exp = a.exp, this.parsedFn.expressions = a.expressions | |
} | |
function i(a, b, c, d) { | |
var e = this; | |
this.scope = b, this.msgSelector = a, this.listener = c, this.objectEquality = d, this.lastMessage = void 0, this.messageFnWatcher = v; | |
var f = function(a, b) { | |
return e.expressionFnListener(a, b) | |
}; | |
this.expressionFnWatcher = b.$watch(a.expressionFn, f, d) | |
} | |
function j(a, b) { | |
h.call(this, a, b) | |
} | |
function k() {} | |
function l(a, b, c, d) { | |
h.call(this, a, b), this.offset = c, this.pluralCat = d | |
} | |
function m() {} | |
function n(a, b) { | |
this.trustedContext = a, this.allOrNothing = b, this.textParts = [], this.expressionFns = [], this.expressionIndices = [], this.partialText = "", this.concatParts = null | |
} | |
function o(a, b, c, d) { | |
this.interpolationParts = a, this.scope = b, this.previousResult = void 0, this.listener = c; | |
var e = this; | |
this.expressionFnsWatcher = b.$watchGroup(a.expressionFns, function(a, b) { | |
e.watchListener(a, b) | |
}) | |
} | |
function p(a, b) { | |
b.expressionFn = a.expressionFn, b.expressionMinusOffsetFn = a.expressionMinusOffsetFn, b.pluralOffset = a.pluralOffset, b.choices = a.choices, b.choiceKey = a.choiceKey, b.interpolationParts = a.interpolationParts, b.ruleChoiceKeyword = a.ruleChoiceKeyword, b.msgStartIndex = a.msgStartIndex, b.expressionStartIndex = a.expressionStartIndex | |
} | |
function q(a) { | |
p(a, this) | |
} | |
function r(a, b, c, d, e, f, g, h) { | |
this.text = a, this.index = b || 0, this.$parse = c, this.pluralCat = d, this.stringifier = e, this.mustHaveExpression = !!f, this.trustedContext = g, this.allOrNothing = !!h, this.expressionFn = null, this.expressionMinusOffsetFn = null, this.pluralOffset = null, this.choices = null, this.choiceKey = null, this.interpolationParts = null, this.msgStartIndex = null, this.nestedStateStack = [], this.parsedFn = null, this.rule = null, this.ruleStack = null, this.ruleChoiceKeyword = null, this.interpNestLevel = null, this.expressionStartIndex = null, this.stringStartIndex = null, this.stringQuote = null, this.stringInterestsRe = null, this.angularOperatorStack = null, this.textPart = null | |
} | |
function s(a) { | |
switch (a) { | |
case "{": | |
return "}"; | |
case "[": | |
return "]"; | |
case "(": | |
return ")"; | |
default: | |
return null | |
} | |
} | |
function t(a) { | |
switch (a) { | |
case "}": | |
return "{"; | |
case "]": | |
return "["; | |
case ")": | |
return "("; | |
default: | |
return null | |
} | |
} | |
var u = a.angular.$interpolateMinErr, | |
v = a.angular.noop, | |
w = a.angular.isFunction, | |
x = a.angular.toJson, | |
y = Object.create(null); | |
h.prototype.getMessageFn = function(a) { | |
return this.choices[this.categorizeValue(a)] | |
}, h.prototype.getResult = function(a) { | |
return this.getMessageFn(this.expressionFn(a))(a) | |
}, h.prototype.watchDelegate = function(a, b, c) { | |
var d = new i(this, a, b, c); | |
return function() { | |
d.cancelWatch() | |
} | |
}, i.prototype.expressionFnListener = function(a, b) { | |
var c = this; | |
this.messageFnWatcher(); | |
var d = function(a, b) { | |
return c.messageFnListener(a, b) | |
}, | |
e = this.msgSelector.getMessageFn(a); | |
this.messageFnWatcher = this.scope.$watch(e, d, this.objectEquality) | |
}, i.prototype.messageFnListener = function(a, b) { | |
w(this.listener) && this.listener.call(null, a, a === b ? a : this.lastMessage, this.scope), this.lastMessage = a | |
}, i.prototype.cancelWatch = function() { | |
this.expressionFnWatcher(), this.messageFnWatcher() | |
}, k.prototype = h.prototype, j.prototype = new k, j.prototype.categorizeValue = function(a) { | |
return void 0 !== this.choices[a] ? a : "other" | |
}, m.prototype = h.prototype, l.prototype = new m, l.prototype.categorizeValue = function(a) { | |
if (isNaN(a)) return "other"; | |
if (void 0 !== this.choices[a]) return a; | |
var b = this.pluralCat(a - this.offset); | |
return void 0 !== this.choices[b] ? b : "other" | |
}, n.prototype.flushPartialText = function() { | |
this.partialText && (null == this.concatParts ? this.textParts.push(this.partialText) : (this.textParts.push(this.concatParts.join("")), this.concatParts = null), this.partialText = "") | |
}, n.prototype.addText = function(a) { | |
a.length && (this.partialText ? this.concatParts ? this.concatParts.push(a) : this.concatParts = [this.partialText, a] : this.partialText = a) | |
}, n.prototype.addExpressionFn = function(a) { | |
this.flushPartialText(), this.expressionIndices.push(this.textParts.length), this.expressionFns.push(a), this.textParts.push("") | |
}, n.prototype.getExpressionValues = function(a) { | |
for (var b = new Array(this.expressionFns.length), c = 0; c < this.expressionFns.length; c++) b[c] = this.expressionFns[c](a); | |
return b | |
}, n.prototype.getResult = function(a) { | |
for (var b = 0; b < this.expressionIndices.length; b++) { | |
var c = a[b]; | |
if (this.allOrNothing && void 0 === c) return; | |
this.textParts[this.expressionIndices[b]] = c | |
} | |
return this.textParts.join("") | |
}, n.prototype.toParsedFn = function(a, b) { | |
var c = this; | |
if (this.flushPartialText(), a && 0 === this.expressionFns.length) return void 0; | |
if (0 === this.textParts.length) return f(""); | |
if (this.trustedContext && this.textParts.length > 1 && u.throwNoconcat(b), 0 === this.expressionFns.length) return 1 != this.textParts.length && this.errorInParseLogic(), f(this.textParts[0]); | |
var d = function(a) { | |
return c.getResult(c.getExpressionValues(a)) | |
}; | |
d.$$watchDelegate = function(a, b, d) { | |
return c.watchDelegate(a, b, d) | |
}, d.exp = b, d.expressions = new Array(this.expressionFns.length); | |
for (var e = 0; e < this.expressionFns.length; e++) d.expressions[e] = this.expressionFns[e].exp; | |
return d | |
}, n.prototype.watchDelegate = function(a, b, c) { | |
var d = new o(this, a, b, c); | |
return function() { | |
d.cancelWatch() | |
} | |
}, o.prototype.watchListener = function(a, b) { | |
var c = this.interpolationParts.getResult(a); | |
w(this.listener) && this.listener.call(null, c, a === b ? c : this.previousResult, this.scope), this.previousResult = c | |
}, o.prototype.cancelWatch = function() { | |
this.expressionFnsWatcher() | |
}; | |
var z = new q(new r("", 0, null, null, null, !1, null, !1)); | |
r.prototype.pushState = function() { | |
this.nestedStateStack.push(new q(this)), p(z, this) | |
}, r.prototype.popState = function() { | |
0 === this.nestedStateStack.length && this.errorInParseLogic(); | |
var a = this.nestedStateStack.pop(); | |
p(a, this) | |
}, r.prototype.matchRe = function(a, b) { | |
a.lastIndex = this.index; | |
var c = a.exec(this.text); | |
return null == c || b !== !0 && c.index != this.index ? null : (this.index = a.lastIndex, c) | |
}, r.prototype.searchRe = function(a) { | |
return this.matchRe(a, !0) | |
}, r.prototype.consumeRe = function(a) { | |
return !!this.matchRe(a) | |
}, r.prototype.run = function(a) { | |
this.ruleStack = [a]; | |
do { | |
for (this.rule = this.ruleStack.pop(); this.rule;) this.rule(); | |
this.assertRuleOrNull(this.rule) | |
} while (this.ruleStack.length > 0) | |
}, r.prototype.errorInParseLogic = function() { | |
throw u("logicbug", "The messageformat parser has encountered an internal error. Please file a github issue against the AngularJS project and provide this message text that triggers the bug. Text: “{0}”", this.text) | |
}, r.prototype.assertRuleOrNull = function(a) { | |
void 0 === a && this.errorInParseLogic() | |
}; | |
var A = /\s*(\w+)\s*/g; | |
r.prototype.errorExpecting = function() { | |
var a, b = this.matchRe(A); | |
if (null == b) throw a = e(this.text, this.index), u("reqarg", "Expected one of “plural” or “select” at line {0}, column {1} of text “{2}”", a.line, a.column, this.text); | |
var c = b[1]; | |
throw "select" == c || "plural" == c ? (a = e(this.text, this.index), u("reqcomma", "Expected a comma after the keyword “{0}” at line {1}, column {2} of text “{3}”", c, a.line, a.column, this.text)) : (a = e(this.text, this.index), u("unknarg", "Unsupported keyword “{0}” at line {0}, column {1}. Only “plural” and “select” are currently supported. Text: “{3}”", c, a.line, a.column, this.text)) | |
}; | |
var B = /['"]/g; | |
r.prototype.ruleString = function() { | |
var a = this.matchRe(B); | |
if (null == a) { | |
var b = e(this.text, this.index); | |
throw u("wantstring", "Expected the beginning of a string at line {0}, column {1} in text “{2}”", b.line, b.column, this.text) | |
} | |
this.startStringAtMatch(a) | |
}, r.prototype.startStringAtMatch = function(a) { | |
this.stringStartIndex = a.index, this.stringQuote = a[0], this.stringInterestsRe = "'" == this.stringQuote ? C : D, this.rule = this.ruleInsideString | |
}; | |
var C = /\\(?:\\|'|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{2}|[0-7]{3}|\r\n|\n|[\s\S])|'/g, | |
D = /\\(?:\\|"|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{2}|[0-7]{3}|\r\n|\n|[\s\S])|"/g; | |
r.prototype.ruleInsideString = function() { | |
var a = this.searchRe(this.stringInterestsRe); | |
if (null == a) { | |
var b = e(this.text, this.stringStartIndex); | |
throw u("untermstr", "The string beginning at line {0}, column {1} is unterminated in text “{2}”", b.line, b.column, this.text) | |
} | |
a[0]; | |
a == this.stringQuote && (this.rule = null) | |
}; | |
var E = /\s*(plural|select)\s*,\s*/g; | |
r.prototype.rulePluralOrSelect = function() { | |
var a = this.searchRe(E); | |
null == a && this.errorExpecting(); | |
var b = a[1]; | |
switch (b) { | |
case "plural": | |
this.rule = this.rulePluralStyle; | |
break; | |
case "select": | |
this.rule = this.ruleSelectStyle; | |
break; | |
default: | |
this.errorInParseLogic() | |
} | |
}, r.prototype.rulePluralStyle = function() { | |
this.choices = Object.create(null), this.ruleChoiceKeyword = this.rulePluralValueOrKeyword, this.rule = this.rulePluralOffset | |
}, r.prototype.ruleSelectStyle = function() { | |
this.choices = Object.create(null), this.ruleChoiceKeyword = this.ruleSelectKeyword, this.rule = this.ruleSelectKeyword | |
}; | |
var F = /[0]|(?:[1-9][0-9]*)/g, | |
G = new RegExp("\\s*offset\\s*:\\s*(" + F.source + ")", "g"); | |
r.prototype.rulePluralOffset = function() { | |
var a = this.matchRe(G); | |
this.pluralOffset = null == a ? 0 : parseInt(a[1], 10), this.expressionMinusOffsetFn = g(this.expressionFn, this.pluralOffset), this.rule = this.rulePluralValueOrKeyword | |
}, r.prototype.assertChoiceKeyIsNew = function(a, b) { | |
if (void 0 !== this.choices[a]) { | |
var c = e(this.text, b); | |
throw u("dupvalue", "The choice “{0}” is specified more than once. Duplicate key is at line {1}, column {2} in text “{3}”", a, c.line, c.column, this.text) | |
} | |
}; | |
var H = /\s*(\w+)/g; | |
r.prototype.ruleSelectKeyword = function() { | |
var a = this.matchRe(H); | |
return null == a ? (this.parsedFn = new j(this.expressionFn, this.choices).parsedFn, void(this.rule = null)) : (this.choiceKey = a[1], this.assertChoiceKeyIsNew(this.choiceKey, a.index), void(this.rule = this.ruleMessageText)) | |
}; | |
var I = new RegExp("\\s*(?:(?:=(" + F.source + "))|(\\w+))", "g"); | |
r.prototype.rulePluralValueOrKeyword = function() { | |
var a = this.matchRe(I); | |
return null == a ? (this.parsedFn = new l(this.expressionFn, this.choices, this.pluralOffset, this.pluralCat).parsedFn, void(this.rule = null)) : (null != a[1] ? this.choiceKey = parseInt(a[1], 10) : this.choiceKey = a[2], this.assertChoiceKeyIsNew(this.choiceKey, a.index), void(this.rule = this.ruleMessageText)) | |
}; | |
var J = /\s*{/g; | |
r.prototype.ruleMessageText = function() { | |
if (!this.consumeRe(J)) { | |
var a = e(this.text, this.index); | |
throw u("reqopenbrace", "The plural choice “{0}” must be followed by a message in braces at line {1}, column {2} in text “{3}”", this.choiceKey, a.line, a.column, this.text) | |
} | |
this.msgStartIndex = this.index, this.interpolationParts = new n(this.trustedContext, this.allOrNothing), this.rule = this.ruleInInterpolationOrMessageText | |
}; | |
var K = /\\.|{{|}/g, | |
L = /\\.|{{|#|}/g, | |
M = /\\.|{{/g; | |
r.prototype.advanceInInterpolationOrMessageText = function() { | |
var a, b = this.index; | |
if (null == this.ruleChoiceKeyword) { | |
if (a = this.searchRe(M), null == a) return this.textPart = this.text.substring(b), this.index = this.text.length, null | |
} else if (a = this.searchRe(this.ruleChoiceKeyword == this.rulePluralValueOrKeyword ? L : K), null == a) { | |
var c = e(this.text, this.msgStartIndex); | |
throw u("reqendbrace", "The plural/select choice “{0}” message starting at line {1}, column {2} does not have an ending closing brace. Text “{3}”", this.choiceKey, c.line, c.column, this.text) | |
} | |
var d = a[0]; | |
return this.textPart = this.text.substring(b, a.index), d | |
}, r.prototype.ruleInInterpolationOrMessageText = function() { | |
var a = this.index, | |
b = this.advanceInInterpolationOrMessageText(); | |
return null == b ? (this.index = this.text.length, this.interpolationParts.addText(this.text.substring(a)), void(this.rule = null)) : "\\" == b[0] ? void this.interpolationParts.addText(this.textPart + b[1]) : (this.interpolationParts.addText(this.textPart), void("{{" == b ? (this.pushState(), this.ruleStack.push(this.ruleEndMustacheInInterpolationOrMessage), this.rule = this.ruleEnteredMustache) : "}" == b ? (this.choices[this.choiceKey] = this.interpolationParts.toParsedFn(!1, this.text), this.rule = this.ruleChoiceKeyword) : "#" == b ? this.interpolationParts.addExpressionFn(this.expressionMinusOffsetFn) : this.errorInParseLogic())) | |
}, r.prototype.ruleInterpolate = function() { | |
this.interpolationParts = new n(this.trustedContext, this.allOrNothing), this.rule = this.ruleInInterpolation | |
}, r.prototype.ruleInInterpolation = function() { | |
var a = this.index, | |
b = this.searchRe(M); | |
if (null == b) return this.index = this.text.length, this.interpolationParts.addText(this.text.substring(a)), this.parsedFn = this.interpolationParts.toParsedFn(this.mustHaveExpression, this.text), void(this.rule = null); | |
var c = b[0]; | |
return "\\" == c[0] ? void this.interpolationParts.addText(this.text.substring(a, b.index) + c[1]) : (this.interpolationParts.addText(this.text.substring(a, b.index)), this.pushState(), this.ruleStack.push(this.ruleInterpolationEndMustache), void(this.rule = this.ruleEnteredMustache)) | |
}, r.prototype.ruleInterpolationEndMustache = function() { | |
var a = this.parsedFn; | |
this.popState(), this.interpolationParts.addExpressionFn(a), this.rule = this.ruleInInterpolation | |
}, r.prototype.ruleEnteredMustache = function() { | |
this.parsedFn = null, this.ruleStack.push(this.ruleEndMustache), this.rule = this.ruleAngularExpression | |
}, r.prototype.ruleEndMustacheInInterpolationOrMessage = function() { | |
var a = this.parsedFn; | |
this.popState(), this.interpolationParts.addExpressionFn(a), this.rule = this.ruleInInterpolationOrMessageText | |
}; | |
var N = /\s*}}/g; | |
r.prototype.ruleEndMustache = function() { | |
var a = this.matchRe(N); | |
if (null == a) { | |
var b = e(this.text, this.index); | |
throw u("reqendinterp", "Expecting end of interpolation symbol, “{0}”, at line {1}, column {2} in text “{3}”", "}}", b.line, b.column, this.text) | |
} | |
null == this.parsedFn && (this.parsedFn = this.$parse(this.expressionFn, this.stringifier), this.parsedFn.exp = this.expressionFn.exp, this.parsedFn.expressions = this.expressionFn.expressions), this.rule = null | |
}, r.prototype.ruleAngularExpression = function() { | |
this.angularOperatorStack = [], this.expressionStartIndex = this.index, this.rule = this.ruleInAngularExpression | |
}; | |
var O = /[[\]{}()'",]/g; | |
r.prototype.ruleInAngularExpression = function() { | |
var a, b = (this.index, this.searchRe(O)); | |
if (null == b) { | |
if (0 === this.angularOperatorStack.length) return this.index = this.text.length, this.expressionFn = this.$parse(this.text.substring(this.expressionStartIndex, this.index)), this.expressionFn.exp = this.text.substring(this.expressionStartIndex, this.index), this.expressionFn.expressions = this.expressionFn.expressions, void(this.rule = null); | |
var c = this.angularOperatorStack[0]; | |
throw u("badexpr", "Unexpected end of Angular expression. Expecting operator “{0}” at the end of the text “{1}”", this.getEndOperator(c), this.text) | |
} | |
var d = b[0]; | |
if ("'" == d || '"' == d) return this.ruleStack.push(this.ruleInAngularExpression), void this.startStringAtMatch(b); | |
if ("," == d) { | |
if (this.trustedContext) throw a = e(this.text, this.index), u("unsafe", "Use of select/plural MessageFormat syntax is currently disallowed in a secure context ({0}). At line {1}, column {2} of text “{3}”", this.trustedContext, a.line, a.column, this.text); | |
return void(0 === this.angularOperatorStack.length && (this.expressionFn = this.$parse(this.text.substring(this.expressionStartIndex, b.index)), this.expressionFn.exp = this.text.substring(this.expressionStartIndex, b.index), this.expressionFn.expressions = this.expressionFn.expressions, this.rule = null, this.rule = this.rulePluralOrSelect)) | |
} | |
if (null != s(d)) return void this.angularOperatorStack.unshift(d); | |
var f = t(d); | |
if (null == f && this.errorInParseLogic(), this.angularOperatorStack.length > 0) { | |
if (f == this.angularOperatorStack[0]) return void this.angularOperatorStack.shift(); | |
throw a = e(this.text, this.index), u("badexpr", "Unexpected operator “{0}” at line {1}, column {2} in text. Was expecting “{3}”. Text: “{4}”", d, a.line, a.column, s(this.angularOperatorStack[0]), this.text) | |
} | |
this.index = b.index, this.expressionFn = this.$parse(this.text.substring(this.expressionStartIndex, this.index)), this.expressionFn.exp = this.text.substring(this.expressionStartIndex, this.index), this.expressionFn.expressions = this.expressionFn.expressions, this.rule = null | |
}; | |
var P = ["$parse", "$locale", "$sce", "$exceptionHandler", function(a, b, c, e) { | |
function f(a, b, f) { | |
return function(g) { | |
try { | |
return g = a ? c.getTrusted(a, g) : c.valueOf(g), b && void 0 === g ? g : d(g) | |
} catch (h) { | |
e(u.interr(f, h)) | |
} | |
} | |
} | |
function g(c, d, e, g) { | |
var h = f(e, g, c), | |
i = new r(c, 0, a, b.pluralCat, h, d, e, g); | |
return i.run(i.ruleInterpolate), i.parsedFn | |
} | |
return { | |
interpolate: g | |
} | |
}], | |
Q = ["$$messageFormat", "$delegate", function(a, b) { | |
if ("{{" != b.startSymbol() || "}}" != b.endSymbol()) throw u("nochgmustache", "angular-message-format.js currently does not allow you to use custom start and end symbols for interpolation."); | |
var c = a.interpolate; | |
return c.startSymbol = b.startSymbol, c.endSymbol = b.endSymbol, c | |
}], | |
R = a.angular.module("ngMessageFormat", ["ng"]); | |
R.factory("$$messageFormat", P), R.config(["$provide", function(a) { | |
a.decorator("$interpolate", Q) | |
}]) | |
}(window, window.angular), | |
function(a, b, c) { | |
"use strict"; | |
function d(a) { | |
return null != a && "" !== a && "hasOwnProperty" !== a && h.test("." + a) | |
} | |
function e(a, e) { | |
if (!d(e)) throw g("badmember", 'Dotted member path "@{0}" is invalid.', e); | |
for (var f = e.split("."), h = 0, i = f.length; i > h && b.isDefined(a); h++) { | |
var j = f[h]; | |
a = null !== a ? a[j] : c | |
} | |
return a | |
} | |
function f(a, c) { | |
c = c || {}, b.forEach(c, function(a, b) { | |
delete c[b] | |
}); | |
for (var d in a) !a.hasOwnProperty(d) || "$" === d.charAt(0) && "$" === d.charAt(1) || (c[d] = a[d]); | |
return c | |
} | |
var g = b.$$minErr("$resource"), | |
h = /^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/; | |
b.module("ngResource", ["ng"]).provider("$resource", function() { | |
var a = /^https?:\/\/[^\/]*/, | |
d = this; | |
this.defaults = { | |
stripTrailingSlashes: !0, | |
actions: { | |
get: { | |
method: "GET" | |
}, | |
save: { | |
method: "POST" | |
}, | |
query: { | |
method: "GET", | |
isArray: !0 | |
}, | |
remove: { | |
method: "DELETE" | |
}, | |
"delete": { | |
method: "DELETE" | |
} | |
} | |
}, this.$get = ["$http", "$log", "$q", function(h, i, j) { | |
function k(a) { | |
return l(a, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+") | |
} | |
function l(a, b) { | |
return encodeURIComponent(a).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, b ? "%20" : "+") | |
} | |
function m(a, b) { | |
this.template = a, this.defaults = q({}, d.defaults, b), this.urlParams = {} | |
} | |
function n(a, k, l, t) { | |
function u(a, b) { | |
var c = {}; | |
return b = q({}, k, b), p(b, function(b, d) { | |
s(b) && (b = b()), c[d] = b && b.charAt && "@" == b.charAt(0) ? e(a, b.substr(1)) : b | |
}), c | |
} | |
function v(a) { | |
return a.resource | |
} | |
function w(a) { | |
f(a || {}, this) | |
} | |
var x = new m(a, t); | |
return l = q({}, d.defaults.actions, l), w.prototype.toJSON = function() { | |
var a = q({}, this); | |
return delete a.$promise, delete a.$resolved, a | |
}, p(l, function(a, d) { | |
var e = /^(POST|PUT|PATCH)$/i.test(a.method); | |
w[d] = function(k, l, m, n) { | |
var t, y, z, A = {}; | |
switch (arguments.length) { | |
case 4: | |
z = n, y = m; | |
case 3: | |
case 2: | |
if (!s(l)) { | |
A = k, t = l, y = m; | |
break | |
} | |
if (s(k)) { | |
y = k, z = l; | |
break | |
} | |
y = l, z = m; | |
case 1: | |
s(k) ? y = k : e ? t = k : A = k; | |
break; | |
case 0: | |
break; | |
default: | |
throw g("badargs", "Expected up to 4 arguments [params, data, success, error], got {0} arguments", arguments.length) | |
} | |
var B = this instanceof w, | |
C = B ? t : a.isArray ? [] : new w(t), | |
D = {}, | |
E = a.interceptor && a.interceptor.response || v, | |
F = a.interceptor && a.interceptor.responseError || c; | |
p(a, function(a, c) { | |
switch (c) { | |
default: D[c] = r(a); | |
break; | |
case "params": | |
case "isArray": | |
case "interceptor": | |
break; | |
case "timeout": | |
a && !b.isNumber(a) && i.debug("ngResource:\n Only numeric values are allowed as `timeout`.\n Promises are not supported in $resource, because the same value would be used for multiple requests.\n If you need support for cancellable $resource actions, you should upgrade to version 1.5 or higher.") | |
} | |
}), e && (D.data = t), x.setUrlParams(D, q({}, u(t, a.params || {}), A), a.url); | |
var G = h(D).then(function(c) { | |
var e = c.data, | |
h = C.$promise; | |
if (e) { | |
if (b.isArray(e) !== !!a.isArray) throw g("badcfg", "Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})", d, a.isArray ? "array" : "object", b.isArray(e) ? "array" : "object", D.method, D.url); | |
a.isArray ? (C.length = 0, p(e, function(a) { | |
"object" == typeof a ? C.push(new w(a)) : C.push(a) | |
})) : (f(e, C), C.$promise = h) | |
} | |
return C.$resolved = !0, c.resource = C, c | |
}, function(a) { | |
return C.$resolved = !0, (z || o)(a), j.reject(a) | |
}); | |
return G = G.then(function(a) { | |
var b = E(a); | |
return (y || o)(b, a.headers), b | |
}, F), B ? G : (C.$promise = G, C.$resolved = !1, C) | |
}, w.prototype["$" + d] = function(a, b, c) { | |
s(a) && (c = b, b = a, a = {}); | |
var e = w[d].call(this, a, this, b, c); | |
return e.$promise || e | |
} | |
}), w.bind = function(b) { | |
return n(a, q({}, k, b), l) | |
}, w | |
} | |
var o = b.noop, | |
p = b.forEach, | |
q = b.extend, | |
r = b.copy, | |
s = b.isFunction; | |
return m.prototype = { | |
setUrlParams: function(c, d, e) { | |
var f, h, i = this, | |
j = e || i.template, | |
l = "", | |
m = i.urlParams = {}; | |
p(j.split(/\W/), function(a) { | |
if ("hasOwnProperty" === a) throw g("badname", "hasOwnProperty is not a valid parameter name."); | |
!new RegExp("^\\d+$").test(a) && a && new RegExp("(^|[^\\\\]):" + a + "(\\W|$)").test(j) && (m[a] = !0) | |
}), j = j.replace(/\\:/g, ":"), j = j.replace(a, function(a) { | |
return l = a, "" | |
}), d = d || {}, p(i.urlParams, function(a, c) { | |
f = d.hasOwnProperty(c) ? d[c] : i.defaults[c], b.isDefined(f) && null !== f ? (h = k(f), j = j.replace(new RegExp(":" + c + "(\\W|$)", "g"), function(a, b) { | |
return h + b | |
})) : j = j.replace(new RegExp("(/?):" + c + "(\\W|$)", "g"), function(a, b, c) { | |
return "/" == c.charAt(0) ? c : b + c | |
}) | |
}), i.defaults.stripTrailingSlashes && (j = j.replace(/\/+$/, "") || "/"), j = j.replace(/\/\.(?=\w+($|\?))/, "."), c.url = l + j.replace(/\/\\\./, "/."), p(d, function(a, b) { | |
i.urlParams[b] || (c.params = c.params || {}, c.params[b] = a) | |
}) | |
} | |
}, n | |
}] | |
}) | |
}(window, window.angular), "undefined" != typeof module && "undefined" != typeof exports && module.exports === exports && (module.exports = "ui.router"), | |
function(a, b, c) { | |
"use strict"; | |
function d(a, b) { | |
return N(new(N(function() {}, { | |
prototype: a | |
})), b) | |
} | |
function e(a) { | |
return M(arguments, function(b) { | |
b !== a && M(b, function(b, c) { | |
a.hasOwnProperty(c) || (a[c] = b) | |
}) | |
}), a | |
} | |
function f(a, b) { | |
var c = []; | |
for (var d in a.path) { | |
if (a.path[d] !== b.path[d]) break; | |
c.push(a.path[d]) | |
} | |
return c | |
} | |
function g(a) { | |
if (Object.keys) return Object.keys(a); | |
var b = []; | |
return M(a, function(a, c) { | |
b.push(c) | |
}), b | |
} | |
function h(a, b) { | |
if (Array.prototype.indexOf) return a.indexOf(b, Number(arguments[2]) || 0); | |
var c = a.length >>> 0, | |
d = Number(arguments[2]) || 0; | |
for (d = 0 > d ? Math.ceil(d) : Math.floor(d), 0 > d && (d += c); c > d; d++) | |
if (d in a && a[d] === b) return d; | |
return -1 | |
} | |
function i(a, b, c, d) { | |
var e, i = f(c, d), | |
j = {}, | |
k = []; | |
for (var l in i) | |
if (i[l].params && (e = g(i[l].params), e.length)) | |
for (var m in e) h(k, e[m]) >= 0 || (k.push(e[m]), j[e[m]] = a[e[m]]); | |
return N({}, j, b) | |
} | |
function j(a, b, c) { | |
if (!c) { | |
c = []; | |
for (var d in a) c.push(d) | |
} | |
for (var e = 0; e < c.length; e++) { | |
var f = c[e]; | |
if (a[f] != b[f]) return !1 | |
} | |
return !0 | |
} | |
function k(a, b) { | |
var c = {}; | |
return M(a, function(a) { | |
c[a] = b[a] | |
}), c | |
} | |
function l(a) { | |
var b = {}, | |
c = Array.prototype.concat.apply(Array.prototype, Array.prototype.slice.call(arguments, 1)); | |
return M(c, function(c) { | |
c in a && (b[c] = a[c]) | |
}), b | |
} | |
function m(a) { | |
var b = {}, | |
c = Array.prototype.concat.apply(Array.prototype, Array.prototype.slice.call(arguments, 1)); | |
for (var d in a) - 1 == h(c, d) && (b[d] = a[d]); | |
return b | |
} | |
function n(a, b) { | |
var c = L(a), | |
d = c ? [] : {}; | |
return M(a, function(a, e) { | |
b(a, e) && (d[c ? d.length : e] = a) | |
}), d | |
} | |
function o(a, b) { | |
var c = L(a) ? [] : {}; | |
return M(a, function(a, d) { | |
c[d] = b(a, d) | |
}), c | |
} | |
function p(a, b) { | |
var d = 1, | |
f = 2, | |
i = {}, | |
j = [], | |
k = i, | |
l = N(a.when(i), { | |
$$promises: i, | |
$$values: i | |
}); | |
this.study = function(i) { | |
function n(a, c) { | |
if (s[c] !== f) { | |
if (r.push(c), s[c] === d) throw r.splice(0, h(r, c)), new Error("Cyclic dependency: " + r.join(" -> ")); | |
if (s[c] = d, J(a)) q.push(c, [function() { | |
return b.get(a) | |
}], j); | |
else { | |
var e = b.annotate(a); | |
M(e, function(a) { | |
a !== c && i.hasOwnProperty(a) && n(i[a], a) | |
}), q.push(c, a, e) | |
} | |
r.pop(), s[c] = f | |
} | |
} | |
function o(a) { | |
return K(a) && a.then && a.$$promises | |
} | |
if (!K(i)) throw new Error("'invocables' must be an object"); | |
var p = g(i || {}), | |
q = [], | |
r = [], | |
s = {}; | |
return M(i, n), i = r = s = null, | |
function(d, f, g) { | |
function h() { | |
--u || (v || e(t, f.$$values), r.$$values = t, r.$$promises = r.$$promises || !0, delete r.$$inheritedValues, n.resolve(t)) | |
} | |
function i(a) { | |
r.$$failure = a, n.reject(a) | |
} | |
function j(c, e, f) { | |
function j(a) { | |
l.reject(a), i(a) | |
} | |
function k() { | |
if (!H(r.$$failure)) try { | |
l.resolve(b.invoke(e, g, t)), l.promise.then(function(a) { | |
t[c] = a, h() | |
}, j) | |
} catch (a) { | |
j(a) | |
} | |
} | |
var l = a.defer(), | |
m = 0; | |
M(f, function(a) { | |
s.hasOwnProperty(a) && !d.hasOwnProperty(a) && (m++, s[a].then(function(b) { | |
t[a] = b, --m || k() | |
}, j)) | |
}), m || k(), s[c] = l.promise | |
} | |
if (o(d) && g === c && (g = f, f = d, d = null), d) { | |
if (!K(d)) throw new Error("'locals' must be an object") | |
} else d = k; | |
if (f) { | |
if (!o(f)) throw new Error("'parent' must be a promise returned by $resolve.resolve()") | |
} else f = l; | |
var n = a.defer(), | |
r = n.promise, | |
s = r.$$promises = {}, | |
t = N({}, d), | |
u = 1 + q.length / 3, | |
v = !1; | |
if (H(f.$$failure)) return i(f.$$failure), r; | |
f.$$inheritedValues && e(t, m(f.$$inheritedValues, p)), N(s, f.$$promises), f.$$values ? (v = e(t, m(f.$$values, p)), r.$$inheritedValues = m(f.$$values, p), h()) : (f.$$inheritedValues && (r.$$inheritedValues = m(f.$$inheritedValues, p)), f.then(h, i)); | |
for (var w = 0, x = q.length; x > w; w += 3) d.hasOwnProperty(q[w]) ? h() : j(q[w], q[w + 1], q[w + 2]); | |
return r | |
} | |
}, this.resolve = function(a, b, c, d) { | |
return this.study(a)(b, c, d) | |
} | |
} | |
function q(a, b, c) { | |
this.fromConfig = function(a, b, c) { | |
return H(a.template) ? this.fromString(a.template, b) : H(a.templateUrl) ? this.fromUrl(a.templateUrl, b) : H(a.templateProvider) ? this.fromProvider(a.templateProvider, b, c) : null | |
}, this.fromString = function(a, b) { | |
return I(a) ? a(b) : a | |
}, this.fromUrl = function(c, d) { | |
return I(c) && (c = c(d)), null == c ? null : a.get(c, { | |
cache: b, | |
headers: { | |
Accept: "text/html" | |
} | |
}).then(function(a) { | |
return a.data | |
}) | |
}, this.fromProvider = function(a, b, d) { | |
return c.invoke(a, null, d || { | |
params: b | |
}) | |
} | |
} | |
function r(a, b, e) { | |
function f(b, c, d, e) { | |
if (q.push(b), o[b]) return o[b]; | |
if (!/^\w+(-+\w+)*(?:\[\])?$/.test(b)) throw new Error("Invalid parameter name '" + b + "' in pattern '" + a + "'"); | |
if (p[b]) throw new Error("Duplicate parameter name '" + b + "' in pattern '" + a + "'"); | |
return p[b] = new P.Param(b, c, d, e), p[b] | |
} | |
function g(a, b, c, d) { | |
var e = ["", ""], | |
f = a.replace(/[\\\[\]\^$*+?.()|{}]/g, "\\$&"); | |
if (!b) return f; | |
switch (c) { | |
case !1: | |
e = ["(", ")" + (d ? "?" : "")]; | |
break; | |
case !0: | |
e = ["?(", ")?"]; | |
break; | |
default: | |
e = ["(" + c + "|", ")?"] | |
} | |
return f + e[0] + b + e[1] | |
} | |
function h(e, f) { | |
var g, h, i, j, k; | |
return g = e[2] || e[3], k = b.params[g], i = a.substring(m, e.index), h = f ? e[4] : e[4] || ("*" == e[1] ? ".*" : null), j = P.type(h || "string") || d(P.type("string"), { | |
pattern: new RegExp(h, b.caseInsensitive ? "i" : c) | |
}), { | |
id: g, | |
regexp: h, | |
segment: i, | |
type: j, | |
cfg: k | |
} | |
} | |
b = N({ | |
params: {} | |
}, K(b) ? b : {}); | |
var i, j = /([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g, | |
k = /([:]?)([\w\[\]-]+)|\{([\w\[\]-]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g, | |
l = "^", | |
m = 0, | |
n = this.segments = [], | |
o = e ? e.params : {}, | |
p = this.params = e ? e.params.$$new() : new P.ParamSet, | |
q = []; | |
this.source = a; | |
for (var r, s, t; | |
(i = j.exec(a)) && (r = h(i, !1), !(r.segment.indexOf("?") >= 0));) s = f(r.id, r.type, r.cfg, "path"), l += g(r.segment, s.type.pattern.source, s.squash, s.isOptional), n.push(r.segment), m = j.lastIndex; | |
t = a.substring(m); | |
var u = t.indexOf("?"); | |
if (u >= 0) { | |
var v = this.sourceSearch = t.substring(u); | |
if (t = t.substring(0, u), this.sourcePath = a.substring(0, m + u), v.length > 0) | |
for (m = 0; i = k.exec(v);) r = h(i, !0), s = f(r.id, r.type, r.cfg, "search"), m = j.lastIndex | |
} else this.sourcePath = a, this.sourceSearch = ""; | |
l += g(t) + (b.strict === !1 ? "/?" : "") + "$", n.push(t), this.regexp = new RegExp(l, b.caseInsensitive ? "i" : c), this.prefix = n[0], this.$$paramNames = q | |
} | |
function s(a) { | |
N(this, a) | |
} | |
function t() { | |
function a(a) { | |
return null != a ? a.toString().replace(/\//g, "%2F") : a | |
} | |
function e(a) { | |
return null != a ? a.toString().replace(/%2F/g, "/") : a | |
} | |
function f() { | |
return { | |
strict: p, | |
caseInsensitive: m | |
} | |
} | |
function i(a) { | |
return I(a) || L(a) && I(a[a.length - 1]) | |
} | |
function j() { | |
for (; w.length;) { | |
var a = w.shift(); | |
if (a.pattern) throw new Error("You cannot override a type's .pattern at runtime."); | |
b.extend(u[a.name], l.invoke(a.def)) | |
} | |
} | |
function k(a) { | |
N(this, a || {}) | |
} | |
P = this; | |
var l, m = !1, | |
p = !0, | |
q = !1, | |
u = {}, | |
v = !0, | |
w = [], | |
x = { | |
string: { | |
encode: a, | |
decode: e, | |
is: function(a) { | |
return null == a || !H(a) || "string" == typeof a | |
}, | |
pattern: /[^\/]*/ | |
}, | |
"int": { | |
encode: a, | |
decode: function(a) { | |
return parseInt(a, 10) | |
}, | |
is: function(a) { | |
return H(a) && this.decode(a.toString()) === a | |
}, | |
pattern: /\d+/ | |
}, | |
bool: { | |
encode: function(a) { | |
return a ? 1 : 0 | |
}, | |
decode: function(a) { | |
return 0 !== parseInt(a, 10) | |
}, | |
is: function(a) { | |
return a === !0 || a === !1 | |
}, | |
pattern: /0|1/ | |
}, | |
date: { | |
encode: function(a) { | |
return this.is(a) ? [a.getFullYear(), ("0" + (a.getMonth() + 1)).slice(-2), ("0" + a.getDate()).slice(-2)].join("-") : c | |
}, | |
decode: function(a) { | |
if (this.is(a)) return a; | |
var b = this.capture.exec(a); | |
return b ? new Date(b[1], b[2] - 1, b[3]) : c | |
}, | |
is: function(a) { | |
return a instanceof Date && !isNaN(a.valueOf()) | |
}, | |
equals: function(a, b) { | |
return this.is(a) && this.is(b) && a.toISOString() === b.toISOString() | |
}, | |
pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/, | |
capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/ | |
}, | |
json: { | |
encode: b.toJson, | |
decode: b.fromJson, | |
is: b.isObject, | |
equals: b.equals, | |
pattern: /[^\/]*/ | |
}, | |
any: { | |
encode: b.identity, | |
decode: b.identity, | |
equals: b.equals, | |
pattern: /.*/ | |
} | |
}; | |
t.$$getDefaultValue = function(a) { | |
if (!i(a.value)) return a.value; | |
if (!l) throw new Error("Injectable functions cannot be called at configuration time"); | |
return l.invoke(a.value) | |
}, this.caseInsensitive = function(a) { | |
return H(a) && (m = a), m | |
}, this.strictMode = function(a) { | |
return H(a) && (p = a), p | |
}, this.defaultSquashPolicy = function(a) { | |
if (!H(a)) return q; | |
if (a !== !0 && a !== !1 && !J(a)) throw new Error("Invalid squash policy: " + a + ". Valid policies: false, true, arbitrary-string"); | |
return q = a, a | |
}, this.compile = function(a, b) { | |
return new r(a, N(f(), b)) | |
}, this.isMatcher = function(a) { | |
if (!K(a)) return !1; | |
var b = !0; | |
return M(r.prototype, function(c, d) { | |
I(c) && (b = b && H(a[d]) && I(a[d])) | |
}), b | |
}, this.type = function(a, b, c) { | |
if (!H(b)) return u[a]; | |
if (u.hasOwnProperty(a)) throw new Error("A type named '" + a + "' has already been defined."); | |
return u[a] = new s(N({ | |
name: a | |
}, b)), c && (w.push({ | |
name: a, | |
def: c | |
}), v || j()), this | |
}, M(x, function(a, b) { | |
u[b] = new s(N({ | |
name: b | |
}, a)) | |
}), u = d(u, {}), this.$get = ["$injector", function(a) { | |
return l = a, v = !1, j(), M(x, function(a, b) { | |
u[b] || (u[b] = new s(a)) | |
}), this | |
}], this.Param = function(a, b, d, e) { | |
function f(a) { | |
var b = K(a) ? g(a) : [], | |
c = -1 === h(b, "value") && -1 === h(b, "type") && -1 === h(b, "squash") && -1 === h(b, "array"); | |
return c && (a = { | |
value: a | |
}), a.$$fn = i(a.value) ? a.value : function() { | |
return a.value | |
}, a | |
} | |
function j(b, c, d) { | |
if (b.type && c) throw new Error("Param '" + a + "' has two type configurations."); | |
return c ? c : b.type ? b.type instanceof s ? b.type : new s(b.type) : "config" === d ? u.any : u.string | |
} | |
function k() { | |
var b = { | |
array: "search" === e ? "auto" : !1 | |
}, | |
c = a.match(/\[\]$/) ? { | |
array: !0 | |
} : {}; | |
return N(b, c, d).array | |
} | |
function m(a, b) { | |
var c = a.squash; | |
if (!b || c === !1) return !1; | |
if (!H(c) || null == c) return q; | |
if (c === !0 || J(c)) return c; | |
throw new Error("Invalid squash policy: '" + c + "'. Valid policies: false, true, or arbitrary string") | |
} | |
function p(a, b, d, e) { | |
var f, g, i = [{ | |
from: "", | |
to: d || b ? c : "" | |
}, { | |
from: null, | |
to: d || b ? c : "" | |
}]; | |
return f = L(a.replace) ? a.replace : [], J(e) && f.push({ | |
from: e, | |
to: c | |
}), g = o(f, function(a) { | |
return a.from | |
}), n(i, function(a) { | |
return -1 === h(g, a.from) | |
}).concat(f) | |
} | |
function r() { | |
if (!l) throw new Error("Injectable functions cannot be called at configuration time"); | |
var a = l.invoke(d.$$fn); | |
if (null !== a && a !== c && !w.type.is(a)) throw new Error("Default value (" + a + ") for parameter '" + w.id + "' is not an instance of Type (" + w.type.name + ")"); | |
return a | |
} | |
function t(a) { | |
function b(a) { | |
return function(b) { | |
return b.from === a | |
} | |
} | |
function c(a) { | |
var c = o(n(w.replace, b(a)), function(a) { | |
return a.to | |
}); | |
return c.length ? c[0] : a | |
} | |
return a = c(a), H(a) ? w.type.$normalize(a) : r() | |
} | |
function v() { | |
return "{Param:" + a + " " + b + " squash: '" + z + "' optional: " + y + "}" | |
} | |
var w = this; | |
d = f(d), b = j(d, b, e); | |
var x = k(); | |
b = x ? b.$asArray(x, "search" === e) : b, "string" !== b.name || x || "path" !== e || d.value !== c || (d.value = ""); | |
var y = d.value !== c, | |
z = m(d, y), | |
A = p(d, x, y, z); | |
N(this, { | |
id: a, | |
type: b, | |
location: e, | |
array: x, | |
squash: z, | |
replace: A, | |
isOptional: y, | |
value: t, | |
dynamic: c, | |
config: d, | |
toString: v | |
}) | |
}, k.prototype = { | |
$$new: function() { | |
return d(this, N(new k, { | |
$$parent: this | |
})) | |
}, | |
$$keys: function() { | |
for (var a = [], b = [], c = this, d = g(k.prototype); c;) b.push(c), c = c.$$parent; | |
return b.reverse(), M(b, function(b) { | |
M(g(b), function(b) { | |
-1 === h(a, b) && -1 === h(d, b) && a.push(b) | |
}) | |
}), a | |
}, | |
$$values: function(a) { | |
var b = {}, | |
c = this; | |
return M(c.$$keys(), function(d) { | |
b[d] = c[d].value(a && a[d]) | |
}), b | |
}, | |
$$equals: function(a, b) { | |
var c = !0, | |
d = this; | |
return M(d.$$keys(), function(e) { | |
var f = a && a[e], | |
g = b && b[e]; | |
d[e].type.equals(f, g) || (c = !1) | |
}), c | |
}, | |
$$validates: function(a) { | |
var d, e, f, g, h, i = this.$$keys(); | |
for (d = 0; d < i.length && (e = this[i[d]], f = a[i[d]], f !== c && null !== f || !e.isOptional); d++) { | |
if (g = e.type.$normalize(f), !e.type.is(g)) return !1; | |
if (h = e.type.encode(g), b.isString(h) && !e.type.pattern.exec(h)) return !1 | |
} | |
return !0 | |
}, | |
$$parent: c | |
}, this.ParamSet = k | |
} | |
function u(a, d) { | |
function e(a) { | |
var b = /^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(a.source); | |
return null != b ? b[1].replace(/\\(.)/g, "$1") : "" | |
} | |
function f(a, b) { | |
return a.replace(/\$(\$|\d{1,2})/, function(a, c) { | |
return b["$" === c ? 0 : Number(c)] | |
}) | |
} | |
function g(a, b, c) { | |
if (!c) return !1; | |
var d = a.invoke(b, b, { | |
$match: c | |
}); | |
return H(d) ? d : !0 | |
} | |
function h(d, e, f, g) { | |
function h(a, b, c) { | |
return "/" === p ? a : b ? p.slice(0, -1) + a : c ? p.slice(1) + a : a | |
} | |
function m(a) { | |
function b(a) { | |
var b = a(f, d); | |
return b ? (J(b) && d.replace().url(b), !0) : !1 | |
} | |
if (!a || !a.defaultPrevented) { | |
o && d.url() === o; | |
o = c; | |
var e, g = j.length; | |
for (e = 0; g > e; e++) | |
if (b(j[e])) return; | |
k && b(k) | |
} | |
} | |
function n() { | |
return i = i || e.$on("$locationChangeSuccess", m) | |
} | |
var o, p = g.baseHref(), | |
q = d.url(); | |
return l || n(), { | |
sync: function() { | |
m() | |
}, | |
listen: function() { | |
return n() | |
}, | |
update: function(a) { | |
return a ? void(q = d.url()) : void(d.url() !== q && (d.url(q), d.replace())) | |
}, | |
push: function(a, b, e) { | |
var f = a.format(b || {}); | |
null !== f && b && b["#"] && (f += "#" + b["#"]), d.url(f), o = e && e.$$avoidResync ? d.url() : c, e && e.replace && d.replace() | |
}, | |
href: function(c, e, f) { | |
if (!c.validates(e)) return null; | |
var g = a.html5Mode(); | |
b.isObject(g) && (g = g.enabled); | |
var i = c.format(e); | |
if (f = f || {}, g || null === i || (i = "#" + a.hashPrefix() + i), null !== i && e && e["#"] && (i += "#" + e["#"]), i = h(i, g, f.absolute), !f.absolute || !i) return i; | |
var j = !g && i ? "/" : "", | |
k = d.port(); | |
return k = 80 === k || 443 === k ? "" : ":" + k, [d.protocol(), "://", d.host(), k, j, i].join("") | |
} | |
} | |
} | |
var i, j = [], | |
k = null, | |
l = !1; | |
this.rule = function(a) { | |
if (!I(a)) throw new Error("'rule' must be a function"); | |
return j.push(a), this | |
}, this.otherwise = function(a) { | |
if (J(a)) { | |
var b = a; | |
a = function() { | |
return b | |
} | |
} else if (!I(a)) throw new Error("'rule' must be a function"); | |
return k = a, this | |
}, this.when = function(a, b) { | |
var c, h = J(b); | |
if (J(a) && (a = d.compile(a)), !h && !I(b) && !L(b)) throw new Error("invalid 'handler' in when()"); | |
var i = { | |
matcher: function(a, b) { | |
return h && (c = d.compile(b), b = ["$match", function(a) { | |
return c.format(a) | |
}]), N(function(c, d) { | |
return g(c, b, a.exec(d.path(), d.search())) | |
}, { | |
prefix: J(a.prefix) ? a.prefix : "" | |
}) | |
}, | |
regex: function(a, b) { | |
if (a.global || a.sticky) throw new Error("when() RegExp must not be global or sticky"); | |
return h && (c = b, b = ["$match", function(a) { | |
return f(c, a) | |
}]), N(function(c, d) { | |
return g(c, b, a.exec(d.path())) | |
}, { | |
prefix: e(a) | |
}) | |
} | |
}, | |
j = { | |
matcher: d.isMatcher(a), | |
regex: a instanceof RegExp | |
}; | |
for (var k in j) | |
if (j[k]) return this.rule(i[k](a, b)); | |
throw new Error("invalid 'what' in when()") | |
}, this.deferIntercept = function(a) { | |
a === c && (a = !0), l = a | |
}, this.$get = h, h.$inject = ["$location", "$rootScope", "$injector", "$browser"] | |
} | |
function v(a, e) { | |
function f(a) { | |
return 0 === a.indexOf(".") || 0 === a.indexOf("^") | |
} | |
function m(a, b) { | |
if (!a) return c; | |
var d = J(a), | |
e = d ? a : a.name, | |
g = f(e); | |
if (g) { | |
if (!b) throw new Error("No reference point given for path '" + e + "'"); | |
b = m(b); | |
for (var h = e.split("."), i = 0, j = h.length, k = b; j > i; i++) | |
if ("" !== h[i] || 0 !== i) { | |
if ("^" !== h[i]) break; | |
if (!k.parent) throw new Error("Path '" + e + "' not valid for state '" + b.name + "'"); | |
k = k.parent | |
} else k = b; | |
h = h.slice(i).join("."), e = k.name + (k.name && h ? "." : "") + h | |
} | |
var l = z[e]; | |
return !l || !d && (d || l !== a && l.self !== a) ? c : l | |
} | |
function n(a, b) { | |
A[a] || (A[a] = []), A[a].push(b) | |
} | |
function p(a) { | |
for (var b = A[a] || []; b.length;) q(b.shift()) | |
} | |
function q(b) { | |
b = d(b, { | |
self: b, | |
resolve: b.resolve || {}, | |
toString: function() { | |
return this.name | |
} | |
}); | |
var c = b.name; | |
if (!J(c) || c.indexOf("@") >= 0) throw new Error("State must have a valid name"); | |
if (z.hasOwnProperty(c)) throw new Error("State '" + c + "'' is already defined"); | |
var e = -1 !== c.indexOf(".") ? c.substring(0, c.lastIndexOf(".")) : J(b.parent) ? b.parent : K(b.parent) && J(b.parent.name) ? b.parent.name : ""; | |
if (e && !z[e]) return n(e, b.self); | |
for (var f in C) I(C[f]) && (b[f] = C[f](b, C.$delegates[f])); | |
return z[c] = b, !b[B] && b.url && a.when(b.url, ["$match", "$stateParams", function(a, c) { | |
y.$current.navigable == b && j(a, c) || y.transitionTo(b, a, { | |
inherit: !0, | |
location: !1 | |
}) | |
}]), p(c), b | |
} | |
function r(a) { | |
return a.indexOf("*") > -1 | |
} | |
function s(a) { | |
for (var b = a.split("."), c = y.$current.name.split("."), d = 0, e = b.length; e > d; d++) "*" === b[d] && (c[d] = "*"); | |
return "**" === b[0] && (c = c.slice(h(c, b[1])), c.unshift("**")), "**" === b[b.length - 1] && (c.splice(h(c, b[b.length - 2]) + 1, Number.MAX_VALUE), c.push("**")), b.length != c.length ? !1 : c.join("") === b.join("") | |
} | |
function t(a, b) { | |
return J(a) && !H(b) ? C[a] : I(b) && J(a) ? (C[a] && !C.$delegates[a] && (C.$delegates[a] = C[a]), C[a] = b, this) : this | |
} | |
function u(a, b) { | |
return K(a) ? b = a : b.name = a, q(b), this | |
} | |
function v(a, e, f, h, l, n, p, q, t) { | |
function u(b, c, d, f) { | |
var g = a.$broadcast("$stateNotFound", b, c, d); | |
if (g.defaultPrevented) return p.update(), D; | |
if (!g.retry) return null; | |
if (f.$retry) return p.update(), E; | |
var h = y.transition = e.when(g.retry); | |
return h.then(function() { | |
return h !== y.transition ? A : (b.options.$retry = !0, y.transitionTo(b.to, b.toParams, b.options)) | |
}, function() { | |
return D | |
}), p.update(), h | |
} | |
function v(a, c, d, g, i, j) { | |
function m() { | |
var c = []; | |
return M(a.views, function(d, e) { | |
var g = d.resolve && d.resolve !== a.resolve ? d.resolve : {}; | |
g.$template = [function() { | |
return f.load(e, { | |
view: d, | |
locals: i.globals, | |
params: n, | |
notify: j.notify | |
}) || "" | |
}], c.push(l.resolve(g, i.globals, i.resolve, a).then(function(c) { | |
if (I(d.controllerProvider) || L(d.controllerProvider)) { | |
var f = b.extend({}, g, i.globals); | |
c.$$controller = h.invoke(d.controllerProvider, null, f) | |
} else c.$$controller = d.controller; | |
c.$$state = a, c.$$controllerAs = d.controllerAs, i[e] = c | |
})) | |
}), e.all(c).then(function() { | |
return i.globals | |
}) | |
} | |
var n = d ? c : k(a.params.$$keys(), c), | |
o = { | |
$stateParams: n | |
}; | |
i.resolve = l.resolve(a.resolve, o, i.resolve, a); | |
var p = [i.resolve.then(function(a) { | |
i.globals = a | |
})]; | |
return g && p.push(g), e.all(p).then(m).then(function(a) { | |
return i | |
}) | |
} | |
var A = e.reject(new Error("transition superseded")), | |
C = e.reject(new Error("transition prevented")), | |
D = e.reject(new Error("transition aborted")), | |
E = e.reject(new Error("transition failed")); | |
return x.locals = { | |
resolve: null, | |
globals: { | |
$stateParams: {} | |
} | |
}, y = { | |
params: {}, | |
current: x.self, | |
$current: x, | |
transition: null | |
}, y.reload = function(a) { | |
return y.transitionTo(y.current, n, { | |
reload: a || !0, | |
inherit: !1, | |
notify: !0 | |
}) | |
}, y.go = function(a, b, c) { | |
return y.transitionTo(a, b, N({ | |
inherit: !0, | |
relative: y.$current | |
}, c)) | |
}, y.transitionTo = function(b, c, f) { | |
c = c || {}, f = N({ | |
location: !0, | |
inherit: !1, | |
relative: null, | |
notify: !0, | |
reload: !1, | |
$retry: !1 | |
}, f || {}); | |
var g, j = y.$current, | |
l = y.params, | |
o = j.path, | |
q = m(b, f.relative), | |
r = c["#"]; | |
if (!H(q)) { | |
var s = { | |
to: b, | |
toParams: c, | |
options: f | |
}, | |
t = u(s, j.self, l, f); | |
if (t) return t; | |
if (b = s.to, c = s.toParams, f = s.options, q = m(b, f.relative), !H(q)) { | |
if (!f.relative) throw new Error("No such state '" + b + "'"); | |
throw new Error("Could not resolve '" + b + "' from state '" + f.relative + "'") | |
} | |
} | |
if (q[B]) throw new Error("Cannot transition to abstract state '" + b + "'"); | |
if (f.inherit && (c = i(n, c || {}, y.$current, q)), !q.params.$$validates(c)) return E; | |
c = q.params.$$values(c), b = q; | |
var z = b.path, | |
D = 0, | |
F = z[D], | |
G = x.locals, | |
I = []; | |
if (f.reload) { | |
if (J(f.reload) || K(f.reload)) { | |
if (K(f.reload) && !f.reload.name) throw new Error("Invalid reload state object"); | |
var L = f.reload === !0 ? o[0] : m(f.reload); | |
if (f.reload && !L) throw new Error("No such reload state '" + (J(f.reload) ? f.reload : f.reload.name) + "'"); | |
for (; F && F === o[D] && F !== L;) G = I[D] = F.locals, D++, F = z[D] | |
} | |
} else | |
for (; F && F === o[D] && F.ownParams.$$equals(c, l);) G = I[D] = F.locals, D++, F = z[D]; | |
if (w(b, c, j, l, G, f)) return r && (c["#"] = r), y.params = c, O(y.params, n), f.location && b.navigable && b.navigable.url && (p.push(b.navigable.url, c, { | |
$$avoidResync: !0, | |
replace: "replace" === f.location | |
}), p.update(!0)), y.transition = null, e.when(y.current); | |
if (c = k(b.params.$$keys(), c || {}), f.notify && a.$broadcast("$stateChangeStart", b.self, c, j.self, l).defaultPrevented) return a.$broadcast("$stateChangeCancel", b.self, c, j.self, l), p.update(), C; | |
for (var M = e.when(G), P = D; P < z.length; P++, F = z[P]) G = I[P] = d(G), M = v(F, c, F === b, M, G, f); | |
var Q = y.transition = M.then(function() { | |
var d, e, g; | |
if (y.transition !== Q) return A; | |
for (d = o.length - 1; d >= D; d--) g = o[d], g.self.onExit && h.invoke(g.self.onExit, g.self, g.locals.globals), g.locals = null; | |
for (d = D; d < z.length; d++) e = z[d], e.locals = I[d], e.self.onEnter && h.invoke(e.self.onEnter, e.self, e.locals.globals); | |
return r && (c["#"] = r), y.transition !== Q ? A : (y.$current = b, y.current = b.self, y.params = c, O(y.params, n), y.transition = null, f.location && b.navigable && p.push(b.navigable.url, b.navigable.locals.globals.$stateParams, { | |
$$avoidResync: !0, | |
replace: "replace" === f.location | |
}), f.notify && a.$broadcast("$stateChangeSuccess", b.self, c, j.self, l), p.update(!0), y.current) | |
}, function(d) { | |
return y.transition !== Q ? A : (y.transition = null, g = a.$broadcast("$stateChangeError", b.self, c, j.self, l, d), g.defaultPrevented || p.update(), e.reject(d)) | |
}); | |
return Q | |
}, y.is = function(a, b, d) { | |
d = N({ | |
relative: y.$current | |
}, d || {}); | |
var e = m(a, d.relative); | |
return H(e) ? y.$current !== e ? !1 : b ? j(e.params.$$values(b), n) : !0 : c | |
}, y.includes = function(a, b, d) { | |
if (d = N({ | |
relative: y.$current | |
}, d || {}), J(a) && r(a)) { | |
if (!s(a)) return !1; | |
a = y.$current.name | |
} | |
var e = m(a, d.relative); | |
return H(e) ? H(y.$current.includes[e.name]) ? b ? j(e.params.$$values(b), n, g(b)) : !0 : !1 : c | |
}, y.href = function(a, b, d) { | |
d = N({ | |
lossy: !0, | |
inherit: !0, | |
absolute: !1, | |
relative: y.$current | |
}, d || {}); | |
var e = m(a, d.relative); | |
if (!H(e)) return null; | |
d.inherit && (b = i(n, b || {}, y.$current, e)); | |
var f = e && d.lossy ? e.navigable : e; | |
return f && f.url !== c && null !== f.url ? p.href(f.url, k(e.params.$$keys().concat("#"), b || {}), { | |
absolute: d.absolute | |
}) : null | |
}, y.get = function(a, b) { | |
if (0 === arguments.length) return o(g(z), function(a) { | |
return z[a].self | |
}); | |
var c = m(a, b || y.$current); | |
return c && c.self ? c.self : null | |
}, y | |
} | |
function w(a, b, c, d, e, f) { | |
function g(a, b, c) { | |
function d(b) { | |
return "search" != a.params[b].location | |
} | |
var e = a.params.$$keys().filter(d), | |
f = l.apply({}, [a.params].concat(e)), | |
g = new P.ParamSet(f); | |
return g.$$equals(b, c) | |
} | |
return !f.reload && a === c && (e === c.locals || a.self.reloadOnSearch === !1 && g(c, d, b)) ? !0 : void 0 | |
} | |
var x, y, z = {}, | |
A = {}, | |
B = "abstract", | |
C = { | |
parent: function(a) { | |
if (H(a.parent) && a.parent) return m(a.parent); | |
var b = /^(.+)\.[^.]+$/.exec(a.name); | |
return b ? m(b[1]) : x | |
}, | |
data: function(a) { | |
return a.parent && a.parent.data && (a.data = a.self.data = N({}, a.parent.data, a.data)), a.data | |
}, | |
url: function(a) { | |
var b = a.url, | |
c = { | |
params: a.params || {} | |
}; | |
if (J(b)) return "^" == b.charAt(0) ? e.compile(b.substring(1), c) : (a.parent.navigable || x).url.concat(b, c); | |
if (!b || e.isMatcher(b)) return b; | |
throw new Error("Invalid url '" + b + "' in state '" + a + "'") | |
}, | |
navigable: function(a) { | |
return a.url ? a : a.parent ? a.parent.navigable : null | |
}, | |
ownParams: function(a) { | |
var b = a.url && a.url.params || new P.ParamSet; | |
return M(a.params || {}, function(a, c) { | |
b[c] || (b[c] = new P.Param(c, null, a, "config")) | |
}), b | |
}, | |
params: function(a) { | |
return a.parent && a.parent.params ? N(a.parent.params.$$new(), a.ownParams) : new P.ParamSet | |
}, | |
views: function(a) { | |
var b = {}; | |
return M(H(a.views) ? a.views : { | |
"": a | |
}, function(c, d) { | |
d.indexOf("@") < 0 && (d += "@" + a.parent.name), b[d] = c | |
}), b | |
}, | |
path: function(a) { | |
return a.parent ? a.parent.path.concat(a) : [] | |
}, | |
includes: function(a) { | |
var b = a.parent ? N({}, a.parent.includes) : {}; | |
return b[a.name] = !0, b | |
}, | |
$delegates: {} | |
}; | |
x = q({ | |
name: "", | |
url: "^", | |
views: null, | |
"abstract": !0 | |
}), x.navigable = null, this.decorator = t, this.state = u, this.$get = v, v.$inject = ["$rootScope", "$q", "$view", "$injector", "$resolve", "$stateParams", "$urlRouter", "$location", "$urlMatcherFactory"] | |
} | |
function w() { | |
function a(a, b) { | |
return { | |
load: function(c, d) { | |
var e, f = { | |
template: null, | |
controller: null, | |
view: null, | |
locals: null, | |
notify: !0, | |
async: !0, | |
params: {} | |
}; | |
return d = N(f, d), d.view && (e = b.fromConfig(d.view, d.params, d.locals)), e && d.notify && a.$broadcast("$viewContentLoading", d), e | |
} | |
} | |
} | |
this.$get = a, a.$inject = ["$rootScope", "$templateFactory"] | |
} | |
function x() { | |
var a = !1; | |
this.useAnchorScroll = function() { | |
a = !0 | |
}, this.$get = ["$anchorScroll", "$timeout", function(b, c) { | |
return a ? b : function(a) { | |
return c(function() { | |
a[0].scrollIntoView() | |
}, 0, !1) | |
} | |
}] | |
} | |
function y(a, c, d, e) { | |
function f() { | |
return c.has ? function(a) { | |
return c.has(a) ? c.get(a) : null | |
} : function(a) { | |
try { | |
return c.get(a) | |
} catch (b) { | |
return null | |
} | |
} | |
} | |
function g(a, b) { | |
var c = function() { | |
return { | |
enter: function(a, b, c) { | |
b.after(a), c() | |
}, | |
leave: function(a, b) { | |
a.remove(), b() | |
} | |
} | |
}; | |
if (j) return { | |
enter: function(a, b, c) { | |
var d = j.enter(a, null, b, c); | |
d && d.then && d.then(c) | |
}, | |
leave: function(a, b) { | |
var c = j.leave(a, b); | |
c && c.then && c.then(b) | |
} | |
}; | |
if (i) { | |
var d = i && i(b, a); | |
return { | |
enter: function(a, b, c) { | |
d.enter(a, null, b), c() | |
}, | |
leave: function(a, b) { | |
d.leave(a), b() | |
} | |
} | |
} | |
return c() | |
} | |
var h = f(), | |
i = h("$animator"), | |
j = h("$animate"), | |
k = { | |
restrict: "ECA", | |
terminal: !0, | |
priority: 400, | |
transclude: "element", | |
compile: function(c, f, h) { | |
return function(c, f, i) { | |
function j() { | |
l && (l.remove(), l = null), n && (n.$destroy(), n = null), m && (r.leave(m, function() { | |
l = null | |
}), l = m, m = null) | |
} | |
function k(g) { | |
var k, l = A(c, i, f, e), | |
s = l && a.$current && a.$current.locals[l]; | |
if (g || s !== o) { | |
k = c.$new(), o = a.$current.locals[l]; | |
var t = h(k, function(a) { | |
r.enter(a, f, function() { | |
n && n.$emit("$viewContentAnimationEnded"), (b.isDefined(q) && !q || c.$eval(q)) && d(a) | |
}), j() | |
}); | |
m = t, n = k, n.$emit("$viewContentLoaded"), n.$eval(p) | |
} | |
} | |
var l, m, n, o, p = i.onload || "", | |
q = i.autoscroll, | |
r = g(i, c); | |
c.$on("$stateChangeSuccess", function() { | |
k(!1) | |
}), c.$on("$viewContentLoading", function() { | |
k(!1) | |
}), k(!0) | |
} | |
} | |
}; | |
return k | |
} | |
function z(a, b, c, d) { | |
return { | |
restrict: "ECA", | |
priority: -400, | |
compile: function(e) { | |
var f = e.html(); | |
return function(e, g, h) { | |
var i = c.$current, | |
j = A(e, h, g, d), | |
k = i && i.locals[j]; | |
if (k) { | |
g.data("$uiView", { | |
name: j, | |
state: k.$$state | |
}), g.html(k.$template ? k.$template : f); | |
var l = a(g.contents()); | |
if (k.$$controller) { | |
k.$scope = e, k.$element = g; | |
var m = b(k.$$controller, k); | |
k.$$controllerAs && (e[k.$$controllerAs] = m), g.data("$ngControllerController", m), g.children().data("$ngControllerController", m) | |
} | |
l(e) | |
} | |
} | |
} | |
} | |
} | |
function A(a, b, c, d) { | |
var e = d(b.uiView || b.name || "")(a), | |
f = c.inheritedData("$uiView"); | |
return e.indexOf("@") >= 0 ? e : e + "@" + (f ? f.state.name : "") | |
} | |
function B(a, b) { | |
var c, d = a.match(/^\s*({[^}]*})\s*$/); | |
if (d && (a = b + "(" + d[1] + ")"), c = a.replace(/\n/g, " ").match(/^([^(]+?)\s*(\((.*)\))?$/), !c || 4 !== c.length) throw new Error("Invalid state ref '" + a + "'"); | |
return { | |
state: c[1], | |
paramExpr: c[3] || null | |
} | |
} | |
function C(a) { | |
var b = a.parent().inheritedData("$uiView"); | |
return b && b.state && b.state.name ? b.state : void 0 | |
} | |
function D(a, c) { | |
var d = ["location", "inherit", "reload", "absolute"]; | |
return { | |
restrict: "A", | |
require: ["?^uiSrefActive", "?^uiSrefActiveEq"], | |
link: function(e, f, g, h) { | |
var i = B(g.uiSref, a.current.name), | |
j = null, | |
k = C(f) || a.$current, | |
l = "[object SVGAnimatedString]" === Object.prototype.toString.call(f.prop("href")) ? "xlink:href" : "href", | |
m = null, | |
n = "A" === f.prop("tagName").toUpperCase(), | |
o = "FORM" === f[0].nodeName, | |
p = o ? "action" : l, | |
q = !0, | |
r = { | |
relative: k, | |
inherit: !0 | |
}, | |
s = e.$eval(g.uiSrefOpts) || {}; | |
b.forEach(d, function(a) { | |
a in s && (r[a] = s[a]) | |
}); | |
var t = function(c) { | |
if (c && (j = b.copy(c)), q) { | |
m = a.href(i.state, j, r); | |
var d = h[1] || h[0]; | |
return d && d.$$addStateInfo(i.state, j), null === m ? (q = !1, !1) : void g.$set(p, m) | |
} | |
}; | |
i.paramExpr && (e.$watch(i.paramExpr, function(a, b) { | |
a !== j && t(a) | |
}, !0), j = b.copy(e.$eval(i.paramExpr))), t(), o || f.bind("click", function(b) { | |
var d = b.which || b.button; | |
if (!(d > 1 || b.ctrlKey || b.metaKey || b.shiftKey || f.attr("target"))) { | |
var e = c(function() { | |
a.go(i.state, j, r) | |
}); | |
b.preventDefault(); | |
var g = n && !m ? 1 : 0; | |
b.preventDefault = function() { | |
g-- <= 0 && c.cancel(e) | |
} | |
} | |
}) | |
} | |
} | |
} | |
function E(a, b, c) { | |
return { | |
restrict: "A", | |
controller: ["$scope", "$element", "$attrs", function(b, d, e) { | |
function f() { | |
g() ? d.addClass(i) : d.removeClass(i) | |
} | |
function g() { | |
for (var a = 0; a < j.length; a++) | |
if (h(j[a].state, j[a].params)) return !0; | |
return !1 | |
} | |
function h(b, c) { | |
return "undefined" != typeof e.uiSrefActiveEq ? a.is(b.name, c) : a.includes(b.name, c) | |
} | |
var i, j = []; | |
i = c(e.uiSrefActiveEq || e.uiSrefActive || "", !1)(b), this.$$addStateInfo = function(b, c) { | |
var e = a.get(b, C(d)); | |
j.push({ | |
state: e || { | |
name: b | |
}, | |
params: c | |
}), f() | |
}, b.$on("$stateChangeSuccess", f) | |
}] | |
} | |
} | |
function F(a) { | |
var b = function(b) { | |
return a.is(b) | |
}; | |
return b.$stateful = !0, b | |
} | |
function G(a) { | |
var b = function(b) { | |
return a.includes(b) | |
}; | |
return b.$stateful = !0, b | |
} | |
var H = b.isDefined, | |
I = b.isFunction, | |
J = b.isString, | |
K = b.isObject, | |
L = b.isArray, | |
M = b.forEach, | |
N = b.extend, | |
O = b.copy; | |
b.module("ui.router.util", ["ng"]), b.module("ui.router.router", ["ui.router.util"]), b.module("ui.router.state", ["ui.router.router", "ui.router.util"]), b.module("ui.router", ["ui.router.state"]), b.module("ui.router.compat", ["ui.router"]), p.$inject = ["$q", "$injector"], b.module("ui.router.util").service("$resolve", p), q.$inject = ["$http", "$templateCache", "$injector"], b.module("ui.router.util").service("$templateFactory", q); | |
var P; | |
r.prototype.concat = function(a, b) { | |
var c = { | |
caseInsensitive: P.caseInsensitive(), | |
strict: P.strictMode(), | |
squash: P.defaultSquashPolicy() | |
}; | |
return new r(this.sourcePath + a + this.sourceSearch, N(c, b), this) | |
}, r.prototype.toString = function() { | |
return this.source | |
}, r.prototype.exec = function(a, b) { | |
function c(a) { | |
function b(a) { | |
return a.split("").reverse().join("") | |
} | |
function c(a) { | |
return a.replace(/\\-/g, "-") | |
} | |
var d = b(a).split(/-(?!\\)/), | |
e = o(d, b); | |
return o(e, c).reverse() | |
} | |
var d = this.regexp.exec(a); | |
if (!d) return null; | |
b = b || {}; | |
var e, f, g, h = this.parameters(), | |
i = h.length, | |
j = this.segments.length - 1, | |
k = {}; | |
if (j !== d.length - 1) throw new Error("Unbalanced capture group in route '" + this.source + "'"); | |
for (e = 0; j > e; e++) { | |
g = h[e]; | |
var l = this.params[g], | |
m = d[e + 1]; | |
for (f = 0; f < l.replace; f++) l.replace[f].from === m && (m = l.replace[f].to); | |
m && l.array === !0 && (m = c(m)), k[g] = l.value(m) | |
} | |
for (; i > e; e++) g = h[e], k[g] = this.params[g].value(b[g]); | |
return k | |
}, r.prototype.parameters = function(a) { | |
return H(a) ? this.params[a] || null : this.$$paramNames | |
}, r.prototype.validates = function(a) { | |
return this.params.$$validates(a) | |
}, r.prototype.format = function(a) { | |
function b(a) { | |
return encodeURIComponent(a).replace(/-/g, function(a) { | |
return "%5C%" + a.charCodeAt(0).toString(16).toUpperCase() | |
}) | |
} | |
a = a || {}; | |
var c = this.segments, | |
d = this.parameters(), | |
e = this.params; | |
if (!this.validates(a)) return null; | |
var f, g = !1, | |
h = c.length - 1, | |
i = d.length, | |
j = c[0]; | |
for (f = 0; i > f; f++) { | |
var k = h > f, | |
l = d[f], | |
m = e[l], | |
n = m.value(a[l]), | |
p = m.isOptional && m.type.equals(m.value(), n), | |
q = p ? m.squash : !1, | |
r = m.type.encode(n); | |
if (k) { | |
var s = c[f + 1]; | |
if (q === !1) null != r && (j += L(r) ? o(r, b).join("-") : encodeURIComponent(r)), j += s; | |
else if (q === !0) { | |
var t = j.match(/\/$/) ? /\/?(.*)/ : /(.*)/; | |
j += s.match(t)[1] | |
} else J(q) && (j += q + s) | |
} else { | |
if (null == r || p && q !== !1) continue; | |
L(r) || (r = [r]), r = o(r, encodeURIComponent).join("&" + l + "="), j += (g ? "&" : "?") + (l + "=" + r), g = !0 | |
} | |
} | |
return j | |
}, s.prototype.is = function(a, b) { | |
return !0 | |
}, s.prototype.encode = function(a, b) { | |
return a | |
}, s.prototype.decode = function(a, b) { | |
return a | |
}, s.prototype.equals = function(a, b) { | |
return a == b | |
}, s.prototype.$subPattern = function() { | |
var a = this.pattern.toString(); | |
return a.substr(1, a.length - 2) | |
}, s.prototype.pattern = /.*/, s.prototype.toString = function() { | |
return "{Type:" + this.name + "}" | |
}, s.prototype.$normalize = function(a) { | |
return this.is(a) ? a : this.decode(a) | |
}, s.prototype.$asArray = function(a, b) { | |
function d(a, b) { | |
function d(a, b) { | |
return function() { | |
return a[b].apply(a, arguments) | |
} | |
} | |
function e(a) { | |
return L(a) ? a : H(a) ? [a] : [] | |
} | |
function f(a) { | |
switch (a.length) { | |
case 0: | |
return c; | |
case 1: | |
return "auto" === b ? a[0] : a; | |
default: | |
return a | |
} | |
} | |
function g(a) { | |
return !a | |
} | |
function h(a, b) { | |
return function(c) { | |
c = e(c); | |
var d = o(c, a); | |
return b === !0 ? 0 === n(d, g).length : f(d) | |
} | |
} | |
function i(a) { | |
return function(b, c) { | |
var d = e(b), | |
f = e(c); | |
if (d.length !== f.length) return !1; | |
for (var g = 0; g < d.length; g++) | |
if (!a(d[g], f[g])) return !1; | |
return !0 | |
} | |
} | |
this.encode = h(d(a, "encode")), this.decode = h(d(a, "decode")), this.is = h(d(a, "is"), !0), this.equals = i(d(a, "equals")), this.pattern = a.pattern, this.$normalize = h(d(a, "$normalize")), this.name = a.name, this.$arrayMode = b | |
} | |
if (!a) return this; | |
if ("auto" === a && !b) throw new Error("'auto' array mode is for query parameters only"); | |
return new d(this, a) | |
}, b.module("ui.router.util").provider("$urlMatcherFactory", t), b.module("ui.router.util").run(["$urlMatcherFactory", function(a) {}]), u.$inject = ["$locationProvider", "$urlMatcherFactoryProvider"], b.module("ui.router.router").provider("$urlRouter", u), v.$inject = ["$urlRouterProvider", "$urlMatcherFactoryProvider"], b.module("ui.router.state").value("$stateParams", {}).provider("$state", v), w.$inject = [], b.module("ui.router.state").provider("$view", w), b.module("ui.router.state").provider("$uiViewScroll", x), y.$inject = ["$state", "$injector", "$uiViewScroll", "$interpolate"], z.$inject = ["$compile", "$controller", "$state", "$interpolate"], b.module("ui.router.state").directive("uiView", y), b.module("ui.router.state").directive("uiView", z), D.$inject = ["$state", "$timeout"], E.$inject = ["$state", "$stateParams", "$interpolate"], b.module("ui.router.state").directive("uiSref", D).directive("uiSrefActive", E).directive("uiSrefActiveEq", E), F.$inject = ["$state"], G.$inject = ["$state"], b.module("ui.router.state").filter("isState", F).filter("includedByState", G) | |
}(window, window.angular); | |
var CanvasImage = function(a) { | |
this.canvas = document.createElement("canvas"), this.context = this.canvas.getContext("2d"), document.body.appendChild(this.canvas), this.width = this.canvas.width = a.width, this.height = this.canvas.height = a.height, this.context.drawImage(a, 0, 0, this.width, this.height) | |
}; | |
CanvasImage.prototype.clear = function() { | |
this.context.clearRect(0, 0, this.width, this.height) | |
}, CanvasImage.prototype.update = function(a) { | |
this.context.putImageData(a, 0, 0) | |
}, CanvasImage.prototype.getPixelCount = function() { | |
return this.width * this.height | |
}, CanvasImage.prototype.getImageData = function() { | |
return this.context.getImageData(0, 0, this.width, this.height) | |
}, CanvasImage.prototype.removeCanvas = function() { | |
this.canvas.parentNode.removeChild(this.canvas) | |
}; | |
var ColorThief = function() {}; | |
if (ColorThief.prototype.getColor = function(a, b) { | |
var c = this.getPalette(a, 5, b), | |
d = c[0]; | |
return d | |
}, ColorThief.prototype.getPalette = function(a, b, c) { | |
"undefined" == typeof b && (b = 10), ("undefined" == typeof c || 1 > c) && (c = 10); | |
for (var d, e, f, g, h, i = new CanvasImage(a), j = i.getImageData(), k = j.data, l = i.getPixelCount(), m = [], n = 0; l > n; n += c) d = 4 * n, e = k[d + 0], f = k[d + 1], g = k[d + 2], h = k[d + 3], h >= 125 && (e > 250 && f > 250 && g > 250 || m.push([e, f, g])); | |
var o = MMCQ.quantize(m, b), | |
p = o ? o.palette() : null; | |
return i.removeCanvas(), p | |
}, !pv) var pv = { | |
map: function(a, b) { | |
var c = {}; | |
return b ? a.map(function(a, d) { | |
return c.index = d, b.call(c, a) | |
}) : a.slice() | |
}, | |
naturalOrder: function(a, b) { | |
return b > a ? -1 : a > b ? 1 : 0 | |
}, | |
sum: function(a, b) { | |
var c = {}; | |
return a.reduce(b ? function(a, d, e) { | |
return c.index = e, a + b.call(c, d) | |
} : function(a, b) { | |
return a + b | |
}, 0) | |
}, | |
max: function(a, b) { | |
return Math.max.apply(null, b ? pv.map(a, b) : a) | |
} | |
}; | |
var MMCQ = function() { | |
function a(a, b, c) { | |
return (a << 2 * i) + (b << i) + c | |
} | |
function b(a) { | |
function b() { | |
c.sort(a), d = !0 | |
} | |
var c = [], | |
d = !1; | |
return { | |
push: function(a) { | |
c.push(a), d = !1 | |
}, | |
peek: function(a) { | |
return d || b(), void 0 === a && (a = c.length - 1), c[a] | |
}, | |
pop: function() { | |
return d || b(), c.pop() | |
}, | |
size: function() { | |
return c.length | |
}, | |
map: function(a) { | |
return c.map(a) | |
}, | |
debug: function() { | |
return d || b(), c | |
} | |
} | |
} | |
function c(a, b, c, d, e, f, g) { | |
var h = this; | |
h.r1 = a, h.r2 = b, h.g1 = c, h.g2 = d, h.b1 = e, h.b2 = f, h.histo = g | |
} | |
function d() { | |
this.vboxes = new b(function(a, b) { | |
return pv.naturalOrder(a.vbox.count() * a.vbox.volume(), b.vbox.count() * b.vbox.volume()) | |
}) | |
} | |
function e(b) { | |
var c, d, e, f, g = 1 << 3 * i, | |
h = new Array(g); | |
return b.forEach(function(b) { | |
d = b[0] >> j, e = b[1] >> j, f = b[2] >> j, c = a(d, e, f), h[c] = (h[c] || 0) + 1 | |
}), h | |
} | |
function f(a, b) { | |
var d, e, f, g = 1e6, | |
h = 0, | |
i = 1e6, | |
k = 0, | |
l = 1e6, | |
m = 0; | |
return a.forEach(function(a) { | |
d = a[0] >> j, e = a[1] >> j, f = a[2] >> j, g > d ? g = d : d > h && (h = d), i > e ? i = e : e > k && (k = e), l > f ? l = f : f > m && (m = f) | |
}), new c(g, h, i, k, l, m, b) | |
} | |
function g(b, c) { | |
function d(a) { | |
var b, d, e, f, g, h = a + "1", | |
j = a + "2", | |
k = 0; | |
for (i = c[h]; i <= c[j]; i++) | |
if (o[i] > n / 2) { | |
for (e = c.copy(), f = c.copy(), b = i - c[h], d = c[j] - i, g = d >= b ? Math.min(c[j] - 1, ~~(i + d / 2)) : Math.max(c[h], ~~(i - 1 - b / 2)); !o[g];) g++; | |
for (k = p[g]; !k && o[g - 1];) k = p[--g]; | |
return e[j] = g, f[h] = e[j] + 1, [e, f] | |
} | |
} | |
if (c.count()) { | |
var e = c.r2 - c.r1 + 1, | |
f = c.g2 - c.g1 + 1, | |
g = c.b2 - c.b1 + 1, | |
h = pv.max([e, f, g]); | |
if (1 == c.count()) return [c.copy()]; | |
var i, j, k, l, m, n = 0, | |
o = [], | |
p = []; | |
if (h == e) | |
for (i = c.r1; i <= c.r2; i++) { | |
for (l = 0, j = c.g1; j <= c.g2; j++) | |
for (k = c.b1; k <= c.b2; k++) m = a(i, j, k), l += b[m] || 0; | |
n += l, o[i] = n | |
} else if (h == f) | |
for (i = c.g1; i <= c.g2; i++) { | |
for (l = 0, j = c.r1; j <= c.r2; j++) | |
for (k = c.b1; k <= c.b2; k++) m = a(j, i, k), | |
l += b[m] || 0; | |
n += l, o[i] = n | |
} else | |
for (i = c.b1; i <= c.b2; i++) { | |
for (l = 0, j = c.r1; j <= c.r2; j++) | |
for (k = c.g1; k <= c.g2; k++) m = a(j, k, i), l += b[m] || 0; | |
n += l, o[i] = n | |
} | |
return o.forEach(function(a, b) { | |
p[b] = n - a | |
}), d(h == e ? "r" : h == f ? "g" : "b") | |
} | |
} | |
function h(a, c) { | |
function h(a, b) { | |
for (var c, d = 1, e = 0; k > e;) | |
if (c = a.pop(), c.count()) { | |
var f = g(i, c), | |
h = f[0], | |
j = f[1]; | |
if (!h) return; | |
if (a.push(h), j && (a.push(j), d++), d >= b) return; | |
if (e++ > k) return | |
} else a.push(c), e++ | |
} | |
if (!a.length || 2 > c || c > 256) return !1; | |
var i = e(a), | |
j = 0; | |
i.forEach(function() { | |
j++ | |
}); | |
var m = f(a, i), | |
n = new b(function(a, b) { | |
return pv.naturalOrder(a.count(), b.count()) | |
}); | |
n.push(m), h(n, l * c); | |
for (var o = new b(function(a, b) { | |
return pv.naturalOrder(a.count() * a.volume(), b.count() * b.volume()) | |
}); n.size();) o.push(n.pop()); | |
h(o, c - o.size()); | |
for (var p = new d; o.size();) p.push(o.pop()); | |
return p | |
} | |
var i = 5, | |
j = 8 - i, | |
k = 1e3, | |
l = .75; | |
return c.prototype = { | |
volume: function(a) { | |
var b = this; | |
return (!b._volume || a) && (b._volume = (b.r2 - b.r1 + 1) * (b.g2 - b.g1 + 1) * (b.b2 - b.b1 + 1)), b._volume | |
}, | |
count: function(b) { | |
var c = this, | |
d = c.histo; | |
if (!c._count_set || b) { | |
var e, f, g, h = 0; | |
for (e = c.r1; e <= c.r2; e++) | |
for (f = c.g1; f <= c.g2; f++) | |
for (g = c.b1; g <= c.b2; g++) index = a(e, f, g), h += d[index] || 0; | |
c._count = h, c._count_set = !0 | |
} | |
return c._count | |
}, | |
copy: function() { | |
var a = this; | |
return new c(a.r1, a.r2, a.g1, a.g2, a.b1, a.b2, a.histo) | |
}, | |
avg: function(b) { | |
var c = this, | |
d = c.histo; | |
if (!c._avg || b) { | |
var e, f, g, h, j, k = 0, | |
l = 1 << 8 - i, | |
m = 0, | |
n = 0, | |
o = 0; | |
for (f = c.r1; f <= c.r2; f++) | |
for (g = c.g1; g <= c.g2; g++) | |
for (h = c.b1; h <= c.b2; h++) j = a(f, g, h), e = d[j] || 0, k += e, m += e * (f + .5) * l, n += e * (g + .5) * l, o += e * (h + .5) * l; | |
k ? c._avg = [~~(m / k), ~~(n / k), ~~(o / k)] : c._avg = [~~(l * (c.r1 + c.r2 + 1) / 2), ~~(l * (c.g1 + c.g2 + 1) / 2), ~~(l * (c.b1 + c.b2 + 1) / 2)] | |
} | |
return c._avg | |
}, | |
contains: function(a) { | |
var b = this, | |
c = a[0] >> j; | |
return gval = a[1] >> j, bval = a[2] >> j, c >= b.r1 && c <= b.r2 && gval >= b.g1 && gval <= b.g2 && bval >= b.b1 && bval <= b.b2 | |
} | |
}, d.prototype = { | |
push: function(a) { | |
this.vboxes.push({ | |
vbox: a, | |
color: a.avg() | |
}) | |
}, | |
palette: function() { | |
return this.vboxes.map(function(a) { | |
return a.color | |
}) | |
}, | |
size: function() { | |
return this.vboxes.size() | |
}, | |
map: function(a) { | |
for (var b = this.vboxes, c = 0; c < b.size(); c++) | |
if (b.peek(c).vbox.contains(a)) return b.peek(c).color; | |
return this.nearest(a) | |
}, | |
nearest: function(a) { | |
for (var b, c, d, e = this.vboxes, f = 0; f < e.size(); f++) c = Math.sqrt(Math.pow(a[0] - e.peek(f).color[0], 2) + Math.pow(a[1] - e.peek(f).color[1], 2) + Math.pow(a[2] - e.peek(f).color[2], 2)), (b > c || void 0 === b) && (b = c, d = e.peek(f).color); | |
return d | |
}, | |
forcebw: function() { | |
var a = this.vboxes; | |
a.sort(function(a, b) { | |
return pv.naturalOrder(pv.sum(a.color), pv.sum(b.color)) | |
}); | |
var b = a[0].color; | |
b[0] < 5 && b[1] < 5 && b[2] < 5 && (a[0].color = [0, 0, 0]); | |
var c = a.length - 1, | |
d = a[c].color; | |
d[0] > 251 && d[1] > 251 && d[2] > 251 && (a[c].color = [255, 255, 255]) | |
} | |
}, { | |
quantize: h | |
} | |
}(); | |
! function(a, b, c, d) { | |
function e(b, c) { | |
this.settings = null, this.options = a.extend({}, e.Defaults, c), this.$element = a(b), this._handlers = {}, this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._widths = [], this._invalidated = {}, this._pipe = [], this._drag = { | |
time: null, | |
target: null, | |
pointer: null, | |
stage: { | |
start: null, | |
current: null | |
}, | |
direction: null | |
}, this._states = { | |
current: {}, | |
tags: { | |
initializing: ["busy"], | |
animating: ["busy"], | |
dragging: ["interacting"] | |
} | |
}, a.each(["onResize", "onThrottledResize"], a.proxy(function(b, c) { | |
this._handlers[c] = a.proxy(this[c], this) | |
}, this)), a.each(e.Plugins, a.proxy(function(a, b) { | |
this._plugins[a.charAt(0).toLowerCase() + a.slice(1)] = new b(this) | |
}, this)), a.each(e.Workers, a.proxy(function(b, c) { | |
this._pipe.push({ | |
filter: c.filter, | |
run: a.proxy(c.run, this) | |
}) | |
}, this)), this.setup(), this.initialize() | |
} | |
e.Defaults = { | |
items: 3, | |
loop: !1, | |
center: !1, | |
rewind: !1, | |
mouseDrag: !0, | |
touchDrag: !0, | |
pullDrag: !0, | |
freeDrag: !1, | |
margin: 0, | |
stagePadding: 0, | |
merge: !1, | |
mergeFit: !0, | |
autoWidth: !1, | |
startPosition: 0, | |
rtl: !1, | |
smartSpeed: 250, | |
fluidSpeed: !1, | |
dragEndSpeed: !1, | |
responsive: {}, | |
responsiveRefreshRate: 200, | |
responsiveBaseElement: b, | |
fallbackEasing: "swing", | |
info: !1, | |
nestedItemSelector: !1, | |
itemElement: "div", | |
stageElement: "div", | |
refreshClass: "owl-refresh", | |
loadedClass: "owl-loaded", | |
loadingClass: "owl-loading", | |
rtlClass: "owl-rtl", | |
responsiveClass: "owl-responsive", | |
dragClass: "owl-drag", | |
itemClass: "owl-item", | |
stageClass: "owl-stage", | |
stageOuterClass: "owl-stage-outer", | |
grabClass: "owl-grab" | |
}, e.Width = { | |
Default: "default", | |
Inner: "inner", | |
Outer: "outer" | |
}, e.Type = { | |
Event: "event", | |
State: "state" | |
}, e.Plugins = {}, e.Workers = [{ | |
filter: ["width", "settings"], | |
run: function() { | |
this._width = this.$element.width() | |
} | |
}, { | |
filter: ["width", "items", "settings"], | |
run: function(a) { | |
a.current = this._items && this._items[this.relative(this._current)] | |
} | |
}, { | |
filter: ["items", "settings"], | |
run: function() { | |
this.$stage.children(".cloned").remove() | |
} | |
}, { | |
filter: ["width", "items", "settings"], | |
run: function(a) { | |
var b = this.settings.margin || "", | |
c = !this.settings.autoWidth, | |
d = this.settings.rtl, | |
e = { | |
width: "auto", | |
"margin-left": d ? b : "", | |
"margin-right": d ? "" : b | |
}; | |
!c && this.$stage.children().css(e), a.css = e | |
} | |
}, { | |
filter: ["width", "items", "settings"], | |
run: function(a) { | |
var b = (this.width() / this.settings.items).toFixed(3) - this.settings.margin, | |
c = null, | |
d = this._items.length, | |
e = !this.settings.autoWidth, | |
f = []; | |
for (a.items = { | |
merge: !1, | |
width: b | |
}; d--;) c = this._mergers[d], c = this.settings.mergeFit && Math.min(c, this.settings.items) || c, a.items.merge = c > 1 || a.items.merge, f[d] = e ? b * c : this._items[d].width(); | |
this._widths = f | |
} | |
}, { | |
filter: ["items", "settings"], | |
run: function() { | |
var b = [], | |
c = this._items, | |
d = this.settings, | |
e = Math.max(2 * d.items, 4), | |
f = 2 * Math.ceil(c.length / 2), | |
g = d.loop && c.length ? d.rewind ? e : Math.max(e, f) : 0, | |
h = "", | |
i = ""; | |
for (g /= 2; g--;) b.push(this.normalize(b.length / 2, !0)), h += c[b[b.length - 1]][0].outerHTML, b.push(this.normalize(c.length - 1 - (b.length - 1) / 2, !0)), i = c[b[b.length - 1]][0].outerHTML + i; | |
this._clones = b, a(h).addClass("cloned").appendTo(this.$stage), a(i).addClass("cloned").prependTo(this.$stage) | |
} | |
}, { | |
filter: ["width", "items", "settings"], | |
run: function() { | |
for (var a = this.settings.rtl ? 1 : -1, b = this._clones.length + this._items.length, c = -1, d = 0, e = 0, f = []; ++c < b;) d = f[c - 1] || 0, e = this._widths[this.relative(c)] + this.settings.margin, f.push(d + e * a); | |
this._coordinates = f | |
} | |
}, { | |
filter: ["width", "items", "settings"], | |
run: function() { | |
var a = this.settings.stagePadding, | |
b = this._coordinates, | |
c = { | |
width: Math.ceil(Math.abs(b[b.length - 1])) + 2 * a, | |
"padding-left": a || "", | |
"padding-right": a || "" | |
}; | |
this.$stage.css(c) | |
} | |
}, { | |
filter: ["width", "items", "settings"], | |
run: function(a) { | |
var b = this._coordinates.length, | |
c = !this.settings.autoWidth, | |
d = this.$stage.children(); | |
if (c && a.items.merge) | |
for (; b--;) a.css.width = this._widths[this.relative(b)], d.eq(b).css(a.css); | |
else c && (a.css.width = a.items.width, d.css(a.css)) | |
} | |
}, { | |
filter: ["items"], | |
run: function() { | |
this._coordinates.length < 1 && this.$stage.removeAttr("style") | |
} | |
}, { | |
filter: ["width", "items", "settings"], | |
run: function(a) { | |
a.current = a.current ? this.$stage.children().index(a.current) : 0, a.current = Math.max(this.minimum(), Math.min(this.maximum(), a.current)), this.reset(a.current) | |
} | |
}, { | |
filter: ["position"], | |
run: function() { | |
this.animate(this.coordinates(this._current)) | |
} | |
}, { | |
filter: ["width", "position", "items", "settings"], | |
run: function() { | |
var a, b, c, d, e = this.settings.rtl ? 1 : -1, | |
f = 2 * this.settings.stagePadding, | |
g = this.coordinates(this.current()) + f, | |
h = g + this.width() * e, | |
i = []; | |
for (c = 0, d = this._coordinates.length; d > c; c++) a = this._coordinates[c - 1] || 0, b = Math.abs(this._coordinates[c]) + f * e, (this.op(a, "<=", g) && this.op(a, ">", h) || this.op(b, "<", g) && this.op(b, ">", h)) && i.push(c); | |
this.$stage.children(".active").removeClass("active"), this.$stage.children(":eq(" + i.join("), :eq(") + ")").addClass("active"), this.settings.center && (this.$stage.children(".center").removeClass("center"), this.$stage.children().eq(this.current()).addClass("center")) | |
} | |
}], e.prototype.initialize = function() { | |
if (this.enter("initializing"), this.trigger("initialize"), this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), this.settings.autoWidth && !this.is("pre-loading")) { | |
var b, c, e; | |
b = this.$element.find("img"), c = this.settings.nestedItemSelector ? "." + this.settings.nestedItemSelector : d, e = this.$element.children(c).width(), b.length && 0 >= e && this.preloadAutoWidthImages(b) | |
} | |
this.$element.addClass(this.options.loadingClass), this.$stage = a("<" + this.settings.stageElement + ' class="' + this.settings.stageClass + '"/>').wrap('<div class="' + this.settings.stageOuterClass + '"/>'), this.$element.append(this.$stage.parent()), this.replace(this.$element.children().not(this.$stage.parent())), this.$element.is(":visible") ? this.refresh() : this.invalidate("width"), this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass), this.registerEventHandlers(), this.leave("initializing"), this.trigger("initialized") | |
}, e.prototype.setup = function() { | |
var b = this.viewport(), | |
c = this.options.responsive, | |
d = -1, | |
e = null; | |
c ? (a.each(c, function(a) { | |
b >= a && a > d && (d = Number(a)) | |
}), e = a.extend({}, this.options, c[d]), delete e.responsive, e.responsiveClass && this.$element.attr("class", this.$element.attr("class").replace(new RegExp("(" + this.options.responsiveClass + "-)\\S+\\s", "g"), "$1" + d))) : e = a.extend({}, this.options), (null === this.settings || this._breakpoint !== d) && (this.trigger("change", { | |
property: { | |
name: "settings", | |
value: e | |
} | |
}), this._breakpoint = d, this.settings = e, this.invalidate("settings"), this.trigger("changed", { | |
property: { | |
name: "settings", | |
value: this.settings | |
} | |
})) | |
}, e.prototype.optionsLogic = function() { | |
this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1) | |
}, e.prototype.prepare = function(b) { | |
var c = this.trigger("prepare", { | |
content: b | |
}); | |
return c.data || (c.data = a("<" + this.settings.itemElement + "/>").addClass(this.options.itemClass).append(b)), this.trigger("prepared", { | |
content: c.data | |
}), c.data | |
}, e.prototype.update = function() { | |
for (var b = 0, c = this._pipe.length, d = a.proxy(function(a) { | |
return this[a] | |
}, this._invalidated), e = {}; c > b;)(this._invalidated.all || a.grep(this._pipe[b].filter, d).length > 0) && this._pipe[b].run(e), b++; | |
this._invalidated = {}, !this.is("valid") && this.enter("valid") | |
}, e.prototype.width = function(a) { | |
switch (a = a || e.Width.Default) { | |
case e.Width.Inner: | |
case e.Width.Outer: | |
return this._width; | |
default: | |
return this._width - 2 * this.settings.stagePadding + this.settings.margin | |
} | |
}, e.prototype.refresh = function() { | |
this.enter("refreshing"), this.trigger("refresh"), this.setup(), this.optionsLogic(), this.$element.addClass(this.options.refreshClass), this.update(), this.$element.removeClass(this.options.refreshClass), this.leave("refreshing"), this.trigger("refreshed") | |
}, e.prototype.onThrottledResize = function() { | |
b.clearTimeout(this.resizeTimer), this.resizeTimer = b.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate) | |
}, e.prototype.onResize = function() { | |
return this._items.length ? this._width === this.$element.width() ? !1 : this.$element.is(":visible") ? (this.enter("resizing"), this.trigger("resize").isDefaultPrevented() ? (this.leave("resizing"), !1) : (this.invalidate("width"), this.refresh(), this.leave("resizing"), void this.trigger("resized"))) : !1 : !1 | |
}, e.prototype.registerEventHandlers = function() { | |
a.support.transition && this.$stage.on(a.support.transition.end + ".owl.core", a.proxy(this.onTransitionEnd, this)), this.settings.responsive !== !1 && this.on(b, "resize", this._handlers.onThrottledResize), this.settings.mouseDrag && (this.$element.addClass(this.options.dragClass), this.$stage.on("mousedown.owl.core", a.proxy(this.onDragStart, this)), this.$stage.on("dragstart.owl.core selectstart.owl.core", function() { | |
return !1 | |
})), this.settings.touchDrag && (this.$stage.on("touchstart.owl.core", a.proxy(this.onDragStart, this)), this.$stage.on("touchcancel.owl.core", a.proxy(this.onDragEnd, this))) | |
}, e.prototype.onDragStart = function(b) { | |
var d = null; | |
3 !== b.which && (a.support.transform ? (d = this.$stage.css("transform").replace(/.*\(|\)| /g, "").split(","), d = { | |
x: d[16 === d.length ? 12 : 4], | |
y: d[16 === d.length ? 13 : 5] | |
}) : (d = this.$stage.position(), d = { | |
x: this.settings.rtl ? d.left + this.$stage.width() - this.width() + this.settings.margin : d.left, | |
y: d.top | |
}), this.is("animating") && (a.support.transform ? this.animate(d.x) : this.$stage.stop(), this.invalidate("position")), this.$element.toggleClass(this.options.grabClass, "mousedown" === b.type), this.speed(0), this._drag.time = (new Date).getTime(), this._drag.target = a(b.target), this._drag.stage.start = d, this._drag.stage.current = d, this._drag.pointer = this.pointer(b), a(c).on("mouseup.owl.core touchend.owl.core", a.proxy(this.onDragEnd, this)), a(c).one("mousemove.owl.core touchmove.owl.core", a.proxy(function(b) { | |
var d = this.difference(this._drag.pointer, this.pointer(b)); | |
a(c).on("mousemove.owl.core touchmove.owl.core", a.proxy(this.onDragMove, this)), Math.abs(d.x) < Math.abs(d.y) && this.is("valid") || (b.preventDefault(), this.enter("dragging"), this.trigger("drag")) | |
}, this))) | |
}, e.prototype.onDragMove = function(a) { | |
var b = null, | |
c = null, | |
d = null, | |
e = this.difference(this._drag.pointer, this.pointer(a)), | |
f = this.difference(this._drag.stage.start, e); | |
this.is("dragging") && (a.preventDefault(), this.settings.loop ? (b = this.coordinates(this.minimum()), c = this.coordinates(this.maximum() + 1) - b, f.x = ((f.x - b) % c + c) % c + b) : (b = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()), c = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()), d = this.settings.pullDrag ? -1 * e.x / 5 : 0, f.x = Math.max(Math.min(f.x, b + d), c + d)), this._drag.stage.current = f, this.animate(f.x)) | |
}, e.prototype.onDragEnd = function(b) { | |
var d = this.difference(this._drag.pointer, this.pointer(b)), | |
e = this._drag.stage.current, | |
f = d.x > 0 ^ this.settings.rtl ? "left" : "right"; | |
a(c).off(".owl.core"), this.$element.removeClass(this.options.grabClass), (0 !== d.x && this.is("dragging") || !this.is("valid")) && (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), this.current(this.closest(e.x, 0 !== d.x ? f : this._drag.direction)), this.invalidate("position"), this.update(), this._drag.direction = f, (Math.abs(d.x) > 3 || (new Date).getTime() - this._drag.time > 300) && this._drag.target.one("click.owl.core", function() { | |
return !1 | |
})), this.is("dragging") && (this.leave("dragging"), this.trigger("dragged")) | |
}, e.prototype.closest = function(b, c) { | |
var d = -1, | |
e = 30, | |
f = this.width(), | |
g = this.coordinates(); | |
return this.settings.freeDrag || a.each(g, a.proxy(function(a, h) { | |
return b > h - e && h + e > b ? d = a : this.op(b, "<", h) && this.op(b, ">", g[a + 1] || h - f) && (d = "left" === c ? a + 1 : a), -1 === d | |
}, this)), this.settings.loop || (this.op(b, ">", g[this.minimum()]) ? d = b = this.minimum() : this.op(b, "<", g[this.maximum()]) && (d = b = this.maximum())), d | |
}, e.prototype.animate = function(b) { | |
var c = this.speed() > 0; | |
this.is("animating") && this.onTransitionEnd(), c && (this.enter("animating"), this.trigger("translate")), a.support.transform3d && a.support.transition ? this.$stage.css({ | |
transform: "translate3d(" + b + "px,0px,0px)", | |
transition: this.speed() / 1e3 + "s" | |
}) : c ? this.$stage.animate({ | |
left: b + "px" | |
}, this.speed(), this.settings.fallbackEasing, a.proxy(this.onTransitionEnd, this)) : this.$stage.css({ | |
left: b + "px" | |
}) | |
}, e.prototype.is = function(a) { | |
return this._states.current[a] && this._states.current[a] > 0 | |
}, e.prototype.current = function(a) { | |
if (a === d) return this._current; | |
if (0 === this._items.length) return d; | |
if (a = this.normalize(a), this._current !== a) { | |
var b = this.trigger("change", { | |
property: { | |
name: "position", | |
value: a | |
} | |
}); | |
b.data !== d && (a = this.normalize(b.data)), this._current = a, this.invalidate("position"), this.trigger("changed", { | |
property: { | |
name: "position", | |
value: this._current | |
} | |
}) | |
} | |
return this._current | |
}, e.prototype.invalidate = function(b) { | |
return "string" === a.type(b) && (this._invalidated[b] = !0, this.is("valid") && this.leave("valid")), a.map(this._invalidated, function(a, b) { | |
return b | |
}) | |
}, e.prototype.reset = function(a) { | |
a = this.normalize(a), a !== d && (this._speed = 0, this._current = a, this.suppress(["translate", "translated"]), this.animate(this.coordinates(a)), this.release(["translate", "translated"])) | |
}, e.prototype.normalize = function(b, c) { | |
var e = this._items.length, | |
f = c ? 0 : this._clones.length; | |
return !a.isNumeric(b) || 1 > e ? b = d : (0 > b || b >= e + f) && (b = ((b - f / 2) % e + e) % e + f / 2), b | |
}, e.prototype.relative = function(a) { | |
return a -= this._clones.length / 2, this.normalize(a, !0) | |
}, e.prototype.maximum = function(a) { | |
var b, c = this.settings, | |
d = this._coordinates.length, | |
e = Math.abs(this._coordinates[d - 1]) - this._width, | |
f = -1; | |
if (c.loop) d = this._clones.length / 2 + this._items.length - 1; | |
else if (c.autoWidth || c.merge) | |
for (; d - f > 1;) Math.abs(this._coordinates[b = d + f >> 1]) < e ? f = b : d = b; | |
else d = c.center ? this._items.length - 1 : this._items.length - c.items; | |
return a && (d -= this._clones.length / 2), Math.max(d, 0) | |
}, e.prototype.minimum = function(a) { | |
return a ? 0 : this._clones.length / 2 | |
}, e.prototype.items = function(a) { | |
return a === d ? this._items.slice() : (a = this.normalize(a, !0), this._items[a]) | |
}, e.prototype.mergers = function(a) { | |
return a === d ? this._mergers.slice() : (a = this.normalize(a, !0), this._mergers[a]) | |
}, e.prototype.clones = function(b) { | |
var c = this._clones.length / 2, | |
e = c + this._items.length, | |
f = function(a) { | |
return a % 2 === 0 ? e + a / 2 : c - (a + 1) / 2 | |
}; | |
return b === d ? a.map(this._clones, function(a, b) { | |
return f(b) | |
}) : a.map(this._clones, function(a, c) { | |
return a === b ? f(c) : null | |
}) | |
}, e.prototype.speed = function(a) { | |
return a !== d && (this._speed = a), this._speed | |
}, e.prototype.coordinates = function(b) { | |
var c = null; | |
return b === d ? a.map(this._coordinates, a.proxy(function(a, b) { | |
return this.coordinates(b) | |
}, this)) : (this.settings.center ? (c = this._coordinates[b], c += (this.width() - c + (this._coordinates[b - 1] || 0)) / 2 * (this.settings.rtl ? -1 : 1)) : c = this._coordinates[b - 1] || 0, c) | |
}, e.prototype.duration = function(a, b, c) { | |
return Math.min(Math.max(Math.abs(b - a), 1), 6) * Math.abs(c || this.settings.smartSpeed) | |
}, e.prototype.to = function(a, b) { | |
var c = this.current(), | |
d = null, | |
e = a - this.relative(c), | |
f = (e > 0) - (0 > e), | |
g = this._items.length, | |
h = this.minimum(), | |
i = this.maximum(); | |
this.settings.loop ? (!this.settings.rewind && Math.abs(e) > g / 2 && (e += -1 * f * g), a = c + e, d = ((a - h) % g + g) % g + h, d !== a && i >= d - e && d - e > 0 && (c = d - e, a = d, this.reset(c))) : this.settings.rewind ? (i += 1, a = (a % i + i) % i) : a = Math.max(h, Math.min(i, a)), this.speed(this.duration(c, a, b)), this.current(a), this.$element.is(":visible") && this.update() | |
}, e.prototype.next = function(a) { | |
a = a || !1, this.to(this.relative(this.current()) + 1, a) | |
}, e.prototype.prev = function(a) { | |
a = a || !1, this.to(this.relative(this.current()) - 1, a) | |
}, e.prototype.onTransitionEnd = function(a) { | |
return a !== d && (a.stopPropagation(), (a.target || a.srcElement || a.originalTarget) !== this.$stage.get(0)) ? !1 : (this.leave("animating"), void this.trigger("translated")) | |
}, e.prototype.viewport = function() { | |
var d; | |
if (this.options.responsiveBaseElement !== b) d = a(this.options.responsiveBaseElement).width(); | |
else if (b.innerWidth) d = b.innerWidth; | |
else { | |
if (!c.documentElement || !c.documentElement.clientWidth) throw "Can not detect viewport width."; | |
d = c.documentElement.clientWidth | |
} | |
return d | |
}, e.prototype.replace = function(b) { | |
this.$stage.empty(), this._items = [], b && (b = b instanceof jQuery ? b : a(b)), this.settings.nestedItemSelector && (b = b.find("." + this.settings.nestedItemSelector)), b.filter(function() { | |
return 1 === this.nodeType | |
}).each(a.proxy(function(a, b) { | |
b = this.prepare(b), this.$stage.append(b), this._items.push(b), this._mergers.push(1 * b.find("[data-merge]").andSelf("[data-merge]").attr("data-merge") || 1) | |
}, this)), this.reset(a.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate("items") | |
}, e.prototype.add = function(b, c) { | |
var e = this.relative(this._current); | |
c = c === d ? this._items.length : this.normalize(c, !0), b = b instanceof jQuery ? b : a(b), this.trigger("add", { | |
content: b, | |
position: c | |
}), b = this.prepare(b), 0 === this._items.length || c === this._items.length ? (0 === this._items.length && this.$stage.append(b), 0 !== this._items.length && this._items[c - 1].after(b), this._items.push(b), this._mergers.push(1 * b.find("[data-merge]").andSelf("[data-merge]").attr("data-merge") || 1)) : (this._items[c].before(b), this._items.splice(c, 0, b), this._mergers.splice(c, 0, 1 * b.find("[data-merge]").andSelf("[data-merge]").attr("data-merge") || 1)), this._items[e] && this.reset(this._items[e].index()), this.invalidate("items"), this.trigger("added", { | |
content: b, | |
position: c | |
}) | |
}, e.prototype.remove = function(a) { | |
a = this.normalize(a, !0), a !== d && (this.trigger("remove", { | |
content: this._items[a], | |
position: a | |
}), this._items[a].remove(), this._items.splice(a, 1), this._mergers.splice(a, 1), this.invalidate("items"), this.trigger("removed", { | |
content: null, | |
position: a | |
})) | |
}, e.prototype.preloadAutoWidthImages = function(b) { | |
b.each(a.proxy(function(b, c) { | |
this.enter("pre-loading"), c = a(c), a(new Image).one("load", a.proxy(function(a) { | |
c.attr("src", a.target.src), c.css("opacity", 1), this.leave("pre-loading"), !this.is("pre-loading") && !this.is("initializing") && this.refresh() | |
}, this)).attr("src", c.attr("src") || c.attr("data-src") || c.attr("data-src-retina")) | |
}, this)) | |
}, e.prototype.destroy = function() { | |
this.$element.off(".owl.core"), this.$stage.off(".owl.core"), a(c).off(".owl.core"), this.settings.responsive !== !1 && (b.clearTimeout(this.resizeTimer), this.off(b, "resize", this._handlers.onThrottledResize)); | |
for (var d in this._plugins) this._plugins[d].destroy(); | |
this.$stage.children(".cloned").remove(), this.$stage.unwrap(), this.$stage.children().contents().unwrap(), this.$stage.children().unwrap(), this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class", this.$element.attr("class").replace(new RegExp(this.options.responsiveClass + "-\\S+\\s", "g"), "")).removeData("owl.carousel") | |
}, e.prototype.op = function(a, b, c) { | |
var d = this.settings.rtl; | |
switch (b) { | |
case "<": | |
return d ? a > c : c > a; | |
case ">": | |
return d ? c > a : a > c; | |
case ">=": | |
return d ? c >= a : a >= c; | |
case "<=": | |
return d ? a >= c : c >= a | |
} | |
}, e.prototype.on = function(a, b, c, d) { | |
a.addEventListener ? a.addEventListener(b, c, d) : a.attachEvent && a.attachEvent("on" + b, c) | |
}, e.prototype.off = function(a, b, c, d) { | |
a.removeEventListener ? a.removeEventListener(b, c, d) : a.detachEvent && a.detachEvent("on" + b, c) | |
}, e.prototype.trigger = function(b, c, d, f, g) { | |
var h = { | |
item: { | |
count: this._items.length, | |
index: this.current() | |
} | |
}, | |
i = a.camelCase(a.grep(["on", b, d], function(a) { | |
return a | |
}).join("-").toLowerCase()), | |
j = a.Event([b, "owl", d || "carousel"].join(".").toLowerCase(), a.extend({ | |
relatedTarget: this | |
}, h, c)); | |
return this._supress[b] || (a.each(this._plugins, function(a, b) { | |
b.onTrigger && b.onTrigger(j) | |
}), this.register({ | |
type: e.Type.Event, | |
name: b | |
}), this.$element.trigger(j), this.settings && "function" == typeof this.settings[i] && this.settings[i].call(this, j)), j | |
}, e.prototype.enter = function(b) { | |
a.each([b].concat(this._states.tags[b] || []), a.proxy(function(a, b) { | |
this._states.current[b] === d && (this._states.current[b] = 0), this._states.current[b]++ | |
}, this)) | |
}, e.prototype.leave = function(b) { | |
a.each([b].concat(this._states.tags[b] || []), a.proxy(function(a, b) { | |
this._states.current[b]-- | |
}, this)) | |
}, e.prototype.register = function(b) { | |
if (b.type === e.Type.Event) { | |
if (a.event.special[b.name] || (a.event.special[b.name] = {}), !a.event.special[b.name].owl) { | |
var c = a.event.special[b.name]._default; | |
a.event.special[b.name]._default = function(a) { | |
return !c || !c.apply || a.namespace && -1 !== a.namespace.indexOf("owl") ? a.namespace && a.namespace.indexOf("owl") > -1 : c.apply(this, arguments) | |
}, a.event.special[b.name].owl = !0 | |
} | |
} else b.type === e.Type.State && (this._states.tags[b.name] ? this._states.tags[b.name] = this._states.tags[b.name].concat(b.tags) : this._states.tags[b.name] = b.tags, this._states.tags[b.name] = a.grep(this._states.tags[b.name], a.proxy(function(c, d) { | |
return a.inArray(c, this._states.tags[b.name]) === d | |
}, this))) | |
}, e.prototype.suppress = function(b) { | |
a.each(b, a.proxy(function(a, b) { | |
this._supress[b] = !0 | |
}, this)) | |
}, e.prototype.release = function(b) { | |
a.each(b, a.proxy(function(a, b) { | |
delete this._supress[b] | |
}, this)) | |
}, e.prototype.pointer = function(a) { | |
var c = { | |
x: null, | |
y: null | |
}; | |
return a = a.originalEvent || a || b.event, a = a.touches && a.touches.length ? a.touches[0] : a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : a, a.pageX ? (c.x = a.pageX, c.y = a.pageY) : (c.x = a.clientX, c.y = a.clientY), c | |
}, e.prototype.difference = function(a, b) { | |
return { | |
x: a.x - b.x, | |
y: a.y - b.y | |
} | |
}, a.fn.owlCarousel = function(b) { | |
var c = Array.prototype.slice.call(arguments, 1); | |
return this.each(function() { | |
var d = a(this), | |
f = d.data("owl.carousel"); | |
f || (f = new e(this, "object" == typeof b && b), d.data("owl.carousel", f), a.each(["next", "prev", "to", "destroy", "refresh", "replace", "add", "remove"], function(b, c) { | |
f.register({ | |
type: e.Type.Event, | |
name: c | |
}), f.$element.on(c + ".owl.carousel.core", a.proxy(function(a) { | |
a.namespace && a.relatedTarget !== this && (this.suppress([c]), f[c].apply(this, [].slice.call(arguments, 1)), this.release([c])) | |
}, f)) | |
})), "string" == typeof b && "_" !== b.charAt(0) && f[b].apply(f, c) | |
}) | |
}, a.fn.owlCarousel.Constructor = e | |
}(window.Zepto || window.jQuery, window, document), | |
function(a, b, c, d) { | |
var e = function(b) { | |
this._core = b, this._interval = null, this._visible = null, this._handlers = { | |
"initialized.owl.carousel": a.proxy(function(a) { | |
a.namespace && this._core.settings.autoRefresh && this.watch() | |
}, this) | |
}, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers) | |
}; | |
e.Defaults = { | |
autoRefresh: !0, | |
autoRefreshInterval: 500 | |
}, e.prototype.watch = function() { | |
this._interval || (this._visible = this._core.$element.is(":visible"), this._interval = b.setInterval(a.proxy(this.refresh, this), this._core.settings.autoRefreshInterval)) | |
}, e.prototype.refresh = function() { | |
this._core.$element.is(":visible") !== this._visible && (this._visible = !this._visible, this._core.$element.toggleClass("owl-hidden", !this._visible), this._visible && this._core.invalidate("width") && this._core.refresh()) | |
}, e.prototype.destroy = function() { | |
var a, c; | |
b.clearInterval(this._interval); | |
for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); | |
for (c in Object.getOwnPropertyNames(this)) "function" != typeof this[c] && (this[c] = null) | |
}, a.fn.owlCarousel.Constructor.Plugins.AutoRefresh = e | |
}(window.Zepto || window.jQuery, window, document), | |
function(a, b, c, d) { | |
var e = function(b) { | |
this._core = b, this._loaded = [], this._handlers = { | |
"initialized.owl.carousel change.owl.carousel": a.proxy(function(b) { | |
if (b.namespace && this._core.settings && this._core.settings.lazyLoad && (b.property && "position" == b.property.name || "initialized" == b.type)) | |
for (var c = this._core.settings, d = c.center && Math.ceil(c.items / 2) || c.items, e = c.center && -1 * d || 0, f = (b.property && b.property.value || this._core.current()) + e, g = this._core.clones().length, h = a.proxy(function(a, b) { | |
this.load(b) | |
}, this); e++ < d;) this.load(g / 2 + this._core.relative(f)), g && a.each(this._core.clones(this._core.relative(f)), h), f++ | |
}, this) | |
}, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers) | |
}; | |
e.Defaults = { | |
lazyLoad: !1 | |
}, e.prototype.load = function(c) { | |
var d = this._core.$stage.children().eq(c), | |
e = d && d.find(".owl-lazy"); | |
!e || a.inArray(d.get(0), this._loaded) > -1 || (e.each(a.proxy(function(c, d) { | |
var e, f = a(d), | |
g = b.devicePixelRatio > 1 && f.attr("data-src-retina") || f.attr("data-src"); | |
this._core.trigger("load", { | |
element: f, | |
url: g | |
}, "lazy"), f.is("img") ? f.one("load.owl.lazy", a.proxy(function() { | |
f.css("opacity", 1), this._core.trigger("loaded", { | |
element: f, | |
url: g | |
}, "lazy") | |
}, this)).attr("src", g) : (e = new Image, e.onload = a.proxy(function() { | |
f.css({ | |
"background-image": "url(" + g + ")", | |
opacity: "1" | |
}), this._core.trigger("loaded", { | |
element: f, | |
url: g | |
}, "lazy") | |
}, this), e.src = g) | |
}, this)), this._loaded.push(d.get(0))) | |
}, e.prototype.destroy = function() { | |
var a, b; | |
for (a in this.handlers) this._core.$element.off(a, this.handlers[a]); | |
for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null) | |
}, a.fn.owlCarousel.Constructor.Plugins.Lazy = e | |
}(window.Zepto || window.jQuery, window, document), | |
function(a, b, c, d) { | |
var e = function(b) { | |
this._core = b, this._handlers = { | |
"initialized.owl.carousel refreshed.owl.carousel": a.proxy(function(a) { | |
a.namespace && this._core.settings.autoHeight && this.update() | |
}, this), | |
"changed.owl.carousel": a.proxy(function(a) { | |
a.namespace && this._core.settings.autoHeight && "position" == a.property.name && this.update() | |
}, this), | |
"loaded.owl.lazy": a.proxy(function(a) { | |
a.namespace && this._core.settings.autoHeight && a.element.closest("." + this._core.settings.itemClass).index() === this._core.current() && this.update() | |
}, this) | |
}, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers) | |
}; | |
e.Defaults = { | |
autoHeight: !1, | |
autoHeightClass: "owl-height" | |
}, e.prototype.update = function() { | |
var b = this._core._current, | |
c = b + this._core.settings.items, | |
d = this._core.$stage.children().toArray().slice(b, c); | |
heights = [], maxheight = 0, a.each(d, function(b, c) { | |
heights.push(a(c).height()) | |
}), maxheight = Math.max.apply(null, heights), this._core.$stage.parent().height(maxheight).addClass(this._core.settings.autoHeightClass) | |
}, e.prototype.destroy = function() { | |
var a, b; | |
for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); | |
for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null) | |
}, a.fn.owlCarousel.Constructor.Plugins.AutoHeight = e | |
}(window.Zepto || window.jQuery, window, document), | |
function(a, b, c, d) { | |
var e = function(b) { | |
this._core = b, this._videos = {}, this._playing = null, this._handlers = { | |
"initialized.owl.carousel": a.proxy(function(a) { | |
a.namespace && this._core.register({ | |
type: "state", | |
name: "playing", | |
tags: ["interacting"] | |
}) | |
}, this), | |
"resize.owl.carousel": a.proxy(function(a) { | |
a.namespace && this._core.settings.video && this.isInFullScreen() && a.preventDefault() | |
}, this), | |
"refreshed.owl.carousel": a.proxy(function(a) { | |
a.namespace && this._core.is("resizing") && this._core.$stage.find(".cloned .owl-video-frame").remove() | |
}, this), | |
"changed.owl.carousel": a.proxy(function(a) { | |
a.namespace && "position" === a.property.name && this._playing && this.stop() | |
}, this), | |
"prepared.owl.carousel": a.proxy(function(b) { | |
if (b.namespace) { | |
var c = a(b.content).find(".owl-video"); | |
c.length && (c.css("display", "none"), this.fetch(c, a(b.content))) | |
} | |
}, this) | |
}, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers), this._core.$element.on("click.owl.video", ".owl-video-play-icon", a.proxy(function(a) { | |
this.play(a) | |
}, this)) | |
}; | |
e.Defaults = { | |
video: !1, | |
videoHeight: !1, | |
videoWidth: !1 | |
}, e.prototype.fetch = function(a, b) { | |
var c = a.attr("data-vimeo-id") ? "vimeo" : "youtube", | |
d = a.attr("data-vimeo-id") || a.attr("data-youtube-id"), | |
e = a.attr("data-width") || this._core.settings.videoWidth, | |
f = a.attr("data-height") || this._core.settings.videoHeight, | |
g = a.attr("href"); | |
if (!g) throw new Error("Missing video URL."); | |
if (d = g.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/), d[3].indexOf("youtu") > -1) c = "youtube"; | |
else { | |
if (!(d[3].indexOf("vimeo") > -1)) throw new Error("Video URL not supported."); | |
c = "vimeo" | |
} | |
d = d[6], this._videos[g] = { | |
type: c, | |
id: d, | |
width: e, | |
height: f | |
}, b.attr("data-video", g), this.thumbnail(a, this._videos[g]) | |
}, e.prototype.thumbnail = function(b, c) { | |
var d, e, f, g = c.width && c.height ? 'style="width:' + c.width + "px;height:" + c.height + 'px;"' : "", | |
h = b.find("img"), | |
i = "src", | |
j = "", | |
k = this._core.settings, | |
l = function(a) { | |
e = '<div class="owl-video-play-icon"></div>', d = k.lazyLoad ? '<div class="owl-video-tn ' + j + '" ' + i + '="' + a + '"></div>' : '<div class="owl-video-tn" style="opacity:1;background-image:url(' + a + ')"></div>', b.after(d), b.after(e) | |
}; | |
return b.wrap('<div class="owl-video-wrapper"' + g + "></div>"), this._core.settings.lazyLoad && (i = "data-src", j = "owl-lazy"), h.length ? (l(h.attr(i)), h.remove(), !1) : void("youtube" === c.type ? (f = "http://img.youtube.com/vi/" + c.id + "/hqdefault.jpg", l(f)) : "vimeo" === c.type && a.ajax({ | |
type: "GET", | |
url: "http://vimeo.com/api/v2/video/" + c.id + ".json", | |
jsonp: "callback", | |
dataType: "jsonp", | |
success: function(a) { | |
f = a[0].thumbnail_large, l(f) | |
} | |
})) | |
}, e.prototype.stop = function() { | |
this._core.trigger("stop", null, "video"), this._playing.find(".owl-video-frame").remove(), this._playing.removeClass("owl-video-playing"), this._playing = null, this._core.leave("playing"), this._core.trigger("stopped", null, "video") | |
}, e.prototype.play = function(b) { | |
var c, d = a(b.target), | |
e = d.closest("." + this._core.settings.itemClass), | |
f = this._videos[e.attr("data-video")], | |
g = f.width || "100%", | |
h = f.height || this._core.$stage.height(); | |
this._playing || (this._core.enter("playing"), this._core.trigger("play", null, "video"), e = this._core.items(this._core.relative(e.index())), this._core.reset(e.index()), "youtube" === f.type ? c = '<iframe width="' + g + '" height="' + h + '" src="http://www.youtube.com/embed/' + f.id + "?autoplay=1&v=" + f.id + '" frameborder="0" allowfullscreen></iframe>' : "vimeo" === f.type && (c = '<iframe src="http://player.vimeo.com/video/' + f.id + '?autoplay=1" width="' + g + '" height="' + h + '" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'), a('<div class="owl-video-frame">' + c + "</div>").insertAfter(e.find(".owl-video")), this._playing = e.addClass("owl-video-playing")) | |
}, e.prototype.isInFullScreen = function() { | |
var b = c.fullscreenElement || c.mozFullScreenElement || c.webkitFullscreenElement; | |
return b && a(b).parent().hasClass("owl-video-frame") | |
}, e.prototype.destroy = function() { | |
var a, b; | |
this._core.$element.off("click.owl.video"); | |
for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); | |
for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null); | |
}, a.fn.owlCarousel.Constructor.Plugins.Video = e | |
}(window.Zepto || window.jQuery, window, document), | |
function(a, b, c, d) { | |
var e = function(b) { | |
this.core = b, this.core.options = a.extend({}, e.Defaults, this.core.options), this.swapping = !0, this.previous = d, this.next = d, this.handlers = { | |
"change.owl.carousel": a.proxy(function(a) { | |
a.namespace && "position" == a.property.name && (this.previous = this.core.current(), this.next = a.property.value) | |
}, this), | |
"drag.owl.carousel dragged.owl.carousel translated.owl.carousel": a.proxy(function(a) { | |
a.namespace && (this.swapping = "translated" == a.type) | |
}, this), | |
"translate.owl.carousel": a.proxy(function(a) { | |
a.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap() | |
}, this) | |
}, this.core.$element.on(this.handlers) | |
}; | |
e.Defaults = { | |
animateOut: !1, | |
animateIn: !1 | |
}, e.prototype.swap = function() { | |
if (1 === this.core.settings.items && a.support.animation && a.support.transition) { | |
this.core.speed(0); | |
var b, c = a.proxy(this.clear, this), | |
d = this.core.$stage.children().eq(this.previous), | |
e = this.core.$stage.children().eq(this.next), | |
f = this.core.settings.animateIn, | |
g = this.core.settings.animateOut; | |
this.core.current() !== this.previous && (g && (b = this.core.coordinates(this.previous) - this.core.coordinates(this.next), d.one(a.support.animation.end, c).css({ | |
left: b + "px" | |
}).addClass("animated owl-animated-out").addClass(g)), f && e.one(a.support.animation.end, c).addClass("animated owl-animated-in").addClass(f)) | |
} | |
}, e.prototype.clear = function(b) { | |
a(b.target).css({ | |
left: "" | |
}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut), this.core.onTransitionEnd() | |
}, e.prototype.destroy = function() { | |
var a, b; | |
for (a in this.handlers) this.core.$element.off(a, this.handlers[a]); | |
for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null) | |
}, a.fn.owlCarousel.Constructor.Plugins.Animate = e | |
}(window.Zepto || window.jQuery, window, document), | |
function(a, b, c, d) { | |
var e = function(b) { | |
this._core = b, this._interval = null, this._paused = !1, this._handlers = { | |
"changed.owl.carousel": a.proxy(function(a) { | |
a.namespace && "settings" === a.property.name && (this._core.settings.autoplay ? this.play() : this.stop()) | |
}, this), | |
"initialized.owl.carousel": a.proxy(function(a) { | |
a.namespace && this._core.settings.autoplay && this.play() | |
}, this), | |
"play.owl.autoplay": a.proxy(function(a, b, c) { | |
a.namespace && this.play(b, c) | |
}, this), | |
"stop.owl.autoplay": a.proxy(function(a) { | |
a.namespace && this.stop() | |
}, this), | |
"mouseover.owl.autoplay": a.proxy(function() { | |
this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() | |
}, this), | |
"mouseleave.owl.autoplay": a.proxy(function() { | |
this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.play() | |
}, this) | |
}, this._core.$element.on(this._handlers), this._core.options = a.extend({}, e.Defaults, this._core.options) | |
}; | |
e.Defaults = { | |
autoplay: !1, | |
autoplayTimeout: 5e3, | |
autoplayHoverPause: !1, | |
autoplaySpeed: !1 | |
}, e.prototype.play = function(d, e) { | |
this._paused = !1, this._core.is("rotating") || (this._core.enter("rotating"), this._interval = b.setInterval(a.proxy(function() { | |
this._paused || this._core.is("busy") || this._core.is("interacting") || c.hidden || this._core.next(e || this._core.settings.autoplaySpeed) | |
}, this), d || this._core.settings.autoplayTimeout)) | |
}, e.prototype.stop = function() { | |
this._core.is("rotating") && (b.clearInterval(this._interval), this._core.leave("rotating")) | |
}, e.prototype.pause = function() { | |
this._core.is("rotating") && (this._paused = !0) | |
}, e.prototype.destroy = function() { | |
var a, b; | |
this.stop(); | |
for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); | |
for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null) | |
}, a.fn.owlCarousel.Constructor.Plugins.autoplay = e | |
}(window.Zepto || window.jQuery, window, document), | |
function(a, b, c, d) { | |
"use strict"; | |
var e = function(b) { | |
this._core = b, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = { | |
next: this._core.next, | |
prev: this._core.prev, | |
to: this._core.to | |
}, this._handlers = { | |
"prepared.owl.carousel": a.proxy(function(b) { | |
b.namespace && this._core.settings.dotsData && this._templates.push('<div class="' + this._core.settings.dotClass + '">' + a(b.content).find("[data-dot]").andSelf("[data-dot]").attr("data-dot") + "</div>") | |
}, this), | |
"added.owl.carousel": a.proxy(function(a) { | |
a.namespace && this._core.settings.dotsData && this._templates.splice(a.position, 0, this._templates.pop()) | |
}, this), | |
"remove.owl.carousel": a.proxy(function(a) { | |
a.namespace && this._core.settings.dotsData && this._templates.splice(a.position, 1) | |
}, this), | |
"changed.owl.carousel": a.proxy(function(a) { | |
a.namespace && "position" == a.property.name && this.draw() | |
}, this), | |
"initialized.owl.carousel": a.proxy(function(a) { | |
a.namespace && !this._initialized && (this._core.trigger("initialize", null, "navigation"), this.initialize(), this.update(), this.draw(), this._initialized = !0, this._core.trigger("initialized", null, "navigation")) | |
}, this), | |
"refreshed.owl.carousel": a.proxy(function(a) { | |
a.namespace && this._initialized && (this._core.trigger("refresh", null, "navigation"), this.update(), this.draw(), this._core.trigger("refreshed", null, "navigation")) | |
}, this) | |
}, this._core.options = a.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers) | |
}; | |
e.Defaults = { | |
nav: !1, | |
navText: ["prev", "next"], | |
navSpeed: !1, | |
navElement: "div", | |
navContainer: !1, | |
navContainerClass: "owl-nav", | |
navClass: ["owl-prev", "owl-next"], | |
slideBy: 1, | |
dotClass: "owl-dot", | |
dotsClass: "owl-dots", | |
dots: !0, | |
dotsEach: !1, | |
dotsData: !1, | |
dotsSpeed: !1, | |
dotsContainer: !1 | |
}, e.prototype.initialize = function() { | |
var b, c = this._core.settings; | |
this._controls.$relative = (c.navContainer ? a(c.navContainer) : a("<div>").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"), this._controls.$previous = a("<" + c.navElement + ">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click", a.proxy(function(a) { | |
this.prev(c.navSpeed) | |
}, this)), this._controls.$next = a("<" + c.navElement + ">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click", a.proxy(function(a) { | |
this.next(c.navSpeed) | |
}, this)), c.dotsData || (this._templates = [a("<div>").addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]), this._controls.$absolute = (c.dotsContainer ? a(c.dotsContainer) : a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"), this._controls.$absolute.on("click", "div", a.proxy(function(b) { | |
var d = a(b.target).parent().is(this._controls.$absolute) ? a(b.target).index() : a(b.target).parent().index(); | |
b.preventDefault(), this.to(d, c.dotsSpeed) | |
}, this)); | |
for (b in this._overrides) this._core[b] = a.proxy(this[b], this) | |
}, e.prototype.destroy = function() { | |
var a, b, c, d; | |
for (a in this._handlers) this.$element.off(a, this._handlers[a]); | |
for (b in this._controls) this._controls[b].remove(); | |
for (d in this.overides) this._core[d] = this._overrides[d]; | |
for (c in Object.getOwnPropertyNames(this)) "function" != typeof this[c] && (this[c] = null) | |
}, e.prototype.update = function() { | |
var a, b, c, d = this._core.clones().length / 2, | |
e = d + this._core.items().length, | |
f = this._core.maximum(!0), | |
g = this._core.settings, | |
h = g.center || g.autoWidth || g.dotsData ? 1 : g.dotsEach || g.items; | |
if ("page" !== g.slideBy && (g.slideBy = Math.min(g.slideBy, g.items)), g.dots || "page" == g.slideBy) | |
for (this._pages = [], a = d, b = 0, c = 0; e > a; a++) { | |
if (b >= h || 0 === b) { | |
if (this._pages.push({ | |
start: Math.min(f, a - d), | |
end: a - d + h - 1 | |
}), Math.min(f, a - d) === f) break; | |
b = 0, ++c | |
} | |
b += this._core.mergers(this._core.relative(a)) | |
} | |
}, e.prototype.draw = function() { | |
var b, c = this._core.settings, | |
d = this._core.items().length <= c.items, | |
e = this._core.relative(this._core.current()), | |
f = c.loop || c.rewind; | |
this._controls.$relative.toggleClass("disabled", !c.nav || d), c.nav && (this._controls.$previous.toggleClass("disabled", !f && e <= this._core.minimum(!0)), this._controls.$next.toggleClass("disabled", !f && e >= this._core.maximum(!0))), this._controls.$absolute.toggleClass("disabled", !c.dots || d), c.dots && (b = this._pages.length - this._controls.$absolute.children().length, c.dotsData && 0 !== b ? this._controls.$absolute.html(this._templates.join("")) : b > 0 ? this._controls.$absolute.append(new Array(b + 1).join(this._templates[0])) : 0 > b && this._controls.$absolute.children().slice(b).remove(), this._controls.$absolute.find(".active").removeClass("active"), this._controls.$absolute.children().eq(a.inArray(this.current(), this._pages)).addClass("active")) | |
}, e.prototype.onTrigger = function(b) { | |
var c = this._core.settings; | |
b.page = { | |
index: a.inArray(this.current(), this._pages), | |
count: this._pages.length, | |
size: c && (c.center || c.autoWidth || c.dotsData ? 1 : c.dotsEach || c.items) | |
} | |
}, e.prototype.current = function() { | |
var b = this._core.relative(this._core.current()); | |
return a.grep(this._pages, a.proxy(function(a, c) { | |
return a.start <= b && a.end >= b | |
}, this)).pop() | |
}, e.prototype.getPosition = function(b) { | |
var c, d, e = this._core.settings; | |
return "page" == e.slideBy ? (c = a.inArray(this.current(), this._pages), d = this._pages.length, b ? ++c : --c, c = this._pages[(c % d + d) % d].start) : (c = this._core.relative(this._core.current()), d = this._core.items().length, b ? c += e.slideBy : c -= e.slideBy), c | |
}, e.prototype.next = function(b) { | |
a.proxy(this._overrides.to, this._core)(this.getPosition(!0), b) | |
}, e.prototype.prev = function(b) { | |
a.proxy(this._overrides.to, this._core)(this.getPosition(!1), b) | |
}, e.prototype.to = function(b, c, d) { | |
var e; | |
d ? a.proxy(this._overrides.to, this._core)(b, c) : (e = this._pages.length, a.proxy(this._overrides.to, this._core)(this._pages[(b % e + e) % e].start, c)) | |
}, a.fn.owlCarousel.Constructor.Plugins.Navigation = e | |
}(window.Zepto || window.jQuery, window, document), | |
function(a, b, c, d) { | |
"use strict"; | |
var e = function(c) { | |
this._core = c, this._hashes = {}, this.$element = this._core.$element, this._handlers = { | |
"initialized.owl.carousel": a.proxy(function(c) { | |
c.namespace && "URLHash" === this._core.settings.startPosition && a(b).trigger("hashchange.owl.navigation") | |
}, this), | |
"prepared.owl.carousel": a.proxy(function(b) { | |
if (b.namespace) { | |
var c = a(b.content).find("[data-hash]").andSelf("[data-hash]").attr("data-hash"); | |
if (!c) return; | |
this._hashes[c] = b.content | |
} | |
}, this), | |
"changed.owl.carousel": a.proxy(function(c) { | |
if (c.namespace && "position" === c.property.name) { | |
var d = this._core.items(this._core.relative(this._core.current())), | |
e = a.map(this._hashes, function(a, b) { | |
return a === d ? b : null | |
}).join(); | |
if (!e || b.location.hash.slice(1) === e) return; | |
b.location.hash = e | |
} | |
}, this) | |
}, this._core.options = a.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers), a(b).on("hashchange.owl.navigation", a.proxy(function(a) { | |
var c = b.location.hash.substring(1), | |
e = this._core.$stage.children(), | |
f = this._hashes[c] && e.index(this._hashes[c]); | |
f !== d && f !== this._core.current() && this._core.to(this._core.relative(f), !1, !0) | |
}, this)) | |
}; | |
e.Defaults = { | |
URLhashListener: !1 | |
}, e.prototype.destroy = function() { | |
var c, d; | |
a(b).off("hashchange.owl.navigation"); | |
for (c in this._handlers) this._core.$element.off(c, this._handlers[c]); | |
for (d in Object.getOwnPropertyNames(this)) "function" != typeof this[d] && (this[d] = null) | |
}, a.fn.owlCarousel.Constructor.Plugins.Hash = e | |
}(window.Zepto || window.jQuery, window, document), | |
function(a, b, c, d) { | |
function e(b, c) { | |
var e = !1, | |
f = b.charAt(0).toUpperCase() + b.slice(1); | |
return a.each((b + " " + h.join(f + " ") + f).split(" "), function(a, b) { | |
return g[b] !== d ? (e = c ? b : !0, !1) : void 0 | |
}), e | |
} | |
function f(a) { | |
return e(a, !0) | |
} | |
var g = a("<support>").get(0).style, | |
h = "Webkit Moz O ms".split(" "), | |
i = { | |
transition: { | |
end: { | |
WebkitTransition: "webkitTransitionEnd", | |
MozTransition: "transitionend", | |
OTransition: "oTransitionEnd", | |
transition: "transitionend" | |
} | |
}, | |
animation: { | |
end: { | |
WebkitAnimation: "webkitAnimationEnd", | |
MozAnimation: "animationend", | |
OAnimation: "oAnimationEnd", | |
animation: "animationend" | |
} | |
} | |
}, | |
j = { | |
csstransforms: function() { | |
return !!e("transform") | |
}, | |
csstransforms3d: function() { | |
return !!e("perspective") | |
}, | |
csstransitions: function() { | |
return !!e("transition") | |
}, | |
cssanimations: function() { | |
return !!e("animation") | |
} | |
}; | |
j.csstransitions() && (a.support.transition = new String(f("transition")), a.support.transition.end = i.transition.end[a.support.transition]), j.cssanimations() && (a.support.animation = new String(f("animation")), a.support.animation.end = i.animation.end[a.support.animation]), j.csstransforms() && (a.support.transform = new String(f("transform")), a.support.transform3d = j.csstransforms3d()) | |
}(window.Zepto || window.jQuery, window, document), | |
function(a) { | |
if ("object" == typeof exports && "undefined" != typeof module) module.exports = a(); | |
else if ("function" == typeof define && define.amd) define([], a); | |
else { | |
var b; | |
b = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, b.io = a() | |
} | |
}(function() { | |
var a; | |
return function b(a, c, d) { | |
function e(g, h) { | |
if (!c[g]) { | |
if (!a[g]) { | |
var i = "function" == typeof require && require; | |
if (!h && i) return i(g, !0); | |
if (f) return f(g, !0); | |
var j = new Error("Cannot find module '" + g + "'"); | |
throw j.code = "MODULE_NOT_FOUND", j | |
} | |
var k = c[g] = { | |
exports: {} | |
}; | |
a[g][0].call(k.exports, function(b) { | |
var c = a[g][1][b]; | |
return e(c ? c : b) | |
}, k, k.exports, b, a, c, d) | |
} | |
return c[g].exports | |
} | |
for (var f = "function" == typeof require && require, g = 0; g < d.length; g++) e(d[g]); | |
return e | |
}({ | |
1: [function(a, b, c) { | |
b.exports = a("./lib/") | |
}, { | |
"./lib/": 2 | |
}], | |
2: [function(a, b, c) { | |
b.exports = a("./socket"), b.exports.parser = a("engine.io-parser") | |
}, { | |
"./socket": 3, | |
"engine.io-parser": 19 | |
}], | |
3: [function(a, b, c) { | |
(function(c) { | |
function d(a, b) { | |
if (!(this instanceof d)) return new d(a, b); | |
b = b || {}, a && "object" == typeof a && (b = a, a = null), a ? (a = k(a), b.hostname = a.host, b.secure = "https" == a.protocol || "wss" == a.protocol, b.port = a.port, a.query && (b.query = a.query)) : b.host && (b.hostname = k(b.host).host), this.secure = null != b.secure ? b.secure : c.location && "https:" == location.protocol, b.hostname && !b.port && (b.port = this.secure ? "443" : "80"), this.agent = b.agent || !1, this.hostname = b.hostname || (c.location ? location.hostname : "localhost"), this.port = b.port || (c.location && location.port ? location.port : this.secure ? 443 : 80), this.query = b.query || {}, "string" == typeof this.query && (this.query = m.decode(this.query)), this.upgrade = !1 !== b.upgrade, this.path = (b.path || "/engine.io").replace(/\/$/, "") + "/", this.forceJSONP = !!b.forceJSONP, this.jsonp = !1 !== b.jsonp, this.forceBase64 = !!b.forceBase64, this.enablesXDR = !!b.enablesXDR, this.timestampParam = b.timestampParam || "t", this.timestampRequests = b.timestampRequests, this.transports = b.transports || ["polling", "websocket"], this.readyState = "", this.writeBuffer = [], this.policyPort = b.policyPort || 843, this.rememberUpgrade = b.rememberUpgrade || !1, this.binaryType = null, this.onlyBinaryUpgrades = b.onlyBinaryUpgrades, this.perMessageDeflate = !1 !== b.perMessageDeflate ? b.perMessageDeflate || {} : !1, !0 === this.perMessageDeflate && (this.perMessageDeflate = {}), this.perMessageDeflate && null == this.perMessageDeflate.threshold && (this.perMessageDeflate.threshold = 1024), this.pfx = b.pfx || null, this.key = b.key || null, this.passphrase = b.passphrase || null, this.cert = b.cert || null, this.ca = b.ca || null, this.ciphers = b.ciphers || null, this.rejectUnauthorized = void 0 === b.rejectUnauthorized ? null : b.rejectUnauthorized; | |
var e = "object" == typeof c && c; | |
e.global === e && b.extraHeaders && Object.keys(b.extraHeaders).length > 0 && (this.extraHeaders = b.extraHeaders), this.open() | |
} | |
function e(a) { | |
var b = {}; | |
for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c]); | |
return b | |
} | |
var f = a("./transports"), | |
g = a("component-emitter"), | |
h = a("debug")("engine.io-client:socket"), | |
i = a("indexof"), | |
j = a("engine.io-parser"), | |
k = a("parseuri"), | |
l = a("parsejson"), | |
m = a("parseqs"); | |
b.exports = d, d.priorWebsocketSuccess = !1, g(d.prototype), d.protocol = j.protocol, d.Socket = d, d.Transport = a("./transport"), d.transports = a("./transports"), d.parser = a("engine.io-parser"), d.prototype.createTransport = function(a) { | |
h('creating transport "%s"', a); | |
var b = e(this.query); | |
b.EIO = j.protocol, b.transport = a, this.id && (b.sid = this.id); | |
var c = new f[a]({ | |
agent: this.agent, | |
hostname: this.hostname, | |
port: this.port, | |
secure: this.secure, | |
path: this.path, | |
query: b, | |
forceJSONP: this.forceJSONP, | |
jsonp: this.jsonp, | |
forceBase64: this.forceBase64, | |
enablesXDR: this.enablesXDR, | |
timestampRequests: this.timestampRequests, | |
timestampParam: this.timestampParam, | |
policyPort: this.policyPort, | |
socket: this, | |
pfx: this.pfx, | |
key: this.key, | |
passphrase: this.passphrase, | |
cert: this.cert, | |
ca: this.ca, | |
ciphers: this.ciphers, | |
rejectUnauthorized: this.rejectUnauthorized, | |
perMessageDeflate: this.perMessageDeflate, | |
extraHeaders: this.extraHeaders | |
}); | |
return c | |
}, d.prototype.open = function() { | |
var a; | |
if (this.rememberUpgrade && d.priorWebsocketSuccess && -1 != this.transports.indexOf("websocket")) a = "websocket"; | |
else { | |
if (0 === this.transports.length) { | |
var b = this; | |
return void setTimeout(function() { | |
b.emit("error", "No transports available") | |
}, 0) | |
} | |
a = this.transports[0] | |
} | |
this.readyState = "opening"; | |
try { | |
a = this.createTransport(a) | |
} catch (c) { | |
return this.transports.shift(), void this.open() | |
} | |
a.open(), this.setTransport(a) | |
}, d.prototype.setTransport = function(a) { | |
h("setting transport %s", a.name); | |
var b = this; | |
this.transport && (h("clearing existing transport %s", this.transport.name), this.transport.removeAllListeners()), this.transport = a, a.on("drain", function() { | |
b.onDrain() | |
}).on("packet", function(a) { | |
b.onPacket(a) | |
}).on("error", function(a) { | |
b.onError(a) | |
}).on("close", function() { | |
b.onClose("transport close") | |
}) | |
}, d.prototype.probe = function(a) { | |
function b() { | |
if (m.onlyBinaryUpgrades) { | |
var b = !this.supportsBinary && m.transport.supportsBinary; | |
l = l || b | |
} | |
l || (h('probe transport "%s" opened', a), k.send([{ | |
type: "ping", | |
data: "probe" | |
}]), k.once("packet", function(b) { | |
if (!l) | |
if ("pong" == b.type && "probe" == b.data) { | |
if (h('probe transport "%s" pong', a), m.upgrading = !0, m.emit("upgrading", k), !k) return; | |
d.priorWebsocketSuccess = "websocket" == k.name, h('pausing current transport "%s"', m.transport.name), m.transport.pause(function() { | |
l || "closed" != m.readyState && (h("changing transport and sending upgrade packet"), j(), m.setTransport(k), k.send([{ | |
type: "upgrade" | |
}]), m.emit("upgrade", k), k = null, m.upgrading = !1, m.flush()) | |
}) | |
} else { | |
h('probe transport "%s" failed', a); | |
var c = new Error("probe error"); | |
c.transport = k.name, m.emit("upgradeError", c) | |
} | |
})) | |
} | |
function c() { | |
l || (l = !0, j(), k.close(), k = null) | |
} | |
function e(b) { | |
var d = new Error("probe error: " + b); | |
d.transport = k.name, c(), h('probe transport "%s" failed because of error: %s', a, b), m.emit("upgradeError", d) | |
} | |
function f() { | |
e("transport closed") | |
} | |
function g() { | |
e("socket closed") | |
} | |
function i(a) { | |
k && a.name != k.name && (h('"%s" works - aborting "%s"', a.name, k.name), c()) | |
} | |
function j() { | |
k.removeListener("open", b), k.removeListener("error", e), k.removeListener("close", f), m.removeListener("close", g), m.removeListener("upgrading", i) | |
} | |
h('probing transport "%s"', a); | |
var k = this.createTransport(a, { | |
probe: 1 | |
}), | |
l = !1, | |
m = this; | |
d.priorWebsocketSuccess = !1, k.once("open", b), k.once("error", e), k.once("close", f), this.once("close", g), this.once("upgrading", i), k.open() | |
}, d.prototype.onOpen = function() { | |
if (h("socket open"), this.readyState = "open", d.priorWebsocketSuccess = "websocket" == this.transport.name, this.emit("open"), this.flush(), "open" == this.readyState && this.upgrade && this.transport.pause) { | |
h("starting upgrade probes"); | |
for (var a = 0, b = this.upgrades.length; b > a; a++) this.probe(this.upgrades[a]) | |
} | |
}, d.prototype.onPacket = function(a) { | |
if ("opening" == this.readyState || "open" == this.readyState) switch (h('socket receive: type "%s", data "%s"', a.type, a.data), this.emit("packet", a), this.emit("heartbeat"), a.type) { | |
case "open": | |
this.onHandshake(l(a.data)); | |
break; | |
case "pong": | |
this.setPing(), this.emit("pong"); | |
break; | |
case "error": | |
var b = new Error("server error"); | |
b.code = a.data, this.onError(b); | |
break; | |
case "message": | |
this.emit("data", a.data), this.emit("message", a.data) | |
} else h('packet received with socket readyState "%s"', this.readyState) | |
}, d.prototype.onHandshake = function(a) { | |
this.emit("handshake", a), this.id = a.sid, this.transport.query.sid = a.sid, this.upgrades = this.filterUpgrades(a.upgrades), this.pingInterval = a.pingInterval, this.pingTimeout = a.pingTimeout, this.onOpen(), "closed" != this.readyState && (this.setPing(), this.removeListener("heartbeat", this.onHeartbeat), this.on("heartbeat", this.onHeartbeat)) | |
}, d.prototype.onHeartbeat = function(a) { | |
clearTimeout(this.pingTimeoutTimer); | |
var b = this; | |
b.pingTimeoutTimer = setTimeout(function() { | |
"closed" != b.readyState && b.onClose("ping timeout") | |
}, a || b.pingInterval + b.pingTimeout) | |
}, d.prototype.setPing = function() { | |
var a = this; | |
clearTimeout(a.pingIntervalTimer), a.pingIntervalTimer = setTimeout(function() { | |
h("writing ping packet - expecting pong within %sms", a.pingTimeout), a.ping(), a.onHeartbeat(a.pingTimeout) | |
}, a.pingInterval) | |
}, d.prototype.ping = function() { | |
var a = this; | |
this.sendPacket("ping", function() { | |
a.emit("ping") | |
}) | |
}, d.prototype.onDrain = function() { | |
this.writeBuffer.splice(0, this.prevBufferLen), this.prevBufferLen = 0, 0 === this.writeBuffer.length ? this.emit("drain") : this.flush() | |
}, d.prototype.flush = function() { | |
"closed" != this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length && (h("flushing %d packets in socket", this.writeBuffer.length), this.transport.send(this.writeBuffer), this.prevBufferLen = this.writeBuffer.length, this.emit("flush")) | |
}, d.prototype.write = d.prototype.send = function(a, b, c) { | |
return this.sendPacket("message", a, b, c), this | |
}, d.prototype.sendPacket = function(a, b, c, d) { | |
if ("function" == typeof b && (d = b, b = void 0), "function" == typeof c && (d = c, c = null), "closing" != this.readyState && "closed" != this.readyState) { | |
c = c || {}, c.compress = !1 !== c.compress; | |
var e = { | |
type: a, | |
data: b, | |
options: c | |
}; | |
this.emit("packetCreate", e), this.writeBuffer.push(e), d && this.once("flush", d), this.flush() | |
} | |
}, d.prototype.close = function() { | |
function a() { | |
d.onClose("forced close"), h("socket closing - telling transport to close"), d.transport.close() | |
} | |
function b() { | |
d.removeListener("upgrade", b), d.removeListener("upgradeError", b), a() | |
} | |
function c() { | |
d.once("upgrade", b), d.once("upgradeError", b) | |
} | |
if ("opening" == this.readyState || "open" == this.readyState) { | |
this.readyState = "closing"; | |
var d = this; | |
this.writeBuffer.length ? this.once("drain", function() { | |
this.upgrading ? c() : a() | |
}) : this.upgrading ? c() : a() | |
} | |
return this | |
}, d.prototype.onError = function(a) { | |
h("socket error %j", a), d.priorWebsocketSuccess = !1, this.emit("error", a), this.onClose("transport error", a) | |
}, d.prototype.onClose = function(a, b) { | |
if ("opening" == this.readyState || "open" == this.readyState || "closing" == this.readyState) { | |
h('socket close with reason: "%s"', a); | |
var c = this; | |
clearTimeout(this.pingIntervalTimer), clearTimeout(this.pingTimeoutTimer), this.transport.removeAllListeners("close"), this.transport.close(), this.transport.removeAllListeners(), this.readyState = "closed", this.id = null, this.emit("close", a, b), c.writeBuffer = [], c.prevBufferLen = 0 | |
} | |
}, d.prototype.filterUpgrades = function(a) { | |
for (var b = [], c = 0, d = a.length; d > c; c++) ~i(this.transports, a[c]) && b.push(a[c]); | |
return b | |
} | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, { | |
"./transport": 4, | |
"./transports": 5, | |
"component-emitter": 15, | |
debug: 17, | |
"engine.io-parser": 19, | |
indexof: 23, | |
parsejson: 26, | |
parseqs: 27, | |
parseuri: 28 | |
}], | |
4: [function(a, b, c) { | |
function d(a) { | |
this.path = a.path, this.hostname = a.hostname, this.port = a.port, this.secure = a.secure, this.query = a.query, this.timestampParam = a.timestampParam, this.timestampRequests = a.timestampRequests, this.readyState = "", this.agent = a.agent || !1, this.socket = a.socket, this.enablesXDR = a.enablesXDR, this.pfx = a.pfx, this.key = a.key, this.passphrase = a.passphrase, this.cert = a.cert, this.ca = a.ca, this.ciphers = a.ciphers, this.rejectUnauthorized = a.rejectUnauthorized, this.extraHeaders = a.extraHeaders | |
} | |
var e = a("engine.io-parser"), | |
f = a("component-emitter"); | |
b.exports = d, f(d.prototype), d.prototype.onError = function(a, b) { | |
var c = new Error(a); | |
return c.type = "TransportError", c.description = b, this.emit("error", c), this | |
}, d.prototype.open = function() { | |
return ("closed" == this.readyState || "" == this.readyState) && (this.readyState = "opening", this.doOpen()), this | |
}, d.prototype.close = function() { | |
return ("opening" == this.readyState || "open" == this.readyState) && (this.doClose(), this.onClose()), this | |
}, d.prototype.send = function(a) { | |
if ("open" != this.readyState) throw new Error("Transport not open"); | |
this.write(a) | |
}, d.prototype.onOpen = function() { | |
this.readyState = "open", this.writable = !0, this.emit("open") | |
}, d.prototype.onData = function(a) { | |
var b = e.decodePacket(a, this.socket.binaryType); | |
this.onPacket(b) | |
}, d.prototype.onPacket = function(a) { | |
this.emit("packet", a) | |
}, d.prototype.onClose = function() { | |
this.readyState = "closed", this.emit("close") | |
} | |
}, { | |
"component-emitter": 15, | |
"engine.io-parser": 19 | |
}], | |
5: [function(a, b, c) { | |
(function(b) { | |
function d(a) { | |
var c, d = !1, | |
h = !1, | |
i = !1 !== a.jsonp; | |
if (b.location) { | |
var j = "https:" == location.protocol, | |
k = location.port; | |
k || (k = j ? 443 : 80), d = a.hostname != location.hostname || k != a.port, h = a.secure != j | |
} | |
if (a.xdomain = d, a.xscheme = h, c = new e(a), "open" in c && !a.forceJSONP) return new f(a); | |
if (!i) throw new Error("JSONP disabled"); | |
return new g(a) | |
} | |
var e = a("xmlhttprequest-ssl"), | |
f = a("./polling-xhr"), | |
g = a("./polling-jsonp"), | |
h = a("./websocket"); | |
c.polling = d, c.websocket = h | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, { | |
"./polling-jsonp": 6, | |
"./polling-xhr": 7, | |
"./websocket": 9, | |
"xmlhttprequest-ssl": 10 | |
}], | |
6: [function(a, b, c) { | |
(function(c) { | |
function d() {} | |
function e(a) { | |
f.call(this, a), this.query = this.query || {}, h || (c.___eio || (c.___eio = []), h = c.___eio), this.index = h.length; | |
var b = this; | |
h.push(function(a) { | |
b.onData(a) | |
}), this.query.j = this.index, c.document && c.addEventListener && c.addEventListener("beforeunload", function() { | |
b.script && (b.script.onerror = d) | |
}, !1) | |
} | |
var f = a("./polling"), | |
g = a("component-inherit"); | |
b.exports = e; | |
var h, i = /\n/g, | |
j = /\\n/g; | |
g(e, f), e.prototype.supportsBinary = !1, e.prototype.doClose = function() { | |
this.script && (this.script.parentNode.removeChild(this.script), this.script = null), this.form && (this.form.parentNode.removeChild(this.form), this.form = null, this.iframe = null), f.prototype.doClose.call(this) | |
}, e.prototype.doPoll = function() { | |
var a = this, | |
b = document.createElement("script"); | |
this.script && (this.script.parentNode.removeChild(this.script), this.script = null), b.async = !0, b.src = this.uri(), b.onerror = function(b) { | |
a.onError("jsonp poll error", b) | |
}; | |
var c = document.getElementsByTagName("script")[0]; | |
c ? c.parentNode.insertBefore(b, c) : (document.head || document.body).appendChild(b), this.script = b; | |
var d = "undefined" != typeof navigator && /gecko/i.test(navigator.userAgent); | |
d && setTimeout(function() { | |
var a = document.createElement("iframe"); | |
document.body.appendChild(a), document.body.removeChild(a) | |
}, 100) | |
}, e.prototype.doWrite = function(a, b) { | |
function c() { | |
d(), b() | |
} | |
function d() { | |
if (e.iframe) try { | |
e.form.removeChild(e.iframe) | |
} catch (a) { | |
e.onError("jsonp polling iframe removal error", a) | |
} | |
try { | |
var b = '<iframe src="javascript:0" name="' + e.iframeId + '">'; | |
f = document.createElement(b) | |
} catch (a) { | |
f = document.createElement("iframe"), f.name = e.iframeId, f.src = "javascript:0" | |
} | |
f.id = e.iframeId, e.form.appendChild(f), e.iframe = f | |
} | |
var e = this; | |
if (!this.form) { | |
var f, g = document.createElement("form"), | |
h = document.createElement("textarea"), | |
k = this.iframeId = "eio_iframe_" + this.index; | |
g.className = "socketio", g.style.position = "absolute", g.style.top = "-1000px", g.style.left = "-1000px", g.target = k, g.method = "POST", g.setAttribute("accept-charset", "utf-8"), h.name = "d", g.appendChild(h), document.body.appendChild(g), this.form = g, this.area = h | |
} | |
this.form.action = this.uri(), d(), a = a.replace(j, "\\\n"), this.area.value = a.replace(i, "\\n"); | |
try { | |
this.form.submit() | |
} catch (l) {} | |
this.iframe.attachEvent ? this.iframe.onreadystatechange = function() { | |
"complete" == e.iframe.readyState && c() | |
} : this.iframe.onload = c | |
} | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, { | |
"./polling": 8, | |
"component-inherit": 16 | |
}], | |
7: [function(a, b, c) { | |
(function(c) { | |
function d() {} | |
function e(a) { | |
if (i.call(this, a), c.location) { | |
var b = "https:" == location.protocol, | |
d = location.port; | |
d || (d = b ? 443 : 80), this.xd = a.hostname != c.location.hostname || d != a.port, this.xs = a.secure != b | |
} else this.extraHeaders = a.extraHeaders | |
} | |
function f(a) { | |
this.method = a.method || "GET", this.uri = a.uri, this.xd = !!a.xd, this.xs = !!a.xs, this.async = !1 !== a.async, this.data = void 0 != a.data ? a.data : null, this.agent = a.agent, this.isBinary = a.isBinary, this.supportsBinary = a.supportsBinary, this.enablesXDR = a.enablesXDR, this.pfx = a.pfx, this.key = a.key, this.passphrase = a.passphrase, this.cert = a.cert, this.ca = a.ca, this.ciphers = a.ciphers, this.rejectUnauthorized = a.rejectUnauthorized, this.extraHeaders = a.extraHeaders, this.create() | |
} | |
function g() { | |
for (var a in f.requests) f.requests.hasOwnProperty(a) && f.requests[a].abort() | |
} | |
var h = a("xmlhttprequest-ssl"), | |
i = a("./polling"), | |
j = a("component-emitter"), | |
k = a("component-inherit"), | |
l = a("debug")("engine.io-client:polling-xhr"); | |
b.exports = e, b.exports.Request = f, k(e, i), e.prototype.supportsBinary = !0, e.prototype.request = function(a) { | |
return a = a || {}, a.uri = this.uri(), a.xd = this.xd, a.xs = this.xs, a.agent = this.agent || !1, a.supportsBinary = this.supportsBinary, a.enablesXDR = this.enablesXDR, a.pfx = this.pfx, a.key = this.key, a.passphrase = this.passphrase, a.cert = this.cert, a.ca = this.ca, a.ciphers = this.ciphers, a.rejectUnauthorized = this.rejectUnauthorized, a.extraHeaders = this.extraHeaders, new f(a) | |
}, e.prototype.doWrite = function(a, b) { | |
var c = "string" != typeof a && void 0 !== a, | |
d = this.request({ | |
method: "POST", | |
data: a, | |
isBinary: c | |
}), | |
e = this; | |
d.on("success", b), d.on("error", function(a) { | |
e.onError("xhr post error", a) | |
}), this.sendXhr = d | |
}, e.prototype.doPoll = function() { | |
l("xhr poll"); | |
var a = this.request(), | |
b = this; | |
a.on("data", function(a) { | |
b.onData(a) | |
}), a.on("error", function(a) { | |
b.onError("xhr poll error", a) | |
}), this.pollXhr = a | |
}, j(f.prototype), f.prototype.create = function() { | |
var a = { | |
agent: this.agent, | |
xdomain: this.xd, | |
xscheme: this.xs, | |
enablesXDR: this.enablesXDR | |
}; | |
a.pfx = this.pfx, a.key = this.key, a.passphrase = this.passphrase, a.cert = this.cert, a.ca = this.ca, a.ciphers = this.ciphers, a.rejectUnauthorized = this.rejectUnauthorized; | |
var b = this.xhr = new h(a), | |
d = this; | |
try { | |
l("xhr open %s: %s", this.method, this.uri), b.open(this.method, this.uri, this.async); | |
try { | |
if (this.extraHeaders) { | |
b.setDisableHeaderCheck(!0); | |
for (var e in this.extraHeaders) this.extraHeaders.hasOwnProperty(e) && b.setRequestHeader(e, this.extraHeaders[e]) | |
} | |
} catch (g) {} | |
if (this.supportsBinary && (b.responseType = "arraybuffer"), "POST" == this.method) try { | |
this.isBinary ? b.setRequestHeader("Content-type", "application/octet-stream") : b.setRequestHeader("Content-type", "text/plain;charset=UTF-8") | |
} catch (g) {} | |
"withCredentials" in b && (b.withCredentials = !0), this.hasXDR() ? (b.onload = function() { | |
d.onLoad() | |
}, b.onerror = function() { | |
d.onError(b.responseText) | |
}) : b.onreadystatechange = function() { | |
4 == b.readyState && (200 == b.status || 1223 == b.status ? d.onLoad() : setTimeout(function() { | |
d.onError(b.status) | |
}, 0)) | |
}, l("xhr data %s", this.data), b.send(this.data) | |
} catch (g) { | |
return void setTimeout(function() { | |
d.onError(g) | |
}, 0) | |
} | |
c.document && (this.index = f.requestsCount++, f.requests[this.index] = this) | |
}, f.prototype.onSuccess = function() { | |
this.emit("success"), this.cleanup() | |
}, f.prototype.onData = function(a) { | |
this.emit("data", a), this.onSuccess() | |
}, f.prototype.onError = function(a) { | |
this.emit("error", a), this.cleanup(!0) | |
}, f.prototype.cleanup = function(a) { | |
if ("undefined" != typeof this.xhr && null !== this.xhr) { | |
if (this.hasXDR() ? this.xhr.onload = this.xhr.onerror = d : this.xhr.onreadystatechange = d, a) try { | |
this.xhr.abort() | |
} catch (b) {} | |
c.document && delete f.requests[this.index], this.xhr = null | |
} | |
}, f.prototype.onLoad = function() { | |
var a; | |
try { | |
var b; | |
try { | |
b = this.xhr.getResponseHeader("Content-Type").split(";")[0] | |
} catch (c) {} | |
if ("application/octet-stream" === b) a = this.xhr.response; | |
else if (this.supportsBinary) try { | |
a = String.fromCharCode.apply(null, new Uint8Array(this.xhr.response)) | |
} catch (c) { | |
for (var d = new Uint8Array(this.xhr.response), e = [], f = 0, g = d.length; g > f; f++) e.push(d[f]); | |
a = String.fromCharCode.apply(null, e) | |
} else a = this.xhr.responseText | |
} catch (c) { | |
this.onError(c) | |
} | |
null != a && this.onData(a) | |
}, f.prototype.hasXDR = function() { | |
return "undefined" != typeof c.XDomainRequest && !this.xs && this.enablesXDR | |
}, f.prototype.abort = function() { | |
this.cleanup() | |
}, c.document && (f.requestsCount = 0, f.requests = {}, c.attachEvent ? c.attachEvent("onunload", g) : c.addEventListener && c.addEventListener("beforeunload", g, !1)) | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, { | |
"./polling": 8, | |
"component-emitter": 15, | |
"component-inherit": 16, | |
debug: 17, | |
"xmlhttprequest-ssl": 10 | |
}], | |
8: [function(a, b, c) { | |
function d(a) { | |
var b = a && a.forceBase64; | |
(!k || b) && (this.supportsBinary = !1), e.call(this, a) | |
} | |
var e = a("../transport"), | |
f = a("parseqs"), | |
g = a("engine.io-parser"), | |
h = a("component-inherit"), | |
i = a("yeast"), | |
j = a("debug")("engine.io-client:polling"); | |
b.exports = d; | |
var k = function() { | |
var b = a("xmlhttprequest-ssl"), | |
c = new b({ | |
xdomain: !1 | |
}); | |
return null != c.responseType | |
}(); | |
h(d, e), d.prototype.name = "polling", d.prototype.doOpen = function() { | |
this.poll() | |
}, d.prototype.pause = function(a) { | |
function b() { | |
j("paused"), c.readyState = "paused", a() | |
} | |
var c = this; | |
if (this.readyState = "pausing", this.polling || !this.writable) { | |
var d = 0; | |
this.polling && (j("we are currently polling - waiting to pause"), d++, this.once("pollComplete", function() { | |
j("pre-pause polling complete"), | |
--d || b() | |
})), this.writable || (j("we are currently writing - waiting to pause"), d++, this.once("drain", function() { | |
j("pre-pause writing complete"), --d || b() | |
})) | |
} else b() | |
}, d.prototype.poll = function() { | |
j("polling"), this.polling = !0, this.doPoll(), this.emit("poll") | |
}, d.prototype.onData = function(a) { | |
var b = this; | |
j("polling got data %s", a); | |
var c = function(a, c, d) { | |
return "opening" == b.readyState && b.onOpen(), "close" == a.type ? (b.onClose(), !1) : void b.onPacket(a) | |
}; | |
g.decodePayload(a, this.socket.binaryType, c), "closed" != this.readyState && (this.polling = !1, this.emit("pollComplete"), "open" == this.readyState ? this.poll() : j('ignoring poll - transport state "%s"', this.readyState)) | |
}, d.prototype.doClose = function() { | |
function a() { | |
j("writing close packet"), b.write([{ | |
type: "close" | |
}]) | |
} | |
var b = this; | |
"open" == this.readyState ? (j("transport open - closing"), a()) : (j("transport not open - deferring close"), this.once("open", a)) | |
}, d.prototype.write = function(a) { | |
var b = this; | |
this.writable = !1; | |
var c = function() { | |
b.writable = !0, b.emit("drain") | |
}, | |
b = this; | |
g.encodePayload(a, this.supportsBinary, function(a) { | |
b.doWrite(a, c) | |
}) | |
}, d.prototype.uri = function() { | |
var a = this.query || {}, | |
b = this.secure ? "https" : "http", | |
c = ""; | |
!1 !== this.timestampRequests && (a[this.timestampParam] = i()), this.supportsBinary || a.sid || (a.b64 = 1), a = f.encode(a), this.port && ("https" == b && 443 != this.port || "http" == b && 80 != this.port) && (c = ":" + this.port), a.length && (a = "?" + a); | |
var d = -1 !== this.hostname.indexOf(":"); | |
return b + "://" + (d ? "[" + this.hostname + "]" : this.hostname) + c + this.path + a | |
} | |
}, { | |
"../transport": 4, | |
"component-inherit": 16, | |
debug: 17, | |
"engine.io-parser": 19, | |
parseqs: 27, | |
"xmlhttprequest-ssl": 10, | |
yeast: 30 | |
}], | |
9: [function(a, b, c) { | |
(function(c) { | |
function d(a) { | |
var b = a && a.forceBase64; | |
b && (this.supportsBinary = !1), this.perMessageDeflate = a.perMessageDeflate, e.call(this, a) | |
} | |
var e = a("../transport"), | |
f = a("engine.io-parser"), | |
g = a("parseqs"), | |
h = a("component-inherit"), | |
i = a("yeast"), | |
j = a("debug")("engine.io-client:websocket"), | |
k = c.WebSocket || c.MozWebSocket, | |
l = k; | |
if (!l && "undefined" == typeof window) try { | |
l = a("ws") | |
} catch (m) {} | |
b.exports = d, h(d, e), d.prototype.name = "websocket", d.prototype.supportsBinary = !0, d.prototype.doOpen = function() { | |
if (this.check()) { | |
var a = this.uri(), | |
b = void 0, | |
c = { | |
agent: this.agent, | |
perMessageDeflate: this.perMessageDeflate | |
}; | |
c.pfx = this.pfx, c.key = this.key, c.passphrase = this.passphrase, c.cert = this.cert, c.ca = this.ca, c.ciphers = this.ciphers, c.rejectUnauthorized = this.rejectUnauthorized, this.extraHeaders && (c.headers = this.extraHeaders), this.ws = k ? new l(a) : new l(a, b, c), void 0 === this.ws.binaryType && (this.supportsBinary = !1), this.ws.supports && this.ws.supports.binary ? (this.supportsBinary = !0, this.ws.binaryType = "buffer") : this.ws.binaryType = "arraybuffer", this.addEventListeners() | |
} | |
}, d.prototype.addEventListeners = function() { | |
var a = this; | |
this.ws.onopen = function() { | |
a.onOpen() | |
}, this.ws.onclose = function() { | |
a.onClose() | |
}, this.ws.onmessage = function(b) { | |
a.onData(b.data) | |
}, this.ws.onerror = function(b) { | |
a.onError("websocket error", b) | |
} | |
}, "undefined" != typeof navigator && /iPad|iPhone|iPod/i.test(navigator.userAgent) && (d.prototype.onData = function(a) { | |
var b = this; | |
setTimeout(function() { | |
e.prototype.onData.call(b, a) | |
}, 0) | |
}), d.prototype.write = function(a) { | |
function b() { | |
d.emit("flush"), setTimeout(function() { | |
d.writable = !0, d.emit("drain") | |
}, 0) | |
} | |
var d = this; | |
this.writable = !1; | |
for (var e = a.length, g = 0, h = e; h > g; g++) ! function(a) { | |
f.encodePacket(a, d.supportsBinary, function(f) { | |
if (!k) { | |
var g = {}; | |
if (a.options && (g.compress = a.options.compress), d.perMessageDeflate) { | |
var h = "string" == typeof f ? c.Buffer.byteLength(f) : f.length; | |
h < d.perMessageDeflate.threshold && (g.compress = !1) | |
} | |
} | |
try { | |
k ? d.ws.send(f) : d.ws.send(f, g) | |
} catch (i) { | |
j("websocket closed before onclose event") | |
}--e || b() | |
}) | |
}(a[g]) | |
}, d.prototype.onClose = function() { | |
e.prototype.onClose.call(this) | |
}, d.prototype.doClose = function() { | |
"undefined" != typeof this.ws && this.ws.close() | |
}, d.prototype.uri = function() { | |
var a = this.query || {}, | |
b = this.secure ? "wss" : "ws", | |
c = ""; | |
this.port && ("wss" == b && 443 != this.port || "ws" == b && 80 != this.port) && (c = ":" + this.port), this.timestampRequests && (a[this.timestampParam] = i()), this.supportsBinary || (a.b64 = 1), a = g.encode(a), a.length && (a = "?" + a); | |
var d = -1 !== this.hostname.indexOf(":"); | |
return b + "://" + (d ? "[" + this.hostname + "]" : this.hostname) + c + this.path + a | |
}, d.prototype.check = function() { | |
return !(!l || "__initialize" in l && this.name === d.prototype.name) | |
} | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, { | |
"../transport": 4, | |
"component-inherit": 16, | |
debug: 17, | |
"engine.io-parser": 19, | |
parseqs: 27, | |
ws: void 0, | |
yeast: 30 | |
}], | |
10: [function(a, b, c) { | |
var d = a("has-cors"); | |
b.exports = function(a) { | |
var b = a.xdomain, | |
c = a.xscheme, | |
e = a.enablesXDR; | |
try { | |
if ("undefined" != typeof XMLHttpRequest && (!b || d)) return new XMLHttpRequest | |
} catch (f) {} | |
try { | |
if ("undefined" != typeof XDomainRequest && !c && e) return new XDomainRequest | |
} catch (f) {} | |
if (!b) try { | |
return new ActiveXObject("Microsoft.XMLHTTP") | |
} catch (f) {} | |
} | |
}, { | |
"has-cors": 22 | |
}], | |
11: [function(a, b, c) { | |
function d(a, b, c) { | |
function d(a, e) { | |
if (d.count <= 0) throw new Error("after called too many times"); | |
--d.count, a ? (f = !0, b(a), b = c) : 0 !== d.count || f || b(null, e) | |
} | |
var f = !1; | |
return c = c || e, d.count = a, 0 === a ? b() : d | |
} | |
function e() {} | |
b.exports = d | |
}, {}], | |
12: [function(a, b, c) { | |
b.exports = function(a, b, c) { | |
var d = a.byteLength; | |
if (b = b || 0, c = c || d, a.slice) return a.slice(b, c); | |
if (0 > b && (b += d), 0 > c && (c += d), c > d && (c = d), b >= d || b >= c || 0 === d) return new ArrayBuffer(0); | |
for (var e = new Uint8Array(a), f = new Uint8Array(c - b), g = b, h = 0; c > g; g++, h++) f[h] = e[g]; | |
return f.buffer | |
} | |
}, {}], | |
13: [function(a, b, c) { | |
! function(a) { | |
"use strict"; | |
c.encode = function(b) { | |
var c, d = new Uint8Array(b), | |
e = d.length, | |
f = ""; | |
for (c = 0; e > c; c += 3) f += a[d[c] >> 2], f += a[(3 & d[c]) << 4 | d[c + 1] >> 4], f += a[(15 & d[c + 1]) << 2 | d[c + 2] >> 6], f += a[63 & d[c + 2]]; | |
return e % 3 === 2 ? f = f.substring(0, f.length - 1) + "=" : e % 3 === 1 && (f = f.substring(0, f.length - 2) + "=="), f | |
}, c.decode = function(b) { | |
var c, d, e, f, g, h = .75 * b.length, | |
i = b.length, | |
j = 0; | |
"=" === b[b.length - 1] && (h--, "=" === b[b.length - 2] && h--); | |
var k = new ArrayBuffer(h), | |
l = new Uint8Array(k); | |
for (c = 0; i > c; c += 4) d = a.indexOf(b[c]), e = a.indexOf(b[c + 1]), f = a.indexOf(b[c + 2]), g = a.indexOf(b[c + 3]), l[j++] = d << 2 | e >> 4, l[j++] = (15 & e) << 4 | f >> 2, l[j++] = (3 & f) << 6 | 63 & g; | |
return k | |
} | |
}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/") | |
}, {}], | |
14: [function(a, b, c) { | |
(function(a) { | |
function c(a) { | |
for (var b = 0; b < a.length; b++) { | |
var c = a[b]; | |
if (c.buffer instanceof ArrayBuffer) { | |
var d = c.buffer; | |
if (c.byteLength !== d.byteLength) { | |
var e = new Uint8Array(c.byteLength); | |
e.set(new Uint8Array(d, c.byteOffset, c.byteLength)), d = e.buffer | |
} | |
a[b] = d | |
} | |
} | |
} | |
function d(a, b) { | |
b = b || {}; | |
var d = new f; | |
c(a); | |
for (var e = 0; e < a.length; e++) d.append(a[e]); | |
return b.type ? d.getBlob(b.type) : d.getBlob() | |
} | |
function e(a, b) { | |
return c(a), new Blob(a, b || {}) | |
} | |
var f = a.BlobBuilder || a.WebKitBlobBuilder || a.MSBlobBuilder || a.MozBlobBuilder, | |
g = function() { | |
try { | |
var a = new Blob(["hi"]); | |
return 2 === a.size | |
} catch (b) { | |
return !1 | |
} | |
}(), | |
h = g && function() { | |
try { | |
var a = new Blob([new Uint8Array([1, 2])]); | |
return 2 === a.size | |
} catch (b) { | |
return !1 | |
} | |
}(), | |
i = f && f.prototype.append && f.prototype.getBlob; | |
b.exports = function() { | |
return g ? h ? a.Blob : e : i ? d : void 0 | |
}() | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, {}], | |
15: [function(a, b, c) { | |
function d(a) { | |
return a ? e(a) : void 0 | |
} | |
function e(a) { | |
for (var b in d.prototype) a[b] = d.prototype[b]; | |
return a | |
} | |
b.exports = d, d.prototype.on = d.prototype.addEventListener = function(a, b) { | |
return this._callbacks = this._callbacks || {}, (this._callbacks[a] = this._callbacks[a] || []).push(b), this | |
}, d.prototype.once = function(a, b) { | |
function c() { | |
d.off(a, c), b.apply(this, arguments) | |
} | |
var d = this; | |
return this._callbacks = this._callbacks || {}, c.fn = b, this.on(a, c), this | |
}, d.prototype.off = d.prototype.removeListener = d.prototype.removeAllListeners = d.prototype.removeEventListener = function(a, b) { | |
if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this._callbacks = {}, this; | |
var c = this._callbacks[a]; | |
if (!c) return this; | |
if (1 == arguments.length) return delete this._callbacks[a], this; | |
for (var d, e = 0; e < c.length; e++) | |
if (d = c[e], d === b || d.fn === b) { | |
c.splice(e, 1); | |
break | |
} | |
return this | |
}, d.prototype.emit = function(a) { | |
this._callbacks = this._callbacks || {}; | |
var b = [].slice.call(arguments, 1), | |
c = this._callbacks[a]; | |
if (c) { | |
c = c.slice(0); | |
for (var d = 0, e = c.length; e > d; ++d) c[d].apply(this, b) | |
} | |
return this | |
}, d.prototype.listeners = function(a) { | |
return this._callbacks = this._callbacks || {}, this._callbacks[a] || [] | |
}, d.prototype.hasListeners = function(a) { | |
return !!this.listeners(a).length | |
} | |
}, {}], | |
16: [function(a, b, c) { | |
b.exports = function(a, b) { | |
var c = function() {}; | |
c.prototype = b.prototype, a.prototype = new c, a.prototype.constructor = a | |
} | |
}, {}], | |
17: [function(a, b, c) { | |
function d() { | |
return "WebkitAppearance" in document.documentElement.style || window.console && (console.firebug || console.exception && console.table) || navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 | |
} | |
function e() { | |
var a = arguments, | |
b = this.useColors; | |
if (a[0] = (b ? "%c" : "") + this.namespace + (b ? " %c" : " ") + a[0] + (b ? "%c " : " ") + "+" + c.humanize(this.diff), !b) return a; | |
var d = "color: " + this.color; | |
a = [a[0], d, "color: inherit"].concat(Array.prototype.slice.call(a, 1)); | |
var e = 0, | |
f = 0; | |
return a[0].replace(/%[a-z%]/g, function(a) { | |
"%%" !== a && (e++, "%c" === a && (f = e)) | |
}), a.splice(f, 0, d), a | |
} | |
function f() { | |
return "object" == typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments) | |
} | |
function g(a) { | |
try { | |
null == a ? c.storage.removeItem("debug") : c.storage.debug = a | |
} catch (b) {} | |
} | |
function h() { | |
var a; | |
try { | |
a = c.storage.debug | |
} catch (b) {} | |
return a | |
} | |
function i() { | |
try { | |
return window.localStorage | |
} catch (a) {} | |
} | |
c = b.exports = a("./debug"), c.log = f, c.formatArgs = e, c.save = g, c.load = h, c.useColors = d, c.storage = "undefined" != typeof chrome && "undefined" != typeof chrome.storage ? chrome.storage.local : i(), c.colors = ["lightseagreen", "forestgreen", "goldenrod", "dodgerblue", "darkorchid", "crimson"], c.formatters.j = function(a) { | |
return JSON.stringify(a) | |
}, c.enable(h()) | |
}, { | |
"./debug": 18 | |
}], | |
18: [function(a, b, c) { | |
function d() { | |
return c.colors[k++ % c.colors.length] | |
} | |
function e(a) { | |
function b() {} | |
function e() { | |
var a = e, | |
b = +new Date, | |
f = b - (j || b); | |
a.diff = f, a.prev = j, a.curr = b, j = b, null == a.useColors && (a.useColors = c.useColors()), null == a.color && a.useColors && (a.color = d()); | |
var g = Array.prototype.slice.call(arguments); | |
g[0] = c.coerce(g[0]), "string" != typeof g[0] && (g = ["%o"].concat(g)); | |
var h = 0; | |
g[0] = g[0].replace(/%([a-z%])/g, function(b, d) { | |
if ("%%" === b) return b; | |
h++; | |
var e = c.formatters[d]; | |
if ("function" == typeof e) { | |
var f = g[h]; | |
b = e.call(a, f), g.splice(h, 1), h-- | |
} | |
return b | |
}), "function" == typeof c.formatArgs && (g = c.formatArgs.apply(a, g)); | |
var i = e.log || c.log || void 0; | |
i.apply(a, g) | |
} | |
b.enabled = !1, e.enabled = !0; | |
var f = c.enabled(a) ? e : b; | |
return f.namespace = a, f | |
} | |
function f(a) { | |
c.save(a); | |
for (var b = (a || "").split(/[\s,]+/), d = b.length, e = 0; d > e; e++) b[e] && (a = b[e].replace(/\*/g, ".*?"), "-" === a[0] ? c.skips.push(new RegExp("^" + a.substr(1) + "$")) : c.names.push(new RegExp("^" + a + "$"))) | |
} | |
function g() { | |
c.enable("") | |
} | |
function h(a) { | |
var b, d; | |
for (b = 0, d = c.skips.length; d > b; b++) | |
if (c.skips[b].test(a)) return !1; | |
for (b = 0, d = c.names.length; d > b; b++) | |
if (c.names[b].test(a)) return !0; | |
return !1 | |
} | |
function i(a) { | |
return a instanceof Error ? a.stack || a.message : a | |
} | |
c = b.exports = e, c.coerce = i, c.disable = g, c.enable = f, c.enabled = h, c.humanize = a("ms"), c.names = [], c.skips = [], c.formatters = {}; | |
var j, k = 0 | |
}, { | |
ms: 25 | |
}], | |
19: [function(a, b, c) { | |
(function(b) { | |
function d(a, b) { | |
var d = "b" + c.packets[a.type] + a.data.data; | |
return b(d) | |
} | |
function e(a, b, d) { | |
if (!b) return c.encodeBase64Packet(a, d); | |
var e = a.data, | |
f = new Uint8Array(e), | |
g = new Uint8Array(1 + e.byteLength); | |
g[0] = r[a.type]; | |
for (var h = 0; h < f.length; h++) g[h + 1] = f[h]; | |
return d(g.buffer) | |
} | |
function f(a, b, d) { | |
if (!b) return c.encodeBase64Packet(a, d); | |
var e = new FileReader; | |
return e.onload = function() { | |
a.data = e.result, c.encodePacket(a, b, !0, d) | |
}, e.readAsArrayBuffer(a.data) | |
} | |
function g(a, b, d) { | |
if (!b) return c.encodeBase64Packet(a, d); | |
if (q) return f(a, b, d); | |
var e = new Uint8Array(1); | |
e[0] = r[a.type]; | |
var g = new u([e.buffer, a.data]); | |
return d(g) | |
} | |
function h(a, b, c) { | |
for (var d = new Array(a.length), e = m(a.length, c), f = function(a, c, e) { | |
b(c, function(b, c) { | |
d[a] = c, e(b, d) | |
}) | |
}, g = 0; g < a.length; g++) f(g, a[g], e) | |
} | |
var i = a("./keys"), | |
j = a("has-binary"), | |
k = a("arraybuffer.slice"), | |
l = a("base64-arraybuffer"), | |
m = a("after"), | |
n = a("utf8"), | |
o = navigator.userAgent.match(/Android/i), | |
p = /PhantomJS/i.test(navigator.userAgent), | |
q = o || p; | |
c.protocol = 3; | |
var r = c.packets = { | |
open: 0, | |
close: 1, | |
ping: 2, | |
pong: 3, | |
message: 4, | |
upgrade: 5, | |
noop: 6 | |
}, | |
s = i(r), | |
t = { | |
type: "error", | |
data: "parser error" | |
}, | |
u = a("blob"); | |
c.encodePacket = function(a, c, f, h) { | |
"function" == typeof c && (h = c, c = !1), "function" == typeof f && (h = f, f = null); | |
var i = void 0 === a.data ? void 0 : a.data.buffer || a.data; | |
if (b.ArrayBuffer && i instanceof ArrayBuffer) return e(a, c, h); | |
if (u && i instanceof b.Blob) return g(a, c, h); | |
if (i && i.base64) return d(a, h); | |
var j = r[a.type]; | |
return void 0 !== a.data && (j += f ? n.encode(String(a.data)) : String(a.data)), h("" + j) | |
}, c.encodeBase64Packet = function(a, d) { | |
var e = "b" + c.packets[a.type]; | |
if (u && a.data instanceof b.Blob) { | |
var f = new FileReader; | |
return f.onload = function() { | |
var a = f.result.split(",")[1]; | |
d(e + a) | |
}, f.readAsDataURL(a.data) | |
} | |
var g; | |
try { | |
g = String.fromCharCode.apply(null, new Uint8Array(a.data)) | |
} catch (h) { | |
for (var i = new Uint8Array(a.data), j = new Array(i.length), k = 0; k < i.length; k++) j[k] = i[k]; | |
g = String.fromCharCode.apply(null, j) | |
} | |
return e += b.btoa(g), d(e) | |
}, c.decodePacket = function(a, b, d) { | |
if ("string" == typeof a || void 0 === a) { | |
if ("b" == a.charAt(0)) return c.decodeBase64Packet(a.substr(1), b); | |
if (d) try { | |
a = n.decode(a) | |
} catch (e) { | |
return t | |
} | |
var f = a.charAt(0); | |
return Number(f) == f && s[f] ? a.length > 1 ? { | |
type: s[f], | |
data: a.substring(1) | |
} : { | |
type: s[f] | |
} : t | |
} | |
var g = new Uint8Array(a), | |
f = g[0], | |
h = k(a, 1); | |
return u && "blob" === b && (h = new u([h])), { | |
type: s[f], | |
data: h | |
} | |
}, c.decodeBase64Packet = function(a, c) { | |
var d = s[a.charAt(0)]; | |
if (!b.ArrayBuffer) return { | |
type: d, | |
data: { | |
base64: !0, | |
data: a.substr(1) | |
} | |
}; | |
var e = l.decode(a.substr(1)); | |
return "blob" === c && u && (e = new u([e])), { | |
type: d, | |
data: e | |
} | |
}, c.encodePayload = function(a, b, d) { | |
function e(a) { | |
return a.length + ":" + a | |
} | |
function f(a, d) { | |
c.encodePacket(a, g ? b : !1, !0, function(a) { | |
d(null, e(a)) | |
}) | |
} | |
"function" == typeof b && (d = b, b = null); | |
var g = j(a); | |
return b && g ? u && !q ? c.encodePayloadAsBlob(a, d) : c.encodePayloadAsArrayBuffer(a, d) : a.length ? void h(a, f, function(a, b) { | |
return d(b.join("")) | |
}) : d("0:") | |
}, c.decodePayload = function(a, b, d) { | |
if ("string" != typeof a) return c.decodePayloadAsBinary(a, b, d); | |
"function" == typeof b && (d = b, b = null); | |
var e; | |
if ("" == a) return d(t, 0, 1); | |
for (var f, g, h = "", i = 0, j = a.length; j > i; i++) { | |
var k = a.charAt(i); | |
if (":" != k) h += k; | |
else { | |
if ("" == h || h != (f = Number(h))) return d(t, 0, 1); | |
if (g = a.substr(i + 1, f), h != g.length) return d(t, 0, 1); | |
if (g.length) { | |
if (e = c.decodePacket(g, b, !0), t.type == e.type && t.data == e.data) return d(t, 0, 1); | |
var l = d(e, i + f, j); | |
if (!1 === l) return | |
} | |
i += f, h = "" | |
} | |
} | |
return "" != h ? d(t, 0, 1) : void 0 | |
}, c.encodePayloadAsArrayBuffer = function(a, b) { | |
function d(a, b) { | |
c.encodePacket(a, !0, !0, function(a) { | |
return b(null, a) | |
}) | |
} | |
return a.length ? void h(a, d, function(a, c) { | |
var d = c.reduce(function(a, b) { | |
var c; | |
return c = "string" == typeof b ? b.length : b.byteLength, a + c.toString().length + c + 2 | |
}, 0), | |
e = new Uint8Array(d), | |
f = 0; | |
return c.forEach(function(a) { | |
var b = "string" == typeof a, | |
c = a; | |
if (b) { | |
for (var d = new Uint8Array(a.length), g = 0; g < a.length; g++) d[g] = a.charCodeAt(g); | |
c = d.buffer | |
} | |
b ? e[f++] = 0 : e[f++] = 1; | |
for (var h = c.byteLength.toString(), g = 0; g < h.length; g++) e[f++] = parseInt(h[g]); | |
e[f++] = 255; | |
for (var d = new Uint8Array(c), g = 0; g < d.length; g++) e[f++] = d[g] | |
}), b(e.buffer) | |
}) : b(new ArrayBuffer(0)) | |
}, c.encodePayloadAsBlob = function(a, b) { | |
function d(a, b) { | |
c.encodePacket(a, !0, !0, function(a) { | |
var c = new Uint8Array(1); | |
if (c[0] = 1, "string" == typeof a) { | |
for (var d = new Uint8Array(a.length), e = 0; e < a.length; e++) d[e] = a.charCodeAt(e); | |
a = d.buffer, c[0] = 0 | |
} | |
for (var f = a instanceof ArrayBuffer ? a.byteLength : a.size, g = f.toString(), h = new Uint8Array(g.length + 1), e = 0; e < g.length; e++) h[e] = parseInt(g[e]); | |
if (h[g.length] = 255, u) { | |
var i = new u([c.buffer, h.buffer, a]); | |
b(null, i) | |
} | |
}) | |
} | |
h(a, d, function(a, c) { | |
return b(new u(c)) | |
}) | |
}, c.decodePayloadAsBinary = function(a, b, d) { | |
"function" == typeof b && (d = b, b = null); | |
for (var e = a, f = [], g = !1; e.byteLength > 0;) { | |
for (var h = new Uint8Array(e), i = 0 === h[0], j = "", l = 1; 255 != h[l]; l++) { | |
if (j.length > 310) { | |
g = !0; | |
break | |
} | |
j += h[l] | |
} | |
if (g) return d(t, 0, 1); | |
e = k(e, 2 + j.length), j = parseInt(j); | |
var m = k(e, 0, j); | |
if (i) try { | |
m = String.fromCharCode.apply(null, new Uint8Array(m)) | |
} catch (n) { | |
var o = new Uint8Array(m); | |
m = ""; | |
for (var l = 0; l < o.length; l++) m += String.fromCharCode(o[l]) | |
} | |
f.push(m), e = k(e, j) | |
} | |
var p = f.length; | |
f.forEach(function(a, e) { | |
d(c.decodePacket(a, b, !0), e, p) | |
}) | |
} | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, { | |
"./keys": 20, | |
after: 11, | |
"arraybuffer.slice": 12, | |
"base64-arraybuffer": 13, | |
blob: 14, | |
"has-binary": 21, | |
utf8: 29 | |
}], | |
20: [function(a, b, c) { | |
b.exports = Object.keys || function(a) { | |
var b = [], | |
c = Object.prototype.hasOwnProperty; | |
for (var d in a) c.call(a, d) && b.push(d); | |
return b | |
} | |
}, {}], | |
21: [function(a, b, c) { | |
(function(c) { | |
function d(a) { | |
function b(a) { | |
if (!a) return !1; | |
if (c.Buffer && c.Buffer.isBuffer(a) || c.ArrayBuffer && a instanceof ArrayBuffer || c.Blob && a instanceof Blob || c.File && a instanceof File) return !0; | |
if (e(a)) { | |
for (var d = 0; d < a.length; d++) | |
if (b(a[d])) return !0 | |
} else if (a && "object" == typeof a) { | |
a.toJSON && (a = a.toJSON()); | |
for (var f in a) | |
if (Object.prototype.hasOwnProperty.call(a, f) && b(a[f])) return !0 | |
} | |
return !1 | |
} | |
return b(a) | |
} | |
var e = a("isarray"); | |
b.exports = d | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, { | |
isarray: 24 | |
}], | |
22: [function(a, b, c) { | |
try { | |
b.exports = "undefined" != typeof XMLHttpRequest && "withCredentials" in new XMLHttpRequest | |
} catch (d) { | |
b.exports = !1 | |
} | |
}, {}], | |
23: [function(a, b, c) { | |
var d = [].indexOf; | |
b.exports = function(a, b) { | |
if (d) return a.indexOf(b); | |
for (var c = 0; c < a.length; ++c) | |
if (a[c] === b) return c; | |
return -1 | |
} | |
}, {}], | |
24: [function(a, b, c) { | |
b.exports = Array.isArray || function(a) { | |
return "[object Array]" == Object.prototype.toString.call(a) | |
} | |
}, {}], | |
25: [function(a, b, c) { | |
function d(a) { | |
if (a = "" + a, !(a.length > 1e4)) { | |
var b = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(a); | |
if (b) { | |
var c = parseFloat(b[1]), | |
d = (b[2] || "ms").toLowerCase(); | |
switch (d) { | |
case "years": | |
case "year": | |
case "yrs": | |
case "yr": | |
case "y": | |
return c * l; | |
case "days": | |
case "day": | |
case "d": | |
return c * k; | |
case "hours": | |
case "hour": | |
case "hrs": | |
case "hr": | |
case "h": | |
return c * j; | |
case "minutes": | |
case "minute": | |
case "mins": | |
case "min": | |
case "m": | |
return c * i; | |
case "seconds": | |
case "second": | |
case "secs": | |
case "sec": | |
case "s": | |
return c * h; | |
case "milliseconds": | |
case "millisecond": | |
case "msecs": | |
case "msec": | |
case "ms": | |
return c | |
} | |
} | |
} | |
} | |
function e(a) { | |
return a >= k ? Math.round(a / k) + "d" : a >= j ? Math.round(a / j) + "h" : a >= i ? Math.round(a / i) + "m" : a >= h ? Math.round(a / h) + "s" : a + "ms" | |
} | |
function f(a) { | |
return g(a, k, "day") || g(a, j, "hour") || g(a, i, "minute") || g(a, h, "second") || a + " ms" | |
} | |
function g(a, b, c) { | |
return b > a ? void 0 : 1.5 * b > a ? Math.floor(a / b) + " " + c : Math.ceil(a / b) + " " + c + "s" | |
} | |
var h = 1e3, | |
i = 60 * h, | |
j = 60 * i, | |
k = 24 * j, | |
l = 365.25 * k; | |
b.exports = function(a, b) { | |
return b = b || {}, "string" == typeof a ? d(a) : b["long"] ? f(a) : e(a) | |
} | |
}, {}], | |
26: [function(a, b, c) { | |
(function(a) { | |
var c = /^[\],:{}\s]*$/, | |
d = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, | |
e = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, | |
f = /(?:^|:|,)(?:\s*\[)+/g, | |
g = /^\s+/, | |
h = /\s+$/; | |
b.exports = function(b) { | |
return "string" == typeof b && b ? (b = b.replace(g, "").replace(h, ""), a.JSON && JSON.parse ? JSON.parse(b) : c.test(b.replace(d, "@").replace(e, "]").replace(f, "")) ? new Function("return " + b)() : void 0) : null | |
} | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, {}], | |
27: [function(a, b, c) { | |
c.encode = function(a) { | |
var b = ""; | |
for (var c in a) a.hasOwnProperty(c) && (b.length && (b += "&"), b += encodeURIComponent(c) + "=" + encodeURIComponent(a[c])); | |
return b | |
}, c.decode = function(a) { | |
for (var b = {}, c = a.split("&"), d = 0, e = c.length; e > d; d++) { | |
var f = c[d].split("="); | |
b[decodeURIComponent(f[0])] = decodeURIComponent(f[1]) | |
} | |
return b | |
} | |
}, {}], | |
28: [function(a, b, c) { | |
var d = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/, | |
e = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"]; | |
b.exports = function(a) { | |
var b = a, | |
c = a.indexOf("["), | |
f = a.indexOf("]"); - 1 != c && -1 != f && (a = a.substring(0, c) + a.substring(c, f).replace(/:/g, ";") + a.substring(f, a.length)); | |
for (var g = d.exec(a || ""), h = {}, i = 14; i--;) h[e[i]] = g[i] || ""; | |
return -1 != c && -1 != f && (h.source = b, h.host = h.host.substring(1, h.host.length - 1).replace(/;/g, ":"), h.authority = h.authority.replace("[", "").replace("]", "").replace(/;/g, ":"), h.ipv6uri = !0), h | |
} | |
}, {}], | |
29: [function(b, c, d) { | |
(function(b) { | |
! function(e) { | |
function f(a) { | |
for (var b, c, d = [], e = 0, f = a.length; f > e;) b = a.charCodeAt(e++), b >= 55296 && 56319 >= b && f > e ? (c = a.charCodeAt(e++), 56320 == (64512 & c) ? d.push(((1023 & b) << 10) + (1023 & c) + 65536) : (d.push(b), e--)) : d.push(b); | |
return d | |
} | |
function g(a) { | |
for (var b, c = a.length, d = -1, e = ""; ++d < c;) b = a[d], b > 65535 && (b -= 65536, e += u(b >>> 10 & 1023 | 55296), b = 56320 | 1023 & b), e += u(b); | |
return e | |
} | |
function h(a) { | |
if (a >= 55296 && 57343 >= a) throw Error("Lone surrogate U+" + a.toString(16).toUpperCase() + " is not a scalar value") | |
} | |
function i(a, b) { | |
return u(a >> b & 63 | 128) | |
} | |
function j(a) { | |
if (0 == (4294967168 & a)) return u(a); | |
var b = ""; | |
return 0 == (4294965248 & a) ? b = u(a >> 6 & 31 | 192) : 0 == (4294901760 & a) ? (h(a), b = u(a >> 12 & 15 | 224), b += i(a, 6)) : 0 == (4292870144 & a) && (b = u(a >> 18 & 7 | 240), b += i(a, 12), b += i(a, 6)), b += u(63 & a | 128) | |
} | |
function k(a) { | |
for (var b, c = f(a), d = c.length, e = -1, g = ""; ++e < d;) b = c[e], g += j(b); | |
return g | |
} | |
function l() { | |
if (t >= s) throw Error("Invalid byte index"); | |
var a = 255 & r[t]; | |
if (t++, 128 == (192 & a)) return 63 & a; | |
throw Error("Invalid continuation byte") | |
} | |
function m() { | |
var a, b, c, d, e; | |
if (t > s) throw Error("Invalid byte index"); | |
if (t == s) return !1; | |
if (a = 255 & r[t], t++, 0 == (128 & a)) return a; | |
if (192 == (224 & a)) { | |
var b = l(); | |
if (e = (31 & a) << 6 | b, e >= 128) return e; | |
throw Error("Invalid continuation byte") | |
} | |
if (224 == (240 & a)) { | |
if (b = l(), c = l(), e = (15 & a) << 12 | b << 6 | c, e >= 2048) return h(e), e; | |
throw Error("Invalid continuation byte") | |
} | |
if (240 == (248 & a) && (b = l(), c = l(), d = l(), e = (15 & a) << 18 | b << 12 | c << 6 | d, e >= 65536 && 1114111 >= e)) return e; | |
throw Error("Invalid UTF-8 detected") | |
} | |
function n(a) { | |
r = f(a), s = r.length, t = 0; | |
for (var b, c = []; | |
(b = m()) !== !1;) c.push(b); | |
return g(c) | |
} | |
var o = "object" == typeof d && d, | |
p = "object" == typeof c && c && c.exports == o && c, | |
q = "object" == typeof b && b; | |
(q.global === q || q.window === q) && (e = q); | |
var r, s, t, u = String.fromCharCode, | |
v = { | |
version: "2.0.0", | |
encode: k, | |
decode: n | |
}; | |
if ("function" == typeof a && "object" == typeof a.amd && a.amd) a(function() { | |
return v | |
}); | |
else if (o && !o.nodeType) | |
if (p) p.exports = v; | |
else { | |
var w = {}, | |
x = w.hasOwnProperty; | |
for (var y in v) x.call(v, y) && (o[y] = v[y]) | |
} | |
else e.utf8 = v | |
}(this) | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, {}], | |
30: [function(a, b, c) { | |
"use strict"; | |
function d(a) { | |
var b = ""; | |
do b = h[a % i] + b, a = Math.floor(a / i); while (a > 0); | |
return b | |
} | |
function e(a) { | |
var b = 0; | |
for (l = 0; l < a.length; l++) b = b * i + j[a.charAt(l)]; | |
return b | |
} | |
function f() { | |
var a = d(+new Date); | |
return a !== g ? (k = 0, g = a) : a + "." + d(k++) | |
} | |
for (var g, h = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""), i = 64, j = {}, k = 0, l = 0; i > l; l++) j[h[l]] = l; | |
f.encode = d, f.decode = e, b.exports = f | |
}, {}], | |
31: [function(a, b, c) { | |
function d(a, b) { | |
"object" == typeof a && (b = a, a = void 0), b = b || {}; | |
var c, d = e(a), | |
f = d.source, | |
j = d.id, | |
k = d.path, | |
l = i[j] && k in i[j].nsps, | |
m = b.forceNew || b["force new connection"] || !1 === b.multiplex || l; | |
return m ? (h("ignoring socket cache for %s", f), c = g(f, b)) : (i[j] || (h("new io instance for %s", f), i[j] = g(f, b)), c = i[j]), c.socket(d.path) | |
} | |
var e = a("./url"), | |
f = a("socket.io-parser"), | |
g = a("./manager"), | |
h = a("debug")("socket.io-client"); | |
b.exports = c = d; | |
var i = c.managers = {}; | |
c.protocol = f.protocol, c.connect = d, c.Manager = a("./manager"), c.Socket = a("./socket") | |
}, { | |
"./manager": 32, | |
"./socket": 34, | |
"./url": 35, | |
debug: 39, | |
"socket.io-parser": 47 | |
}], | |
32: [function(a, b, c) { | |
function d(a, b) { | |
return this instanceof d ? (a && "object" == typeof a && (b = a, a = void 0), b = b || {}, b.path = b.path || "/socket.io", this.nsps = {}, this.subs = [], this.opts = b, this.reconnection(b.reconnection !== !1), this.reconnectionAttempts(b.reconnectionAttempts || 1 / 0), this.reconnectionDelay(b.reconnectionDelay || 1e3), this.reconnectionDelayMax(b.reconnectionDelayMax || 5e3), this.randomizationFactor(b.randomizationFactor || .5), this.backoff = new m({ | |
min: this.reconnectionDelay(), | |
max: this.reconnectionDelayMax(), | |
jitter: this.randomizationFactor() | |
}), this.timeout(null == b.timeout ? 2e4 : b.timeout), this.readyState = "closed", this.uri = a, this.connecting = [], this.lastPing = null, this.encoding = !1, this.packetBuffer = [], this.encoder = new h.Encoder, this.decoder = new h.Decoder, this.autoConnect = b.autoConnect !== !1, void(this.autoConnect && this.open())) : new d(a, b) | |
} | |
var e = a("engine.io-client"), | |
f = a("./socket"), | |
g = a("component-emitter"), | |
h = a("socket.io-parser"), | |
i = a("./on"), | |
j = a("component-bind"), | |
k = a("debug")("socket.io-client:manager"), | |
l = a("indexof"), | |
m = a("backo2"), | |
n = Object.prototype.hasOwnProperty; | |
b.exports = d, d.prototype.emitAll = function() { | |
this.emit.apply(this, arguments); | |
for (var a in this.nsps) n.call(this.nsps, a) && this.nsps[a].emit.apply(this.nsps[a], arguments) | |
}, d.prototype.updateSocketIds = function() { | |
for (var a in this.nsps) n.call(this.nsps, a) && (this.nsps[a].id = this.engine.id) | |
}, g(d.prototype), d.prototype.reconnection = function(a) { | |
return arguments.length ? (this._reconnection = !!a, this) : this._reconnection | |
}, d.prototype.reconnectionAttempts = function(a) { | |
return arguments.length ? (this._reconnectionAttempts = a, this) : this._reconnectionAttempts | |
}, d.prototype.reconnectionDelay = function(a) { | |
return arguments.length ? (this._reconnectionDelay = a, this.backoff && this.backoff.setMin(a), this) : this._reconnectionDelay | |
}, d.prototype.randomizationFactor = function(a) { | |
return arguments.length ? (this._randomizationFactor = a, this.backoff && this.backoff.setJitter(a), this) : this._randomizationFactor | |
}, d.prototype.reconnectionDelayMax = function(a) { | |
return arguments.length ? (this._reconnectionDelayMax = a, this.backoff && this.backoff.setMax(a), this) : this._reconnectionDelayMax | |
}, d.prototype.timeout = function(a) { | |
return arguments.length ? (this._timeout = a, this) : this._timeout | |
}, d.prototype.maybeReconnectOnOpen = function() { | |
!this.reconnecting && this._reconnection && 0 === this.backoff.attempts && this.reconnect() | |
}, d.prototype.open = d.prototype.connect = function(a) { | |
if (k("readyState %s", this.readyState), ~this.readyState.indexOf("open")) return this; | |
k("opening %s", this.uri), this.engine = e(this.uri, this.opts); | |
var b = this.engine, | |
c = this; | |
this.readyState = "opening", this.skipReconnect = !1; | |
var d = i(b, "open", function() { | |
c.onopen(), a && a() | |
}), | |
f = i(b, "error", function(b) { | |
if (k("connect_error"), c.cleanup(), c.readyState = "closed", c.emitAll("connect_error", b), a) { | |
var d = new Error("Connection error"); | |
d.data = b, a(d) | |
} else c.maybeReconnectOnOpen() | |
}); | |
if (!1 !== this._timeout) { | |
var g = this._timeout; | |
k("connect attempt will timeout after %d", g); | |
var h = setTimeout(function() { | |
k("connect attempt timed out after %d", g), d.destroy(), b.close(), b.emit("error", "timeout"), c.emitAll("connect_timeout", g) | |
}, g); | |
this.subs.push({ | |
destroy: function() { | |
clearTimeout(h) | |
} | |
}) | |
} | |
return this.subs.push(d), this.subs.push(f), this | |
}, d.prototype.onopen = function() { | |
k("open"), this.cleanup(), this.readyState = "open", this.emit("open"); | |
var a = this.engine; | |
this.subs.push(i(a, "data", j(this, "ondata"))), this.subs.push(i(a, "ping", j(this, "onping"))), this.subs.push(i(a, "pong", j(this, "onpong"))), this.subs.push(i(a, "error", j(this, "onerror"))), this.subs.push(i(a, "close", j(this, "onclose"))), this.subs.push(i(this.decoder, "decoded", j(this, "ondecoded"))) | |
}, d.prototype.onping = function() { | |
this.lastPing = new Date, this.emitAll("ping") | |
}, d.prototype.onpong = function() { | |
this.emitAll("pong", new Date - this.lastPing) | |
}, d.prototype.ondata = function(a) { | |
this.decoder.add(a) | |
}, d.prototype.ondecoded = function(a) { | |
this.emit("packet", a) | |
}, d.prototype.onerror = function(a) { | |
k("error", a), this.emitAll("error", a) | |
}, d.prototype.socket = function(a) { | |
function b() { | |
~l(d.connecting, c) || d.connecting.push(c) | |
} | |
var c = this.nsps[a]; | |
if (!c) { | |
c = new f(this, a), this.nsps[a] = c; | |
var d = this; | |
c.on("connecting", b), c.on("connect", function() { | |
c.id = d.engine.id | |
}), this.autoConnect && b() | |
} | |
return c | |
}, d.prototype.destroy = function(a) { | |
var b = l(this.connecting, a); | |
~b && this.connecting.splice(b, 1), this.connecting.length || this.close() | |
}, d.prototype.packet = function(a) { | |
k("writing packet %j", a); | |
var b = this; | |
b.encoding ? b.packetBuffer.push(a) : (b.encoding = !0, this.encoder.encode(a, function(c) { | |
for (var d = 0; d < c.length; d++) b.engine.write(c[d], a.options); | |
b.encoding = !1, b.processPacketQueue() | |
})) | |
}, d.prototype.processPacketQueue = function() { | |
if (this.packetBuffer.length > 0 && !this.encoding) { | |
var a = this.packetBuffer.shift(); | |
this.packet(a) | |
} | |
}, d.prototype.cleanup = function() { | |
k("cleanup"); | |
for (var a; a = this.subs.shift();) a.destroy(); | |
this.packetBuffer = [], this.encoding = !1, this.lastPing = null, this.decoder.destroy() | |
}, d.prototype.close = d.prototype.disconnect = function() { | |
k("disconnect"), this.skipReconnect = !0, this.reconnecting = !1, "opening" == this.readyState && this.cleanup(), this.backoff.reset(), this.readyState = "closed", this.engine && this.engine.close() | |
}, d.prototype.onclose = function(a) { | |
k("onclose"), this.cleanup(), this.backoff.reset(), this.readyState = "closed", this.emit("close", a), this._reconnection && !this.skipReconnect && this.reconnect() | |
}, d.prototype.reconnect = function() { | |
if (this.reconnecting || this.skipReconnect) return this; | |
var a = this; | |
if (this.backoff.attempts >= this._reconnectionAttempts) k("reconnect failed"), this.backoff.reset(), this.emitAll("reconnect_failed"), this.reconnecting = !1; | |
else { | |
var b = this.backoff.duration(); | |
k("will wait %dms before reconnect attempt", b), this.reconnecting = !0; | |
var c = setTimeout(function() { | |
a.skipReconnect || (k("attempting reconnect"), a.emitAll("reconnect_attempt", a.backoff.attempts), a.emitAll("reconnecting", a.backoff.attempts), a.skipReconnect || a.open(function(b) { | |
b ? (k("reconnect attempt error"), a.reconnecting = !1, a.reconnect(), a.emitAll("reconnect_error", b.data)) : (k("reconnect success"), a.onreconnect()) | |
})) | |
}, b); | |
this.subs.push({ | |
destroy: function() { | |
clearTimeout(c) | |
} | |
}) | |
} | |
}, d.prototype.onreconnect = function() { | |
var a = this.backoff.attempts; | |
this.reconnecting = !1, this.backoff.reset(), this.updateSocketIds(), this.emitAll("reconnect", a) | |
} | |
}, { | |
"./on": 33, | |
"./socket": 34, | |
backo2: 36, | |
"component-bind": 37, | |
"component-emitter": 38, | |
debug: 39, | |
"engine.io-client": 1, | |
indexof: 42, | |
"socket.io-parser": 47 | |
}], | |
33: [function(a, b, c) { | |
function d(a, b, c) { | |
return a.on(b, c), { | |
destroy: function() { | |
a.removeListener(b, c) | |
} | |
} | |
} | |
b.exports = d | |
}, {}], | |
34: [function(a, b, c) { | |
function d(a, b) { | |
this.io = a, this.nsp = b, this.json = this, this.ids = 0, this.acks = {}, this.receiveBuffer = [], this.sendBuffer = [], this.connected = !1, this.disconnected = !0, this.io.autoConnect && this.open() | |
} | |
var e = a("socket.io-parser"), | |
f = a("component-emitter"), | |
g = a("to-array"), | |
h = a("./on"), | |
i = a("component-bind"), | |
j = a("debug")("socket.io-client:socket"), | |
k = a("has-binary"); | |
b.exports = c = d; | |
var l = { | |
connect: 1, | |
connect_error: 1, | |
connect_timeout: 1, | |
connecting: 1, | |
disconnect: 1, | |
error: 1, | |
reconnect: 1, | |
reconnect_attempt: 1, | |
reconnect_failed: 1, | |
reconnect_error: 1, | |
reconnecting: 1, | |
ping: 1, | |
pong: 1 | |
}, | |
m = f.prototype.emit; | |
f(d.prototype), d.prototype.subEvents = function() { | |
if (!this.subs) { | |
var a = this.io; | |
this.subs = [h(a, "open", i(this, "onopen")), h(a, "packet", i(this, "onpacket")), h(a, "close", i(this, "onclose"))] | |
} | |
}, d.prototype.open = d.prototype.connect = function() { | |
return this.connected ? this : (this.subEvents(), this.io.open(), "open" == this.io.readyState && this.onopen(), this.emit("connecting"), this) | |
}, d.prototype.send = function() { | |
var a = g(arguments); | |
return a.unshift("message"), this.emit.apply(this, a), this | |
}, d.prototype.emit = function(a) { | |
if (l.hasOwnProperty(a)) return m.apply(this, arguments), this; | |
var b = g(arguments), | |
c = e.EVENT; | |
k(b) && (c = e.BINARY_EVENT); | |
var d = { | |
type: c, | |
data: b | |
}; | |
return d.options = {}, d.options.compress = !this.flags || !1 !== this.flags.compress, "function" == typeof b[b.length - 1] && (j("emitting packet with ack id %d", this.ids), this.acks[this.ids] = b.pop(), d.id = this.ids++), this.connected ? this.packet(d) : this.sendBuffer.push(d), delete this.flags, this | |
}, d.prototype.packet = function(a) { | |
a.nsp = this.nsp, this.io.packet(a) | |
}, d.prototype.onopen = function() { | |
j("transport is open - connecting"), "/" != this.nsp && this.packet({ | |
type: e.CONNECT | |
}) | |
}, d.prototype.onclose = function(a) { | |
j("close (%s)", a), this.connected = !1, this.disconnected = !0, delete this.id, this.emit("disconnect", a) | |
}, d.prototype.onpacket = function(a) { | |
if (a.nsp == this.nsp) switch (a.type) { | |
case e.CONNECT: | |
this.onconnect(); | |
break; | |
case e.EVENT: | |
this.onevent(a); | |
break; | |
case e.BINARY_EVENT: | |
this.onevent(a); | |
break; | |
case e.ACK: | |
this.onack(a); | |
break; | |
case e.BINARY_ACK: | |
this.onack(a); | |
break; | |
case e.DISCONNECT: | |
this.ondisconnect(); | |
break; | |
case e.ERROR: | |
this.emit("error", a.data) | |
} | |
}, d.prototype.onevent = function(a) { | |
var b = a.data || []; | |
j("emitting event %j", b), null != a.id && (j("attaching ack callback to event"), b.push(this.ack(a.id))), this.connected ? m.apply(this, b) : this.receiveBuffer.push(b) | |
}, d.prototype.ack = function(a) { | |
var b = this, | |
c = !1; | |
return function() { | |
if (!c) { | |
c = !0; | |
var d = g(arguments); | |
j("sending ack %j", d); | |
var f = k(d) ? e.BINARY_ACK : e.ACK; | |
b.packet({ | |
type: f, | |
id: a, | |
data: d | |
}) | |
} | |
} | |
}, d.prototype.onack = function(a) { | |
var b = this.acks[a.id]; | |
"function" == typeof b ? (j("calling ack %s with %j", a.id, a.data), b.apply(this, a.data), delete this.acks[a.id]) : j("bad ack %s", a.id) | |
}, d.prototype.onconnect = function() { | |
this.connected = !0, this.disconnected = !1, this.emit("connect"), this.emitBuffered() | |
}, d.prototype.emitBuffered = function() { | |
var a; | |
for (a = 0; a < this.receiveBuffer.length; a++) m.apply(this, this.receiveBuffer[a]); | |
for (this.receiveBuffer = [], a = 0; a < this.sendBuffer.length; a++) this.packet(this.sendBuffer[a]); | |
this.sendBuffer = [] | |
}, d.prototype.ondisconnect = function() { | |
j("server disconnect (%s)", this.nsp), this.destroy(), this.onclose("io server disconnect") | |
}, d.prototype.destroy = function() { | |
if (this.subs) { | |
for (var a = 0; a < this.subs.length; a++) this.subs[a].destroy(); | |
this.subs = null | |
} | |
this.io.destroy(this) | |
}, d.prototype.close = d.prototype.disconnect = function() { | |
return this.connected && (j("performing disconnect (%s)", this.nsp), this.packet({ | |
type: e.DISCONNECT | |
})), this.destroy(), this.connected && this.onclose("io client disconnect"), this | |
}, d.prototype.compress = function(a) { | |
return this.flags = this.flags || {}, this.flags.compress = a, this | |
} | |
}, { | |
"./on": 33, | |
"component-bind": 37, | |
"component-emitter": 38, | |
debug: 39, | |
"has-binary": 41, | |
"socket.io-parser": 47, | |
"to-array": 51 | |
}], | |
35: [function(a, b, c) { | |
(function(c) { | |
function d(a, b) { | |
var d = a, | |
b = b || c.location; | |
null == a && (a = b.protocol + "//" + b.host), "string" == typeof a && ("/" == a.charAt(0) && (a = "/" == a.charAt(1) ? b.protocol + a : b.host + a), /^(https?|wss?):\/\//.test(a) || (f("protocol-less url %s", a), a = "undefined" != typeof b ? b.protocol + "//" + a : "https://" + a), f("parse %s", a), d = e(a)), d.port || (/^(http|ws)$/.test(d.protocol) ? d.port = "80" : /^(http|ws)s$/.test(d.protocol) && (d.port = "443")), d.path = d.path || "/"; | |
var g = -1 !== d.host.indexOf(":"), | |
h = g ? "[" + d.host + "]" : d.host; | |
return d.id = d.protocol + "://" + h + ":" + d.port, d.href = d.protocol + "://" + h + (b && b.port == d.port ? "" : ":" + d.port), d | |
} | |
var e = a("parseuri"), | |
f = a("debug")("socket.io-client:url"); | |
b.exports = d | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, { | |
debug: 39, | |
parseuri: 45 | |
}], | |
36: [function(a, b, c) { | |
function d(a) { | |
a = a || {}, this.ms = a.min || 100, this.max = a.max || 1e4, this.factor = a.factor || 2, this.jitter = a.jitter > 0 && a.jitter <= 1 ? a.jitter : 0, this.attempts = 0 | |
} | |
b.exports = d, d.prototype.duration = function() { | |
var a = this.ms * Math.pow(this.factor, this.attempts++); | |
if (this.jitter) { | |
var b = Math.random(), | |
c = Math.floor(b * this.jitter * a); | |
a = 0 == (1 & Math.floor(10 * b)) ? a - c : a + c | |
} | |
return 0 | Math.min(a, this.max) | |
}, d.prototype.reset = function() { | |
this.attempts = 0 | |
}, d.prototype.setMin = function(a) { | |
this.ms = a | |
}, d.prototype.setMax = function(a) { | |
this.max = a | |
}, d.prototype.setJitter = function(a) { | |
this.jitter = a | |
} | |
}, {}], | |
37: [function(a, b, c) { | |
var d = [].slice; | |
b.exports = function(a, b) { | |
if ("string" == typeof b && (b = a[b]), "function" != typeof b) throw new Error("bind() requires a function"); | |
var c = d.call(arguments, 2); | |
return function() { | |
return b.apply(a, c.concat(d.call(arguments))) | |
} | |
} | |
}, {}], | |
38: [function(a, b, c) { | |
function d(a) { | |
return a ? e(a) : void 0 | |
} | |
function e(a) { | |
for (var b in d.prototype) a[b] = d.prototype[b]; | |
return a | |
} | |
b.exports = d, d.prototype.on = d.prototype.addEventListener = function(a, b) { | |
return this._callbacks = this._callbacks || {}, (this._callbacks["$" + a] = this._callbacks["$" + a] || []).push(b), this | |
}, d.prototype.once = function(a, b) { | |
function c() { | |
this.off(a, c), b.apply(this, arguments) | |
} | |
return c.fn = b, this.on(a, c), this | |
}, d.prototype.off = d.prototype.removeListener = d.prototype.removeAllListeners = d.prototype.removeEventListener = function(a, b) { | |
if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this._callbacks = {}, this; | |
var c = this._callbacks["$" + a]; | |
if (!c) return this; | |
if (1 == arguments.length) return delete this._callbacks["$" + a], this; | |
for (var d, e = 0; e < c.length; e++) | |
if (d = c[e], d === b || d.fn === b) { | |
c.splice(e, 1); | |
break | |
} | |
return this | |
}, d.prototype.emit = function(a) { | |
this._callbacks = this._callbacks || {}; | |
var b = [].slice.call(arguments, 1), | |
c = this._callbacks["$" + a]; | |
if (c) { | |
c = c.slice(0); | |
for (var d = 0, e = c.length; e > d; ++d) c[d].apply(this, b) | |
} | |
return this | |
}, d.prototype.listeners = function(a) { | |
return this._callbacks = this._callbacks || {}, this._callbacks["$" + a] || [] | |
}, d.prototype.hasListeners = function(a) { | |
return !!this.listeners(a).length | |
} | |
}, {}], | |
39: [function(a, b, c) { | |
arguments[4][17][0].apply(c, arguments) | |
}, { | |
"./debug": 40, | |
dup: 17 | |
}], | |
40: [function(a, b, c) { | |
arguments[4][18][0].apply(c, arguments) | |
}, { | |
dup: 18, | |
ms: 44 | |
}], | |
41: [function(a, b, c) { | |
(function(c) { | |
function d(a) { | |
function b(a) { | |
if (!a) return !1; | |
if (c.Buffer && c.Buffer.isBuffer && c.Buffer.isBuffer(a) || c.ArrayBuffer && a instanceof ArrayBuffer || c.Blob && a instanceof Blob || c.File && a instanceof File) return !0; | |
if (e(a)) { | |
for (var d = 0; d < a.length; d++) | |
if (b(a[d])) return !0 | |
} else if (a && "object" == typeof a) { | |
a.toJSON && "function" == typeof a.toJSON && (a = a.toJSON()); | |
for (var f in a) | |
if (Object.prototype.hasOwnProperty.call(a, f) && b(a[f])) return !0 | |
} | |
return !1 | |
} | |
return b(a) | |
} | |
var e = a("isarray"); | |
b.exports = d | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, { | |
isarray: 43 | |
}], | |
42: [function(a, b, c) { | |
arguments[4][23][0].apply(c, arguments) | |
}, { | |
dup: 23 | |
}], | |
43: [function(a, b, c) { | |
arguments[4][24][0].apply(c, arguments) | |
}, { | |
dup: 24 | |
}], | |
44: [function(a, b, c) { | |
arguments[4][25][0].apply(c, arguments) | |
}, { | |
dup: 25 | |
}], | |
45: [function(a, b, c) { | |
arguments[4][28][0].apply(c, arguments) | |
}, { | |
dup: 28 | |
}], | |
46: [function(a, b, c) { | |
(function(b) { | |
var d = a("isarray"), | |
e = a("./is-buffer"); | |
c.deconstructPacket = function(a) { | |
function b(a) { | |
if (!a) return a; | |
if (e(a)) { | |
var f = { | |
_placeholder: !0, | |
num: c.length | |
}; | |
return c.push(a), f | |
} | |
if (d(a)) { | |
for (var g = new Array(a.length), h = 0; h < a.length; h++) g[h] = b(a[h]); | |
return g | |
} | |
if ("object" == typeof a && !(a instanceof Date)) { | |
var g = {}; | |
for (var i in a) g[i] = b(a[i]); | |
return g | |
} | |
return a | |
} | |
var c = [], | |
f = a.data, | |
g = a; | |
return g.data = b(f), g.attachments = c.length, { | |
packet: g, | |
buffers: c | |
} | |
}, c.reconstructPacket = function(a, b) { | |
function c(a) { | |
if (a && a._placeholder) { | |
var e = b[a.num]; | |
return e | |
} | |
if (d(a)) { | |
for (var f = 0; f < a.length; f++) a[f] = c(a[f]); | |
return a | |
} | |
if (a && "object" == typeof a) { | |
for (var g in a) a[g] = c(a[g]); | |
return a | |
} | |
return a | |
} | |
return a.data = c(a.data), a.attachments = void 0, a | |
}, c.removeBlobs = function(a, c) { | |
function f(a, i, j) { | |
if (!a) return a; | |
if (b.Blob && a instanceof Blob || b.File && a instanceof File) { | |
g++; | |
var k = new FileReader; | |
k.onload = function() { | |
j ? j[i] = this.result : h = this.result, --g || c(h) | |
}, k.readAsArrayBuffer(a) | |
} else if (d(a)) | |
for (var l = 0; l < a.length; l++) f(a[l], l, a); | |
else if (a && "object" == typeof a && !e(a)) | |
for (var m in a) f(a[m], m, a) | |
} | |
var g = 0, | |
h = a; | |
f(h), g || c(h) | |
} | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, { | |
"./is-buffer": 48, | |
isarray: 43 | |
}], | |
47: [function(a, b, c) { | |
function d() {} | |
function e(a) { | |
var b = "", | |
d = !1; | |
return b += a.type, (c.BINARY_EVENT == a.type || c.BINARY_ACK == a.type) && (b += a.attachments, b += "-"), a.nsp && "/" != a.nsp && (d = !0, b += a.nsp), null != a.id && (d && (b += ",", d = !1), b += a.id), null != a.data && (d && (b += ","), b += l.stringify(a.data)), k("encoded %j as %s", a, b), b | |
} | |
function f(a, b) { | |
function c(a) { | |
var c = n.deconstructPacket(a), | |
d = e(c.packet), | |
f = c.buffers; | |
f.unshift(d), b(f) | |
} | |
n.removeBlobs(a, c) | |
} | |
function g() { | |
this.reconstructor = null | |
} | |
function h(a) { | |
var b = {}, | |
d = 0; | |
if (b.type = Number(a.charAt(0)), null == c.types[b.type]) return j(); | |
if (c.BINARY_EVENT == b.type || c.BINARY_ACK == b.type) { | |
for (var e = ""; | |
"-" != a.charAt(++d) && (e += a.charAt(d), d != a.length);); | |
if (e != Number(e) || "-" != a.charAt(d)) throw new Error("Illegal attachments"); | |
b.attachments = Number(e) | |
} | |
if ("/" == a.charAt(d + 1)) | |
for (b.nsp = ""; ++d;) { | |
var f = a.charAt(d); | |
if ("," == f) break; | |
if (b.nsp += f, d == a.length) break | |
} else b.nsp = "/"; | |
var g = a.charAt(d + 1); | |
if ("" !== g && Number(g) == g) { | |
for (b.id = ""; ++d;) { | |
var f = a.charAt(d); | |
if (null == f || Number(f) != f) { | |
--d; | |
break | |
} | |
if (b.id += a.charAt(d), d == a.length) break | |
} | |
b.id = Number(b.id) | |
} | |
if (a.charAt(++d)) try { | |
b.data = l.parse(a.substr(d)) | |
} catch (h) { | |
return j() | |
} | |
return k("decoded %s as %j", a, b), b | |
} | |
function i(a) { | |
this.reconPack = a, this.buffers = [] | |
} | |
function j(a) { | |
return { | |
type: c.ERROR, | |
data: "parser error" | |
} | |
} | |
var k = a("debug")("socket.io-parser"), | |
l = a("json3"), | |
m = (a("isarray"), a("component-emitter")), | |
n = a("./binary"), | |
o = a("./is-buffer"); | |
c.protocol = 4, c.types = ["CONNECT", "DISCONNECT", "EVENT", "BINARY_EVENT", "ACK", "BINARY_ACK", "ERROR"], c.CONNECT = 0, c.DISCONNECT = 1, c.EVENT = 2, c.ACK = 3, c.ERROR = 4, c.BINARY_EVENT = 5, c.BINARY_ACK = 6, c.Encoder = d, c.Decoder = g, d.prototype.encode = function(a, b) { | |
if (k("encoding packet %j", a), c.BINARY_EVENT == a.type || c.BINARY_ACK == a.type) f(a, b); | |
else { | |
var d = e(a); | |
b([d]) | |
} | |
}, m(g.prototype), g.prototype.add = function(a) { | |
var b; | |
if ("string" == typeof a) b = h(a), c.BINARY_EVENT == b.type || c.BINARY_ACK == b.type ? (this.reconstructor = new i(b), 0 === this.reconstructor.reconPack.attachments && this.emit("decoded", b)) : this.emit("decoded", b); | |
else { | |
if (!o(a) && !a.base64) throw new Error("Unknown type: " + a); | |
if (!this.reconstructor) throw new Error("got binary data when not reconstructing a packet"); | |
b = this.reconstructor.takeBinaryData(a), b && (this.reconstructor = null, this.emit("decoded", b)) | |
} | |
}, g.prototype.destroy = function() { | |
this.reconstructor && this.reconstructor.finishedReconstruction() | |
}, i.prototype.takeBinaryData = function(a) { | |
if (this.buffers.push(a), this.buffers.length == this.reconPack.attachments) { | |
var b = n.reconstructPacket(this.reconPack, this.buffers); | |
return this.finishedReconstruction(), b | |
} | |
return null | |
}, i.prototype.finishedReconstruction = function() { | |
this.reconPack = null, this.buffers = [] | |
} | |
}, { | |
"./binary": 46, | |
"./is-buffer": 48, | |
"component-emitter": 49, | |
debug: 39, | |
isarray: 43, | |
json3: 50 | |
}], | |
48: [function(a, b, c) { | |
(function(a) { | |
function c(b) { | |
return a.Buffer && a.Buffer.isBuffer(b) || a.ArrayBuffer && b instanceof ArrayBuffer | |
} | |
b.exports = c | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, {}], | |
49: [function(a, b, c) { | |
arguments[4][15][0].apply(c, arguments) | |
}, { | |
dup: 15 | |
}], | |
50: [function(b, c, d) { | |
(function(b) { | |
(function() { | |
function e(a, b) { | |
function c(a) { | |
if (c[a] !== q) return c[a]; | |
var e; | |
if ("bug-string-char-index" == a) e = "a" != "a" [0]; | |
else if ("json" == a) e = c("json-stringify") && c("json-parse"); | |
else { | |
var g, h = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; | |
if ("json-stringify" == a) { | |
var i = b.stringify, | |
k = "function" == typeof i && t; | |
if (k) { | |
(g = function() { | |
return 1 | |
}).toJSON = g; | |
try { | |
k = "0" === i(0) && "0" === i(new d) && '""' == i(new f) && i(s) === q && i(q) === q && i() === q && "1" === i(g) && "[1]" == i([g]) && "[null]" == i([q]) && "null" == i(null) && "[null,null,null]" == i([q, s, null]) && i({ | |
a: [g, !0, !1, null, "\x00\b\n\f\r "] | |
}) == h && "1" === i(null, g) && "[\n 1,\n 2\n]" == i([1, 2], null, 1) && '"-271821-04-20T00:00:00.000Z"' == i(new j(-864e13)) && '"+275760-09-13T00:00:00.000Z"' == i(new j(864e13)) && '"-000001-01-01T00:00:00.000Z"' == i(new j(-621987552e5)) && '"1969-12-31T23:59:59.999Z"' == i(new j(-1)) | |
} catch (l) { | |
k = !1 | |
} | |
} | |
e = k | |
} | |
if ("json-parse" == a) { | |
var m = b.parse; | |
if ("function" == typeof m) try { | |
if (0 === m("0") && !m(!1)) { | |
g = m(h); | |
var n = 5 == g.a.length && 1 === g.a[0]; | |
if (n) { | |
try { | |
n = !m('" "') | |
} catch (l) {} | |
if (n) try { | |
n = 1 !== m("01") | |
} catch (l) {} | |
if (n) try { | |
n = 1 !== m("1.") | |
} catch (l) {} | |
} | |
} | |
} catch (l) { | |
n = !1 | |
} | |
e = n | |
} | |
} | |
return c[a] = !!e | |
} | |
a || (a = i.Object()), b || (b = i.Object()); | |
var d = a.Number || i.Number, | |
f = a.String || i.String, | |
h = a.Object || i.Object, | |
j = a.Date || i.Date, | |
k = a.SyntaxError || i.SyntaxError, | |
l = a.TypeError || i.TypeError, | |
m = a.Math || i.Math, | |
n = a.JSON || i.JSON; | |
"object" == typeof n && n && (b.stringify = n.stringify, b.parse = n.parse); | |
var o, p, q, r = h.prototype, | |
s = r.toString, | |
t = new j(-0xc782b5b800cec); | |
try { | |
t = -109252 == t.getUTCFullYear() && 0 === t.getUTCMonth() && 1 === t.getUTCDate() && 10 == t.getUTCHours() && 37 == t.getUTCMinutes() && 6 == t.getUTCSeconds() && 708 == t.getUTCMilliseconds() | |
} catch (u) {} | |
if (!c("json")) { | |
var v = "[object Function]", | |
w = "[object Date]", | |
x = "[object Number]", | |
y = "[object String]", | |
z = "[object Array]", | |
A = "[object Boolean]", | |
B = c("bug-string-char-index"); | |
if (!t) var C = m.floor, | |
D = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334], | |
E = function(a, b) { | |
return D[b] + 365 * (a - 1970) + C((a - 1969 + (b = +(b > 1))) / 4) - C((a - 1901 + b) / 100) + C((a - 1601 + b) / 400) | |
}; | |
if ((o = r.hasOwnProperty) || (o = function(a) { | |
var b, c = {}; | |
return (c.__proto__ = null, c.__proto__ = { | |
toString: 1 | |
}, c).toString != s ? o = function(a) { | |
var b = this.__proto__, | |
c = a in (this.__proto__ = null, this); | |
return this.__proto__ = b, c | |
} : (b = c.constructor, o = function(a) { | |
var c = (this.constructor || b).prototype; | |
return a in this && !(a in c && this[a] === c[a]) | |
}), c = null, o.call(this, a) | |
}), p = function(a, b) { | |
var c, d, e, f = 0; | |
(c = function() { | |
this.valueOf = 0 | |
}).prototype.valueOf = 0, d = new c; | |
for (e in d) o.call(d, e) && f++; | |
return c = d = null, f ? p = 2 == f ? function(a, b) { | |
var c, d = {}, | |
e = s.call(a) == v; | |
for (c in a) e && "prototype" == c || o.call(d, c) || !(d[c] = 1) || !o.call(a, c) || b(c) | |
} : function(a, b) { | |
var c, d, e = s.call(a) == v; | |
for (c in a) e && "prototype" == c || !o.call(a, c) || (d = "constructor" === c) || b(c); | |
(d || o.call(a, c = "constructor")) && b(c) | |
} : (d = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"], p = function(a, b) { | |
var c, e, f = s.call(a) == v, | |
h = !f && "function" != typeof a.constructor && g[typeof a.hasOwnProperty] && a.hasOwnProperty || o; | |
for (c in a) f && "prototype" == c || !h.call(a, c) || b(c); | |
for (e = d.length; c = d[--e]; h.call(a, c) && b(c)); | |
}), p(a, b) | |
}, !c("json-stringify")) { | |
var F = { | |
92: "\\\\", | |
34: '\\"', | |
8: "\\b", | |
12: "\\f", | |
10: "\\n", | |
13: "\\r", | |
9: "\\t" | |
}, | |
G = "000000", | |
H = function(a, b) { | |
return (G + (b || 0)).slice(-a) | |
}, | |
I = "\\u00", | |
J = function(a) { | |
for (var b = '"', c = 0, d = a.length, e = !B || d > 10, f = e && (B ? a.split("") : a); d > c; c++) { | |
var g = a.charCodeAt(c); | |
switch (g) { | |
case 8: | |
case 9: | |
case 10: | |
case 12: | |
case 13: | |
case 34: | |
case 92: | |
b += F[g]; | |
break; | |
default: | |
if (32 > g) { | |
b += I + H(2, g.toString(16)); | |
break | |
} | |
b += e ? f[c] : a.charAt(c) | |
} | |
} | |
return b + '"' | |
}, | |
K = function(a, b, c, d, e, f, g) { | |
var h, i, j, k, m, n, r, t, u, v, B, D, F, G, I, L; | |
try { | |
h = b[a] | |
} catch (M) {} | |
if ("object" == typeof h && h) | |
if (i = s.call(h), i != w || o.call(h, "toJSON")) "function" == typeof h.toJSON && (i != x && i != y && i != z || o.call(h, "toJSON")) && (h = h.toJSON(a)); | |
else if (h > -1 / 0 && 1 / 0 > h) { | |
if (E) { | |
for (m = C(h / 864e5), j = C(m / 365.2425) + 1970 - 1; E(j + 1, 0) <= m; j++); | |
for (k = C((m - E(j, 0)) / 30.42); E(j, k + 1) <= m; k++); | |
m = 1 + m - E(j, k), n = (h % 864e5 + 864e5) % 864e5, r = C(n / 36e5) % 24, t = C(n / 6e4) % 60, u = C(n / 1e3) % 60, v = n % 1e3 | |
} else j = h.getUTCFullYear(), k = h.getUTCMonth(), m = h.getUTCDate(), r = h.getUTCHours(), t = h.getUTCMinutes(), u = h.getUTCSeconds(), v = h.getUTCMilliseconds(); | |
h = (0 >= j || j >= 1e4 ? (0 > j ? "-" : "+") + H(6, 0 > j ? -j : j) : H(4, j)) + "-" + H(2, k + 1) + "-" + H(2, m) + "T" + H(2, r) + ":" + H(2, t) + ":" + H(2, u) + "." + H(3, v) + "Z" | |
} else h = null; | |
if (c && (h = c.call(b, a, h)), null === h) return "null"; | |
if (i = s.call(h), i == A) return "" + h; | |
if (i == x) return h > -1 / 0 && 1 / 0 > h ? "" + h : "null"; | |
if (i == y) return J("" + h); | |
if ("object" == typeof h) { | |
for (G = g.length; G--;) | |
if (g[G] === h) throw l(); | |
if (g.push(h), B = [], I = f, f += e, i == z) { | |
for (F = 0, G = h.length; G > F; F++) D = K(F, h, c, d, e, f, g), B.push(D === q ? "null" : D); | |
L = B.length ? e ? "[\n" + f + B.join(",\n" + f) + "\n" + I + "]" : "[" + B.join(",") + "]" : "[]" | |
} else p(d || h, function(a) { | |
var b = K(a, h, c, d, e, f, g); | |
b !== q && B.push(J(a) + ":" + (e ? " " : "") + b) | |
}), L = B.length ? e ? "{\n" + f + B.join(",\n" + f) + "\n" + I + "}" : "{" + B.join(",") + "}" : "{}"; | |
return g.pop(), L | |
} | |
}; | |
b.stringify = function(a, b, c) { | |
var d, e, f, h; | |
if (g[typeof b] && b) | |
if ((h = s.call(b)) == v) e = b; | |
else if (h == z) { | |
f = {}; | |
for (var i, j = 0, k = b.length; k > j; i = b[j++], h = s.call(i), (h == y || h == x) && (f[i] = 1)); | |
} | |
if (c) | |
if ((h = s.call(c)) == x) { | |
if ((c -= c % 1) > 0) | |
for (d = "", c > 10 && (c = 10); d.length < c; d += " "); | |
} else h == y && (d = c.length <= 10 ? c : c.slice(0, 10)); | |
return K("", (i = {}, i[""] = a, i), e, f, d, "", []) | |
} | |
} | |
if (!c("json-parse")) { | |
var L, M, N = f.fromCharCode, | |
O = { | |
92: "\\", | |
34: '"', | |
47: "/", | |
98: "\b", | |
116: " ", | |
110: "\n", | |
102: "\f", | |
114: "\r" | |
}, | |
P = function() { | |
throw L = M = null, k() | |
}, | |
Q = function() { | |
for (var a, b, c, d, e, f = M, g = f.length; g > L;) switch (e = f.charCodeAt(L)) { | |
case 9: | |
case 10: | |
case 13: | |
case 32: | |
L++; | |
break; | |
case 123: | |
case 125: | |
case 91: | |
case 93: | |
case 58: | |
case 44: | |
return a = B ? f.charAt(L) : f[L], L++, a; | |
case 34: | |
for (a = "@", L++; g > L;) | |
if (e = f.charCodeAt(L), 32 > e) P(); | |
else if (92 == e) switch (e = f.charCodeAt(++L)) { | |
case 92: | |
case 34: | |
case 47: | |
case 98: | |
case 116: | |
case 110: | |
case 102: | |
case 114: | |
a += O[e], L++; | |
break; | |
case 117: | |
for (b = ++L, c = L + 4; c > L; L++) e = f.charCodeAt(L), e >= 48 && 57 >= e || e >= 97 && 102 >= e || e >= 65 && 70 >= e || P(); | |
a += N("0x" + f.slice(b, L)); | |
break; | |
default: | |
P() | |
} else { | |
if (34 == e) break; | |
for (e = f.charCodeAt(L), b = L; e >= 32 && 92 != e && 34 != e;) e = f.charCodeAt(++L); | |
a += f.slice(b, L) | |
} | |
if (34 == f.charCodeAt(L)) return L++, a; | |
P(); | |
default: | |
if (b = L, 45 == e && (d = !0, e = f.charCodeAt(++L)), e >= 48 && 57 >= e) { | |
for (48 == e && (e = f.charCodeAt(L + 1), e >= 48 && 57 >= e) && P(), d = !1; g > L && (e = f.charCodeAt(L), e >= 48 && 57 >= e); L++); | |
if (46 == f.charCodeAt(L)) { | |
for (c = ++L; g > c && (e = f.charCodeAt(c), e >= 48 && 57 >= e); c++); | |
c == L && P(), L = c | |
} | |
if (e = f.charCodeAt(L), 101 == e || 69 == e) { | |
for (e = f.charCodeAt(++L), (43 == e || 45 == e) && L++, c = L; g > c && (e = f.charCodeAt(c), e >= 48 && 57 >= e); c++); | |
c == L && P(), L = c | |
} | |
return +f.slice(b, L) | |
} | |
if (d && P(), "true" == f.slice(L, L + 4)) return L += 4, !0; | |
if ("false" == f.slice(L, L + 5)) return L += 5, !1; | |
if ("null" == f.slice(L, L + 4)) return L += 4, null; | |
P() | |
} | |
return "$" | |
}, | |
R = function(a) { | |
var b, c; | |
if ("$" == a && P(), "string" == typeof a) { | |
if ("@" == (B ? a.charAt(0) : a[0])) return a.slice(1); | |
if ("[" == a) { | |
for (b = []; a = Q(), "]" != a; c || (c = !0)) c && ("," == a ? (a = Q(), "]" == a && P()) : P()), "," == a && P(), b.push(R(a)); | |
return b | |
} | |
if ("{" == a) { | |
for (b = {}; a = Q(), "}" != a; c || (c = !0)) c && ("," == a ? (a = Q(), "}" == a && P()) : P()), ("," == a || "string" != typeof a || "@" != (B ? a.charAt(0) : a[0]) || ":" != Q()) && P(), b[a.slice(1)] = R(Q()); | |
return b | |
} | |
P() | |
} | |
return a | |
}, | |
S = function(a, b, c) { | |
var d = T(a, b, c); | |
d === q ? delete a[b] : a[b] = d | |
}, | |
T = function(a, b, c) { | |
var d, e = a[b]; | |
if ("object" == typeof e && e) | |
if (s.call(e) == z) | |
for (d = e.length; d--;) S(e, d, c); | |
else p(e, function(a) { | |
S(e, a, c) | |
}); | |
return c.call(a, b, e) | |
}; | |
b.parse = function(a, b) { | |
var c, d; | |
return L = 0, M = "" + a, c = R(Q()), "$" != Q() && P(), L = M = null, b && s.call(b) == v ? T((d = {}, d[""] = c, d), "", b) : c | |
} | |
} | |
} | |
return b.runInContext = e, b | |
} | |
var f = "function" == typeof a && a.amd, | |
g = { | |
"function": !0, | |
object: !0 | |
}, | |
h = g[typeof d] && d && !d.nodeType && d, | |
i = g[typeof window] && window || this, | |
j = h && g[typeof c] && c && !c.nodeType && "object" == typeof b && b; | |
if (!j || j.global !== j && j.window !== j && j.self !== j || (i = j), h && !f) e(i, h); | |
else { | |
var k = i.JSON, | |
l = i.JSON3, | |
m = !1, | |
n = e(i, i.JSON3 = { | |
noConflict: function() { | |
return m || (m = !0, i.JSON = k, i.JSON3 = l, k = l = null), n | |
} | |
}); | |
i.JSON = { | |
parse: n.parse, | |
stringify: n.stringify | |
} | |
} | |
f && a(function() { | |
return n | |
}) | |
}).call(this) | |
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {}) | |
}, {}], | |
51: [function(a, b, c) { | |
function d(a, b) { | |
var c = []; | |
b = b || 0; | |
for (var d = b || 0; d < a.length; d++) c[d - b] = a[d]; | |
return c | |
} | |
b.exports = d | |
}, {}] | |
}, {}, [31])(31) | |
}), this.Templates = this.Templates || {}, this.Templates["_movie-detail"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div class="fixed-header">\n <div class="title">{{ item.title }}</div>\n <div class="meta"><span class="meta-item cc"><i class="icon icon-cc-black black"></i><i class="icon icon-cc-white white"></i></span><span class="meta-item hd"><i class="icon icon-hd-black black"></i><i class="icon icon-hd-white white"></i></span></div><a ng-if="item.ppv && !item._extra.subscribed" ng-click="buy(item)" class="price">{{ item.ppvPrice / 1000 }}.000<i class="icon icon-d-black black"></i><i class="icon icon-d-white white"></i></a>\n <div ng-if="item.ppv && item._extra.subscribed" ng-show="item._extra.hourLeft >= 0" class="price">{{ item._extra.hourLeft }}:{{ item._extra.minuteLeft }}</div>\n <div ng-click="buy(item)" class="btn-play"></div>\n</div>\n<div ng-if="item.badgeText" class="band">\n <div class="text">{{ item.badgeText }}</div>\n</div>\n<div ng-style="{\'background-image\': \'url(\' + item.backdrop + \')\'}" style="background-size: cover;" class="bn parallax-item"></div><i ng-click="buy(item)" class="icon icon-play-white play parallax-item"></i>\n<div bg-color="item.color.thumbnail" class="content">\n <div class="inner">\n <div class="blocker"></div>\n <div class="tab-info">\n <h2 class="main-title">{{ item.knownAs }}</h2><a ng-if="item.ppv && !item._extra.subscribed" ng-click="buy(item)" class="price">{{ item.ppvPrice / 1000 }}.000<i class="icon icon-d-black black"></i><i class="icon icon-d-white white"></i></a>\n <div ng-if="item.ppv && item._extra.subscribed" ng-show="item._extra.hourLeft >= 0" class="price">{{ item._extra.hourLeft }}:{{ item._extra.minuteLeft }}</div>\n <div class="meta"><span class="meta-item cc"><i ng-class="item.color.thumbnail.contrast == 1 ? "icon-cc-black":"icon-cc-white"" class="icon"></i></span><span class="meta-item hd"><i ng-class="item.color.thumbnail.contrast == 1 ? "icon-hd-black":"icon-hd-white"" class="iconi icon"></i><i class="icon icon-hd-white white"></i></span><a ng-show="item._extra && item._extra.id && !item._extra.favorite" ng-if="user" ng-click="addFavorite(item)" class="meta-item add"><i ng-class="item.color.thumbnail.contrast == 1 ? "icon-watchlater-black":"icon-watchlater-white"" class="iconi icon"></i></a><a ng-show="item._extra && item._extra.id && item._extra.favorite" ng-if="user" ng-click="removeFavorite(item)" class="meta-item remove"><i ng-class="item.color.thumbnail.contrast == 1 ? "icon-removewatch-black":"icon-removewatch-white"" class="iconi icon"></i></a></div>\n <div class="clear"></div>\n <div class="description">{{ item.descriptionLong }}</div>\n <div ng-show="item._extra && item._extra.trailer.length" class="trailer">\n <div class="title">Trailer</div>\n <div class="videos">\n <div ng-style="{\'background-image\': \'url(\' + video.thumbnail + \')\'}" style="background-size: cover;" ng-repeat="video in item._extra.trailer" ng-click="playTrailer(item._extra.trailer)" class="video"><i class="icon icon-play-white"></i></div>\n </div>\n </div>\n <div class="info">\n <div class="title">Đội ngũ sản xuất</div>\n <div class="row">\n <div class="label">Diễn viên</div>\n <div class="value"><span ng-repeat="info in item.topCast">{{ info.name }}<br/></span></div>\n </div>\n <div class="row">\n <div class="label">Đạo diễn</div>\n <div class="value"><span ng-repeat="info in item.director">{{ info.name }}<br/></span></div>\n </div>\n </div>\n <div class="info">\n <div class="title">Thông tin</div>\n <div class="row">\n <div class="label">Năm</div>\n <div class="value">{{ item.releaseYear }}</div>\n </div>\n <div class="row">\n <div class="label">Thời lượng</div>\n <div class="value">{{ item.runTime }} phút</div>\n </div>\n <div class="row">\n <div class="label">Thể loại</div>\n <div class="value"><span ng-repeat="info in item.genres">{{ info.name }}<br/></span></div>\n </div>\n </div>\n <div class="clear"></div>\n <div ng-show="item._extra && item._extra.related.length" class="related">\n <div class="title">Phim liên quan</div>\n <div class="relates">\n <div ng-repeat="relate in item._extra.related" title="{{ relate.title }}" ng-click="viewRelated(item, relate)" class="relate"><img ng-src="{{ relate.poster }}" alt=""/></div>\n </div>\n </div>\n </div>\n <div style="display: none" class="tab-review">\n <div class="rating">\n <div class="main">7.8</div>\n <div class="on">/ 10</div>\n <div class="number">20000 người bình chọn</div>\n </div>\n <div class="text">\n <div class="title">Review của fim</div>\n <div class="description">Bộ phim là án văn hay</div>\n </div>\n <div class="reviews">\n <div class="review">\n <div class="avatar image-responsive"><img src="img/img-ava1.png" alt=""/></div>\n <div class="name">Dodge</div>\n <div class="description">Wow</div>\n </div>\n <div class="review">\n <div class="avatar image-responsive"><img src="img/img-ava2.png" alt=""/></div>\n <div class="name">Dodge</div>\n <div class="description">Dis movie</div>\n </div>\n </div>\n </div>\n </div>\n</div>'; | |
return __p | |
}, this.Templates["_movie-list"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div class="dummy"></div><img ng-src="{{ item.poster }}" alt="" loading-image="" class="img"/>\n<div ng-if="item.badgeText" class="band">\n <div class="text">{{ item.badgeText }}</div>\n</div>\n<div style="background: url(\'{{ item.poster }}\'); background-size: cover;" class="overlay">\n <!-- <i class="icon icon-plus-white add"></i>--><i class="icon icon-play-white play"></i>\n <div ng-if="item.badgeText" class="band">\n <div class="text">{{ item.badgeText }}</div>\n </div>\n <div class="content">\n <div class="title">\n <div class="title-wrapper">\n <h2 class="inner">{{ item.knownAs }} ({{ item.releaseYear }})</h2>\n </div>\n </div>\n <div class="meta"><span class="cc"><i class="icon icon-cc-white"></i></span><span class="hd"><i class="icon icon-hd-white"></i></span></div>\n <div class="description">\n <div class="inner">{{ item.descriptionShort }}</div>\n </div>\n </div>\n</div>'; | |
return __p | |
}, this.Templates._package = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div ng-class="{active: modal.package}" class="popup-wrapper popup-payment">\n <div ng-click="closeModal()" class="bg"></div>\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark-big"></i></div>\n <div loading-container="data.packageLoading" class="popup">\n <div class="main-title">CHỌN GÓI THUÊ BAO</div>\n <div class="items">\n <div ng-show="data.packageLoading && data.packages.length === 0" class="popup-item">\n <div class="popup-title"> </div>\n <div class="popup-content">\n <div class="inner">\n <div class="main"> </div>\n </div>\n </div>\n </div>\n <div ng-show="!data.packageLoading && data.packages.length !== 0" ng-repeat="item in data.packages" ng-click="buyPackage(item)" class="popup-item">\n <div class="popup-title">{{ item.packageName }}\n <p class="detail text-small">{{item.detail}}</p>\n </div>\n <div class="popup-content">\n <div class="inner">\n <div class="main">{{ item.price.default / 1000 }}</div>\n <div class="d">vnd</div>\n <div class="z">.000</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>'; | |
return __p | |
}, this.Templates["_payment-add"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div ng-class="{active: modal.method}" class="popup-wrapper popup-method">\n <div ng-click="closeModal()" class="bg"></div>\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark-big"></i></div>\n <div class="popup">\n <div class="main-title">\n {{data.methods.length,plural,\n =0 {THÊM PHƯƠNG THỨC THANH TOÁN}\n other {THAY ĐỔI PHƯƠNG THỨC THANH TOÁN}\n }}\n </div>\n <div ng-show="data.methods.length" class="items selectedItems">\n <div ng-repeat="item in data.methods" ng-hide="item.hidden" class="popup-item active pointer">\n <div ng-click="showModal(item.unsync); data.unsync = item;">\n <div class="icons"><img src="{{item.image}}" alt=""/></div>\n <div class="popup-title">\n <div class="inner">{{item.title}}<br/><span class="text">{{ item.detail.mobile }}</span></div>\n </div>\n </div><a ng-class="{active: settingModel.method === item.id}" title="Chọn mặc định" ng-click="settingModel.method = item.id" class="default"></a>\n </div>\n </div>\n <div class="items"><a ng-click="showModal(\'momo\')" class="popup-item">\n <!--.icons-->\n <!-- img(src=\'images/icon-momo.png\', alt=\'\')-->\n <div class="popup-title">\n <div class="inner">Ví điện tử MoMo</div>\n </div></a>\n <!--a.popup-item(ng-click="showModal(\'creditcard\')", ng-if="!isAdded(\'CREDITCARD\')")-->\n <!-- //.icons-->\n <!-- // img(src=\'images/icon-atm.png\', alt=\'\')-->\n <!-- .popup-title-->\n <!-- .inner-->\n <!-- | Thẻ tín dụng quốc tế--><a ng-click="showModal(\'smartlink\')" ng-if="!isAdded(\'SMARTLINK\')" class="popup-item">\n <!--.icons-->\n <!-- img(src=\'images/icon-smartlink.png\', alt=\'\')-->\n <div class="popup-title">\n <div class="inner">Thẻ ngân hàng nội địa</div>\n </div></a>\n </div>\n </div>\n</div>\n<div ng-class="{active: modal.momo}" class="popup-wrapper popup-login popup-white popup-method-single small-icons">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitMomo()" loading-container="data.formLoading" class="popup active">\n <div class="header"><a class="return text-uppercase text-grey-light"><b ng-click="showModal("method")" ng-if="data.step === 1">Trở lại</b><b ng-click="data.step = 1" ng-if="data.step === 2">Trở lại</b></a><i class="icon icon-momo"></i></div>\n <div ng-class="{active: data.step === 1}" class="body steps">\n <div class="sub-body">\n <p class="text-grey-light text-center text-small">Nhập số điện thoại bạn đã dùng để đăng kí MOMO</p>\n <div class="form-group">\n <input type="text" ng-model="momoModel.phoneNumber" placeholder="Nhập số điện thoại" focus-me="modal.momo && data.step === 1"/><small ng-show="errors.message" class="text-red"><i><b> {{ errors.message }}</b></i></small>\n </div>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Kết nối</button>\n </div>\n </div>\n <div ng-class="{active: data.step === 2}" class="body steps">\n <div class="sub-body">\n <p class="text-grey-light text-center text-small">Nhập số mã OTP bạn vừa nhận được trong app MOMO</p>\n <div class="form-group">\n <input type="text" ng-model="momoModel.otp" placeholder="Nhập OTP" focus-me="modal.momo && data.step === 2"/><small ng-show="errors.message" class="text-red"><i><b> {{ errors.message }}</b></i></small>\n </div>\n </div>\n <div class="form-group">\n <!--.half-->\n <!-- button.btn(type=\'button\', ng-click=\'data.step = 1\') Quay lại-->\n <!--.half-->\n <button type="submit" ng-class="{disabled: !momoModel.otp}" class="btn">Hoàn tất</button>\n </div>\n </div>\n </form>\n</div>\n<div ng-class="{active: modal.creditcard}" class="popup-wrapper popup-login popup-white popup-method-single small-icons">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitCreditcard()" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-atm"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal("method")">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div><br/>\n <div class="form-group">\n <button type="submit" class="btn">Kết nối</button>\n </div>\n </div>\n </form>\n</div>\n<div ng-class="{active: modal.smartlink}" class="popup-wrapper popup-login popup-white popup-method-single small-icons">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitSmartlink()" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-smartlink"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal("method")">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div><br/>\n <div class="form-group">\n <button type="submit" class="btn">Kết nối</button>\n </div>\n </div>\n </form>\n</div>\n<div ng-class="{active: modal.momoUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-momo"></i></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">{{ data.unsync.detail.mobile }}</div>\n <div class="form-group">\n <button type="submit" class="btn btn-danger">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n</div>\n<div ng-class="{active: modal.buying}" class="popup-wrapper popup-buying popup-white review">\n <div ng-click="closeModal()" class="bg"></div>\n <div loading-container="data.formLoading" class="popup active">\n <div class="body steps active">\n <div class="content clear">\n <div class="image image-responsive"><img ng-src="{{ data.buying.poster }}" alt="{{ data.buying.title }}"/></div>\n <div class="panel">\n <div class="main-title">{{ data.buying.title }}</div>\n <div class="title">{{ data.buying.knownAs }}</div>\n <div class="genre"><span ng-repeat="info in data.buying.genres">{{ info.name }}<br/></span></div>\n <div class="time">{{ data.buying.hour }} giờ {{ data.buying.minute }} phút</div>\n </div>\n </div><a ng-click="showModal("buyingConfirm")" class="action btn btn-danger"><strong>THUÊ ({{ data.buying.ppvPrice / 1000 }}.000đ)</strong></a>\n </div>\n </div>\n</div>\n<div ng-class="{active: modal.buyingConfirm}" class="popup-wrapper popup-buying popup-white confirm">\n <div ng-click="closeModal()" class="bg"></div>\n <div loading-container="data.formLoading" class="popup active">\n <div class="body steps active">\n <div class="main-title">XÁC NHẬN</div>\n <div class="description">Bạn muốn thuê phim "{{ data.buying.title }}" trong 48 giờ với giá <strong>{{ data.buying.ppvPrice / 1000 }}.000đ</strong> và thanh toán qua tài khoản</div>\n <div class="method clear">\n <div ng-if="data.method.methodType === \'MOMO\'">\n <div class="icons"><img src="images/icon-momo.png" alt=""/></div>\n <div class="popup-title">\n <div class="inner">Ví điện tử MoMo<br/><span class="text">{{ data.method.detail.mobile }}</span></div>\n </div>\n </div>\n <!--div(ng-if="data.method.methodType === \'CREDITCARD\'")-->\n <!-- .icons-->\n <!-- img(src=\'images/icon-atm.png\', alt=\'\')-->\n <!-- .popup-title-->\n <!-- .inner-->\n <!-- | Thẻ tín dụng-->\n <div ng-if="data.method.methodType === \'SMARTLINK\'">\n <div class="icons"><img src="images/icon-smartlink.png" alt=""/></div>\n <div class="popup-title">\n <div class="inner">Thẻ ngân hàng nội địa</div>\n </div>\n </div>\n </div>\n <div class="action"><a ng-click="closeModal()" class="btn">Huỷ</a><a ng-click="submitBuyItem(data.buying)" class="btn">Thanh Toán</a></div>\n </div>\n </div>\n</div>'; | |
return __p | |
}, this.Templates["_profile-nav"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<!-- <div class="avatar image-responsive">-->\n<!-- <img src="images/img-ava1.png" alt=""/>-->\n<!-- </div>-->\n<div class="name">{{ user.name }}</div>\n<ul class="text">\n <li><a ui-sref="base.profile" ui-sref-active-eq="active">TÀI KHOẢN</a></li>\n <li><a ui-sref="base.profile.password" ui-sref-active-eq="active">ĐỔI MẬT KHẨU</a></li>\n <li><a ui-sref="base.profile.history" ui-sref-active-eq="active">LỊCH SỬ GIAO DỊCH</a></li>\n <li><a ng-click="logout()">ĐĂNG XUẤT</a></li>\n</ul>'; | |
return __p | |
}, this.Templates.activate = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div class="center">\n <div class="center-wrapper">\n <form name="formLogin" ng-submit="submitCode(formLogin)" ng-show="activeModal.name =="inputCode"" class="form-code center-content">\n <div class="header">Kết Nối Với Thiết Bị</div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="activeModal.inputCode" placeholder="Nhập mã kích hoạt"/>\n </div>\n </div>\n <div class="footer">\n <div class="form-group">\n <button type="submit" class="btn">Xác nhận</button>\n </div>\n </div>\n </form>\n <form name="formLogin" ng-submit="submitPassword(formLogin)" ng-show="activeModal.name =="password"" class="form-code center-content">\n <div class="header accuracy"><a><i class="icon icon-rectangle366"></i><span ng-click="activeModal.name = "inputCode" ">Trở lại</span></a>Xin Chào, {{activeModal.userName}}</div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="password" ng-model="activeModal.password" placeholder="Nhập mật khẩu" ng-if="activeModal.isLocalAcc"/>\n <p ng-if="activeModal.isFbAcc">Bạn cần xác thực để tiếp tục.</p>\n </div>\n </div>\n <div class="footer">\n <div class="form-group">\n <button type="submit" class="btn">Xác nhận</button>\n </div>\n </div>\n </form>\n <div ng-show="activeModal.name =="loading"" class="center-content loading"><img src="/images/loading.gif"/></div>\n <form name="formLogin" ng-show="activeModal.name =="success"" class="form-code center-content">\n <div class="header">Chúc Mừng!</div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <p>Kết nối thành công</p>\n </div>\n <div class="footer">\n <div class="form-group"><a href="/" class="btn">Đóng</a></div>\n </div>\n </form>\n </div>\n</div>'; | |
return __p | |
}, this.Templates.archives = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div class="movie-list-area archives wrapper">\n <div class="container">\n <div ng-show="!data.hideTitle" class="block-title">{{ pageTitle }}</div>\n <div ng-show="data.tab" class="tabs"><a ui-sref="base.favorite" ng-class="{active: data.tab === \'favorite\'}">XEM SAU</a><a ui-sref="base.recent" ng-class="{active: data.tab === \'recent\'}">ĐÃ THUÊ</a></div>\n <hr/>\n <div loading-container="data.formLoading" class="items no-slider">\n <div ng-click="showModal(\'single\', {index: $index})" movie-hover="" ng-repeat="item in data.items" class="item">\n <div>\n <div class="dummy"></div><img ng-src="{{ item.poster }}" alt="" loading-image="" class="img"/>\n <div ng-if="item.badgeText" class="band">\n <div class="text">{{ item.badgeText }}</div>\n </div>\n </div>\n </div>\n <div ng-if="data.items.length === 0 && !data.formLoading" class="item empty">KHÔNG CÓ KẾT QUẢ</div>\n </div>\n </div>\n</div>\n<div ng-class="{active: modal.single}" class="movie-detail-area">\n <div ng-click="closeModal()" class="bg"></div>\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark-big"></i></div>\n <div owl-carousel="\'detail\'" owl-carousel-view="modal.listItem" ng-model="data.items" class="items owl-carousel owl-theme">\n <div color-background="item.thumbnail" class="item">\n <div ng-class="{active: data.relatedLoading === item.id}" class="movie-loading blocker"></div>\n <div ng-include="\'templates/_movie-detail.html\'" parallax="" scroll-parent="" class="item-wrapper"></div>\n </div>\n </div>\n</div>\n<div ng-show="data.pagination.length > 1" class="pagination">\n <hr/>\n <div class="items">\n <div ng-repeat="item in data.pagination" class="item"><span ng-if="item.current" class="current">{{ $index + 1 }}</span><a ui-sref="base.favorite(item.url)" ng-if="!item.current && $state.is(\'base.favorite\')">{{ $index + 1 }}</a><a ui-sref="base.menu(item.url)" ng-if="!item.current && $state.is(\'base.menu\')">{{ $index + 1 }}</a><a ui-sref="base.recent(item.url)" ng-if="!item.current && $state.is(\'base.recent\')">{{ $index + 1 }}</a><a ui-sref="base.search(item.url)" ng-if="!item.current && $state.is(\'base.search\')">{{ $index + 1 }}</a></div>\n </div>\n</div>\n<div ng-include="\'templates/_payment-add.html\'" ng-controller="PaymentCtrl"></div>'; | |
return __p | |
}, this.Templates["header._auth"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div class="container">\n <div ng-click="closeModal()" class="bg"></div>\n <form name="formLogin" ng-submit="submitLogin(formLogin)" ng-class="{active: modal.login === \'login\'}" loading-container="data.formLoading" class="popup">\n <div class="header">ĐĂNG NHẬP<i ng-click="closeModal()" class="icon icon-x-dark close-btn"></i></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="model.login.mobile" placeholder="Số điện thoại" focus-me="modal.login === \'login\'"/>\n </div>\n <div class="form-group">\n <input type="password" ng-model="model.login.password" placeholder="Mật khẩu"/>\n </div>\n <div class="form-group text text-right"><a ng-click="showModal(\'register\', true)">Quên mật khẩu?</a></div>\n <div class="form-group">\n <button type="submit" class="btn">Đăng nhập</button>\n </div>\n <div class="form-group">\n <button type="button" ng-click="submitFacebook()" class="btn btn-facebook"><i class="icon icon-facebook"></i> Đăng nhập với Facebook</button>\n </div>\n </div>\n <div class="footer"><a ng-click="showModal(\'register\')">Chưa có tài khoản ?</a></div>\n </form>\n <form name="formRegister" ng-submit="submitRegister(formRegister)" ng-class="{active: modal.login === \'register\'}" loading-container="data.formLoading" class="popup">\n <div class="header"><span ng-show="!data.forgot">ĐĂNG KÝ</span><span ng-show="data.forgot">QUÊN MẬT KHẨU</span><i ng-click="closeModal()" class="icon icon-x-dark close-btn"></i></div>\n <div ng-class="{active: data.step === 1}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="model.register.mobile" placeholder="Số điện thoại" focus-me="modal.login === \'register\' && data.step === 1"/>\n </div>\n <div ng-show="!data.refer && !data.forgot" class="form-group refer">Bạn có mã ưu đãi <a ng-click="data.refer = true">Nhấn vào đây</a></div>\n <div ng-show="data.refer" ng-if="!data.forgot" class="form-group">\n <input type="text" ng-model="model.register.referralCode" placeholder="Mã ưu đãi (có thể bỏ qua)"/>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Tiếp tục</button>\n </div><small class="text-grey">Tôi đồng ý với các <a href="http://goo.gl/2472xb" target="_blank" class="text-white">Điều Khoản Sử Dụng </a>của dịch vụ Fim+.</small>\n </div>\n <div ng-class="{active: data.step === 2}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="model.register.code" placeholder="Nhập OTP" focus-me="modal.login === \'register\' && data.step === 2"/>\n </div>\n <div class="form-group">\n <div class="half">\n <button type="button" ng-click="data.step = 1" class="btn">Quay lại</button>\n </div>\n <div class="half">\n <button type="submit" ng-class="{disabled: !model.register.code}" class="btn">Tiếp theo</button>\n </div>\n </div>\n </div>\n <div ng-class="{active: data.step === 3}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="password" ng-model="model.register.password" placeholder="Nhập mật khẩu" focus-me="modal.login === \'register\' && data.step === 3"/>\n </div>\n <div class="form-group">\n <input type="password" ng-model="model.register.password2" placeholder="Nhập lại mật khẩu"/>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Hoàn tất</button>\n </div>\n </div>\n <div class="footer"><a ng-click="showModal(\'login\'); data.forgot = false">Đã có tài khoản ?</a></div>\n </form>\n <div ng-class="{active: modal.login === \'success\'}" class="popup">\n <div class="header">CHÚC MỪNG<i ng-click="closeModal()" class="icon icon-x-dark close-btn"></i></div>\n <div class="body text-center">\n <div class="form-group"><i class="icon icon-check-white"></i></div>\n <div class="form-group text">Bạn đã đăng ký dịch vụ fim + thành công</div>\n <div class="form-group"><a ng-click="closeModal()" class="btn">Hoàn tất</a></div>\n </div>\n </div>\n</div>'; | |
return __p | |
}, this.Templates["header._login"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<form name="formLogin" ng-submit="submitLogin(formLogin)" ng-class="{active: modal.login === \'login\'}" loading-container="data.formLoading" class="popup">\n <div class="header">ĐĂNG NHẬP<i ng-click="closeModal()" class="icon icon-x-dark close-btn"></i></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="model.login.mobile" placeholder="Số điện thoại" focus-me="modal.login === \'login\'"/>\n </div>\n <div class="form-group">\n <input type="password" ng-model="model.login.password" placeholder="Mật khẩu"/>\n </div>\n <div class="form-group text text-right"><a ng-click="showModal(\'register\', true)">Quên mật khẩu?</a></div>\n <div class="form-group">\n <button type="submit" class="btn">Đăng nhập</button>\n </div>\n <div class="form-group">\n <button type="button" ng-click="submitFacebook()" class="btn btn-facebook"><i class="icon icon-facebook"></i> Đăng nhập với Facebook</button>\n </div>\n </div>\n <div class="footer"><a ng-click="showModal(\'register\')">Chưa có tài khoản ?</a></div>\n</form>'; | |
return __p | |
}, this.Templates["header._register"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<form name="formRegister" ng-submit="submitRegister(formRegister)" ng-class="{active: modal.login === \'register\'}" loading-container="data.formLoading" class="popup">\n <div class="header"><span ng-show="!data.forgot">ĐĂNG KÝ</span><span ng-show="data.forgot">QUÊN MẬT KHẨU</span><i ng-click="closeModal()" class="icon icon-x-dark close-btn"></i></div>\n <div ng-class="{active: data.step === 1}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="model.register.mobile" placeholder="Số điện thoại" focus-me="modal.login === \'register\' && data.step === 1"/>\n </div>\n <div ng-show="!data.refer && !data.forgot" class="form-group refer">Bạn có mã ưu đãi <a ng-click="data.refer = true">Nhấn vào đây</a></div>\n <div ng-show="data.refer" ng-if="!data.forgot" class="form-group">\n <input type="text" ng-model="model.register.referralCode" placeholder="Mã ưu đãi (có thể bỏ qua)"/>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Tiếp tục</button>\n </div><small class="text-grey">Tôi đồng ý với các <a href="http://goo.gl/2472xb" target="_blank" class="text-white">Điều Khoản Sử Dụng </a>của dịch vụ Fim+.</small>\n </div>\n <div ng-class="{active: data.step === 2}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="model.register.code" placeholder="Nhập OTP" focus-me="modal.login === \'register\' && data.step === 2"/>\n </div>\n <div class="form-group">\n <div class="half">\n <button type="button" ng-click="data.step = 1" class="btn">Quay lại</button>\n </div>\n <div class="half">\n <button type="submit" ng-class="{disabled: !model.register.code}" class="btn">Tiếp theo</button>\n </div>\n </div>\n </div>\n <div ng-class="{active: data.step === 3}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="password" ng-model="model.register.password" placeholder="Nhập mật khẩu" focus-me="modal.login === \'register\' && data.step === 3"/>\n </div>\n <div class="form-group">\n <input type="password" ng-model="model.register.password2" placeholder="Nhập lại mật khẩu"/>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Hoàn tất</button>\n </div>\n </div>\n <div class="footer"><a ng-click="showModal(\'login\'); data.forgot = false">Đã có tài khoản ?</a></div>\n</form>'; | |
return __p | |
}, this.Templates["header._success"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div ng-class="{active: modal.login === \'success\'}" class="popup">\n <div class="header">CHÚC MỪNG<i ng-click="closeModal()" class="icon icon-x-dark close-btn"></i></div>\n <div class="body text-center">\n <div class="form-group"><i class="icon icon-check-white"></i></div>\n <div class="form-group text">Bạn đã đăng ký dịch vụ fim + thành công</div>\n <div class="form-group"><a ng-click="closeModal()" class="btn">Hoàn tất</a></div>\n </div>\n</div>'; | |
return __p | |
}, this.Templates["header.header"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div ng-controller="HeaderCtrl">\n <div ng-class="{active: modal.menu}" class="sidebar-menu-area">\n <div ng-click="closeModal()" class="bg"></div>\n <nav class="menu">\n <ul>\n <li ng-repeat="item in data.menu"><a ui-sref="base.index" ng-click="closeModal()" ng-if="item.url === \'/hd1/v1/home\'" ui-sref-active="active">{{ item.title }}</a><a ui-sref="base.favorite" ng-click="closeModal()" ng-if="item.url === \'/hd1/v1/user/favorites\' && user" ui-sref-active="active">{{ item.title }}</a><a ui-sref="base.recent" ng-click="closeModal()" ng-if="item.url === \'/hd1/v1/user/recents\' && user" ui-sref-active="active">{{ item.title }}</a><a ui-sref="base.category({category: item.title.split(\' \').join(\'-\').toLowerCase(), id: item.id})" ng-click="closeModal()" ng-if="item.url.startsWith(\'/hd1/v1/page\')" ui-sref-active="active">{{ item.title }}</a></li>\n </ul>\n </nav>\n </div>\n <div scroll-window="" ng-class="{scroll: data.search}" class="header-area">\n <div class="container">\n <div ng-click="showModal(\'menu\')" class="menu-icon">\n <div class="bar"></div>\n <div class="bar"></div>\n <div class="bar"></div>\n </div>\n <div class="logo"><a ui-sref="base.index"><i class="icon icon-logo"></i></a></div>\n <nav class="menu">\n <ul>\n <li><a ng-click="data.search = !data.search"><i class="icon icon-search-white"></i></a>\n <form ng-submit="search()" ng-class="{active: data.search}" class="search">\n <input type="text" ng-model="model.search" placeholder="Tên phim, diễn viên, tác giả" focus-me="data.search"/>\n </form>\n </li>\n <li ng-if="user"><a ng-click="showModal(\'invite\')"><i class="icon icon-gift-white"></i></a></li>\n <li ng-if="!user" class="login"><a ng-click="showModal(\'login\')">Đăng Nhập</a></li>\n <li ng-if="!user"><a ng-click="showModal(\'register\')">Đăng Ký</a></li>\n <li ng-if="user"><a ui-sref="base.profile"><span ng-show="user.fullName">{{ user.fullName }}</span><span ng-show="!user.fullName">Tài Khoản</span></a></li>\n <li ng-if="user" class="settings"><i class="icon icon-profile-white"></i>\n <div class="overlay">\n <div class="inner"><a ui-sref="base.profile">TÀI KHOẢN</a>\n <!-- <a href="#">DỊCH VỤ</a>--><a ng-click="logout()">ĐĂNG XUẤT</a>\n </div>\n </div>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n <div ng-class="{active: modal.invite}" class="popup-wrapper popup-invite">\n <div ng-click="closeModal()" class="bg"></div>\n <div class="popup">\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark"></i></div>\n <div class="main-title">MỜI BẠN BÈ</div><i class="icon icon-invite"></i>\n <div class="description">Hãy mời bạn bè cùng tham gia Fim+</div>\n <div class="send">GỬI CODE CỦA BẠN</div>\n <div class="code">{{ data.code }}</div><a ng-click="showModal(\'promo\')" class="btn action">Bạn đang có mã ưu đãi</a>\n </div>\n </div>\n <div ng-class="{active: modal.promo}" class="popup-wrapper popup-invite popup-promo">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitPromo()" loading-container="data.formLoading" class="popup">\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark"></i></div>\n <div class="main-title">NHẬP MÃ ƯU ĐÃI</div>\n <div class="description">Nhập mã ưu đãi để nhận phim miễn phí, ngày vip</div>\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <input type="text" ng-model="promoModel._codeVal" focus-me="modal.promo"/><br/>\n <button class="btn submit">Xác nhận</button><a ng-click="showModal(\'invite\')" class="btn action">Bạn đang có mã ưu đãi</a>\n </form>\n </div>\n <div ng-include="\'templates/header/_auth.html\'" ng-class="{active: modal.login}" class="popup-wrapper popup-login"></div>\n</div>'; | |
return __p | |
}, this.Templates["home.home"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div class="movie-hover-bg"></div>\n<div class="bn-area wrapper">\n <div class="container">\n <div ng-style="{\'background-image\': data.mainBanner}" loading-container="!data.mainBanner" class="bn image-responsive"></div>\n <div owl-carousel="\'banner\'" ng-model="data.items" class="items owl-carousel owl-theme">\n <div ng-class="{focus: data.mainBannerFocus === index}" ng-mouseenter="hoverBanner(item, index)" ng-click="showModal(\'single\', {index: index})" class="item">\n <div class="item-wrapper">\n <div class="dummy"></div><img ng-src="{{ item.bannerPortrait }}" alt="" loading-image=""/>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div ng-class="{active: modal.single}" class="movie-detail-area">\n <div ng-click="closeModal()" class="bg"></div>\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark-big"></i></div>\n <div owl-carousel="\'detail\'" owl-carousel-view="modal.listItem" ng-model="data.items" owl-category="ribbon.categoryId" class="items owl-carousel owl-theme">\n <div class="item">\n <div ng-class="{active: data.relatedLoading === item.id}" class="movie-loading blocker"></div>\n <div ng-include="\'templates/_movie-detail.html\'" parallax="" scroll-parent="" class="item-wrapper"></div>\n </div>\n </div>\n</div>\n<div ng-repeat="ribbon in data.ribbons" class="movie-list-area wrapper">\n <div class="container">\n <div class="sub">{{ ribbon.subtitle }}</div>\n <div class="block-title"><a ui-sref="base.menu({category: ribbon.categoryType.split(\' \').join(\'-\').toLowerCase(), id: ribbon.categoryId})">{{ ribbon.categoryType }} ></a></div>\n <div owl-carousel="\'list\'" ng-model="ribbon.items" movie-hover-parent="" class="items owl-carousel owl-theme">\n <div ng-click="showModal(\'list\', {category: ribbon.categoryId, index: index})" movie-hover="" class="item">\n <div ng-include="\'templates/_movie-list.html\'" class="item-wrapper"></div>\n </div>\n </div>\n </div>\n</div>\n<div ng-class="{active: modal.list == ribbon.categoryId}" ng-repeat="ribbon in data.ribbons" class="movie-detail-area">\n <div ng-click="closeModal()" class="bg"></div>\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark-big"></i></div>\n <div owl-carousel="\'detail\'" owl-carousel-view="modal.listItem" ng-model="ribbon.items" owl-category="ribbon.categoryId" class="items owl-carousel owl-theme">\n <div color-background="item.thumbnail" class="item">\n <div ng-class="{active: data.relatedLoading === item.id}" class="movie-loading blocker"></div>\n <div ng-include="\'templates/_movie-detail.html\'" parallax="" scroll-parent="" class="item-wrapper"></div>\n </div>\n </div>\n</div>\n<div class="movie-hover-bg"></div>\n<div ng-controller="PaymentCtrl">\n <div ng-include="\'templates/_payment-add.html\'"></div>\n <div ng-include="\'templates/_package.html\'"></div>\n</div>'; | |
return __p | |
}, this.Templates["payment._payment-buying"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div ng-class="{active: modal.buying}" class="popup-wrapper popup-buying popup-white review">\n <div ng-click="closeModal()" class="bg"></div>\n <div loading-container="data.formLoading" class="popup active">\n <div class="body steps active">\n <div class="content clear">\n <div class="image image-responsive"><img ng-src="{{ data.buying.poster }}" alt="{{ data.buying.title }}"/></div>\n <div class="panel">\n <div class="main-title">{{ data.buying.title }}</div>\n <div class="title">{{ data.buying.knownAs }}</div>\n <div class="genre"><span ng-repeat="info in data.buying.genres">{{ info.name }}<br/></span></div>\n <div class="time">{{ data.buying.hour }} giờ {{ data.buying.minute }} phút</div>\n </div>\n </div><a ng-click="showModal("buyingConfirm")" class="action btn btn-danger"><strong>THUÊ ({{ data.buying.ppvPrice / 1000 }}.000đ)</strong></a>\n </div>\n </div>\n</div>\n<div ng-class="{active: modal.buyingConfirm}" class="popup-wrapper popup-buying popup-white confirm">\n <div ng-click="closeModal()" class="bg"></div>\n <div loading-container="data.formLoading" class="popup active">\n <div class="body steps active">\n <div class="main-title">XÁC NHẬN</div>\n <div class="description">Bạn muốn thuê phim "{{ data.buying.title }}" trong 48 giờ với giá <strong>{{ data.buying.ppvPrice / 1000 }}.000đ</strong> và thanh toán qua tài khoản</div>\n <div class="method clear">\n <div ng-if="data.method.methodType === \'MOMO\'">\n <div class="icons"><img src="images/icon-momo.png" alt=""/></div>\n <div class="popup-title">\n <div class="inner">Ví điện tử MoMo<br/><span class="text">{{ data.method.detail.mobile }}</span></div>\n </div>\n </div>\n <!--div(ng-if="data.method.methodType === \'CREDITCARD\'")-->\n <!-- .icons-->\n <!-- img(src=\'images/icon-atm.png\', alt=\'\')-->\n <!-- .popup-title-->\n <!-- .inner-->\n <!-- | Thẻ tín dụng-->\n <div ng-if="data.method.methodType === \'SMARTLINK\'">\n <div class="icons"><img src="images/icon-smartlink.png" alt=""/></div>\n <div class="popup-title">\n <div class="inner">Thẻ ngân hàng nội địa</div>\n </div>\n </div>\n </div>\n <div class="action"><a ng-click="closeModal()" class="btn">Huỷ</a><a ng-click="submitBuyItem(data.buying)" class="btn">Thanh Toán</a></div>\n </div>\n </div>\n</div>'; | |
return __p | |
}, this.Templates["payment._payment-creditcard-add"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div ng-class="{active: modal.creditcard}" class="popup-wrapper popup-login popup-white popup-method-single small-icons">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitCreditcard()" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-atm"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal("method")">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div><br/>\n <div class="form-group">\n <button type="submit" class="btn">Kết nối</button>\n </div>\n </div>\n </form>\n</div>'; | |
return __p | |
}, this.Templates["payment._payment-list"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div ng-class="{active: modal.method}" class="popup-wrapper popup-method">\n <div ng-click="closeModal()" class="bg"></div>\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark-big"></i></div>\n <div class="popup">\n <div class="main-title">\n {{data.methods.length,plural,\n =0 {THÊM PHƯƠNG THỨC THANH TOÁN}\n other {THAY ĐỔI PHƯƠNG THỨC THANH TOÁN}\n }}\n </div>\n <div ng-show="data.methods.length" class="items selectedItems">\n <div ng-repeat="item in data.methods" ng-hide="item.hidden" class="popup-item active pointer">\n <div ng-click="showModal(item.unsync); data.unsync = item;">\n <div class="icons"><img src="{{item.image}}" alt=""/></div>\n <div class="popup-title">\n <div class="inner">{{item.title}}<br/><span class="text">{{ item.detail.mobile }}</span></div>\n </div>\n </div><a ng-class="{active: settingModel.method === item.id}" title="Chọn mặc định" ng-click="settingModel.method = item.id" class="default"></a>\n </div>\n </div>\n <div class="items"><a ng-click="showModal(\'momo\')" class="popup-item">\n <!--.icons-->\n <!-- img(src=\'images/icon-momo.png\', alt=\'\')-->\n <div class="popup-title">\n <div class="inner">Ví điện tử MoMo</div>\n </div></a>\n <!--a.popup-item(ng-click="showModal(\'creditcard\')", ng-if="!isAdded(\'CREDITCARD\')")-->\n <!-- //.icons-->\n <!-- // img(src=\'images/icon-atm.png\', alt=\'\')-->\n <!-- .popup-title-->\n <!-- .inner-->\n <!-- | Thẻ tín dụng quốc tế--><a ng-click="showModal(\'smartlink\')" ng-if="!isAdded(\'SMARTLINK\')" class="popup-item">\n <!--.icons-->\n <!-- img(src=\'images/icon-smartlink.png\', alt=\'\')-->\n <div class="popup-title">\n <div class="inner">Thẻ ngân hàng nội địa</div>\n </div></a>\n </div>\n </div>\n</div>'; | |
return __p | |
}, this.Templates["payment._payment-momo-add"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div ng-class="{active: modal.momo}" class="popup-wrapper popup-login popup-white popup-method-single small-icons">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitMomo()" loading-container="data.formLoading" class="popup active">\n <div class="header"><a class="return text-uppercase text-grey-light"><b ng-click="showModal("method")" ng-if="data.step === 1">Trở lại</b><b ng-click="data.step = 1" ng-if="data.step === 2">Trở lại</b></a><i class="icon icon-momo"></i></div>\n <div ng-class="{active: data.step === 1}" class="body steps">\n <div class="sub-body">\n <p class="text-grey-light text-center text-small">Nhập số điện thoại bạn đã dùng để đăng kí MOMO</p>\n <div class="form-group">\n <input type="text" ng-model="momoModel.phoneNumber" placeholder="Nhập số điện thoại" focus-me="modal.momo && data.step === 1"/><small ng-show="errors.message" class="text-red"><i><b> {{ errors.message }}</b></i></small>\n </div>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Kết nối</button>\n </div>\n </div>\n <div ng-class="{active: data.step === 2}" class="body steps">\n <div class="sub-body">\n <p class="text-grey-light text-center text-small">Nhập số mã OTP bạn vừa nhận được trong app MOMO</p>\n <div class="form-group">\n <input type="text" ng-model="momoModel.otp" placeholder="Nhập OTP" focus-me="modal.momo && data.step === 2"/><small ng-show="errors.message" class="text-red"><i><b> {{ errors.message }}</b></i></small>\n </div>\n </div>\n <div class="form-group">\n <!--.half-->\n <!-- button.btn(type=\'button\', ng-click=\'data.step = 1\') Quay lại-->\n <!--.half-->\n <button type="submit" ng-class="{disabled: !momoModel.otp}" class="btn">Hoàn tất</button>\n </div>\n </div>\n </form>\n</div>'; | |
return __p | |
}, this.Templates["payment._payment-remove"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div ng-class="{active: modal.momoUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-momo"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal("method")">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <p class="text-center">{{ data.unsync.detail.mobile }}</p>\n </div>\n <div class="form-group">\n <button type="submit" class="btn btn-default">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n</div>\n<div ng-class="{active: modal.creditcardUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-atm"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal("method")">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div><br/>\n <div class="form-group">\n <button type="submit" class="btn btn-default">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n</div>\n<div ng-class="{active: modal.smartlinkUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-smartlink"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal("method")">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group text-center">{{ momoModel.phoneNumber }}</div>\n <div class="form-group">\n <button type="submit" class="btn btn-default">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n</div>'; | |
return __p | |
}, this.Templates["payment._payment-smartlink-add"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div ng-class="{active: modal.smartlink}" class="popup-wrapper popup-login popup-white popup-method-single small-icons">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitSmartlink()" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-smartlink"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal("method")">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div><br/>\n <div class="form-group">\n <button type="submit" class="btn">Kết nối</button>\n </div>\n </div>\n </form>\n</div>'; | |
return __p | |
}, this.Templates["profile-history"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div class="profile-area">\n <div class="container"><a ui-sref="base.index" class="back"><i class="icon icon-arrow-left-dark"></i> QUAY LẠI XEM PHIM</a>\n <div class="panel clear">\n <nav ng-include="\'templates/_profile-nav.html\'" class="menu"></nav>\n <div class="details profile-history">\n <div ng-repeat="item in data.items" class="block">\n <div class="title">\n <div class="year">{{ item.date.getFullYear() }}</div>\n <div class="date">ngày {{ item.day }}</div>\n </div>\n <div class="content text">\n <div class="month">Tháng {{ item.dategetMonth() + 1 }}</div>\n <hr/>\n <div class="row">\n <div class="meta">{{ item.hour }}:{{ item.minute }}</div>\n <div class="description">{{ item.message }}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>'; | |
return __p | |
}, this.Templates["profile-password"] = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div class="profile-area">\n <div class="container"><a ui-sref="base.index" class="back"><i class="icon icon-arrow-left-dark"></i> QUAY LẠI XEM PHIM</a>\n <div class="panel clear">\n <nav ng-include="\'templates/_profile-nav.html\'" class="menu"></nav>\n <div class="details profile-form">\n <form ng-submit="submit()" class="form">\n <div class="main-title text">ĐỔI MẬT KHẨU</div>\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div ng-show="success.message" class="form-group form-success">{{ success.message }}</div>\n <div class="form-group">\n <input type="password" ng-model="model.oldPassword" placeholder="Mật khẩu cũ"/>\n </div><br/><br/>\n <div class="form-group">\n <input type="password" ng-model="model.newPassword" placeholder="Mật khẩu mới"/>\n </div>\n <div class="form-group">\n <input type="password" ng-model="model.newPassword2" placeholder="Nhập lại mật khẩu"/>\n </div><br/><br/>\n <button type="submit" loading-container="data.formLoading" class="btn">THAY ĐỔI</button>\n </form>\n </div>\n </div>\n </div>\n</div>'; | |
return __p | |
}, this.Templates.profile = function(obj) { | |
obj || (obj = {}); | |
var __p = ""; | |
_.escape; | |
with(obj) __p += '\n<div ng-class="{active: modal.mobile}" class="popup-wrapper popup-login">\n <div class="container">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitMobile()" loading-container="data.formLoading" class="popup active">\n <div ng-class="{active: data.step === 1}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="mobileModel.mobile" placeholder="Số điện thoại mới"/>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Tiếp theo</button>\n </div>\n </div>\n <div ng-class="{active: data.step === 2}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="mobileModel.code" placeholder="Nhập OTP"/>\n </div>\n <div class="form-group">\n <div class="half">\n <button type="button" ng-click="data.step = 1" class="btn">Quay lại</button>\n </div>\n <div class="half">\n <button type="submit" ng-class="{disabled: !mobileModel.code}" class="btn">Hoàn tất</button>\n </div>\n </div>\n </div>\n </form>\n </div>\n</div>\n<div class="profile-area">\n <div class="container"><a ui-sref="base.index" class="back"><i class="icon icon-arrow-left-dark"></i> QUAY LẠI XEM PHIM</a>\n <div class="panel clear">\n <nav ng-include="\'templates/_profile-nav.html\'" class="menu"></nav>\n <div class="details profile-details">\n <div class="block panel-info">\n <div class="title text">THÔNG TIN</div>\n <div class="content">{{ Object.keys(modal).length }}\n <div ng-show="errors.message && !isModal()" class="row form-error">{{ errors.message }}</div>\n <div ng-show="success.message" class="row form-success">{{ success.message }}</div>\n <div ng-hide="data.editing === \'name\'" class="row has-action">\n <div ng-show="model.fullName" class="value name">{{ model.fullName }}</div>\n <div ng-show="!model.fullName" class="value name empty">Tên</div><a ng-click="edit(\'name\')" class="action text">sửa</a>\n </div>\n <div ng-show="data.editing === \'name\'" class="row">\n <input type="text" ng-model="model.fullName" ng-blur="submitProfile()" focus-me="data.editing === \'name\'" class="name"/>\n </div>\n <div ng-hide="data.editing === \'email\'" class="row has-action">\n <div ng-show="model.email" class="value">{{ model.email }}</div>\n <div ng-show="!model.email" class="value empty">Email</div><a ng-click="edit(\'email\')" class="action text">sửa</a>\n </div>\n <div ng-show="data.editing === \'email\'" class="row">\n <input type="email" ng-model="model.email" ng-blur="submitProfile()" focus-me="data.editing === \'email\'"/>\n </div>\n <hr/>\n <div class="row has-action">\n <div ng-show="model.mobile" class="value">{{ model.mobile }}</div>\n <div ng-show="!model.mobile" class="value empty">Điện thoại</div><a ng-click="showModal(\'mobile\')" class="action text">sửa</a>\n </div>\n </div>\n </div>\n <div ng-controller="PaymentCtrl" class="block panel-payment small-icons">\n <div class="title text">THANH TOÁN</div>\n <div class="content">\n <div class="row has-action"><a ng-click="showModal(\'method\')" ng-class="{"action":data.methods.length !==0 }">\n {{data.methods.length,plural,\n =0 {THÊM PHƯƠNG THỨC}\n other {THAY ĐỔI}\n }}</a>{{ getDefault().methodType }}</div>\n <hr/>\n <div ng-class="{"form-error": !data.valid,"form-success":data.valid}" class="row">{{ !data.valid ? "Bạn chưa đăng ký gói Fim+" : "Bạn đang sử dụng gói Fim+"}}</div><a ng-click="showModal(\'package\',getDefault().methodType)">{{ !data.valid ? "ĐĂNG KÝ GÓI FIM+" : "THAY ĐỔI GÓI THUÊ BAO"}}</a>\n </div>\n <div ng-include="\'templates/_payment-add.html\'"></div>\n <div ng-class="{active: modal.momoUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-momo"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal("method")">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <p class="text-center">{{ data.unsync.detail.mobile }}</p>\n </div>\n <div class="form-group">\n <button type="submit" class="btn btn-default">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n </div>\n <div ng-class="{active: modal.creditcardUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-atm"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal("method")">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div><br/>\n <div class="form-group">\n <button type="submit" class="btn btn-default">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n </div>\n <div ng-class="{active: modal.smartlinkUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-smartlink"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal("method")">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group text-center">{{ momoModel.phoneNumber }}</div>\n <div class="form-group">\n <button type="submit" class="btn btn-default">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n </div>\n <div ng-include="\'templates/_package.html\'"></div>\n </div>\n <div class="block panel-setting">\n <div class="title text">THIẾT LẬP</div>\n <div class="content">\n <hr/>\n <div class="row">\n <div class="label text">Độ phân giải</div>\n <div class="input">\n <div class="radio-normal">\n <input id="resolution-1" type="radio" ng-model="settingModel.resolution" value="360" name="resolution"/>\n <label for="resolution-1">360</label>\n </div>\n <div class="radio-normal">\n <input id="resolution-2" type="radio" ng-model="settingModel.resolution" value="480" name="resolution"/>\n <label for="resolution-2">480</label>\n </div>\n <div class="radio-normal">\n <input id="resolution-3" type="radio" ng-model="settingModel.resolution" value="720" name="resolution"/>\n <label for="resolution-3">720</label>\n </div>\n <div class="radio-normal">\n <input id="resolution-4" type="radio" ng-model="settingModel.resolution" value="1080" name="resolution" checked=""/>\n <label for="resolution-4">1080</label>\n </div>\n </div>\n </div>\n <div class="row">\n <div class="label text">Tên phim</div>\n <div class="input">\n <div class="radio-normal">\n <input id="name-1" type="radio" ng-model="settingModel.name" value="en" name="name"/>\n <label for="name-1">Anh</label>\n </div>\n <div class="radio-normal">\n <input id="name-2" type="radio" ng-model="settingModel.name" value="vi" name="name"/>\n <label for="name-2">Việt</label>\n </div>\n </div>\n </div>\n <div class="row">\n <div class="label text">Phụ đề</div>\n <div class="input">\n <div class="checkbox-slide">\n <input id="subtitle" type="checkbox" ng-model="settingModel.subtitle" name="subtitle" checked=""/>\n <label for="subtitle"><span class="on">MỞ</span><span class="off">TẮT</span></label>\n </div>\n <!-- <a href="#" class="btn small text">Tuỳ chỉnh</a>-->\n </div>\n </div>\n <div class="row">\n <div class="label text">Quản lý trẻ em</div>\n <div class="input">\n <div class="checkbox-slide">\n <input id="parental" type="checkbox" ng-model="settingModel.parental" name="parental"/>\n <label for="parental"><span class="on">MỞ</span><span class="off">TẮT</span></label>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>'; | |
return __p | |
}, | |
function() { | |
"use strict"; | |
angular.module("Authentication", []).config(["$httpProvider", function(a) { | |
return a.interceptors.push("AuthInterceptor") | |
}]).run(["$rootScope", function(a) { | |
return a.user = window.localStorage.user ? JSON.parse(window.localStorage.user) : null | |
}]).factory("AuthInterceptor", ["$rootScope", "$q", "$window", "HttpBuffer", "GlobalConfig", function(a, b, c, d, e) { | |
return { | |
request: function(a) { | |
return a.headers = a.headers || {}, a.headers["Accept-Language"] = "vi", c.localStorage.content && (a.url.startsWith(e.auth) ? a.headers.Authorization = c.localStorage.auth : a.url.startsWith(e.content) ? a.headers.Authorization = c.localStorage.content : a.url.startsWith(e.payment) ? a.headers.Authorization = c.localStorage.payment : a.url.startsWith(e.billing) && (a.headers.Authorization = c.localStorage.billing)), a | |
}, | |
responseError: function(a) { | |
return b.reject(a) | |
} | |
} | |
}]).factory("Authenticator", ["$rootScope", "$http", "$window", "$q", "HttpBuffer", "ContentLoginService", "PaymentLoginService", "BillingLoginService", function(a, b, c, d, e, f, g, h) { | |
return { | |
login: function(i, j, k, l) { | |
return "function" == typeof i ? i.save(j, function(b) { | |
var i, m, n, o, p; | |
for (p = [], c.localStorage.auth = b.cas_access_token, n = 0; n < b.tickets.length;) b.tickets[n].service === j.services[0] ? p[0] = b.tickets[n].ticket : b.tickets[n].service === j.services[1] ? p[1] = b.tickets[n].ticket : b.tickets[n].service === j.services[2] && (p[2] = b.tickets[n].ticket), n++; | |
return m = f.save({ | |
ticket: p[0] | |
}), o = g.save({ | |
ticket: p[1] | |
}), i = h.save({ | |
ticket: p[2] | |
}), d.all([m.$promise, o.$promise, i.$promise]).then(function(b) { | |
return c.localStorage.content = b[0].access_token, c.localStorage.payment = b[1].access_token, c.localStorage.billing = b[2].access_token, c.localStorage.user = JSON.stringify(b[0].user_profile), a.user = b[0].user_profile, a.$emit("authorized"), e.retryAll(), k ? k(b) : void 0 | |
}, l) | |
}, l) : b.post(i, j, {}).success(function(b, d, f) { | |
return c.localStorage.token = b.token, a.$emit("authorized"), e.retryAll(), k(b, d) | |
}).error(l) | |
}, | |
logout: function(b) { | |
return c.localStorage.content && (delete c.localStorage.auth, delete c.localStorage.content, delete c.localStorage.payment, delete c.localStorage.billing, delete c.localStorage.user, delete c.localStorage.settingModel), a.user = null, a.$emit("loggedOut"), b ? b() : void 0 | |
}, | |
isLogged: function() { | |
return !!c.localStorage.content | |
} | |
} | |
}]).factory("HttpBuffer", ["$injector", function(a) { | |
var b, c, d; | |
return d = function(b, c) { | |
var d, e, f; | |
return f = function(a) { | |
return c.resolve(a) | |
}, e = function(a) { | |
return c.reject(a) | |
}, d = d || a.get("$http"), d(b).then(f, e) | |
}, c = [], b = void 0, { | |
append: function(a, b) { | |
return c.push({ | |
config: a, | |
deferred: b | |
}) | |
}, | |
rejectAll: function(a) { | |
var b; | |
if (a) | |
for (b = 0; b < c.length;) c[b].deferred.reject(a), ++b; | |
return c = [] | |
}, | |
retryAll: function() { | |
var a; | |
for (a = 0; a < c.length;) d(c[a].config, c[a].deferred), ++a; | |
return c = [] | |
} | |
} | |
}]) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a, b, c, d; | |
switch (b = "https://api.fimplus.io/", d = { | |
cas: "cas/", | |
cm: "cm/", | |
payment: "payment/", | |
billing: "billing/" | |
}, ENV) { | |
case "prod": | |
c = "903378619781560"; | |
break; | |
case "local": | |
c = "1674041496206658", b = "http://hdvietv3.cloudapp.net/", d = { | |
cas: "", | |
cm: "", | |
payment: "", | |
billing: "" | |
}; | |
break; | |
case "dev": | |
b = "https://api.fimplus.io/", c = "925401937544383" | |
} | |
a = { | |
fBappId: c, | |
auth: "" + b + d.cas + "hd1cas/v1.1/", | |
content: "" + b + d.cm + "hd1/v1/", | |
payment: "" + b + d.payment + "hd1payment/v1/", | |
billing: "" + b + d.billing + "hd1billing/v1/", | |
socket: "http://fimplus-dev.cloudapp.net:21345", | |
services: ["hd1_cm", "hd1_payment", "hd1_billing"], | |
base: "/" | |
}, angular.module("app.configs", []).constant("AppName", "FIM+").constant("GlobalConfig", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
angular.module("app.controllers", ["app.controllers"]), angular.module("app.services", ["app.configs"]), angular.module("app.directives", []), angular.module("app", ["ngResource", "ngMessageFormat", "ui.router", "facebook", "app.configs", "app.directives", "app.controllers", "app.services", "Authentication"]), angular.element(document).ready(function() { | |
return angular.bootstrap(document, ["app"], { | |
strictDi: !0 | |
}) | |
}) | |
}.call(this), | |
function() { | |
var a; | |
a = function(a, b, c, d, e, f) { | |
return a.html5Mode(!0).hashPrefix("!"), c.otherwise("/"), d.classNameFilter(new RegExp("ng-fade.+")), e.init(f.fBappId) | |
}, a.$inject = ["$locationProvider", "$stateProvider", "$urlRouterProvider", "$animateProvider", "FacebookProvider", "GlobalConfig"], angular.module("app").config(a) | |
}.call(this), | |
function() { | |
var a; | |
a = function(a, b, c, d) { | |
var e, f; | |
return a.$state = b, a.$stateParams = c, a.notify = {}, a.root = {}, a.root.appLoaded = !0, a.root.isModal = !1, a.root.shouldCloseModal = !0, $(document).keyup(function(b) { | |
return 27 === b.keyCode ? (a.$apply(function() { | |
return a.root.isModal = !1 | |
}), a.$emit("closeModal")) : 37 === b.keyCode ? $(".movie-detail-area.active .owl-prev:not(.disabled)").click() : 39 === b.keyCode ? $(".movie-detail-area.active .owl-next:not(.disabled)").click() : void 0 | |
}), a.$on("openModal", function() { | |
return a.root.isModal = !0 | |
}), a.$on("closeModal", function() { | |
return a.root.isModal = !1 | |
}), f = void 0, e = void 0, a.notifySuccess = function(b) { | |
return a.cancelNotify(), a.notify.success = b, f = d(function() { | |
return a.notify.success = !1 | |
}, 5e3) | |
}, a.notifyError = function(b) { | |
return a.notify.error = b, e = d(function() { | |
return a.notify.error = !1 | |
}, 5e3) | |
}, a.cancelNotify = function() { | |
return f && d.cancel(f), e && d.cancel(e), a.notify.success = !1, a.notify.error = !1 | |
} | |
}, a.$inject = ["$rootScope", "$state", "$stateParams", "$timeout"], angular.module("app").run(a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a, b; | |
b = function(a, b) { | |
return a.state("base", { | |
url: b.base, | |
"abstract": !0 | |
}) | |
}, b.$inject = ["$stateProvider", "GlobalConfig"], a = function(a, b, c, d, e, f, g, h, i, j) { | |
var k; | |
return b.model = {}, b.originModel = {}, b.data = {}, b.data.pagination = [], b.data.formLoading = !1, b.data.relatedLoading = !1, b.modal = {}, b.errors = {}, b.success = {}, b.data.items = [], b.data.ribbons = [], b.modal.single = !1, b.modal.list = !1, b.modal.listItem = 0, b.setTitle = function(a) { | |
return h.set(a) | |
}, b.buildData = function() { | |
return d.search().category && d.search().id ? c(function() { | |
return b.showModal("list", { | |
category: d.search().category, | |
index: d.search().id | |
}) | |
}, 500) : d.search().id ? c(function() { | |
return b.showModal("single", { | |
index: d.search().id | |
}) | |
}, 500) : void 0 | |
}, a.$on("moveTo", function(a, c) { | |
var e, f; | |
if (b.modal.list || b.modal.single) { | |
if (d.search("id", c), f = void 0, b.modal.list && b.data.ribbons) | |
for (e = 0; e < b.data.ribbons.length;) { | |
if (b.data.ribbons[e].categoryId === b.modal.list) { | |
f = b.data.ribbons[e].items[c]; | |
break | |
} | |
e++ | |
} else b.modal.single && (f = b.data.items[c]); | |
return b.getDetail(f) | |
} | |
}), b.getDetail = function(a) { | |
return a && !a._extra ? (a._extra = {}, i.get({ | |
id: a.id | |
}, function(c) { | |
var d; | |
return a._extra = c, d = (new Date(1e3 * parseInt(c.expiryDate, 10)) - new Date) / 1e3, a._extra.hourLeft = Math.floor(d / 3600), a._extra.minuteLeft = b.strPadLeft(Math.floor(d % 3600 / 60)) | |
})) : void 0 | |
}, b.addFavorite = function(a) { | |
return j.save({ | |
movieId: a.id | |
}), a._extra.favorite = !0 | |
}, b.removeFavorite = function(a) { | |
return j.remove({ | |
movieId: a.id | |
}), a._extra.favorite = !1 | |
}, b.viewRelated = function(a, d) { | |
return b.data.relatedLoading = a.id, i.get({ | |
id: d.id | |
}, function(d) { | |
return angular.copy({ | |
id: a.id | |
}, a), c(function() { | |
return angular.copy(d, a), a._extra = angular.copy(a), b.data.relatedLoading = !1 | |
}, 200) | |
}) | |
}, b.play = function(a) { | |
return a ? fpPlayer.show("#player", { | |
accessToken: e.localStorage.content, | |
movie: { | |
id: a.id, | |
title: a.title, | |
knownAs: a.knownAs, | |
backdrop: a.backdrop | |
} | |
}) : void 0 | |
}, b.playTrailer = function(a) { | |
return a ? fpPlayer.show("#player", { | |
trailer: a | |
}) : void 0 | |
}, b.showModal = function(c, e) { | |
var f, g; | |
if (b.modal = {}, b.modal[c] = !0, b.errors = {}, g = null, "list" === c) { | |
if (b.modal.list = e.category, b.modal.listItem = e.index, d.search("category", e.category), d.search("id", e.index), b.data.ribbons) | |
for (f = 0; f < b.data.ribbons.length;) { | |
if (b.data.ribbons[f].categoryId === e.category) { | |
g = b.data.ribbons[f].items[e.index]; | |
break | |
} | |
f++ | |
} | |
} else "single" === c && (b.modal.listItem = e.index, d.search("id", e.index), g = b.data.items[e.index]); | |
return b.getDetail(g), a.$emit("openModal"), b.doShowModal(c, e) | |
}, b.doShowModal = function(a, b) {}, b.closeModal = function(c, e, f) { | |
return a.root.shouldCloseModal ? (d.search("category", null), d.search("id", null), b.modal = {}, c || a.$emit("closeModal"), b.doCloseModal(c, e, f)) : void 0 | |
}, b.doCloseModal = function(a, b, c) {}, k = a.$on("closeModal", function() { | |
return c(function() { | |
return b.closeModal(!0) | |
}) | |
}), b.$on("$destroy", k), b.processError = function(a) { | |
return b.data.formLoading = !1, a.status < 500 ? b.errors = a.data : b.errors = "An error occurred!", b.doProcessError(a) | |
}, b.doProcessError = function(a) {}, b.buy = function(b) { | |
return b.play(b) | |
}, b.buildPagination = function(a) { | |
var c, d, e; | |
for (c = 0, d = []; c < (a.totalRecord || a.total) / a.limit;) e = {}, e.page = c > 0 ? c + 1 : null, f.is("base.search") && (e.keyword = g.query), f.is("base.menu") && (e.category = g.category, e.id = g.id), b.data.pagination.push({ | |
current: !g.page && 0 === c || g.page && parseInt(g.page - 1, 10) === c, | |
url: e | |
}), d.push(c++); | |
return d | |
}, b.strPadLeft = function(a, b, c) { | |
return b || (b = "0"), c || (c = 2), (new Array(c + 1).join(b) + a).slice(-c) | |
} | |
}, a.$inject = ["$rootScope", "$scope", "$timeout", "$location", "$window", "$state", "$stateParams", "PageTitle", "MovieService", "UserFavoriteService"], angular.module("app.controllers").config(b).controller("BaseCtrl", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a, b; | |
b = function(a) { | |
return a.state("base.category", { | |
url: "category/:category/:id/", | |
views: { | |
"main@": { | |
templateUrl: "/templates/home/home.html", | |
controller: "CategoryCtrl" | |
} | |
}, | |
reloadOnSearch: !1 | |
}) | |
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d, e) { | |
return a("BaseCtrl", { | |
$scope: b | |
}), b.setTitle(d.category.replace(/-/g, " ").toUpperCase()), b.data.mainBanner = "", b.data.mainBannerFocus = 0, b.modal.single = !1, b.modal.list = !1, b.modal.listItem = 0, e.get({ | |
id: d.id, | |
imageSize: "3x", | |
platform: "website" | |
}, function(a) { | |
return a ? (b.data.items = a.banners, b.data.ribbons = a.ribbons, b.data.mainBanner = "url(" + a.banners[0].bannerLandscape + ")", b.buildData()) : void 0 | |
}, b.processError), b.hoverBanner = function(a, c) { | |
return b.data.mainBannerFocus = c, b.data.mainBanner = "url(" + a.bannerLandscape + ")" | |
} | |
}, a.$inject = ["$controller", "$scope", "$location", "$stateParams", "PageService"], angular.module("app.controllers").config(b).controller("CategoryCtrl", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a, b; | |
b = function(a) { | |
return a.state("base.favorite", { | |
url: "favorite/:page", | |
views: { | |
"main@": { | |
templateUrl: "templates/archives.html", | |
controller: "FavoriteCtrl" | |
} | |
} | |
}) | |
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d) { | |
return a("BaseCtrl", { | |
$scope: b | |
}), b.setTitle("DANH SÁCH CỦA TÔI"), b.data.hideTitle = !0, b.data.tab = "favorite", b.data.formLoading = !0, d.get({ | |
limit: 20, | |
page: c.page && parseInt(c.page - 1, 10) | |
}, function(a) { | |
return b.data.formLoading = !1, a ? (b.data.items = a.results || a.items, b.buildPagination(a.metadata), b.buildData()) : void 0 | |
}, b.processError) | |
}, a.$inject = ["$controller", "$scope", "$stateParams", "UserFavoriteService"], angular.module("app.controllers").config(b).controller("FavoriteCtrl", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a, b; | |
b = function(a) { | |
return a.state("base.menu", { | |
url: "menu/:category/:id/:page", | |
views: { | |
"main@": { | |
templateUrl: "templates/archives.html", | |
controller: "MenuCtrl" | |
} | |
}, | |
reloadOnSearch: !1 | |
}) | |
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d, e) { | |
return a("BaseCtrl", { | |
$scope: b | |
}), b.setTitle(d.category.replace(/-/g, " ").toUpperCase()), b.data.formLoading = !0, e.get({ | |
id: d.id, | |
limit: 20, | |
page: d.page && parseInt(d.page - 1, 10), | |
imageSize: "3x", | |
platform: "website" | |
}, function(a) { | |
return b.data.formLoading = !1, a ? (b.data.items = a.items, b.buildPagination(a.metatada), b.buildData()) : void 0 | |
}, b.processError) | |
}, a.$inject = ["$controller", "$scope", "$location", "$stateParams", "MenuService"], angular.module("app.controllers").config(b).controller("MenuCtrl", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a, b; | |
b = function(a) { | |
return a.state("base.profile.history", { | |
url: "history/", | |
views: { | |
"main@": { | |
templateUrl: "templates/profile-history.html", | |
controller: "ProfileHistoryCtrl" | |
} | |
} | |
}) | |
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d) { | |
return a("BaseCtrl", { | |
$scope: c | |
}), c.setTitle("LỊCH SỬ GIAO DỊCH"), b.user || b.$emit("unauthorized"), c.data.items = [], d.get(function(a) { | |
var b, d, e; | |
for (c.data.items = a.items, b = 0, d = []; b < a.items.length;) e = c.data.items[b], e.date = new Date(1e3 * e.createdAt), e.day = c.strPadLeft(e.date.getDate()), e.hour = c.strPadLeft(e.date.getHours()), e.minute = c.strPadLeft(e.date.getMinutes()), d.push(b++); | |
return d | |
}) | |
}, a.$inject = ["$controller", "$rootScope", "$scope", "BillingHistoryService"], angular.module("app.controllers").config(b).controller("ProfileHistoryCtrl", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a, b; | |
b = function(a) { | |
return a.state("base.profile.password", { | |
url: "password/", | |
views: { | |
"main@": { | |
templateUrl: "templates/profile-password.html", | |
controller: "ProfilePasswordCtrl" | |
} | |
} | |
}) | |
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d, e) { | |
return a("BaseCtrl", { | |
$scope: c | |
}), c.setTitle("ĐỔI MẬT KHẨU"), b.user || b.$emit("unauthorized"), c.submit = function() { | |
return c.errors = {}, c.success = {}, c.data.formLoading = !0, c.model.oldPassword && c.model.newPassword ? c.model.newPassword !== c.model.newPassword2 ? (c.errors.message = "Vui lòng điền lại mật khẩu", c.data.formLoading = !1) : e.save({ | |
oldPassword: c.model.oldPassword, | |
newPassword: c.model.newPassword | |
}, function(a) { | |
return c.success.message = "Thành công", c.data.formLoading = !1 | |
}, c.processError) : (c.errors.message = "Vui lòng điền mật khẩu", c.data.formLoading = !1) | |
} | |
}, a.$inject = ["$controller", "$rootScope", "$scope", "$window", "UserUpdateService"], angular.module("app.controllers").config(b).controller("ProfilePasswordCtrl", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a, b; | |
b = function(a) { | |
return a.state("base.profile", { | |
url: "profile/", | |
views: { | |
"main@": { | |
templateUrl: "templates/profile.html", | |
controller: "ProfileCtrl" | |
} | |
}, | |
reloadOnSearch: !1 | |
}) | |
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d, e, f, g, h, i, j) { | |
return a("BaseCtrl", { | |
$scope: c | |
}), b.user || b.$emit("unauthorized"), c.setTitle("HỒ SƠ"), c.data.editing = null, c.data.step = 1, b.$watch("user", function(a) { | |
var d; | |
return b.user ? (c.model.fullName = b.user.fullName, c.model.email = b.user.email, c.model.mobile = null != (d = b.user.localAcc) ? d.mobile : void 0) : void 0 | |
}, !0), c.mobileModel = {}, c.settingModel = d.localStorage.settingModel ? JSON.parse(d.localStorage.settingModel) : { | |
resolution: 1080, | |
language: "vi", | |
name: "vi", | |
subtitle: !0 | |
}, e.search().code && (1 === e.search().code ? c.errors.message = e.search().description : 0 === e.search().code && (c.success.message = "Thành công"), e.url(e.path())), c.isModal = function() { | |
return 0 !== Object.keys(c.modal).length | |
}, c.$watch("settingModel", function(a) { | |
return d.localStorage.settingModel = JSON.stringify(a) | |
}, !0), c.edit = function(a) { | |
return c.data.editing = a, c.data.step = 1, c.mobileModel = {} | |
}, c.submitProfile = function() { | |
var a; | |
return c.errors = {}, a = void 0, "name" === c.data.editing ? a = c.model.fullName && c.model.fullName !== b.user.fullName ? { | |
fullName: c.model.fullName | |
} : null : "email" === c.data.editing && (a = c.model.email && c.model.email !== b.user.email ? { | |
email: c.model.email | |
} : null), a && i.save(a, function(a) { | |
return a.email = a.pendingEmail || a.email, d.localStorage.user = JSON.stringify(a), b.user = a | |
}, c.processError), c.data.editing = null | |
}, c.submitMobile = function() { | |
return c.errors = {}, c.data.formLoading = !0, 1 === c.data.step ? j.save(c.mobileModel, function() { | |
return c.data.step = 2, c.data.formLoading = !1 | |
}, c.processError) : 2 === c.data.step ? c.mobileModel.code ? i.save(c.mobileModel, function(a) { | |
return d.localStorage.user = JSON.stringify(a), b.user = a, c.model.mobile = b.user.localAcc.mobile, c.data.formLoading = !1, c.data.editing = null, c.mobileModel = {} | |
}, c.processError) : c.data.formLoading = !1 : void 0 | |
}, c.logout = function() { | |
return g.logout(), f.go("base.index") | |
}, c.doShowModal = function(a, b) { | |
return c.data.step = 1 | |
}, c.doCloseModal = function(a, b, d) { | |
return c.errors = {}, c.success = {} | |
} | |
}, a.$inject = ["$controller", "$rootScope", "$scope", "$window", "$location", "$state", "Authenticator", "GlobalConfig", "UserUpdateService", "UserMobileGetService"], angular.module("app.controllers").config(b).controller("ProfileCtrl", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a, b; | |
b = function(a) { | |
return a.state("base.recent", { | |
url: "recent/:page", | |
views: { | |
"main@": { | |
templateUrl: "templates/archives.html", | |
controller: "RecentCtrl" | |
} | |
} | |
}) | |
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d) { | |
return a("BaseCtrl", { | |
$scope: b | |
}), b.setTitle("PHIM ĐÃ THUÊ"), b.data.hideTitle = !0, b.data.tab = "recent", b.data.formLoading = !0, d.get({ | |
limit: 20, | |
page: c.page && parseInt(c.page - 1, 10) | |
}, function(a) { | |
return b.data.formLoading = !1, a ? (b.data.items = a.results || a.items, b.buildPagination(a.metadata), b.buildData()) : void 0 | |
}, b.processError) | |
}, a.$inject = ["$controller", "$scope", "$stateParams", "UserRecentService"], angular.module("app.controllers").config(b).controller("RecentCtrl", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a, b; | |
b = function(a) { | |
return a.state("base.search", { | |
url: "search/:query/:page", | |
views: { | |
"main@": { | |
templateUrl: "templates/archives.html", | |
controller: "SearchCtrl" | |
} | |
}, | |
reloadOnSearch: !1 | |
}) | |
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d, e) { | |
return a("BaseCtrl", { | |
$scope: b | |
}), b.setTitle("TÌM KIẾM: " + d.query), b.data.formLoading = !0, e.get({ | |
keyword: d.query, | |
limit: 20, | |
page: d.page && parseInt(d.page - 1, 10), | |
imageSize: "3x", | |
platform: "website" | |
}, function(a) { | |
return b.data.formLoading = !1, a ? (b.data.items = a.results, b.buildPagination(a.metadata), b.buildData()) : void 0 | |
}, b.processError) | |
}, a.$inject = ["$controller", "$scope", "$location", "$stateParams", "SearchService"], angular.module("app.controllers").config(b).controller("SearchCtrl", a) | |
}.call(this), | |
function() { | |
var a; | |
a = function() { | |
var a, b; | |
return b = function(a, b, c) { | |
return b.find(".inner").css({ | |
background: "#" + a.color.color | |
}), b.find(".blocker").css({ | |
"background-image": "-webkit-linear-gradient(transparent, #" + a.color.color + ")" | |
}).css({ | |
"background-image": "linear-gradient(transparent, #" + a.color.color + ")" | |
}), a.color.contrast ? b.addClass("black") : b.addClass("white") | |
}, a = { | |
link: b, | |
scope: { | |
color: "=bgColor" | |
} | |
} | |
}, angular.module("app").directive("bgColor", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a; | |
a = function(a, b) { | |
var c, d; | |
return d = function(c, d, e) { | |
var f; | |
return f = b(e.focusMe), c.$watch(f, function(b) { | |
return b ? a(function() { | |
return d[0].focus() | |
}) : void 0 | |
}) | |
}, c = { | |
link: d | |
} | |
}, a.$inject = ["$timeout", "$parse"], angular.module("app.directives").directive("focusMe", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a, b; | |
a = function() { | |
return { | |
restrict: "A", | |
scope: !1, | |
link: function(a, b, c) { | |
var d; | |
return d = angular.element('<div class="loading"></div>'), b.append(d), b.addClass("loading-container"), a.$watch(c.loadingContainer, function(a) { | |
return d.toggleClass("ng-hide", !a) | |
}) | |
} | |
} | |
}, b = function() { | |
return { | |
restrict: "A", | |
scope: !1, | |
link: function(a, b, c) { | |
var d; | |
return d = angular.element('<div class="loading"></div>'), b.parent().append(d), b.parent().addClass("loading-image"), b.load(function() { | |
return b.parent().removeClass("loading-image") | |
}) | |
} | |
} | |
}, angular.module("app.directives").directive("loadingContainer", a).directive("loadingImage", b) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a; | |
a = function(a) { | |
return a.$on("closeModal", function() { | |
return $(".wrapper").removeClass("out move-up move-down") | |
}), { | |
link: function(a, b, c) { | |
return b.click(function() { | |
return $(this).parents(".wrapper").addClass("out") | |
}) | |
} | |
} | |
}, a.$inject = ["$rootScope"], angular.module("app.directives").directive("movieDetail", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a, b; | |
a = function(a) { | |
var b, c, d; | |
return d = !1, c = !1, b = !1, { | |
link: function(e, f, g) { | |
var h; | |
return f.hover(function(a) { | |
var e; | |
return clearTimeout(c), e = $(this).parents(".owl-item"), d = setTimeout(function() { | |
return $(".movie-list-area .item").removeClass("focus focus-left focus-right move-left move-right far-left far-right"), e.is(e.parent().find("> .active:first")) ? (e.find(".item").addClass("focus focus-left"), e.nextAll(".active").find(".item").addClass("far-right"), e.nextUntil(":not(.active)").next().find(".item").addClass("far-right")) : e.is(e.parent().find("> .active:last")) ? (e.find(".item").addClass("focus focus-right"), e.prevAll(".active").find(".item").addClass("far-left"), e.prevUntil(":not(.active)").prev().find(".item").addClass("far-left")) : (e.find(".item").addClass("focus"), e.prevAll(".active").find(".item").addClass("move-left"), e.nextAll(".active").find(".item").addClass("move-right"), e.prevUntil(":not(.active)").prev().find(".item").addClass("move-left"), e.nextUntil(":not(.active)").next().find(".item").addClass("move-right")), b = !0 | |
}, b ? 0 : 400) | |
}, function(a) { | |
return clearTimeout(d) | |
}), h = a.$on("movieHoverOut", function() { | |
return b = !1 | |
}), e.$on("$destroy", h) | |
} | |
} | |
}, a.$inject = ["$rootScope"], b = function(a) { | |
return { | |
link: function(b, c, d) { | |
return c.hover(function() { | |
return a.$emit("movieHoverOut"), $(".movie-list-area .item").removeClass("focus focus-left focus-right move-left move-right far-left far-right"), $(".movie-hover-bg").removeClass("active") | |
}) | |
} | |
} | |
}, b.$inject = ["$rootScope"], angular.module("app.directives").directive("movieHover", a).directive("movieHoverParent", b) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a; | |
a = function(a, b) { | |
return { | |
require: "ngModel", | |
restrict: "A", | |
transclude: !0, | |
link: function(c, d, e, f, g) { | |
var h, i, j; | |
return i = null, h = null, j = b(e.owlCarousel)(c), c.$watch(e.owlCarouselView, function(a) { | |
return void 0 !== a && a !== !1 ? d.trigger("to.owl.carousel", [a, 1]) : void 0 | |
}), c.$watch(e.ngModel, function(f) { | |
var k, l; | |
if (f && f.length) { | |
for (i && i.destroy(), d.empty(), h = b(e.owlCategory)(c), k = 0; k < f.length;) g(function(a, b) { | |
return b.item = f[k], b.index = k, d.append(a[1]) | |
}), k++; | |
return l = void 0, "list" === j ? l = { | |
margin: 10, | |
responsiveRefreshRate: 5, | |
nav: !0, | |
navText: ["", ""], | |
slideBy: "page", | |
dots: !1, | |
mouseDrag: !1, | |
smartSpeed: 100, | |
responsive: { | |
0: { | |
stagePadding: 50, | |
items: 5 | |
}, | |
991: { | |
stagePadding: 70, | |
items: 6 | |
}, | |
1101: { | |
stagePadding: 70, | |
items: 8 | |
}, | |
1441: { | |
stagePadding: 80, | |
items: 10 | |
}, | |
1921: { | |
stagePadding: 80, | |
items: 12 | |
}, | |
2561: { | |
stagePadding: 80, | |
items: 14 | |
} | |
} | |
} : "banner" === j ? l = { | |
margin: 2, | |
responsiveRefreshRate: 5, | |
nav: !0, | |
navText: ["", ""], | |
slideBy: "page", | |
dots: !1, | |
mouseDrag: !1, | |
smartSpeed: 100, | |
responsive: { | |
0: { | |
stagePadding: 50, | |
items: 3 | |
}, | |
991: { | |
stagePadding: 70, | |
items: 4 | |
}, | |
1101: { | |
stagePadding: 70, | |
items: 6 | |
}, | |
1441: { | |
stagePadding: 80, | |
items: 8 | |
}, | |
1921: { | |
stagePadding: 80, | |
items: 10 | |
}, | |
2561: { | |
stagePadding: 80, | |
items: 12 | |
} | |
} | |
} : "detail" === j && (l = { | |
margin: 20, | |
responsiveRefreshRate: 5, | |
nav: !0, | |
navText: ["", ""], | |
slideBy: "page", | |
dots: !1, | |
mouseDrag: !1, | |
items: 1, | |
responsive: { | |
0: { | |
stagePadding: 50 | |
}, | |
1101: { | |
stagePadding: 200 | |
}, | |
1441: { | |
stagePadding: 400 | |
} | |
} | |
}), l.onChanged = function(b) { | |
return "position" !== b.property.name || (c.modal.list || h) && h !== c.modal.list ? void 0 : c.$$phase ? a.$emit("moveTo", b.property.value) : c.$apply(function() { | |
return a.$emit("moveTo", b.property.value) | |
}) | |
}, d.owlCarousel(l), i = d.data("owlCarousel") | |
} | |
}) | |
} | |
} | |
}, a.$inject = ["$rootScope", "$parse"], angular.module("app.directives").directive("owlCarousel", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a; | |
a = function() { | |
return { | |
link: function(a, b, c) { | |
return b.scroll(function(a) { | |
return b.find(".parallax-item").css("transform", "translate3d(0, -" + b.scrollTop() / 2 + "px, 0)").css("-webkit-transform", "translate3d(0, -" + b.scrollTop() / 2 + "px, 0)").css("-moz-transform", "translate3d(0, -" + b.scrollTop() / 2 + "px, 0)").css("-ms-transform", "translate3d(0, -" + b.scrollTop() / 2 + "px, 0)").css("-o-transform", "translate3d(0, -" + b.scrollTop() / 2 + "px, 0)") | |
}) | |
} | |
} | |
}, angular.module("app.directives").directive("parallax", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a; | |
a = function() { | |
return { | |
link: function(a, b, c) { | |
return b.scroll(function(a) { | |
return b.scrollTop() > .4 * b.height() ? b.parents(".item").find(".fixed-header").addClass("active") : b.parents(".item").find(".fixed-header").removeClass("active") | |
}) | |
} | |
} | |
}, angular.module("app.directives").directive("scrollParent", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a; | |
a = function() { | |
return { | |
link: function(a, b, c) { | |
return $(window).scroll(function(a) { | |
return $(window).scrollTop() > 0 ? b.addClass("scroll") : b.removeClass("scroll") | |
}) | |
} | |
} | |
}, angular.module("app.directives").directive("scrollWindow", a) | |
}.call(this), | |
function() { | |
var a; | |
a = function(a, b) { | |
return a.pageTitle = "", { | |
set: function(c) { | |
return window.document.title = c + " | " + b, a.pageTitle = c | |
}, | |
reset: function() { | |
return window.document.title = b, a.pageTitle = "" | |
} | |
} | |
}, a.$inject = ["$rootScope", "AppName"], angular.module("app").factory("PageTitle", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a; | |
a = function(a, b) { | |
return b(a.billing + "code") | |
}, a.$inject = ["GlobalConfig", "$resource"], angular.module("app.services").factory("CodeService", a) | |
}.call(this), | |
function() { | |
var a; | |
a = function(a) { | |
return this.hexToRgb = function(a) { | |
var b, c, d, e; | |
return e = function(a) { | |
return parseInt(b(a).substring(0, 2), 16) | |
}, d = function(a) { | |
return parseInt(b(a).substring(2, 4), 16) | |
}, c = function(a) { | |
return parseInt(b(a).substring(4, 6), 16) | |
}, b = function(a) { | |
return "#" === a.charAt(0) ? a.substring(1, 7) : a | |
}, [e(a), d(a), c(a)] | |
}, this.getRgb = function(a, b) { | |
var c, d; | |
return d = new Image, d.crossOrigin = "Anonymous", d.src = a, c = new ColorThief, d.onload = function() { | |
return b(c.getColor(d)) | |
} | |
}, this.rgbToHex = function(a) { | |
var b; | |
return null == a && (a = [255, 255, 255]), b = a[0].toString(16) + a[1].toString(16) + a[2].toString(16) | |
}, this.blackOrWhite = function(a) { | |
var b; | |
return b = parseInt(a, 16) > 8388607.5 ? "black" : "white" | |
}, this.background = function(a, b) { | |
var c, d; | |
return null == b && (b = !0), d = "rgba(" + a[0] + ", " + a[1] + ", " + a[2] + ", 1) 30%, rgba(229, 229, 229, 0) 100%)", c = { | |
background: "-moz-linear-gradient(left, " + d, | |
background: "-webkit-linear-gradient(left, " + d, | |
background: "linear-gradient(to right, " + d | |
}, b || (d = "rgba(0,0,0,0) 0%,\nrgba(" + a[0] + ", " + a[1] + ", " + a[2] + ",0) 30%,\nrgba(" + a[0] + ", " + a[1] + ", " + a[2] + ",0.8) 50%,\nrgba(" + a[0] + ", " + a[1] + ", " + a[2] + ",1) 65%,\nrgba(" + a[0] + ", " + a[1] + ", " + a[2] + ",1) 100%)", c = { | |
background: "-moz-linear-gradient(top, " + d, | |
background: "-webkit-linear-gradient(top, " + d, | |
background: "linear-gradient(to bottom, " + d | |
}), c | |
}, null | |
}, a.$inject = ["$rootScope"], angular.module("app").service("ColorService", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
var a; | |
a = function(a, b) { | |
return b(a.billing + "history") | |
}, a.$inject = ["GlobalConfig", "$resource"], angular.module("app.services").factory("BillingHistoryService", a) | |
}.call(this), | |
function() { | |
"use strict"; | |
angular.module("app.services").factory("HomeService", ["GlobalConfig", "$resource", function(a, b) { | |
return b(a.content + "home") | |
}]) | |
}.call(this), | |
function() { | |
"use strict"; | |
angular.module("app.services").factory("LoginService", ["GlobalConfig", "$resource", function(a, b) { | |
return b(a.auth + "auth/login") | |
}]).factory("LoginFacebookService", ["GlobalConfig", "$resource", function(a, b) { | |
return b(a.auth + "auth/facebook") | |
}]).factory("ContentLoginService", ["GlobalConfig", "$resource", function(a, b) { | |
return b(a.content + "auth/login") | |
}]).factory("PaymentLoginService", ["GlobalConfig", "$resource", function(a, b) { | |
return b(a.payment + "auth/login") | |
}]).factory("BillingLoginService", ["GlobalConfig", "$resource", function(a, b) { | |
return b(a.billing + "auth/login") | |
}]) | |
}.call(this), | |
function() { | |
"use strict"; | |
angular.module("app.services").factory("MenuService", ["GlobalConfig", "$resource", function(a, b) { | |
return b(a.content + "menu/:id", { | |
id: "@id" | |
}) | |
}]) | |
}.call(this), | |
function() { | |
"use strict"; | |
angular.module("app.services").factory("MovieService", ["GlobalConfig", "$resource", function(a, b) { | |
return b(a.content + "movie/:id", { | |
id: "@id" | |
}, { | |
update: { | |
method: "PUT" | |
} | |
}) | |
}]) | |
}.call(this), | |
function() { | |
"use strict"; | |
angular.module("app.services").factory("PackageService", ["GlobalConfig", "$resource", function(a, b) { | |
return b(a.billing + "packages/:id", { | |
id: "@id" | |
}) | |
}]).factory("PackageItemService", ["GlobalConfig", "$resource", function(a, b) { | |
return b(a.billing + "packages/:id/items", { | |
id: "@id" | |
}) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment