mirror of
https://github.com/byReqz/byreqz.de.git
synced 2025-06-16 16:07:46 +00:00
- fixed spacing - updated fontawesome to fork-awesome - repaired a lot of things - updated spelling - updated contacts page - updated projects page - updated about page - removed unnecessary files - changed pictures in sidebar
12460 lines
486 KiB
JavaScript
12460 lines
486 KiB
JavaScript
function toast(a, b, c, d) {
|
|
function e(a) {
|
|
var b = $("<div class='toast'></div>").addClass(c).html(a);
|
|
return b.hammer({
|
|
prevent_default: !1
|
|
}).bind("pan", function(a) {
|
|
var c = a.gesture.deltaX,
|
|
d = 80;
|
|
b.hasClass("panning") || b.addClass("panning");
|
|
var e = 1 - Math.abs(c / d);
|
|
0 > e && (e = 0), b.velocity({
|
|
left: c,
|
|
opacity: e
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})
|
|
}).bind("panend", function(a) {
|
|
var c = a.gesture.deltaX,
|
|
e = 80;
|
|
Math.abs(c) > e ? b.velocity({
|
|
marginTop: "-40px"
|
|
}, {
|
|
duration: 375,
|
|
easing: "easeOutExpo",
|
|
queue: !1,
|
|
complete: function() {
|
|
"function" == typeof d && d(), b.remove()
|
|
}
|
|
}) : (b.removeClass("panning"), b.velocity({
|
|
left: 0,
|
|
opacity: 1
|
|
}, {
|
|
duration: 300,
|
|
easing: "easeOutExpo",
|
|
queue: !1
|
|
}))
|
|
}), b
|
|
}
|
|
if (c = c || "", 0 == $("#toast-container").length) {
|
|
var f = $("<div></div>").attr("id", "toast-container");
|
|
$("body").append(f)
|
|
}
|
|
var f = $("#toast-container"),
|
|
g = e(a);
|
|
f.append(g), g.css({
|
|
top: parseFloat(g.css("top")) + 35 + "px",
|
|
opacity: 0
|
|
}), g.velocity({
|
|
top: "0px",
|
|
opacity: 1
|
|
}, {
|
|
duration: 300,
|
|
easing: "easeOutCubic",
|
|
queue: !1
|
|
});
|
|
var h = b,
|
|
i = setInterval(function() {
|
|
0 === g.parent().length && window.clearInterval(i), g.hasClass("panning") || (h -= 100), 0 >= h && (g.velocity({
|
|
opacity: 0,
|
|
marginTop: "-40px"
|
|
}, {
|
|
duration: 375,
|
|
easing: "easeOutExpo",
|
|
queue: !1,
|
|
complete: function() {
|
|
"function" == typeof d && d(), $(this).remove()
|
|
}
|
|
}), window.clearInterval(i))
|
|
}, 100)
|
|
}
|
|
|
|
function toast(a, b, c, d) {
|
|
function e(a) {
|
|
var b = $("<div class='toast'></div>").addClass(c).html(a);
|
|
return b.hammer({
|
|
prevent_default: !1
|
|
}).bind("pan", function(a) {
|
|
var c = a.gesture.deltaX,
|
|
d = 80;
|
|
b.hasClass("panning") || b.addClass("panning");
|
|
var e = 1 - Math.abs(c / d);
|
|
0 > e && (e = 0), b.velocity({
|
|
left: c,
|
|
opacity: e
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})
|
|
}).bind("panend", function(a) {
|
|
var c = a.gesture.deltaX,
|
|
e = 80;
|
|
Math.abs(c) > e ? b.velocity({
|
|
marginTop: "-40px"
|
|
}, {
|
|
duration: 375,
|
|
easing: "easeOutExpo",
|
|
queue: !1,
|
|
complete: function() {
|
|
"function" == typeof d && d(), b.remove()
|
|
}
|
|
}) : (b.removeClass("panning"), b.velocity({
|
|
left: 0,
|
|
opacity: 1
|
|
}, {
|
|
duration: 300,
|
|
easing: "easeOutExpo",
|
|
queue: !1
|
|
}))
|
|
}), b
|
|
}
|
|
if (c = c || "", 0 == $("#toast-container").length) {
|
|
var f = $("<div></div>").attr("id", "toast-container");
|
|
$("body").append(f)
|
|
}
|
|
var f = $("#toast-container"),
|
|
g = e(a);
|
|
f.append(g), g.css({
|
|
top: parseFloat(g.css("top")) + 35 + "px",
|
|
opacity: 0
|
|
}), g.velocity({
|
|
top: "0px",
|
|
opacity: 1
|
|
}, {
|
|
duration: 300,
|
|
easing: "easeOutCubic",
|
|
queue: !1
|
|
});
|
|
var h = b,
|
|
i = setInterval(function() {
|
|
0 === g.parent().length && window.clearInterval(i), g.hasClass("panning") || (h -= 100), 0 >= h && (g.velocity({
|
|
opacity: 0,
|
|
marginTop: "-40px"
|
|
}, {
|
|
duration: 375,
|
|
easing: "easeOutExpo",
|
|
queue: !1,
|
|
complete: function() {
|
|
"function" == typeof d && d(), $(this).remove()
|
|
}
|
|
}), window.clearInterval(i))
|
|
}, 100)
|
|
}
|
|
|
|
function GithubRepo(a) {
|
|
this.description = a.description, this.forks = a.forks, this.name = a.name, this.open_issues = a.open_issues, this.pushed_at = a.pushed_at, this.url = a.url, this.watchers = a.watchers
|
|
}
|
|
|
|
function Github(a, b) {
|
|
var c = this,
|
|
d = {
|
|
iconStars: !0,
|
|
iconForks: !0,
|
|
iconIssues: !1
|
|
};
|
|
c.element = a, c.$container = $(a), c.repo = c.$container.attr("data-repo"), c.options = $.extend({}, d, b), c._defaults = d, c.init(), c.displayIcons()
|
|
}! 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,
|
|
c = _.type(a);
|
|
return "function" === c || _.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a
|
|
}
|
|
|
|
function d(a, b, c) {
|
|
if (_.isFunction(b)) return _.grep(a, function(a, d) {
|
|
return !!b.call(a, d, a) !== c
|
|
});
|
|
if (b.nodeType) return _.grep(a, function(a) {
|
|
return a === b !== c
|
|
});
|
|
if ("string" == typeof b) {
|
|
if (ha.test(b)) return _.filter(b, a, c);
|
|
b = _.filter(b, a)
|
|
}
|
|
return _.grep(a, function(a) {
|
|
return U.call(b, a) >= 0 !== c
|
|
})
|
|
}
|
|
|
|
function e(a, b) {
|
|
for (;
|
|
(a = a[b]) && 1 !== a.nodeType;);
|
|
return a
|
|
}
|
|
|
|
function f(a) {
|
|
var b = oa[a] = {};
|
|
return _.each(a.match(na) || [], function(a, c) {
|
|
b[c] = !0
|
|
}), b
|
|
}
|
|
|
|
function g() {
|
|
Z.removeEventListener("DOMContentLoaded", g, !1), a.removeEventListener("load", g, !1), _.ready()
|
|
}
|
|
|
|
function h() {
|
|
Object.defineProperty(this.cache = {}, 0, {
|
|
get: function() {
|
|
return {}
|
|
}
|
|
}), this.expando = _.expando + h.uid++
|
|
}
|
|
|
|
function i(a, b, c) {
|
|
var d;
|
|
if (void 0 === c && 1 === a.nodeType)
|
|
if (d = "data-" + b.replace(ua, "-$1").toLowerCase(), c = a.getAttribute(d), "string" == typeof c) {
|
|
try {
|
|
c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : ta.test(c) ? _.parseJSON(c) : c
|
|
} catch (e) {}
|
|
sa.set(a, b, c)
|
|
} else c = void 0;
|
|
return c
|
|
}
|
|
|
|
function j() {
|
|
return !0
|
|
}
|
|
|
|
function k() {
|
|
return !1
|
|
}
|
|
|
|
function l() {
|
|
try {
|
|
return Z.activeElement
|
|
} catch (a) {}
|
|
}
|
|
|
|
function m(a, b) {
|
|
return _.nodeName(a, "table") && _.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a
|
|
}
|
|
|
|
function n(a) {
|
|
return a.type = (null !== a.getAttribute("type")) + "/" + a.type, a
|
|
}
|
|
|
|
function o(a) {
|
|
var b = Ka.exec(a.type);
|
|
return b ? a.type = b[1] : a.removeAttribute("type"), a
|
|
}
|
|
|
|
function p(a, b) {
|
|
for (var c = 0, d = a.length; d > c; c++) ra.set(a[c], "globalEval", !b || ra.get(b[c], "globalEval"))
|
|
}
|
|
|
|
function q(a, b) {
|
|
var c, d, e, f, g, h, i, j;
|
|
if (1 === b.nodeType) {
|
|
if (ra.hasData(a) && (f = ra.access(a), g = ra.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++) _.event.add(b, e, j[e][c])
|
|
}
|
|
sa.hasData(a) && (h = sa.access(a), i = _.extend({}, h), sa.set(b, i))
|
|
}
|
|
}
|
|
|
|
function r(a, b) {
|
|
var c = a.getElementsByTagName ? a.getElementsByTagName(b || "*") : a.querySelectorAll ? a.querySelectorAll(b || "*") : [];
|
|
return void 0 === b || b && _.nodeName(a, b) ? _.merge([a], c) : c
|
|
}
|
|
|
|
function s(a, b) {
|
|
var c = b.nodeName.toLowerCase();
|
|
"input" === c && ya.test(a.type) ? b.checked = a.checked : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue)
|
|
}
|
|
|
|
function t(b, c) {
|
|
var d, e = _(c.createElement(b)).appendTo(c.body),
|
|
f = a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) ? d.display : _.css(e[0], "display");
|
|
return e.detach(), f
|
|
}
|
|
|
|
function u(a) {
|
|
var b = Z,
|
|
c = Oa[a];
|
|
return c || (c = t(a, b), "none" !== c && c || (Na = (Na || _("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement), b = Na[0].contentDocument, b.write(), b.close(), c = t(a, b), Na.detach()), Oa[a] = c), c
|
|
}
|
|
|
|
function v(a, b, c) {
|
|
var d, e, f, g, h = a.style;
|
|
return c = c || Ra(a), c && (g = c.getPropertyValue(b) || c[b]), c && ("" !== g || _.contains(a.ownerDocument, a) || (g = _.style(a, b)), Qa.test(g) && Pa.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 w(a, b) {
|
|
return {
|
|
get: function() {
|
|
return a() ? void delete this.get : (this.get = b).apply(this, arguments)
|
|
}
|
|
}
|
|
}
|
|
|
|
function x(a, b) {
|
|
if (b in a) return b;
|
|
for (var c = b[0].toUpperCase() + b.slice(1), d = b, e = Xa.length; e--;)
|
|
if (b = Xa[e] + c, b in a) return b;
|
|
return d
|
|
}
|
|
|
|
function y(a, b, c) {
|
|
var d = Ta.exec(b);
|
|
return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b
|
|
}
|
|
|
|
function z(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 += _.css(a, c + wa[f], !0, e)), d ? ("content" === c && (g -= _.css(a, "padding" + wa[f], !0, e)), "margin" !== c && (g -= _.css(a, "border" + wa[f] + "Width", !0, e))) : (g += _.css(a, "padding" + wa[f], !0, e), "padding" !== c && (g += _.css(a, "border" + wa[f] + "Width", !0, e)));
|
|
return g
|
|
}
|
|
|
|
function A(a, b, c) {
|
|
var d = !0,
|
|
e = "width" === b ? a.offsetWidth : a.offsetHeight,
|
|
f = Ra(a),
|
|
g = "border-box" === _.css(a, "boxSizing", !1, f);
|
|
if (0 >= e || null == e) {
|
|
if (e = v(a, b, f), (0 > e || null == e) && (e = a.style[b]), Qa.test(e)) return e;
|
|
d = g && (Y.boxSizingReliable() || e === a.style[b]), e = parseFloat(e) || 0
|
|
}
|
|
return e + z(a, b, c || (g ? "border" : "content"), d, f) + "px"
|
|
}
|
|
|
|
function B(a, b) {
|
|
for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++) d = a[g], d.style && (f[g] = ra.get(d, "olddisplay"), c = d.style.display, b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && xa(d) && (f[g] = ra.access(d, "olddisplay", u(d.nodeName)))) : (e = xa(d), "none" === c && e || ra.set(d, "olddisplay", e ? c : _.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 C(a, b, c, d, e) {
|
|
return new C.prototype.init(a, b, c, d, e)
|
|
}
|
|
|
|
function D() {
|
|
return setTimeout(function() {
|
|
Ya = void 0
|
|
}), Ya = _.now()
|
|
}
|
|
|
|
function E(a, b) {
|
|
var c, d = 0,
|
|
e = {
|
|
height: a
|
|
};
|
|
for (b = b ? 1 : 0; 4 > d; d += 2 - b) c = wa[d], e["margin" + c] = e["padding" + c] = a;
|
|
return b && (e.opacity = e.width = a), e
|
|
}
|
|
|
|
function F(a, b, c) {
|
|
for (var d, e = (cb[b] || []).concat(cb["*"]), f = 0, g = e.length; g > f; f++)
|
|
if (d = e[f].call(c, b, a)) return d
|
|
}
|
|
|
|
function G(a, b, c) {
|
|
var d, e, f, g, h, i, j, k, l = this,
|
|
m = {},
|
|
n = a.style,
|
|
o = a.nodeType && xa(a),
|
|
p = ra.get(a, "fxshow");
|
|
c.queue || (h = _._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--, _.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 = _.css(a, "display"), k = "none" === j ? ra.get(a, "olddisplay") || u(a.nodeName) : j, "inline" === k && "none" === _.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], $a.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] || _.style(a, d)
|
|
} else j = void 0;
|
|
if (_.isEmptyObject(m)) "inline" === ("none" === j ? u(a.nodeName) : j) && (n.display = j);
|
|
else {
|
|
p ? "hidden" in p && (o = p.hidden) : p = ra.access(a, "fxshow", {}), f && (p.hidden = !o), o ? _(a).show() : l.done(function() {
|
|
_(a).hide()
|
|
}), l.done(function() {
|
|
var b;
|
|
ra.remove(a, "fxshow");
|
|
for (b in m) _.style(a, b, m[b])
|
|
});
|
|
for (d in m) g = F(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 H(a, b) {
|
|
var c, d, e, f, g;
|
|
for (c in a)
|
|
if (d = _.camelCase(c), e = b[d], f = a[c], _.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = _.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 I(a, b, c) {
|
|
var d, e, f = 0,
|
|
g = bb.length,
|
|
h = _.Deferred().always(function() {
|
|
delete i.elem
|
|
}),
|
|
i = function() {
|
|
if (e) return !1;
|
|
for (var b = Ya || D(), 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: _.extend({}, b),
|
|
opts: _.extend(!0, {
|
|
specialEasing: {}
|
|
}, c),
|
|
originalProperties: b,
|
|
originalOptions: c,
|
|
startTime: Ya || D(),
|
|
duration: c.duration,
|
|
tweens: [],
|
|
createTween: function(b, c) {
|
|
var d = _.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.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]), this
|
|
}
|
|
}),
|
|
k = j.props;
|
|
for (H(k, j.opts.specialEasing); g > f; f++)
|
|
if (d = bb[f].call(j, a, k, j.opts)) return d;
|
|
return _.map(k, F, j), _.isFunction(j.opts.start) && j.opts.start.call(a, j), _.fx.timer(_.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 J(a) {
|
|
return function(b, c) {
|
|
"string" != typeof b && (c = b, b = "*");
|
|
var d, e = 0,
|
|
f = b.toLowerCase().match(na) || [];
|
|
if (_.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 K(a, b, c, d) {
|
|
function e(h) {
|
|
var i;
|
|
return f[h] = !0, _.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 === tb;
|
|
return e(b.dataTypes[0]) || !f["*"] && e("*")
|
|
}
|
|
|
|
function L(a, b) {
|
|
var c, d, e = _.ajaxSettings.flatOptions || {};
|
|
for (c in b) void 0 !== b[c] && ((e[c] ? a : d || (d = {}))[c] = b[c]);
|
|
return d && _.extend(!0, a, d), a
|
|
}
|
|
|
|
function M(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 N(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 O(a, b, c, d) {
|
|
var e;
|
|
if (_.isArray(b)) _.each(b, function(b, e) {
|
|
c || yb.test(a) ? d(a, e) : O(a + "[" + ("object" == typeof e ? b : "") + "]", e, c, d)
|
|
});
|
|
else if (c || "object" !== _.type(b)) d(a, b);
|
|
else
|
|
for (e in b) O(a + "[" + e + "]", b[e], c, d)
|
|
}
|
|
|
|
function P(a) {
|
|
return _.isWindow(a) ? a : 9 === a.nodeType && a.defaultView
|
|
}
|
|
var Q = [],
|
|
R = Q.slice,
|
|
S = Q.concat,
|
|
T = Q.push,
|
|
U = Q.indexOf,
|
|
V = {},
|
|
W = V.toString,
|
|
X = V.hasOwnProperty,
|
|
Y = {},
|
|
Z = a.document,
|
|
$ = "2.1.3",
|
|
_ = function(a, b) {
|
|
return new _.fn.init(a, b)
|
|
},
|
|
aa = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
|
|
ba = /^-ms-/,
|
|
ca = /-([\da-z])/gi,
|
|
da = function(a, b) {
|
|
return b.toUpperCase()
|
|
};
|
|
_.fn = _.prototype = {
|
|
jquery: $,
|
|
constructor: _,
|
|
selector: "",
|
|
length: 0,
|
|
toArray: function() {
|
|
return R.call(this)
|
|
},
|
|
get: function(a) {
|
|
return null != a ? 0 > a ? this[a + this.length] : this[a] : R.call(this)
|
|
},
|
|
pushStack: function(a) {
|
|
var b = _.merge(this.constructor(), a);
|
|
return b.prevObject = this, b.context = this.context, b
|
|
},
|
|
each: function(a, b) {
|
|
return _.each(this, a, b)
|
|
},
|
|
map: function(a) {
|
|
return this.pushStack(_.map(this, function(b, c) {
|
|
return a.call(b, c, b)
|
|
}))
|
|
},
|
|
slice: function() {
|
|
return this.pushStack(R.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(null)
|
|
},
|
|
push: T,
|
|
sort: Q.sort,
|
|
splice: Q.splice
|
|
}, _.extend = _.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 || _.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 && (_.isPlainObject(d) || (e = _.isArray(d))) ? (e ? (e = !1, f = c && _.isArray(c) ? c : []) : f = c && _.isPlainObject(c) ? c : {}, g[b] = _.extend(j, f, d)) : void 0 !== d && (g[b] = d));
|
|
return g
|
|
}, _.extend({
|
|
expando: "jQuery" + ($ + Math.random()).replace(/\D/g, ""),
|
|
isReady: !0,
|
|
error: function(a) {
|
|
throw new Error(a)
|
|
},
|
|
noop: function() {},
|
|
isFunction: function(a) {
|
|
return "function" === _.type(a)
|
|
},
|
|
isArray: Array.isArray,
|
|
isWindow: function(a) {
|
|
return null != a && a === a.window
|
|
},
|
|
isNumeric: function(a) {
|
|
return !_.isArray(a) && a - parseFloat(a) + 1 >= 0
|
|
},
|
|
isPlainObject: function(a) {
|
|
return "object" !== _.type(a) || a.nodeType || _.isWindow(a) ? !1 : a.constructor && !X.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 ? V[W.call(a)] || "object" : typeof a
|
|
},
|
|
globalEval: function(a) {
|
|
var b, c = eval;
|
|
a = _.trim(a), a && (1 === a.indexOf("use strict") ? (b = Z.createElement("script"), b.text = a, Z.head.appendChild(b).parentNode.removeChild(b)) : c(a))
|
|
},
|
|
camelCase: function(a) {
|
|
return a.replace(ba, "ms-").replace(ca, da)
|
|
},
|
|
nodeName: function(a, b) {
|
|
return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
|
|
},
|
|
each: function(a, b, d) {
|
|
var e, f = 0,
|
|
g = a.length,
|
|
h = c(a);
|
|
if (d) {
|
|
if (h)
|
|
for (; g > f && (e = b.apply(a[f], d), e !== !1); f++);
|
|
else
|
|
for (f in a)
|
|
if (e = b.apply(a[f], d), e === !1) break
|
|
} else if (h)
|
|
for (; g > f && (e = b.call(a[f], f, a[f]), e !== !1); f++);
|
|
else
|
|
for (f in a)
|
|
if (e = b.call(a[f], f, a[f]), e === !1) break;
|
|
return a
|
|
},
|
|
trim: function(a) {
|
|
return null == a ? "" : (a + "").replace(aa, "")
|
|
},
|
|
makeArray: function(a, b) {
|
|
var d = b || [];
|
|
return null != a && (c(Object(a)) ? _.merge(d, "string" == typeof a ? [a] : a) : T.call(d, a)), d
|
|
},
|
|
inArray: function(a, b, c) {
|
|
return null == b ? -1 : U.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 = 0,
|
|
g = a.length,
|
|
h = c(a),
|
|
i = [];
|
|
if (h)
|
|
for (; g > f; f++) e = b(a[f], f, d), null != e && i.push(e);
|
|
else
|
|
for (f in a) e = b(a[f], f, d), null != e && i.push(e);
|
|
return S.apply([], i)
|
|
},
|
|
guid: 1,
|
|
proxy: function(a, b) {
|
|
var c, d, e;
|
|
return "string" == typeof b && (c = a[b], b = a, a = c), _.isFunction(a) ? (d = R.call(arguments, 2), e = function() {
|
|
return a.apply(b || this, d.concat(R.call(arguments)))
|
|
}, e.guid = a.guid = a.guid || _.guid++, e) : void 0
|
|
},
|
|
now: Date.now,
|
|
support: Y
|
|
}), _.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(a, b) {
|
|
V["[object " + b + "]"] = b.toLowerCase()
|
|
});
|
|
var ea = function(a) {
|
|
function b(a, b, c, d) {
|
|
var e, f, g, h, i, j, l, n, o, p;
|
|
if ((b ? b.ownerDocument || b : O) !== G && F(b), b = b || G, c = c || [], h = b.nodeType, "string" != typeof a || !a || 1 !== h && 9 !== h && 11 !== h) return c;
|
|
if (!d && I) {
|
|
if (11 !== h && (e = sa.exec(a)))
|
|
if (g = e[1]) {
|
|
if (9 === h) {
|
|
if (f = b.getElementById(g), !f || !f.parentNode) return c;
|
|
if (f.id === g) return c.push(f), c
|
|
} else if (b.ownerDocument && (f = b.ownerDocument.getElementById(g)) && M(b, f) && f.id === g) return c.push(f), c
|
|
} else {
|
|
if (e[2]) return $.apply(c, b.getElementsByTagName(a)), c;
|
|
if ((g = e[3]) && v.getElementsByClassName) return $.apply(c, b.getElementsByClassName(g)), c
|
|
} if (v.qsa && (!J || !J.test(a))) {
|
|
if (n = l = N, o = b, p = 1 !== h && a, 1 === h && "object" !== b.nodeName.toLowerCase()) {
|
|
for (j = z(a), (l = b.getAttribute("id")) ? n = l.replace(ua, "\\$&") : b.setAttribute("id", n), n = "[id='" + n + "'] ", i = j.length; i--;) j[i] = n + m(j[i]);
|
|
o = ta.test(a) && k(b.parentNode) || b, p = j.join(",")
|
|
}
|
|
if (p) try {
|
|
return $.apply(c, o.querySelectorAll(p)), c
|
|
} catch (q) {} finally {
|
|
l || b.removeAttribute("id")
|
|
}
|
|
}
|
|
}
|
|
return B(a.replace(ia, "$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 = a.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 = [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 (i = b[N] || (b[N] = {}), (h = i[d]) && h[0] === P && h[1] === f) return j[2] = h[2];
|
|
if (i[d] = j, j[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(ia, "$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); o !== v && null != (k = t[o]); o++) {
|
|
if (f && k) {
|
|
for (l = 0; m = a[l++];)
|
|
if (m(k, 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 = da.replace("w", "w#"),
|
|
fa = "\\[" + ca + "*(" + da + ")(?:" + ca + "*([*^$|!~]?=)" + ca + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + ea + "))|)" + ca + "*\\]",
|
|
ga = ":(" + da + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + fa + ")*)|.*)\\)|)",
|
|
ha = new RegExp(ca + "+", "g"),
|
|
ia = new RegExp("^" + ca + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ca + "+$", "g"),
|
|
ja = new RegExp("^" + ca + "*," + ca + "*"),
|
|
ka = new RegExp("^" + ca + "*([>+~]|" + ca + ")" + ca + "*"),
|
|
la = new RegExp("=" + ca + "*([^\\]'\"]*?)" + ca + "*\\]", "g"),
|
|
ma = new RegExp(ga),
|
|
na = new RegExp("^" + ea + "$"),
|
|
oa = {
|
|
ID: new RegExp("^#(" + da + ")"),
|
|
CLASS: new RegExp("^\\.(" + da + ")"),
|
|
TAG: new RegExp("^(" + da.replace("w", "w*") + ")"),
|
|
ATTR: new RegExp("^" + fa),
|
|
PSEUDO: new RegExp("^" + ga),
|
|
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")
|
|
},
|
|
pa = /^(?:input|select|textarea|button)$/i,
|
|
qa = /^h\d$/i,
|
|
ra = /^[^{]+\{\s*\[native \w/,
|
|
sa = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
|
|
ta = /[+~]/,
|
|
ua = /'|\\/g,
|
|
va = new RegExp("\\\\([\\da-f]{1,6}" + ca + "?|(" + ca + ")|.)", "ig"),
|
|
wa = 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)
|
|
},
|
|
xa = function() {
|
|
F()
|
|
};
|
|
try {
|
|
$.apply(X = _.call(O.childNodes), O.childNodes), X[O.childNodes.length].nodeType
|
|
} catch (ya) {
|
|
$ = {
|
|
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 = d.documentElement, c = d.defaultView, c && c !== c.top && (c.addEventListener ? c.addEventListener("unload", xa, !1) : c.attachEvent && c.attachEvent("onunload", xa)), I = !y(d), v.attributes = e(function(a) {
|
|
return a.className = "i", !a.getAttribute("className")
|
|
}), v.getElementsByTagName = e(function(a) {
|
|
return a.appendChild(d.createComment("")), !a.getElementsByTagName("*").length
|
|
}), v.getElementsByClassName = ra.test(d.getElementsByClassName), v.getById = e(function(a) {
|
|
return H.appendChild(a).id = N, !d.getElementsByName || !d.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.parentNode ? [c] : []
|
|
}
|
|
}, w.filter.ID = function(a) {
|
|
var b = a.replace(va, wa);
|
|
return function(a) {
|
|
return a.getAttribute("id") === b
|
|
}
|
|
}) : (delete w.find.ID, w.filter.ID = function(a) {
|
|
var b = a.replace(va, wa);
|
|
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 I ? b.getElementsByClassName(a) : void 0
|
|
}, K = [], J = [], (v.qsa = ra.test(d.querySelectorAll)) && (e(function(a) {
|
|
H.appendChild(a).innerHTML = "<a id='" + N + "'></a><select id='" + N + "-\f]' 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 = d.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 = ra.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("!=", ga)
|
|
}), J = J.length && new RegExp(J.join("|")), K = K.length && new RegExp(K.join("|")), b = ra.test(H.compareDocumentPosition), M = b || ra.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 === d || a.ownerDocument === O && M(O, a) ? -1 : b === d || 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, e = 0,
|
|
f = a.parentNode,
|
|
h = b.parentNode,
|
|
i = [a],
|
|
j = [b];
|
|
if (!f || !h) return a === d ? -1 : b === d ? 1 : f ? -1 : h ? 1 : D ? aa(D, a) - aa(D, b) : 0;
|
|
if (f === h) return g(a, b);
|
|
for (c = a; c = c.parentNode;) i.unshift(c);
|
|
for (c = b; c = c.parentNode;) j.unshift(c);
|
|
for (; i[e] === j[e];) e++;
|
|
return e ? g(i[e], j[e]) : i[e] === O ? -1 : j[e] === O ? 1 : 0
|
|
}, d) : 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(la, "='$1']"), !(!v.matchesSelector || !I || 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: oa,
|
|
attrHandle: {},
|
|
find: {},
|
|
relative: {
|
|
">": {
|
|
dir: "parentNode",
|
|
first: !0
|
|
},
|
|
" ": {
|
|
dir: "parentNode"
|
|
},
|
|
"+": {
|
|
dir: "previousSibling",
|
|
first: !0
|
|
},
|
|
"~": {
|
|
dir: "previousSibling"
|
|
}
|
|
},
|
|
preFilter: {
|
|
ATTR: function(a) {
|
|
return a[1] = a[1].replace(va, wa), a[3] = (a[3] || a[4] || a[5] || "").replace(va, wa), "~=" === 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 oa.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && ma.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(va, wa).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(ha, " ") + " ").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;
|
|
if (q) {
|
|
if (f) {
|
|
for (; p;) {
|
|
for (l = b; l = l[p];)
|
|
if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1;
|
|
o = p = "only" === a && !o && "nextSibling"
|
|
}
|
|
return !0
|
|
}
|
|
if (o = [g ? q.firstChild : q.lastChild], g && s) {
|
|
for (k = q[N] || (q[N] = {}), j = k[a] || [], n = j[0] === P && j[1], m = j[0] === P && j[2], l = n && q.childNodes[n]; l = ++n && l && l[p] || (m = n = 0) || o.pop();)
|
|
if (1 === l.nodeType && ++m && l === b) {
|
|
k[a] = [P, n, m];
|
|
break
|
|
}
|
|
} else if (s && (j = (b[N] || (b[N] = {}))[a]) && j[0] === P) m = j[1];
|
|
else
|
|
for (;
|
|
(l = ++n && l && l[p] || (m = n = 0) || o.pop()) && ((h ? l.nodeName.toLowerCase() !== r : 1 !== l.nodeType) || !++m || (s && ((l[N] || (l[N] = {}))[a] = [P, m]), l !== b)););
|
|
return m -= e, m === d || m % d === 0 && m / 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(ia, "$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(va, wa),
|
|
function(b) {
|
|
return (b.textContent || b.innerText || x(b)).indexOf(a) > -1
|
|
}
|
|
}),
|
|
lang: d(function(a) {
|
|
return na.test(a || "") || b.error("unsupported lang: " + a), a = a.replace(va, wa).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 qa.test(a.nodeName)
|
|
},
|
|
input: function(a) {
|
|
return pa.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 = ja.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), d = !1, (e = ka.exec(h)) && (d = e.shift(), f.push({
|
|
value: d,
|
|
type: e[0].replace(ia, " ")
|
|
}), h = h.slice(d.length));
|
|
for (g in w.filter) !(e = oa[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(va, wa), b) || [])[0], !b) return c;
|
|
j && (b = b.parentNode), a = a.slice(f.shift().value.length)
|
|
}
|
|
for (e = oa.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(va, wa), ta.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, ta.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);
|
|
_.find = ea, _.expr = ea.selectors, _.expr[":"] = _.expr.pseudos, _.unique = ea.uniqueSort, _.text = ea.getText, _.isXMLDoc = ea.isXML, _.contains = ea.contains;
|
|
var fa = _.expr.match.needsContext,
|
|
ga = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
|
|
ha = /^.[^:#\[\.,]*$/;
|
|
_.filter = function(a, b, c) {
|
|
var d = b[0];
|
|
return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? _.find.matchesSelector(d, a) ? [d] : [] : _.find.matches(a, _.grep(b, function(a) {
|
|
return 1 === a.nodeType
|
|
}))
|
|
}, _.fn.extend({
|
|
find: function(a) {
|
|
var b, c = this.length,
|
|
d = [],
|
|
e = this;
|
|
if ("string" != typeof a) return this.pushStack(_(a).filter(function() {
|
|
for (b = 0; c > b; b++)
|
|
if (_.contains(e[b], this)) return !0
|
|
}));
|
|
for (b = 0; c > b; b++) _.find(a, e[b], d);
|
|
return d = this.pushStack(c > 1 ? _.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 && fa.test(a) ? _(a) : a || [], !1).length
|
|
}
|
|
});
|
|
var ia, ja = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
|
|
ka = _.fn.init = function(a, b) {
|
|
var c, d;
|
|
if (!a) return this;
|
|
if ("string" == typeof a) {
|
|
if (c = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : ja.exec(a), !c || !c[1] && b) return !b || b.jquery ? (b || ia).find(a) : this.constructor(b).find(a);
|
|
if (c[1]) {
|
|
if (b = b instanceof _ ? b[0] : b, _.merge(this, _.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : Z, !0)), ga.test(c[1]) && _.isPlainObject(b))
|
|
for (c in b) _.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]);
|
|
return this
|
|
}
|
|
return d = Z.getElementById(c[2]), d && d.parentNode && (this.length = 1, this[0] = d), this.context = Z, this.selector = a, this
|
|
}
|
|
return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : _.isFunction(a) ? "undefined" != typeof ia.ready ? ia.ready(a) : a(_) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), _.makeArray(a, this))
|
|
};
|
|
ka.prototype = _.fn, ia = _(Z);
|
|
var la = /^(?:parents|prev(?:Until|All))/,
|
|
ma = {
|
|
children: !0,
|
|
contents: !0,
|
|
next: !0,
|
|
prev: !0
|
|
};
|
|
_.extend({
|
|
dir: function(a, b, c) {
|
|
for (var d = [], e = void 0 !== c;
|
|
(a = a[b]) && 9 !== a.nodeType;)
|
|
if (1 === a.nodeType) {
|
|
if (e && _(a).is(c)) break;
|
|
d.push(a)
|
|
} return d
|
|
},
|
|
sibling: function(a, b) {
|
|
for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a);
|
|
return c
|
|
}
|
|
}), _.fn.extend({
|
|
has: function(a) {
|
|
var b = _(a, this),
|
|
c = b.length;
|
|
return this.filter(function() {
|
|
for (var a = 0; c > a; a++)
|
|
if (_.contains(this, b[a])) return !0
|
|
})
|
|
},
|
|
closest: function(a, b) {
|
|
for (var c, d = 0, e = this.length, f = [], g = fa.test(a) || "string" != typeof a ? _(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 && _.find.matchesSelector(c, a))) {
|
|
f.push(c);
|
|
break
|
|
} return this.pushStack(f.length > 1 ? _.unique(f) : f)
|
|
},
|
|
index: function(a) {
|
|
return a ? "string" == typeof a ? U.call(_(a), this[0]) : U.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
|
|
},
|
|
add: function(a, b) {
|
|
return this.pushStack(_.unique(_.merge(this.get(), _(a, b))))
|
|
},
|
|
addBack: function(a) {
|
|
return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
|
|
}
|
|
}), _.each({
|
|
parent: function(a) {
|
|
var b = a.parentNode;
|
|
return b && 11 !== b.nodeType ? b : null
|
|
},
|
|
parents: function(a) {
|
|
return _.dir(a, "parentNode")
|
|
},
|
|
parentsUntil: function(a, b, c) {
|
|
return _.dir(a, "parentNode", c)
|
|
},
|
|
next: function(a) {
|
|
return e(a, "nextSibling")
|
|
},
|
|
prev: function(a) {
|
|
return e(a, "previousSibling")
|
|
},
|
|
nextAll: function(a) {
|
|
return _.dir(a, "nextSibling")
|
|
},
|
|
prevAll: function(a) {
|
|
return _.dir(a, "previousSibling")
|
|
},
|
|
nextUntil: function(a, b, c) {
|
|
return _.dir(a, "nextSibling", c)
|
|
},
|
|
prevUntil: function(a, b, c) {
|
|
return _.dir(a, "previousSibling", c)
|
|
},
|
|
siblings: function(a) {
|
|
return _.sibling((a.parentNode || {}).firstChild, a)
|
|
},
|
|
children: function(a) {
|
|
return _.sibling(a.firstChild)
|
|
},
|
|
contents: function(a) {
|
|
return a.contentDocument || _.merge([], a.childNodes)
|
|
}
|
|
}, function(a, b) {
|
|
_.fn[a] = function(c, d) {
|
|
var e = _.map(this, b, c);
|
|
return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = _.filter(d, e)), this.length > 1 && (ma[a] || _.unique(e), la.test(a) && e.reverse()), this.pushStack(e)
|
|
}
|
|
});
|
|
var na = /\S+/g,
|
|
oa = {};
|
|
_.Callbacks = function(a) {
|
|
a = "string" == typeof a ? oa[a] || f(a) : _.extend({}, a);
|
|
var b, c, d, e, g, h, i = [],
|
|
j = !a.once && [],
|
|
k = function(f) {
|
|
for (b = a.memory && f, c = !0, h = e || 0, e = 0, g = i.length, d = !0; i && g > h; h++)
|
|
if (i[h].apply(f[0], f[1]) === !1 && a.stopOnFalse) {
|
|
b = !1;
|
|
break
|
|
} d = !1, i && (j ? j.length && k(j.shift()) : b ? i = [] : l.disable())
|
|
},
|
|
l = {
|
|
add: function() {
|
|
if (i) {
|
|
var c = i.length;
|
|
! function f(b) {
|
|
_.each(b, function(b, c) {
|
|
var d = _.type(c);
|
|
"function" === d ? a.unique && l.has(c) || i.push(c) : c && c.length && "string" !== d && f(c)
|
|
})
|
|
}(arguments), d ? g = i.length : b && (e = c, k(b))
|
|
}
|
|
return this
|
|
},
|
|
remove: function() {
|
|
return i && _.each(arguments, function(a, b) {
|
|
for (var c;
|
|
(c = _.inArray(b, i, c)) > -1;) i.splice(c, 1), d && (g >= c && g--, h >= c && h--)
|
|
}), this
|
|
},
|
|
has: function(a) {
|
|
return a ? _.inArray(a, i) > -1 : !(!i || !i.length)
|
|
},
|
|
empty: function() {
|
|
return i = [], g = 0, this
|
|
},
|
|
disable: function() {
|
|
return i = j = b = void 0, this
|
|
},
|
|
disabled: function() {
|
|
return !i
|
|
},
|
|
lock: function() {
|
|
return j = void 0, b || l.disable(), this
|
|
},
|
|
locked: function() {
|
|
return !j
|
|
},
|
|
fireWith: function(a, b) {
|
|
return !i || c && !j || (b = b || [], b = [a, b.slice ? b.slice() : b], d ? j.push(b) : k(b)), this
|
|
},
|
|
fire: function() {
|
|
return l.fireWith(this, arguments), this
|
|
},
|
|
fired: function() {
|
|
return !!c
|
|
}
|
|
};
|
|
return l
|
|
}, _.extend({
|
|
Deferred: function(a) {
|
|
var b = [
|
|
["resolve", "done", _.Callbacks("once memory"), "resolved"],
|
|
["reject", "fail", _.Callbacks("once memory"), "rejected"],
|
|
["notify", "progress", _.Callbacks("memory")]
|
|
],
|
|
c = "pending",
|
|
d = {
|
|
state: function() {
|
|
return c
|
|
},
|
|
always: function() {
|
|
return e.done(arguments).fail(arguments), this
|
|
},
|
|
then: function() {
|
|
var a = arguments;
|
|
return _.Deferred(function(c) {
|
|
_.each(b, function(b, f) {
|
|
var g = _.isFunction(a[b]) && a[b];
|
|
e[f[1]](function() {
|
|
var a = g && g.apply(this, arguments);
|
|
a && _.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments)
|
|
})
|
|
}), a = null
|
|
}).promise()
|
|
},
|
|
promise: function(a) {
|
|
return null != a ? _.extend(a, d) : d
|
|
}
|
|
},
|
|
e = {};
|
|
return d.pipe = d.then, _.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 = R.call(arguments),
|
|
g = f.length,
|
|
h = 1 !== g || a && _.isFunction(a.promise) ? g : 0,
|
|
i = 1 === h ? a : _.Deferred(),
|
|
j = function(a, c, d) {
|
|
return function(e) {
|
|
c[a] = this, d[a] = arguments.length > 1 ? R.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] && _.isFunction(f[e].promise) ? f[e].promise().done(j(e, d, f)).fail(i.reject).progress(j(e, c, b)) : --h;
|
|
return h || i.resolveWith(d, f), i.promise()
|
|
}
|
|
});
|
|
var pa;
|
|
_.fn.ready = function(a) {
|
|
return _.ready.promise().done(a), this
|
|
}, _.extend({
|
|
isReady: !1,
|
|
readyWait: 1,
|
|
holdReady: function(a) {
|
|
a ? _.readyWait++ : _.ready(!0)
|
|
},
|
|
ready: function(a) {
|
|
(a === !0 ? --_.readyWait : _.isReady) || (_.isReady = !0, a !== !0 && --_.readyWait > 0 || (pa.resolveWith(Z, [_]), _.fn.triggerHandler && (_(Z).triggerHandler("ready"), _(Z).off("ready"))))
|
|
}
|
|
}), _.ready.promise = function(b) {
|
|
return pa || (pa = _.Deferred(), "complete" === Z.readyState ? setTimeout(_.ready) : (Z.addEventListener("DOMContentLoaded", g, !1), a.addEventListener("load", g, !1))), pa.promise(b)
|
|
}, _.ready.promise();
|
|
var qa = _.access = function(a, b, c, d, e, f, g) {
|
|
var h = 0,
|
|
i = a.length,
|
|
j = null == c;
|
|
if ("object" === _.type(c)) {
|
|
e = !0;
|
|
for (h in c) _.access(a, b, h, c[h], !0, f, g)
|
|
} else if (void 0 !== d && (e = !0, _.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function(a, b, c) {
|
|
return j.call(_(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
|
|
};
|
|
_.acceptData = function(a) {
|
|
return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType
|
|
}, h.uid = 1, h.accepts = _.acceptData, h.prototype = {
|
|
key: function(a) {
|
|
if (!h.accepts(a)) return 0;
|
|
var b = {},
|
|
c = a[this.expando];
|
|
if (!c) {
|
|
c = h.uid++;
|
|
try {
|
|
b[this.expando] = {
|
|
value: c
|
|
}, Object.defineProperties(a, b)
|
|
} catch (d) {
|
|
b[this.expando] = c, _.extend(a, b)
|
|
}
|
|
}
|
|
return this.cache[c] || (this.cache[c] = {}), c
|
|
},
|
|
set: function(a, b, c) {
|
|
var d, e = this.key(a),
|
|
f = this.cache[e];
|
|
if ("string" == typeof b) f[b] = c;
|
|
else if (_.isEmptyObject(f)) _.extend(this.cache[e], b);
|
|
else
|
|
for (d in b) f[d] = b[d];
|
|
return f
|
|
},
|
|
get: function(a, b) {
|
|
var c = this.cache[this.key(a)];
|
|
return void 0 === b ? c : c[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, _.camelCase(b))) : (this.set(a, b, c), void 0 !== c ? c : b)
|
|
},
|
|
remove: function(a, b) {
|
|
var c, d, e, f = this.key(a),
|
|
g = this.cache[f];
|
|
if (void 0 === b) this.cache[f] = {};
|
|
else {
|
|
_.isArray(b) ? d = b.concat(b.map(_.camelCase)) : (e = _.camelCase(b), b in g ? d = [b, e] : (d = e, d = d in g ? [d] : d.match(na) || [])), c = d.length;
|
|
for (; c--;) delete g[d[c]]
|
|
}
|
|
},
|
|
hasData: function(a) {
|
|
return !_.isEmptyObject(this.cache[a[this.expando]] || {})
|
|
},
|
|
discard: function(a) {
|
|
a[this.expando] && delete this.cache[a[this.expando]]
|
|
}
|
|
};
|
|
var ra = new h,
|
|
sa = new h,
|
|
ta = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
|
|
ua = /([A-Z])/g;
|
|
_.extend({
|
|
hasData: function(a) {
|
|
return sa.hasData(a) || ra.hasData(a)
|
|
},
|
|
data: function(a, b, c) {
|
|
return sa.access(a, b, c)
|
|
},
|
|
removeData: function(a, b) {
|
|
sa.remove(a, b)
|
|
},
|
|
_data: function(a, b, c) {
|
|
return ra.access(a, b, c)
|
|
},
|
|
_removeData: function(a, b) {
|
|
ra.remove(a, b)
|
|
}
|
|
}), _.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 = sa.get(f), 1 === f.nodeType && !ra.get(f, "hasDataAttrs"))) {
|
|
for (c = g.length; c--;) g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = _.camelCase(d.slice(5)), i(f, d, e[d])));
|
|
ra.set(f, "hasDataAttrs", !0)
|
|
}
|
|
return e
|
|
}
|
|
return "object" == typeof a ? this.each(function() {
|
|
sa.set(this, a)
|
|
}) : qa(this, function(b) {
|
|
var c, d = _.camelCase(a);
|
|
if (f && void 0 === b) {
|
|
if (c = sa.get(f, a), void 0 !== c) return c;
|
|
if (c = sa.get(f, d), void 0 !== c) return c;
|
|
if (c = i(f, d, void 0), void 0 !== c) return c
|
|
} else this.each(function() {
|
|
var c = sa.get(this, d);
|
|
sa.set(this, d, b), -1 !== a.indexOf("-") && void 0 !== c && sa.set(this, a, b)
|
|
})
|
|
}, null, b, arguments.length > 1, null, !0)
|
|
},
|
|
removeData: function(a) {
|
|
return this.each(function() {
|
|
sa.remove(this, a)
|
|
})
|
|
}
|
|
}), _.extend({
|
|
queue: function(a, b, c) {
|
|
var d;
|
|
return a ? (b = (b || "fx") + "queue", d = ra.get(a, b), c && (!d || _.isArray(c) ? d = ra.access(a, b, _.makeArray(c)) : d.push(c)), d || []) : void 0
|
|
},
|
|
dequeue: function(a, b) {
|
|
b = b || "fx";
|
|
var c = _.queue(a, b),
|
|
d = c.length,
|
|
e = c.shift(),
|
|
f = _._queueHooks(a, b),
|
|
g = function() {
|
|
_.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 ra.get(a, c) || ra.access(a, c, {
|
|
empty: _.Callbacks("once memory").add(function() {
|
|
ra.remove(a, [b + "queue", c])
|
|
})
|
|
})
|
|
}
|
|
}), _.fn.extend({
|
|
queue: function(a, b) {
|
|
var c = 2;
|
|
return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? _.queue(this[0], a) : void 0 === b ? this : this.each(function() {
|
|
var c = _.queue(this, a, b);
|
|
_._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && _.dequeue(this, a)
|
|
})
|
|
},
|
|
dequeue: function(a) {
|
|
return this.each(function() {
|
|
_.dequeue(this, a)
|
|
})
|
|
},
|
|
clearQueue: function(a) {
|
|
return this.queue(a || "fx", [])
|
|
},
|
|
promise: function(a, b) {
|
|
var c, d = 1,
|
|
e = _.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 = ra.get(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h));
|
|
return h(), e.promise(b)
|
|
}
|
|
});
|
|
var va = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
|
|
wa = ["Top", "Right", "Bottom", "Left"],
|
|
xa = function(a, b) {
|
|
return a = b || a, "none" === _.css(a, "display") || !_.contains(a.ownerDocument, a)
|
|
},
|
|
ya = /^(?:checkbox|radio)$/i;
|
|
! function() {
|
|
var a = Z.createDocumentFragment(),
|
|
b = a.appendChild(Z.createElement("div")),
|
|
c = Z.createElement("input");
|
|
c.setAttribute("type", "radio"), c.setAttribute("checked", "checked"), c.setAttribute("name", "t"), b.appendChild(c), Y.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, b.innerHTML = "<textarea>x</textarea>", Y.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue
|
|
}();
|
|
var za = "undefined";
|
|
Y.focusinBubbles = "onfocusin" in a;
|
|
var Aa = /^key/,
|
|
Ba = /^(?:mouse|pointer|contextmenu)|click/,
|
|
Ca = /^(?:focusinfocus|focusoutblur)$/,
|
|
Da = /^([^.]*)(?:\.(.+)|)$/;
|
|
_.event = {
|
|
global: {},
|
|
add: function(a, b, c, d, e) {
|
|
var f, g, h, i, j, k, l, m, n, o, p, q = ra.get(a);
|
|
if (q)
|
|
for (c.handler && (f = c, c = f.handler, e = f.selector), c.guid || (c.guid = _.guid++), (i = q.events) || (i = q.events = {}), (g = q.handle) || (g = q.handle = function(b) {
|
|
return typeof _ !== za && _.event.triggered !== b.type ? _.event.dispatch.apply(a, arguments) : void 0
|
|
}), b = (b || "").match(na) || [""], j = b.length; j--;) h = Da.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n && (l = _.event.special[n] || {}, n = (e ? l.delegateType : l.bindType) || n, l = _.event.special[n] || {}, k = _.extend({
|
|
type: n,
|
|
origType: p,
|
|
data: d,
|
|
handler: c,
|
|
guid: c.guid,
|
|
selector: e,
|
|
needsContext: e && _.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, !1)), 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), _.event.global[n] = !0)
|
|
},
|
|
remove: function(a, b, c, d, e) {
|
|
var f, g, h, i, j, k, l, m, n, o, p, q = ra.hasData(a) && ra.get(a);
|
|
if (q && (i = q.events)) {
|
|
for (b = (b || "").match(na) || [""], j = b.length; j--;)
|
|
if (h = Da.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n) {
|
|
for (l = _.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 || _.removeEvent(a, n, q.handle), delete i[n])
|
|
} else
|
|
for (n in i) _.event.remove(a, n + b[j], c, d, !0);
|
|
_.isEmptyObject(i) && (delete q.handle, ra.remove(a, "events"))
|
|
}
|
|
},
|
|
trigger: function(b, c, d, e) {
|
|
var f, g, h, i, j, k, l, m = [d || Z],
|
|
n = X.call(b, "type") ? b.type : b,
|
|
o = X.call(b, "namespace") ? b.namespace.split(".") : [];
|
|
if (g = h = d = d || Z, 3 !== d.nodeType && 8 !== d.nodeType && !Ca.test(n + _.event.triggered) && (n.indexOf(".") >= 0 && (o = n.split("."), n = o.shift(), o.sort()), j = n.indexOf(":") < 0 && "on" + n, b = b[_.expando] ? b : new _.Event(n, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = o.join("."), b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : _.makeArray(c, [b]), l = _.event.special[n] || {}, e || !l.trigger || l.trigger.apply(d, c) !== !1)) {
|
|
if (!e && !l.noBubble && !_.isWindow(d)) {
|
|
for (i = l.delegateType || n, Ca.test(i + n) || (g = g.parentNode); g; g = g.parentNode) m.push(g), h = g;
|
|
h === (d.ownerDocument || Z) && m.push(h.defaultView || h.parentWindow || a)
|
|
}
|
|
for (f = 0;
|
|
(g = m[f++]) && !b.isPropagationStopped();) b.type = f > 1 ? i : l.bindType || n, k = (ra.get(g, "events") || {})[b.type] && ra.get(g, "handle"), k && k.apply(g, c), k = j && g[j], k && k.apply && _.acceptData(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 || !_.acceptData(d) || j && _.isFunction(d[n]) && !_.isWindow(d) && (h = d[j], h && (d[j] = null), _.event.triggered = n, d[n](), _.event.triggered = void 0, h && (d[j] = h)), b.result
|
|
}
|
|
},
|
|
dispatch: function(a) {
|
|
a = _.event.fix(a);
|
|
var b, c, d, e, f, g = [],
|
|
h = R.call(arguments),
|
|
i = (ra.get(this, "events") || {})[a.type] || [],
|
|
j = _.event.special[a.type] || {};
|
|
if (h[0] = a, a.delegateTarget = this, !j.preDispatch || j.preDispatch.call(this, a) !== !1) {
|
|
for (g = _.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.namespace_re || a.namespace_re.test(f.namespace)) && (a.handleObj = f, a.data = f.data, d = ((_.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 && (!a.button || "click" !== a.type))
|
|
for (; i !== this; i = i.parentNode || this)
|
|
if (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 ? _(e, this).index(i) >= 0 : _.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 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 || Z, 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[_.expando]) return a;
|
|
var b, c, d, e = a.type,
|
|
f = a,
|
|
g = this.fixHooks[e];
|
|
for (g || (this.fixHooks[e] = g = Ba.test(e) ? this.mouseHooks : Aa.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new _.Event(f), b = d.length; b--;) c = d[b], a[c] = f[c];
|
|
return a.target || (a.target = Z), 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 !== l() && this.focus ? (this.focus(), !1) : void 0
|
|
},
|
|
delegateType: "focusin"
|
|
},
|
|
blur: {
|
|
trigger: function() {
|
|
return this === l() && this.blur ? (this.blur(), !1) : void 0
|
|
},
|
|
delegateType: "focusout"
|
|
},
|
|
click: {
|
|
trigger: function() {
|
|
return "checkbox" === this.type && this.click && _.nodeName(this, "input") ? (this.click(), !1) : void 0
|
|
},
|
|
_default: function(a) {
|
|
return _.nodeName(a.target, "a")
|
|
}
|
|
},
|
|
beforeunload: {
|
|
postDispatch: function(a) {
|
|
void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result)
|
|
}
|
|
}
|
|
},
|
|
simulate: function(a, b, c, d) {
|
|
var e = _.extend(new _.Event, c, {
|
|
type: a,
|
|
isSimulated: !0,
|
|
originalEvent: {}
|
|
});
|
|
d ? _.event.trigger(e, null, b) : _.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault()
|
|
}
|
|
}, _.removeEvent = function(a, b, c) {
|
|
a.removeEventListener && a.removeEventListener(b, c, !1)
|
|
}, _.Event = function(a, b) {
|
|
return this instanceof _.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? j : k) : this.type = a, b && _.extend(this, b), this.timeStamp = a && a.timeStamp || _.now(), void(this[_.expando] = !0)) : new _.Event(a, b)
|
|
}, _.Event.prototype = {
|
|
isDefaultPrevented: k,
|
|
isPropagationStopped: k,
|
|
isImmediatePropagationStopped: k,
|
|
preventDefault: function() {
|
|
var a = this.originalEvent;
|
|
this.isDefaultPrevented = j, a && a.preventDefault && a.preventDefault()
|
|
},
|
|
stopPropagation: function() {
|
|
var a = this.originalEvent;
|
|
this.isPropagationStopped = j, a && a.stopPropagation && a.stopPropagation()
|
|
},
|
|
stopImmediatePropagation: function() {
|
|
var a = this.originalEvent;
|
|
this.isImmediatePropagationStopped = j, a && a.stopImmediatePropagation && a.stopImmediatePropagation(), this.stopPropagation()
|
|
}
|
|
}, _.each({
|
|
mouseenter: "mouseover",
|
|
mouseleave: "mouseout",
|
|
pointerenter: "pointerover",
|
|
pointerleave: "pointerout"
|
|
}, function(a, b) {
|
|
_.event.special[a] = {
|
|
delegateType: b,
|
|
bindType: b,
|
|
handle: function(a) {
|
|
var c, d = this,
|
|
e = a.relatedTarget,
|
|
f = a.handleObj;
|
|
return (!e || e !== d && !_.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c
|
|
}
|
|
}
|
|
}), Y.focusinBubbles || _.each({
|
|
focus: "focusin",
|
|
blur: "focusout"
|
|
}, function(a, b) {
|
|
var c = function(a) {
|
|
_.event.simulate(b, a.target, _.event.fix(a), !0)
|
|
};
|
|
_.event.special[b] = {
|
|
setup: function() {
|
|
var d = this.ownerDocument || this,
|
|
e = ra.access(d, b);
|
|
e || d.addEventListener(a, c, !0), ra.access(d, b, (e || 0) + 1)
|
|
},
|
|
teardown: function() {
|
|
var d = this.ownerDocument || this,
|
|
e = ra.access(d, b) - 1;
|
|
e ? ra.access(d, b, e) : (d.removeEventListener(a, c, !0), ra.remove(d, b))
|
|
}
|
|
}
|
|
}), _.fn.extend({
|
|
on: function(a, b, c, d, e) {
|
|
var f, g;
|
|
if ("object" == typeof a) {
|
|
"string" != typeof b && (c = c || b, b = void 0);
|
|
for (g in a) this.on(g, b, c, a[g], e);
|
|
return this
|
|
}
|
|
if (null == c && null == d ? (d = b, c = b = void 0) : null == d && ("string" == typeof b ? (d = c, c = void 0) : (d = c, c = b, b = void 0)), d === !1) d = k;
|
|
else if (!d) return this;
|
|
return 1 === e && (f = d, d = function(a) {
|
|
return _().off(a), f.apply(this, arguments)
|
|
}, d.guid = f.guid || (f.guid = _.guid++)), this.each(function() {
|
|
_.event.add(this, a, d, c, b)
|
|
})
|
|
},
|
|
one: function(a, b, c, d) {
|
|
return this.on(a, b, c, d, 1)
|
|
},
|
|
off: function(a, b, c) {
|
|
var d, e;
|
|
if (a && a.preventDefault && a.handleObj) return d = a.handleObj, _(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 = k), this.each(function() {
|
|
_.event.remove(this, a, c, b)
|
|
})
|
|
},
|
|
trigger: function(a, b) {
|
|
return this.each(function() {
|
|
_.event.trigger(a, b, this)
|
|
})
|
|
},
|
|
triggerHandler: function(a, b) {
|
|
var c = this[0];
|
|
return c ? _.event.trigger(a, b, c, !0) : void 0
|
|
}
|
|
});
|
|
var Ea = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
|
|
Fa = /<([\w:]+)/,
|
|
Ga = /<|&#?\w+;/,
|
|
Ha = /<(?:script|style|link)/i,
|
|
Ia = /checked\s*(?:[^=]|=\s*.checked.)/i,
|
|
Ja = /^$|\/(?:java|ecma)script/i,
|
|
Ka = /^true\/(.*)/,
|
|
La = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
|
|
Ma = {
|
|
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, "", ""]
|
|
};
|
|
Ma.optgroup = Ma.option, Ma.tbody = Ma.tfoot = Ma.colgroup = Ma.caption = Ma.thead, Ma.th = Ma.td, _.extend({
|
|
clone: function(a, b, c) {
|
|
var d, e, f, g, h = a.cloneNode(!0),
|
|
i = _.contains(a.ownerDocument, a);
|
|
if (!(Y.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || _.isXMLDoc(a)))
|
|
for (g = r(h), f = r(a), d = 0, e = f.length; e > d; d++) s(f[d], g[d]);
|
|
if (b)
|
|
if (c)
|
|
for (f = f || r(a), g = g || r(h), d = 0, e = f.length; e > d; d++) q(f[d], g[d]);
|
|
else q(a, h);
|
|
return g = r(h, "script"), g.length > 0 && p(g, !i && r(a, "script")), h
|
|
},
|
|
buildFragment: function(a, b, c, d) {
|
|
for (var e, f, g, h, i, j, k = b.createDocumentFragment(), l = [], m = 0, n = a.length; n > m; m++)
|
|
if (e = a[m], e || 0 === e)
|
|
if ("object" === _.type(e)) _.merge(l, e.nodeType ? [e] : e);
|
|
else if (Ga.test(e)) {
|
|
for (f = f || k.appendChild(b.createElement("div")), g = (Fa.exec(e) || ["", ""])[1].toLowerCase(), h = Ma[g] || Ma._default, f.innerHTML = h[1] + e.replace(Ea, "<$1></$2>") + h[2], j = h[0]; j--;) f = f.lastChild;
|
|
_.merge(l, f.childNodes), f = k.firstChild, f.textContent = ""
|
|
} else l.push(b.createTextNode(e));
|
|
for (k.textContent = "", m = 0; e = l[m++];)
|
|
if ((!d || -1 === _.inArray(e, d)) && (i = _.contains(e.ownerDocument, e), f = r(k.appendChild(e), "script"), i && p(f), c))
|
|
for (j = 0; e = f[j++];) Ja.test(e.type || "") && c.push(e);
|
|
return k
|
|
},
|
|
cleanData: function(a) {
|
|
for (var b, c, d, e, f = _.event.special, g = 0; void 0 !== (c = a[g]); g++) {
|
|
if (_.acceptData(c) && (e = c[ra.expando], e && (b = ra.cache[e]))) {
|
|
if (b.events)
|
|
for (d in b.events) f[d] ? _.event.remove(c, d) : _.removeEvent(c, d, b.handle);
|
|
ra.cache[e] && delete ra.cache[e]
|
|
}
|
|
delete sa.cache[c[sa.expando]]
|
|
}
|
|
}
|
|
}), _.fn.extend({
|
|
text: function(a) {
|
|
return qa(this, function(a) {
|
|
return void 0 === a ? _.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 this.domManip(arguments, function(a) {
|
|
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
|
|
var b = m(this, a);
|
|
b.appendChild(a)
|
|
}
|
|
})
|
|
},
|
|
prepend: function() {
|
|
return this.domManip(arguments, function(a) {
|
|
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
|
|
var b = m(this, a);
|
|
b.insertBefore(a, b.firstChild)
|
|
}
|
|
})
|
|
},
|
|
before: function() {
|
|
return this.domManip(arguments, function(a) {
|
|
this.parentNode && this.parentNode.insertBefore(a, this)
|
|
})
|
|
},
|
|
after: function() {
|
|
return this.domManip(arguments, function(a) {
|
|
this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
|
|
})
|
|
},
|
|
remove: function(a, b) {
|
|
for (var c, d = a ? _.filter(a, this) : this, e = 0; null != (c = d[e]); e++) b || 1 !== c.nodeType || _.cleanData(r(c)), c.parentNode && (b && _.contains(c.ownerDocument, c) && p(r(c, "script")), c.parentNode.removeChild(c));
|
|
return this
|
|
},
|
|
empty: function() {
|
|
for (var a, b = 0; null != (a = this[b]); b++) 1 === a.nodeType && (_.cleanData(r(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 _.clone(this, a, b)
|
|
})
|
|
},
|
|
html: function(a) {
|
|
return qa(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 && !Ha.test(a) && !Ma[(Fa.exec(a) || ["", ""])[1].toLowerCase()]) {
|
|
a = a.replace(Ea, "<$1></$2>");
|
|
try {
|
|
for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (_.cleanData(r(b, !1)), b.innerHTML = a);
|
|
b = 0
|
|
} catch (e) {}
|
|
}
|
|
b && this.empty().append(a)
|
|
}, null, a, arguments.length)
|
|
},
|
|
replaceWith: function() {
|
|
var a = arguments[0];
|
|
return this.domManip(arguments, function(b) {
|
|
a = this.parentNode, _.cleanData(r(this)), a && a.replaceChild(b, this)
|
|
}), a && (a.length || a.nodeType) ? this : this.remove()
|
|
},
|
|
detach: function(a) {
|
|
return this.remove(a, !0)
|
|
},
|
|
domManip: function(a, b) {
|
|
a = S.apply([], a);
|
|
var c, d, e, f, g, h, i = 0,
|
|
j = this.length,
|
|
k = this,
|
|
l = j - 1,
|
|
m = a[0],
|
|
p = _.isFunction(m);
|
|
if (p || j > 1 && "string" == typeof m && !Y.checkClone && Ia.test(m)) return this.each(function(c) {
|
|
var d = k.eq(c);
|
|
p && (a[0] = m.call(this, c, d.html())), d.domManip(a, b)
|
|
});
|
|
if (j && (c = _.buildFragment(a, this[0].ownerDocument, !1, this), d = c.firstChild, 1 === c.childNodes.length && (c = d), d)) {
|
|
for (e = _.map(r(c, "script"), n), f = e.length; j > i; i++) g = c, i !== l && (g = _.clone(g, !0, !0), f && _.merge(e, r(g, "script"))), b.call(this[i], g, i);
|
|
if (f)
|
|
for (h = e[e.length - 1].ownerDocument, _.map(e, o), i = 0; f > i; i++) g = e[i], Ja.test(g.type || "") && !ra.access(g, "globalEval") && _.contains(h, g) && (g.src ? _._evalUrl && _._evalUrl(g.src) : _.globalEval(g.textContent.replace(La, "")))
|
|
}
|
|
return this
|
|
}
|
|
}), _.each({
|
|
appendTo: "append",
|
|
prependTo: "prepend",
|
|
insertBefore: "before",
|
|
insertAfter: "after",
|
|
replaceAll: "replaceWith"
|
|
}, function(a, b) {
|
|
_.fn[a] = function(a) {
|
|
for (var c, d = [], e = _(a), f = e.length - 1, g = 0; f >= g; g++) c = g === f ? this : this.clone(!0), _(e[g])[b](c), T.apply(d, c.get());
|
|
return this.pushStack(d)
|
|
}
|
|
});
|
|
var Na, Oa = {},
|
|
Pa = /^margin/,
|
|
Qa = new RegExp("^(" + va + ")(?!px)[a-z%]+$", "i"),
|
|
Ra = function(b) {
|
|
return b.ownerDocument.defaultView.opener ? b.ownerDocument.defaultView.getComputedStyle(b, null) : a.getComputedStyle(b, null)
|
|
};
|
|
! function() {
|
|
function b() {
|
|
g.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", g.innerHTML = "", e.appendChild(f);
|
|
var b = a.getComputedStyle(g, null);
|
|
c = "1%" !== b.top, d = "4px" === b.width, e.removeChild(f)
|
|
}
|
|
var c, d, e = Z.documentElement,
|
|
f = Z.createElement("div"),
|
|
g = Z.createElement("div");
|
|
g.style && (g.style.backgroundClip = "content-box", g.cloneNode(!0).style.backgroundClip = "", Y.clearCloneStyle = "content-box" === g.style.backgroundClip, f.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute", f.appendChild(g), a.getComputedStyle && _.extend(Y, {
|
|
pixelPosition: function() {
|
|
return b(), c
|
|
},
|
|
boxSizingReliable: function() {
|
|
return null == d && b(), d
|
|
},
|
|
reliableMarginRight: function() {
|
|
var b, c = g.appendChild(Z.createElement("div"));
|
|
return c.style.cssText = g.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", c.style.marginRight = c.style.width = "0", g.style.width = "1px", e.appendChild(f), b = !parseFloat(a.getComputedStyle(c, null).marginRight), e.removeChild(f), g.removeChild(c), b
|
|
}
|
|
}))
|
|
}(), _.swap = 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
|
|
};
|
|
var Sa = /^(none|table(?!-c[ea]).+)/,
|
|
Ta = new RegExp("^(" + va + ")(.*)$", "i"),
|
|
Ua = new RegExp("^([+-])=(" + va + ")", "i"),
|
|
Va = {
|
|
position: "absolute",
|
|
visibility: "hidden",
|
|
display: "block"
|
|
},
|
|
Wa = {
|
|
letterSpacing: "0",
|
|
fontWeight: "400"
|
|
},
|
|
Xa = ["Webkit", "O", "Moz", "ms"];
|
|
_.extend({
|
|
cssHooks: {
|
|
opacity: {
|
|
get: function(a, b) {
|
|
if (b) {
|
|
var c = v(a, "opacity");
|
|
return "" === c ? "1" : c
|
|
}
|
|
}
|
|
}
|
|
},
|
|
cssNumber: {
|
|
columnCount: !0,
|
|
fillOpacity: !0,
|
|
flexGrow: !0,
|
|
flexShrink: !0,
|
|
fontWeight: !0,
|
|
lineHeight: !0,
|
|
opacity: !0,
|
|
order: !0,
|
|
orphans: !0,
|
|
widows: !0,
|
|
zIndex: !0,
|
|
zoom: !0
|
|
},
|
|
cssProps: {
|
|
"float": "cssFloat"
|
|
},
|
|
style: function(a, b, c, d) {
|
|
if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
|
|
var e, f, g, h = _.camelCase(b),
|
|
i = a.style;
|
|
return b = _.cssProps[h] || (_.cssProps[h] = x(i, h)), g = _.cssHooks[b] || _.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 = Ua.exec(c)) && (c = (e[1] + 1) * e[2] + parseFloat(_.css(a, b)), f = "number"), void(null != c && c === c && ("number" !== f || _.cssNumber[h] || (c += "px"), Y.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), g && "set" in g && void 0 === (c = g.set(a, c, d)) || (i[b] = c))))
|
|
}
|
|
},
|
|
css: function(a, b, c, d) {
|
|
var e, f, g, h = _.camelCase(b);
|
|
return b = _.cssProps[h] || (_.cssProps[h] = x(a.style, h)), g = _.cssHooks[b] || _.cssHooks[h], g && "get" in g && (e = g.get(a, !0, c)), void 0 === e && (e = v(a, b, d)), "normal" === e && b in Wa && (e = Wa[b]), "" === c || c ? (f = parseFloat(e), c === !0 || _.isNumeric(f) ? f || 0 : e) : e
|
|
}
|
|
}), _.each(["height", "width"], function(a, b) {
|
|
_.cssHooks[b] = {
|
|
get: function(a, c, d) {
|
|
return c ? Sa.test(_.css(a, "display")) && 0 === a.offsetWidth ? _.swap(a, Va, function() {
|
|
return A(a, b, d)
|
|
}) : A(a, b, d) : void 0
|
|
},
|
|
set: function(a, c, d) {
|
|
var e = d && Ra(a);
|
|
return y(a, c, d ? z(a, b, d, "border-box" === _.css(a, "boxSizing", !1, e), e) : 0)
|
|
}
|
|
}
|
|
}), _.cssHooks.marginRight = w(Y.reliableMarginRight, function(a, b) {
|
|
return b ? _.swap(a, {
|
|
display: "inline-block"
|
|
}, v, [a, "marginRight"]) : void 0
|
|
}), _.each({
|
|
margin: "",
|
|
padding: "",
|
|
border: "Width"
|
|
}, function(a, b) {
|
|
_.cssHooks[a + b] = {
|
|
expand: function(c) {
|
|
for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++) e[a + wa[d] + b] = f[d] || f[d - 2] || f[0];
|
|
return e
|
|
}
|
|
}, Pa.test(a) || (_.cssHooks[a + b].set = y)
|
|
}), _.fn.extend({
|
|
css: function(a, b) {
|
|
return qa(this, function(a, b, c) {
|
|
var d, e, f = {},
|
|
g = 0;
|
|
if (_.isArray(b)) {
|
|
for (d = Ra(a), e = b.length; e > g; g++) f[b[g]] = _.css(a, b[g], !1, d);
|
|
return f
|
|
}
|
|
return void 0 !== c ? _.style(a, b, c) : _.css(a, b)
|
|
}, a, b, arguments.length > 1)
|
|
},
|
|
show: function() {
|
|
return B(this, !0)
|
|
},
|
|
hide: function() {
|
|
return B(this)
|
|
},
|
|
toggle: function(a) {
|
|
return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() {
|
|
xa(this) ? _(this).show() : _(this).hide()
|
|
})
|
|
}
|
|
}), _.Tween = C, C.prototype = {
|
|
constructor: C,
|
|
init: function(a, b, c, d, e, f) {
|
|
this.elem = a, this.prop = c, this.easing = e || "swing", this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (_.cssNumber[c] ? "" : "px")
|
|
},
|
|
cur: function() {
|
|
var a = C.propHooks[this.prop];
|
|
return a && a.get ? a.get(this) : C.propHooks._default.get(this)
|
|
},
|
|
run: function(a) {
|
|
var b, c = C.propHooks[this.prop];
|
|
return this.pos = b = this.options.duration ? _.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : 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) : C.propHooks._default.set(this), this
|
|
}
|
|
}, C.prototype.init.prototype = C.prototype, C.propHooks = {
|
|
_default: {
|
|
get: function(a) {
|
|
var b;
|
|
return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (b = _.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0) : a.elem[a.prop]
|
|
},
|
|
set: function(a) {
|
|
_.fx.step[a.prop] ? _.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[_.cssProps[a.prop]] || _.cssHooks[a.prop]) ? _.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now
|
|
}
|
|
}
|
|
}, C.propHooks.scrollTop = C.propHooks.scrollLeft = {
|
|
set: function(a) {
|
|
a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
|
|
}
|
|
}, _.easing = {
|
|
linear: function(a) {
|
|
return a
|
|
},
|
|
swing: function(a) {
|
|
return .5 - Math.cos(a * Math.PI) / 2
|
|
}
|
|
}, _.fx = C.prototype.init, _.fx.step = {};
|
|
var Ya, Za, $a = /^(?:toggle|show|hide)$/,
|
|
_a = new RegExp("^(?:([+-])=|)(" + va + ")([a-z%]*)$", "i"),
|
|
ab = /queueHooks$/,
|
|
bb = [G],
|
|
cb = {
|
|
"*": [function(a, b) {
|
|
var c = this.createTween(a, b),
|
|
d = c.cur(),
|
|
e = _a.exec(b),
|
|
f = e && e[3] || (_.cssNumber[a] ? "" : "px"),
|
|
g = (_.cssNumber[a] || "px" !== f && +d) && _a.exec(_.css(c.elem, a)),
|
|
h = 1,
|
|
i = 20;
|
|
if (g && g[3] !== f) {
|
|
f = f || g[3], e = e || [], g = +d || 1;
|
|
do h = h || ".5", g /= h, _.style(c.elem, a, g + f); while (h !== (h = c.cur() / d) && 1 !== h && --i)
|
|
}
|
|
return e && (g = c.start = +g || +d || 0, c.unit = f, c.end = e[1] ? g + (e[1] + 1) * e[2] : +e[2]), c
|
|
}]
|
|
};
|
|
_.Animation = _.extend(I, {
|
|
tweener: function(a, b) {
|
|
_.isFunction(a) ? (b = a, a = ["*"]) : a = a.split(" ");
|
|
for (var c, d = 0, e = a.length; e > d; d++) c = a[d], cb[c] = cb[c] || [], cb[c].unshift(b)
|
|
},
|
|
prefilter: function(a, b) {
|
|
b ? bb.unshift(a) : bb.push(a)
|
|
}
|
|
}), _.speed = function(a, b, c) {
|
|
var d = a && "object" == typeof a ? _.extend({}, a) : {
|
|
complete: c || !c && b || _.isFunction(a) && a,
|
|
duration: a,
|
|
easing: c && b || b && !_.isFunction(b) && b
|
|
};
|
|
return d.duration = _.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in _.fx.speeds ? _.fx.speeds[d.duration] : _.fx.speeds._default, (null == d.queue || d.queue === !0) && (d.queue = "fx"), d.old = d.complete, d.complete = function() {
|
|
_.isFunction(d.old) && d.old.call(this), d.queue && _.dequeue(this, d.queue)
|
|
}, d
|
|
}, _.fn.extend({
|
|
fadeTo: function(a, b, c, d) {
|
|
return this.filter(xa).css("opacity", 0).show().end().animate({
|
|
opacity: b
|
|
}, a, c, d)
|
|
},
|
|
animate: function(a, b, c, d) {
|
|
var e = _.isEmptyObject(a),
|
|
f = _.speed(b, c, d),
|
|
g = function() {
|
|
var b = I(this, _.extend({}, a), f);
|
|
(e || ra.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 = _.timers,
|
|
g = ra.get(this);
|
|
if (e) g[e] && g[e].stop && d(g[e]);
|
|
else
|
|
for (e in g) g[e] && g[e].stop && ab.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) && _.dequeue(this, a)
|
|
})
|
|
},
|
|
finish: function(a) {
|
|
return a !== !1 && (a = a || "fx"), this.each(function() {
|
|
var b, c = ra.get(this),
|
|
d = c[a + "queue"],
|
|
e = c[a + "queueHooks"],
|
|
f = _.timers,
|
|
g = d ? d.length : 0;
|
|
for (c.finish = !0, _.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
|
|
})
|
|
}
|
|
}), _.each(["toggle", "show", "hide"], function(a, b) {
|
|
var c = _.fn[b];
|
|
_.fn[b] = function(a, d, e) {
|
|
return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(E(b, !0), a, d, e)
|
|
}
|
|
}), _.each({
|
|
slideDown: E("show"),
|
|
slideUp: E("hide"),
|
|
slideToggle: E("toggle"),
|
|
fadeIn: {
|
|
opacity: "show"
|
|
},
|
|
fadeOut: {
|
|
opacity: "hide"
|
|
},
|
|
fadeToggle: {
|
|
opacity: "toggle"
|
|
}
|
|
}, function(a, b) {
|
|
_.fn[a] = function(a, c, d) {
|
|
return this.animate(b, a, c, d)
|
|
}
|
|
}), _.timers = [], _.fx.tick = function() {
|
|
var a, b = 0,
|
|
c = _.timers;
|
|
for (Ya = _.now(); b < c.length; b++) a = c[b], a() || c[b] !== a || c.splice(b--, 1);
|
|
c.length || _.fx.stop(), Ya = void 0
|
|
}, _.fx.timer = function(a) {
|
|
_.timers.push(a), a() ? _.fx.start() : _.timers.pop()
|
|
}, _.fx.interval = 13, _.fx.start = function() {
|
|
Za || (Za = setInterval(_.fx.tick, _.fx.interval))
|
|
}, _.fx.stop = function() {
|
|
clearInterval(Za), Za = null
|
|
}, _.fx.speeds = {
|
|
slow: 600,
|
|
fast: 200,
|
|
_default: 400
|
|
}, _.fn.delay = function(a, b) {
|
|
return a = _.fx ? _.fx.speeds[a] || a : a, b = b || "fx", this.queue(b, function(b, c) {
|
|
var d = setTimeout(b, a);
|
|
c.stop = function() {
|
|
clearTimeout(d)
|
|
}
|
|
})
|
|
},
|
|
function() {
|
|
var a = Z.createElement("input"),
|
|
b = Z.createElement("select"),
|
|
c = b.appendChild(Z.createElement("option"));
|
|
a.type = "checkbox", Y.checkOn = "" !== a.value, Y.optSelected = c.selected, b.disabled = !0, Y.optDisabled = !c.disabled, a = Z.createElement("input"), a.value = "t", a.type = "radio", Y.radioValue = "t" === a.value
|
|
}();
|
|
var db, eb, fb = _.expr.attrHandle;
|
|
_.fn.extend({
|
|
attr: function(a, b) {
|
|
return qa(this, _.attr, a, b, arguments.length > 1)
|
|
},
|
|
removeAttr: function(a) {
|
|
return this.each(function() {
|
|
_.removeAttr(this, a)
|
|
})
|
|
}
|
|
}), _.extend({
|
|
attr: function(a, b, c) {
|
|
var d, e, f = a.nodeType;
|
|
return a && 3 !== f && 8 !== f && 2 !== f ? typeof a.getAttribute === za ? _.prop(a, b, c) : (1 === f && _.isXMLDoc(a) || (b = b.toLowerCase(), d = _.attrHooks[b] || (_.expr.match.bool.test(b) ? eb : db)), void 0 === c ? d && "get" in d && null !== (e = d.get(a, b)) ? e : (e = _.find.attr(a, b), null == e ? void 0 : e) : null !== c ? d && "set" in d && void 0 !== (e = d.set(a, c, b)) ? e : (a.setAttribute(b, c + ""), c) : void _.removeAttr(a, b)) : void 0
|
|
},
|
|
removeAttr: function(a, b) {
|
|
var c, d, e = 0,
|
|
f = b && b.match(na);
|
|
if (f && 1 === a.nodeType)
|
|
for (; c = f[e++];) d = _.propFix[c] || c, _.expr.match.bool.test(c) && (a[d] = !1), a.removeAttribute(c)
|
|
},
|
|
attrHooks: {
|
|
type: {
|
|
set: function(a, b) {
|
|
if (!Y.radioValue && "radio" === b && _.nodeName(a, "input")) {
|
|
var c = a.value;
|
|
return a.setAttribute("type", b), c && (a.value = c), b
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}), eb = {
|
|
set: function(a, b, c) {
|
|
return b === !1 ? _.removeAttr(a, c) : a.setAttribute(c, c), c
|
|
}
|
|
}, _.each(_.expr.match.bool.source.match(/\w+/g), function(a, b) {
|
|
var c = fb[b] || _.find.attr;
|
|
fb[b] = function(a, b, d) {
|
|
var e, f;
|
|
return d || (f = fb[b], fb[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, fb[b] = f), e
|
|
}
|
|
});
|
|
var gb = /^(?:input|select|textarea|button)$/i;
|
|
_.fn.extend({
|
|
prop: function(a, b) {
|
|
return qa(this, _.prop, a, b, arguments.length > 1)
|
|
},
|
|
removeProp: function(a) {
|
|
return this.each(function() {
|
|
delete this[_.propFix[a] || a]
|
|
})
|
|
}
|
|
}), _.extend({
|
|
propFix: {
|
|
"for": "htmlFor",
|
|
"class": "className"
|
|
},
|
|
prop: function(a, b, c) {
|
|
var d, e, f, g = a.nodeType;
|
|
return a && 3 !== g && 8 !== g && 2 !== g ? (f = 1 !== g || !_.isXMLDoc(a), f && (b = _.propFix[b] || b, e = _.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]) : void 0
|
|
},
|
|
propHooks: {
|
|
tabIndex: {
|
|
get: function(a) {
|
|
return a.hasAttribute("tabindex") || gb.test(a.nodeName) || a.href ? a.tabIndex : -1
|
|
}
|
|
}
|
|
}
|
|
}), Y.optSelected || (_.propHooks.selected = {
|
|
get: function(a) {
|
|
var b = a.parentNode;
|
|
return b && b.parentNode && b.parentNode.selectedIndex, null
|
|
}
|
|
}), _.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
|
|
_.propFix[this.toLowerCase()] = this
|
|
});
|
|
var hb = /[\t\r\n\f]/g;
|
|
_.fn.extend({
|
|
addClass: function(a) {
|
|
var b, c, d, e, f, g, h = "string" == typeof a && a,
|
|
i = 0,
|
|
j = this.length;
|
|
if (_.isFunction(a)) return this.each(function(b) {
|
|
_(this).addClass(a.call(this, b, this.className))
|
|
});
|
|
if (h)
|
|
for (b = (a || "").match(na) || []; j > i; i++)
|
|
if (c = this[i], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(hb, " ") : " ")) {
|
|
for (f = 0; e = b[f++];) d.indexOf(" " + e + " ") < 0 && (d += e + " ");
|
|
g = _.trim(d), c.className !== g && (c.className = g)
|
|
} return this
|
|
},
|
|
removeClass: function(a) {
|
|
var b, c, d, e, f, g, h = 0 === arguments.length || "string" == typeof a && a,
|
|
i = 0,
|
|
j = this.length;
|
|
if (_.isFunction(a)) return this.each(function(b) {
|
|
_(this).removeClass(a.call(this, b, this.className))
|
|
});
|
|
if (h)
|
|
for (b = (a || "").match(na) || []; j > i; i++)
|
|
if (c = this[i], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(hb, " ") : "")) {
|
|
for (f = 0; e = b[f++];)
|
|
for (; d.indexOf(" " + e + " ") >= 0;) d = d.replace(" " + e + " ", " ");
|
|
g = a ? _.trim(d) : "", c.className !== g && (c.className = g)
|
|
} return this
|
|
},
|
|
toggleClass: function(a, b) {
|
|
var c = typeof a;
|
|
return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : this.each(_.isFunction(a) ? function(c) {
|
|
_(this).toggleClass(a.call(this, c, this.className, b), b)
|
|
} : function() {
|
|
if ("string" === c)
|
|
for (var b, d = 0, e = _(this), f = a.match(na) || []; b = f[d++];) e.hasClass(b) ? e.removeClass(b) : e.addClass(b);
|
|
else(c === za || "boolean" === c) && (this.className && ra.set(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : ra.get(this, "__className__") || "")
|
|
})
|
|
},
|
|
hasClass: function(a) {
|
|
for (var b = " " + a + " ", c = 0, d = this.length; d > c; c++)
|
|
if (1 === this[c].nodeType && (" " + this[c].className + " ").replace(hb, " ").indexOf(b) >= 0) return !0;
|
|
return !1
|
|
}
|
|
});
|
|
var ib = /\r/g;
|
|
_.fn.extend({
|
|
val: function(a) {
|
|
var b, c, d, e = this[0];
|
|
return arguments.length ? (d = _.isFunction(a), this.each(function(c) {
|
|
var e;
|
|
1 === this.nodeType && (e = d ? a.call(this, c, _(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : _.isArray(e) && (e = _.map(e, function(a) {
|
|
return null == a ? "" : a + ""
|
|
})), b = _.valHooks[this.type] || _.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e))
|
|
})) : e ? (b = _.valHooks[e.type] || _.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(ib, "") : null == c ? "" : c)) : void 0
|
|
}
|
|
}), _.extend({
|
|
valHooks: {
|
|
option: {
|
|
get: function(a) {
|
|
var b = _.find.attr(a, "value");
|
|
return null != b ? b : _.trim(_.text(a))
|
|
}
|
|
},
|
|
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 || (Y.optDisabled ? c.disabled : null !== c.getAttribute("disabled")) || c.parentNode.disabled && _.nodeName(c.parentNode, "optgroup"))) {
|
|
if (b = _(c).val(), f) return b;
|
|
g.push(b)
|
|
} return g
|
|
},
|
|
set: function(a, b) {
|
|
for (var c, d, e = a.options, f = _.makeArray(b), g = e.length; g--;) d = e[g], (d.selected = _.inArray(d.value, f) >= 0) && (c = !0);
|
|
return c || (a.selectedIndex = -1), f
|
|
}
|
|
}
|
|
}
|
|
}), _.each(["radio", "checkbox"], function() {
|
|
_.valHooks[this] = {
|
|
set: function(a, b) {
|
|
return _.isArray(b) ? a.checked = _.inArray(_(a).val(), b) >= 0 : void 0
|
|
}
|
|
}, Y.checkOn || (_.valHooks[this].get = function(a) {
|
|
return null === a.getAttribute("value") ? "on" : a.value
|
|
})
|
|
}), _.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) {
|
|
_.fn[b] = function(a, c) {
|
|
return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
|
|
}
|
|
}), _.fn.extend({
|
|
hover: function(a, b) {
|
|
return this.mouseenter(a).mouseleave(b || a)
|
|
},
|
|
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)
|
|
}
|
|
});
|
|
var jb = _.now(),
|
|
kb = /\?/;
|
|
_.parseJSON = function(a) {
|
|
return JSON.parse(a + "")
|
|
}, _.parseXML = function(a) {
|
|
var b, c;
|
|
if (!a || "string" != typeof a) return null;
|
|
try {
|
|
c = new DOMParser, b = c.parseFromString(a, "text/xml")
|
|
} catch (d) {
|
|
b = void 0
|
|
}
|
|
return (!b || b.getElementsByTagName("parsererror").length) && _.error("Invalid XML: " + a), b
|
|
};
|
|
var lb = /#.*$/,
|
|
mb = /([?&])_=[^&]*/,
|
|
nb = /^(.*?):[ \t]*([^\r\n]*)$/gm,
|
|
ob = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
|
|
pb = /^(?:GET|HEAD)$/,
|
|
qb = /^\/\//,
|
|
rb = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
|
|
sb = {},
|
|
tb = {},
|
|
ub = "*/".concat("*"),
|
|
vb = a.location.href,
|
|
wb = rb.exec(vb.toLowerCase()) || [];
|
|
_.extend({
|
|
active: 0,
|
|
lastModified: {},
|
|
etag: {},
|
|
ajaxSettings: {
|
|
url: vb,
|
|
type: "GET",
|
|
isLocal: ob.test(wb[1]),
|
|
global: !0,
|
|
processData: !0,
|
|
async: !0,
|
|
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
|
|
accepts: {
|
|
"*": ub,
|
|
text: "text/plain",
|
|
html: "text/html",
|
|
xml: "application/xml, text/xml",
|
|
json: "application/json, text/javascript"
|
|
},
|
|
contents: {
|
|
xml: /xml/,
|
|
html: /html/,
|
|
json: /json/
|
|
},
|
|
responseFields: {
|
|
xml: "responseXML",
|
|
text: "responseText",
|
|
json: "responseJSON"
|
|
},
|
|
converters: {
|
|
"* text": String,
|
|
"text html": !0,
|
|
"text json": _.parseJSON,
|
|
"text xml": _.parseXML
|
|
},
|
|
flatOptions: {
|
|
url: !0,
|
|
context: !0
|
|
}
|
|
},
|
|
ajaxSetup: function(a, b) {
|
|
return b ? L(L(a, _.ajaxSettings), b) : L(_.ajaxSettings, a)
|
|
},
|
|
ajaxPrefilter: J(sb),
|
|
ajaxTransport: J(tb),
|
|
ajax: function(a, b) {
|
|
function c(a, b, c, g) {
|
|
var i, k, r, s, u, w = b;
|
|
2 !== t && (t = 2, h && clearTimeout(h), d = void 0, f = g || "", v.readyState = a > 0 ? 4 : 0, i = a >= 200 && 300 > a || 304 === a, c && (s = M(l, v, c)), s = N(l, s, v, i), i ? (l.ifModified && (u = v.getResponseHeader("Last-Modified"), u && (_.lastModified[e] = u), u = v.getResponseHeader("etag"), u && (_.etag[e] = u)), 204 === a || "HEAD" === l.type ? w = "nocontent" : 304 === a ? w = "notmodified" : (w = s.state, k = s.data, r = s.error, i = !r)) : (r = w, (a || !w) && (w = "error", 0 > a && (a = 0))), v.status = a, v.statusText = (b || w) + "", i ? o.resolveWith(m, [k, w, v]) : o.rejectWith(m, [v, w, r]), v.statusCode(q), q = void 0, j && n.trigger(i ? "ajaxSuccess" : "ajaxError", [v, l, i ? k : r]), p.fireWith(m, [v, w]), j && (n.trigger("ajaxComplete", [v, l]), --_.active || _.event.trigger("ajaxStop")))
|
|
}
|
|
"object" == typeof a && (b = a, a = void 0), b = b || {};
|
|
var d, e, f, g, h, i, j, k, l = _.ajaxSetup({}, b),
|
|
m = l.context || l,
|
|
n = l.context && (m.nodeType || m.jquery) ? _(m) : _.event,
|
|
o = _.Deferred(),
|
|
p = _.Callbacks("once memory"),
|
|
q = l.statusCode || {},
|
|
r = {},
|
|
s = {},
|
|
t = 0,
|
|
u = "canceled",
|
|
v = {
|
|
readyState: 0,
|
|
getResponseHeader: function(a) {
|
|
var b;
|
|
if (2 === t) {
|
|
if (!g)
|
|
for (g = {}; b = nb.exec(f);) g[b[1].toLowerCase()] = b[2];
|
|
b = g[a.toLowerCase()]
|
|
}
|
|
return null == b ? null : b
|
|
},
|
|
getAllResponseHeaders: function() {
|
|
return 2 === t ? f : null
|
|
},
|
|
setRequestHeader: function(a, b) {
|
|
var c = a.toLowerCase();
|
|
return t || (a = s[c] = s[c] || a, r[a] = b), this
|
|
},
|
|
overrideMimeType: function(a) {
|
|
return t || (l.mimeType = a), this
|
|
},
|
|
statusCode: function(a) {
|
|
var b;
|
|
if (a)
|
|
if (2 > t)
|
|
for (b in a) q[b] = [q[b], a[b]];
|
|
else v.always(a[v.status]);
|
|
return this
|
|
},
|
|
abort: function(a) {
|
|
var b = a || u;
|
|
return d && d.abort(b), c(0, b), this
|
|
}
|
|
};
|
|
if (o.promise(v).complete = p.add, v.success = v.done, v.error = v.fail, l.url = ((a || l.url || vb) + "").replace(lb, "").replace(qb, wb[1] + "//"), l.type = b.method || b.type || l.method || l.type, l.dataTypes = _.trim(l.dataType || "*").toLowerCase().match(na) || [""], null == l.crossDomain && (i = rb.exec(l.url.toLowerCase()), l.crossDomain = !(!i || i[1] === wb[1] && i[2] === wb[2] && (i[3] || ("http:" === i[1] ? "80" : "443")) === (wb[3] || ("http:" === wb[1] ? "80" : "443")))), l.data && l.processData && "string" != typeof l.data && (l.data = _.param(l.data, l.traditional)), K(sb, l, b, v), 2 === t) return v;
|
|
j = _.event && l.global, j && 0 === _.active++ && _.event.trigger("ajaxStart"), l.type = l.type.toUpperCase(), l.hasContent = !pb.test(l.type), e = l.url, l.hasContent || (l.data && (e = l.url += (kb.test(e) ? "&" : "?") + l.data, delete l.data), l.cache === !1 && (l.url = mb.test(e) ? e.replace(mb, "$1_=" + jb++) : e + (kb.test(e) ? "&" : "?") + "_=" + jb++)), l.ifModified && (_.lastModified[e] && v.setRequestHeader("If-Modified-Since", _.lastModified[e]), _.etag[e] && v.setRequestHeader("If-None-Match", _.etag[e])), (l.data && l.hasContent && l.contentType !== !1 || b.contentType) && v.setRequestHeader("Content-Type", l.contentType), v.setRequestHeader("Accept", l.dataTypes[0] && l.accepts[l.dataTypes[0]] ? l.accepts[l.dataTypes[0]] + ("*" !== l.dataTypes[0] ? ", " + ub + "; q=0.01" : "") : l.accepts["*"]);
|
|
for (k in l.headers) v.setRequestHeader(k, l.headers[k]);
|
|
if (l.beforeSend && (l.beforeSend.call(m, v, l) === !1 || 2 === t)) return v.abort();
|
|
u = "abort";
|
|
for (k in {
|
|
success: 1,
|
|
error: 1,
|
|
complete: 1
|
|
}) v[k](l[k]);
|
|
if (d = K(tb, l, b, v)) {
|
|
v.readyState = 1, j && n.trigger("ajaxSend", [v, l]), l.async && l.timeout > 0 && (h = setTimeout(function() {
|
|
v.abort("timeout")
|
|
}, l.timeout));
|
|
try {
|
|
t = 1, d.send(r, c)
|
|
} catch (w) {
|
|
if (!(2 > t)) throw w;
|
|
c(-1, w)
|
|
}
|
|
} else c(-1, "No Transport");
|
|
return v
|
|
},
|
|
getJSON: function(a, b, c) {
|
|
return _.get(a, b, c, "json")
|
|
},
|
|
getScript: function(a, b) {
|
|
return _.get(a, void 0, b, "script")
|
|
}
|
|
}), _.each(["get", "post"], function(a, b) {
|
|
_[b] = function(a, c, d, e) {
|
|
return _.isFunction(c) && (e = e || d, d = c, c = void 0), _.ajax({
|
|
url: a,
|
|
type: b,
|
|
dataType: e,
|
|
data: c,
|
|
success: d
|
|
})
|
|
}
|
|
}), _._evalUrl = function(a) {
|
|
return _.ajax({
|
|
url: a,
|
|
type: "GET",
|
|
dataType: "script",
|
|
async: !1,
|
|
global: !1,
|
|
"throws": !0
|
|
})
|
|
}, _.fn.extend({
|
|
wrapAll: function(a) {
|
|
var b;
|
|
return _.isFunction(a) ? this.each(function(b) {
|
|
_(this).wrapAll(a.call(this, b))
|
|
}) : (this[0] && (b = _(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 this.each(_.isFunction(a) ? function(b) {
|
|
_(this).wrapInner(a.call(this, b))
|
|
} : function() {
|
|
var b = _(this),
|
|
c = b.contents();
|
|
c.length ? c.wrapAll(a) : b.append(a)
|
|
})
|
|
},
|
|
wrap: function(a) {
|
|
var b = _.isFunction(a);
|
|
return this.each(function(c) {
|
|
_(this).wrapAll(b ? a.call(this, c) : a)
|
|
})
|
|
},
|
|
unwrap: function() {
|
|
return this.parent().each(function() {
|
|
_.nodeName(this, "body") || _(this).replaceWith(this.childNodes)
|
|
}).end()
|
|
}
|
|
}), _.expr.filters.hidden = function(a) {
|
|
return a.offsetWidth <= 0 && a.offsetHeight <= 0
|
|
}, _.expr.filters.visible = function(a) {
|
|
return !_.expr.filters.hidden(a)
|
|
};
|
|
var xb = /%20/g,
|
|
yb = /\[\]$/,
|
|
zb = /\r?\n/g,
|
|
Ab = /^(?:submit|button|image|reset|file)$/i,
|
|
Bb = /^(?:input|select|textarea|keygen)/i;
|
|
_.param = function(a, b) {
|
|
var c, d = [],
|
|
e = function(a, b) {
|
|
b = _.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b)
|
|
};
|
|
if (void 0 === b && (b = _.ajaxSettings && _.ajaxSettings.traditional), _.isArray(a) || a.jquery && !_.isPlainObject(a)) _.each(a, function() {
|
|
e(this.name, this.value)
|
|
});
|
|
else
|
|
for (c in a) O(c, a[c], b, e);
|
|
return d.join("&").replace(xb, "+")
|
|
}, _.fn.extend({
|
|
serialize: function() {
|
|
return _.param(this.serializeArray())
|
|
},
|
|
serializeArray: function() {
|
|
return this.map(function() {
|
|
var a = _.prop(this, "elements");
|
|
return a ? _.makeArray(a) : this
|
|
}).filter(function() {
|
|
var a = this.type;
|
|
return this.name && !_(this).is(":disabled") && Bb.test(this.nodeName) && !Ab.test(a) && (this.checked || !ya.test(a))
|
|
}).map(function(a, b) {
|
|
var c = _(this).val();
|
|
return null == c ? null : _.isArray(c) ? _.map(c, function(a) {
|
|
return {
|
|
name: b.name,
|
|
value: a.replace(zb, "\r\n")
|
|
}
|
|
}) : {
|
|
name: b.name,
|
|
value: c.replace(zb, "\r\n")
|
|
}
|
|
}).get()
|
|
}
|
|
}), _.ajaxSettings.xhr = function() {
|
|
try {
|
|
return new XMLHttpRequest
|
|
} catch (a) {}
|
|
};
|
|
var Cb = 0,
|
|
Db = {},
|
|
Eb = {
|
|
0: 200,
|
|
1223: 204
|
|
},
|
|
Fb = _.ajaxSettings.xhr();
|
|
a.attachEvent && a.attachEvent("onunload", function() {
|
|
for (var a in Db) Db[a]()
|
|
}), Y.cors = !!Fb && "withCredentials" in Fb, Y.ajax = Fb = !!Fb, _.ajaxTransport(function(a) {
|
|
var b;
|
|
return Y.cors || Fb && !a.crossDomain ? {
|
|
send: function(c, d) {
|
|
var e, f = a.xhr(),
|
|
g = ++Cb;
|
|
if (f.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields)
|
|
for (e in a.xhrFields) f[e] = a.xhrFields[e];
|
|
a.mimeType && f.overrideMimeType && f.overrideMimeType(a.mimeType), a.crossDomain || c["X-Requested-With"] || (c["X-Requested-With"] = "XMLHttpRequest");
|
|
for (e in c) f.setRequestHeader(e, c[e]);
|
|
b = function(a) {
|
|
return function() {
|
|
b && (delete Db[g], b = f.onload = f.onerror = null, "abort" === a ? f.abort() : "error" === a ? d(f.status, f.statusText) : d(Eb[f.status] || f.status, f.statusText, "string" == typeof f.responseText ? {
|
|
text: f.responseText
|
|
} : void 0, f.getAllResponseHeaders()))
|
|
}
|
|
}, f.onload = b(), f.onerror = b("error"), b = Db[g] = b("abort");
|
|
try {
|
|
f.send(a.hasContent && a.data || null)
|
|
} catch (h) {
|
|
if (b) throw h
|
|
}
|
|
},
|
|
abort: function() {
|
|
b && b()
|
|
}
|
|
} : void 0
|
|
}), _.ajaxSetup({
|
|
accepts: {
|
|
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
|
|
},
|
|
contents: {
|
|
script: /(?:java|ecma)script/
|
|
},
|
|
converters: {
|
|
"text script": function(a) {
|
|
return _.globalEval(a), a
|
|
}
|
|
}
|
|
}), _.ajaxPrefilter("script", function(a) {
|
|
void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET")
|
|
}), _.ajaxTransport("script", function(a) {
|
|
if (a.crossDomain) {
|
|
var b, c;
|
|
return {
|
|
send: function(d, e) {
|
|
b = _("<script>").prop({
|
|
async: !0,
|
|
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)
|
|
}), Z.head.appendChild(b[0])
|
|
},
|
|
abort: function() {
|
|
c && c()
|
|
}
|
|
}
|
|
}
|
|
});
|
|
var Gb = [],
|
|
Hb = /(=)\?(?=&|$)|\?\?/;
|
|
_.ajaxSetup({
|
|
jsonp: "callback",
|
|
jsonpCallback: function() {
|
|
var a = Gb.pop() || _.expando + "_" + jb++;
|
|
return this[a] = !0, a
|
|
}
|
|
}), _.ajaxPrefilter("json jsonp", function(b, c, d) {
|
|
var e, f, g, h = b.jsonp !== !1 && (Hb.test(b.url) ? "url" : "string" == typeof b.data && !(b.contentType || "").indexOf("application/x-www-form-urlencoded") && Hb.test(b.data) && "data");
|
|
return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = _.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(Hb, "$1" + e) : b.jsonp !== !1 && (b.url += (kb.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function() {
|
|
return g || _.error(e + " was not called"), g[0]
|
|
}, b.dataTypes[0] = "json", f = a[e], a[e] = function() {
|
|
g = arguments
|
|
}, d.always(function() {
|
|
a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, Gb.push(e)), g && _.isFunction(f) && f(g[0]), g = f = void 0
|
|
}), "script") : void 0
|
|
}), _.parseHTML = function(a, b, c) {
|
|
if (!a || "string" != typeof a) return null;
|
|
"boolean" == typeof b && (c = b, b = !1), b = b || Z;
|
|
var d = ga.exec(a),
|
|
e = !c && [];
|
|
return d ? [b.createElement(d[1])] : (d = _.buildFragment([a], b, e), e && e.length && _(e).remove(), _.merge([], d.childNodes))
|
|
};
|
|
var Ib = _.fn.load;
|
|
_.fn.load = function(a, b, c) {
|
|
if ("string" != typeof a && Ib) return Ib.apply(this, arguments);
|
|
var d, e, f, g = this,
|
|
h = a.indexOf(" ");
|
|
return h >= 0 && (d = _.trim(a.slice(h)), a = a.slice(0, h)), _.isFunction(b) ? (c = b, b = void 0) : b && "object" == typeof b && (e = "POST"), g.length > 0 && _.ajax({
|
|
url: a,
|
|
type: e,
|
|
dataType: "html",
|
|
data: b
|
|
}).done(function(a) {
|
|
f = arguments, g.html(d ? _("<div>").append(_.parseHTML(a)).find(d) : a)
|
|
}).complete(c && function(a, b) {
|
|
g.each(c, f || [a.responseText, b, a])
|
|
}), this
|
|
}, _.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(a, b) {
|
|
_.fn[b] = function(a) {
|
|
return this.on(b, a)
|
|
}
|
|
}), _.expr.filters.animated = function(a) {
|
|
return _.grep(_.timers, function(b) {
|
|
return a === b.elem
|
|
}).length
|
|
};
|
|
var Jb = a.document.documentElement;
|
|
_.offset = {
|
|
setOffset: function(a, b, c) {
|
|
var d, e, f, g, h, i, j, k = _.css(a, "position"),
|
|
l = _(a),
|
|
m = {};
|
|
"static" === k && (a.style.position = "relative"), h = l.offset(), f = _.css(a, "top"), i = _.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), _.isFunction(b) && (b = b.call(a, c, 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)
|
|
}
|
|
}, _.fn.extend({
|
|
offset: function(a) {
|
|
if (arguments.length) return void 0 === a ? this : this.each(function(b) {
|
|
_.offset.setOffset(this, a, b)
|
|
});
|
|
var b, c, d = this[0],
|
|
e = {
|
|
top: 0,
|
|
left: 0
|
|
},
|
|
f = d && d.ownerDocument;
|
|
return f ? (b = f.documentElement, _.contains(b, d) ? (typeof d.getBoundingClientRect !== za && (e = d.getBoundingClientRect()), c = P(f), {
|
|
top: e.top + c.pageYOffset - b.clientTop,
|
|
left: e.left + c.pageXOffset - b.clientLeft
|
|
}) : e) : void 0
|
|
},
|
|
position: function() {
|
|
if (this[0]) {
|
|
var a, b, c = this[0],
|
|
d = {
|
|
top: 0,
|
|
left: 0
|
|
};
|
|
return "fixed" === _.css(c, "position") ? b = c.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), _.nodeName(a[0], "html") || (d = a.offset()), d.top += _.css(a[0], "borderTopWidth", !0), d.left += _.css(a[0], "borderLeftWidth", !0)), {
|
|
top: b.top - d.top - _.css(c, "marginTop", !0),
|
|
left: b.left - d.left - _.css(c, "marginLeft", !0)
|
|
}
|
|
}
|
|
},
|
|
offsetParent: function() {
|
|
return this.map(function() {
|
|
for (var a = this.offsetParent || Jb; a && !_.nodeName(a, "html") && "static" === _.css(a, "position");) a = a.offsetParent;
|
|
return a || Jb
|
|
})
|
|
}
|
|
}), _.each({
|
|
scrollLeft: "pageXOffset",
|
|
scrollTop: "pageYOffset"
|
|
}, function(b, c) {
|
|
var d = "pageYOffset" === c;
|
|
_.fn[b] = function(e) {
|
|
return qa(this, function(b, e, f) {
|
|
var g = P(b);
|
|
return void 0 === f ? g ? g[c] : b[e] : void(g ? g.scrollTo(d ? a.pageXOffset : f, d ? f : a.pageYOffset) : b[e] = f)
|
|
}, b, e, arguments.length, null)
|
|
}
|
|
}), _.each(["top", "left"], function(a, b) {
|
|
_.cssHooks[b] = w(Y.pixelPosition, function(a, c) {
|
|
return c ? (c = v(a, b), Qa.test(c) ? _(a).position()[b] + "px" : c) : void 0
|
|
})
|
|
}), _.each({
|
|
Height: "height",
|
|
Width: "width"
|
|
}, function(a, b) {
|
|
_.each({
|
|
padding: "inner" + a,
|
|
content: b,
|
|
"": "outer" + a
|
|
}, function(c, d) {
|
|
_.fn[d] = function(d, e) {
|
|
var f = arguments.length && (c || "boolean" != typeof d),
|
|
g = c || (d === !0 || e === !0 ? "margin" : "border");
|
|
return qa(this, function(b, c, d) {
|
|
var e;
|
|
return _.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 ? _.css(b, c, g) : _.style(b, c, d, g)
|
|
}, b, f ? d : void 0, f, null)
|
|
}
|
|
})
|
|
}), _.fn.size = function() {
|
|
return this.length
|
|
}, _.fn.andSelf = _.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function() {
|
|
return _
|
|
});
|
|
var Kb = a.jQuery,
|
|
Lb = a.$;
|
|
return _.noConflict = function(b) {
|
|
return a.$ === _ && (a.$ = Lb), b && a.jQuery === _ && (a.jQuery = Kb), _
|
|
}, typeof b === za && (a.jQuery = a.$ = _), _
|
|
}),
|
|
function(a, b, c) {
|
|
"use strict";
|
|
a.fn.scrollUp = function(b) {
|
|
a.data(c.body, "scrollUp") || (a.data(c.body, "scrollUp", !0), a.fn.scrollUp.init(b))
|
|
}, a.fn.scrollUp.init = function(d) {
|
|
var e, f, g, h, i, j, k, l = a.fn.scrollUp.settings = a.extend({}, a.fn.scrollUp.defaults, d),
|
|
m = !1;
|
|
switch (k = l.scrollTrigger ? a(l.scrollTrigger) : a("<a/>", {
|
|
id: l.scrollName,
|
|
href: "#top"
|
|
}), l.scrollTitle && k.attr("title", l.scrollTitle), k.appendTo("body"), l.scrollImg || l.scrollTrigger || k.html(l.scrollText), k.css({
|
|
display: "none",
|
|
position: "fixed",
|
|
zIndex: l.zIndex
|
|
}), l.activeOverlay && a("<div/>", {
|
|
id: l.scrollName + "-active"
|
|
}).css({
|
|
position: "absolute",
|
|
top: l.scrollDistance + "px",
|
|
width: "100%",
|
|
borderTop: "1px dotted" + l.activeOverlay,
|
|
zIndex: l.zIndex
|
|
}).appendTo("body"), l.animation) {
|
|
case "fade":
|
|
e = "fadeIn", f = "fadeOut", g = l.animationSpeed;
|
|
break;
|
|
case "slide":
|
|
e = "slideDown", f = "slideUp", g = l.animationSpeed;
|
|
break;
|
|
default:
|
|
e = "show", f = "hide", g = 0
|
|
}
|
|
h = "top" === l.scrollFrom ? l.scrollDistance : a(c).height() - a(b).height() - l.scrollDistance, i = a(b).scroll(function() {
|
|
a(b).scrollTop() > h ? m || (k[e](g), m = !0) : m && (k[f](g), m = !1)
|
|
}), l.scrollTarget ? "number" == typeof l.scrollTarget ? j = l.scrollTarget : "string" == typeof l.scrollTarget && (j = Math.floor(a(l.scrollTarget).offset().top)) : j = 0, l.dataPosition && k.attr("data-position", l.dataPosition), l.dataTooltip && k.attr("data-tooltip", l.dataTooltip), l.scrollClass && k.attr("class", l.scrollClass), k.click(function(b) {
|
|
b.preventDefault(), a("html, body").animate({
|
|
scrollTop: j
|
|
}, l.scrollSpeed, l.easingType)
|
|
})
|
|
}, a.fn.scrollUp.defaults = {
|
|
scrollName: "scrollUp",
|
|
scrollClass: "tooltipped",
|
|
scrollDistance: 300,
|
|
scrollFrom: "top",
|
|
scrollSpeed: 300,
|
|
easingType: "linear",
|
|
animation: "fade",
|
|
animationSpeed: 200,
|
|
scrollTrigger: !1,
|
|
scrollTarget: !1,
|
|
scrollText: "Scroll to top",
|
|
scrollTitle: !1,
|
|
scrollImg: !1,
|
|
activeOverlay: !1,
|
|
zIndex: 2147483647,
|
|
dataPosition: "top",
|
|
dataTooltip: "Scroll to top"
|
|
}, a.fn.scrollUp.destroy = function(d) {
|
|
a.removeData(c.body, "scrollUp"), a("#" + a.fn.scrollUp.settings.scrollName).remove(), a("#" + a.fn.scrollUp.settings.scrollName + "-active").remove(), a.fn.jquery.split(".")[1] >= 7 ? a(b).off("scroll", d) : a(b).unbind("scroll", d)
|
|
}, a.scrollUp = a.fn.scrollUp
|
|
}(jQuery, window, document),
|
|
function(a) {
|
|
var b = !1,
|
|
c = !1,
|
|
d = {
|
|
isUrl: function(a) {
|
|
var b = RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$", "i");
|
|
return b.test(a) ? !0 : !1
|
|
},
|
|
loadContent: function(a, b) {
|
|
a.html(b)
|
|
},
|
|
addPrefix: function(a) {
|
|
var b = a.attr("id"),
|
|
c = a.attr("class");
|
|
"string" == typeof b && "" !== b && a.attr("id", b.replace(/([A-Za-z0-9_.\-]+)/g, "sidr-id-$1")), "string" == typeof c && "" !== c && "sidr-inner" !== c && a.attr("class", c.replace(/([A-Za-z0-9_.\-]+)/g, "sidr-class-$1")), a.removeAttr("style")
|
|
},
|
|
execute: function(d, f, g) {
|
|
"function" == typeof f ? (g = f, f = "sidr") : f || (f = "sidr");
|
|
var h, i, j, k = a("#" + f),
|
|
l = a(k.data("body")),
|
|
m = a("html"),
|
|
n = k.outerWidth(!0),
|
|
o = k.data("speed"),
|
|
p = k.data("side"),
|
|
q = k.data("displace"),
|
|
r = k.data("onOpen"),
|
|
s = k.data("onClose"),
|
|
t = "sidr" === f ? "sidr-open" : "sidr-open " + f + "-open";
|
|
if ("open" === d || "toggle" === d && !k.is(":visible")) {
|
|
if (k.is(":visible") || b) return;
|
|
if (c !== !1) return void e.close(c, function() {
|
|
e.open(f)
|
|
});
|
|
b = !0, "left" === p ? (h = {
|
|
left: n + "px"
|
|
}, i = {
|
|
left: "0px"
|
|
}) : (h = {
|
|
right: n + "px"
|
|
}, i = {
|
|
right: "0px"
|
|
}), l.is("body") && (j = m.scrollTop(), m.css("overflow-x", "hidden").scrollTop(j)), q ? l.addClass("sidr-animating").css({
|
|
width: l.width(),
|
|
position: "absolute"
|
|
}).animate(h, o, function() {
|
|
a(this).addClass(t)
|
|
}) : setTimeout(function() {
|
|
a(this).addClass(t)
|
|
}, o), k.css("display", "block").animate(i, o, function() {
|
|
b = !1, c = f, "function" == typeof g && g(f), l.removeClass("sidr-animating")
|
|
}), r()
|
|
} else {
|
|
if (!k.is(":visible") || b) return;
|
|
b = !0, "left" === p ? (h = {
|
|
left: 0
|
|
}, i = {
|
|
left: "-" + n + "px"
|
|
}) : (h = {
|
|
right: 0
|
|
}, i = {
|
|
right: "-" + n + "px"
|
|
}), l.is("body") && (j = m.scrollTop(), m.removeAttr("style").scrollTop(j)), l.addClass("sidr-animating").animate(h, o).removeClass(t), k.animate(i, o, function() {
|
|
k.removeAttr("style").hide(), l.removeAttr("style"), a("html").removeAttr("style"), b = !1, c = !1, "function" == typeof g && g(f), l.removeClass("sidr-animating")
|
|
}), s()
|
|
}
|
|
}
|
|
},
|
|
e = {
|
|
open: function(a, b) {
|
|
d.execute("open", a, b)
|
|
},
|
|
close: function(a, b) {
|
|
d.execute("close", a, b)
|
|
},
|
|
toggle: function(a, b) {
|
|
d.execute("toggle", a, b)
|
|
},
|
|
toogle: function(a, b) {
|
|
d.execute("toggle", a, b)
|
|
}
|
|
};
|
|
a.sidr = function(b) {
|
|
return e[b] ? e[b].apply(this, Array.prototype.slice.call(arguments, 1)) : "function" != typeof b && "string" != typeof b && b ? void a.error("Method " + b + " does not exist on jQuery.sidr") : e.toggle.apply(this, arguments)
|
|
}, a.fn.sidr = function(b) {
|
|
var c = a.extend({
|
|
name: "sidr",
|
|
speed: 400,
|
|
side: "left",
|
|
source: null,
|
|
renaming: !0,
|
|
body: "body",
|
|
displace: !0,
|
|
onOpen: function() {},
|
|
onClose: function() {}
|
|
}, b),
|
|
f = c.name,
|
|
g = a("#" + f);
|
|
if (0 === g.length && (g = a("<div />").attr("id", f).appendTo(a("body"))), g.addClass("sidr").addClass(c.side).data({
|
|
speed: c.speed,
|
|
side: c.side,
|
|
body: c.body,
|
|
displace: c.displace,
|
|
onOpen: c.onOpen,
|
|
onClose: c.onClose
|
|
}), "function" == typeof c.source) {
|
|
var h = c.source(f);
|
|
d.loadContent(g, h)
|
|
} else if ("string" == typeof c.source && d.isUrl(c.source)) a.get(c.source, function(a) {
|
|
d.loadContent(g, a)
|
|
});
|
|
else if ("string" == typeof c.source) {
|
|
var i = "",
|
|
j = c.source.split(",");
|
|
if (a.each(j, function(b, c) {
|
|
i += '<div class="sidr-inner">' + a(c).html() + "</div>"
|
|
}), c.renaming) {
|
|
var k = a("<div />").html(i);
|
|
k.find("*").each(function(b, c) {
|
|
var e = a(c);
|
|
d.addPrefix(e)
|
|
}), i = k.html()
|
|
}
|
|
d.loadContent(g, i)
|
|
} else null !== c.source && a.error("Invalid Sidr Source");
|
|
return this.each(function() {
|
|
var b = a(this),
|
|
c = b.data("sidr");
|
|
c || (b.data("sidr", f), "ontouchstart" in document.documentElement ? (b.bind("touchstart", function(a) {
|
|
a.originalEvent.touches[0], this.touched = a.timeStamp
|
|
}), b.bind("touchend", function(a) {
|
|
var b = Math.abs(a.timeStamp - this.touched);
|
|
400 > b && (a.preventDefault(), e.toggle(f))
|
|
})) : b.click(function(a) {
|
|
a.preventDefault(), e.toggle(f)
|
|
}))
|
|
})
|
|
}
|
|
}(jQuery), window.Modernizr = function(a, b, c) {
|
|
function d() {
|
|
n.input = function(a) {
|
|
for (var b = 0, c = a.length; c > b; b++) C[a[b]] = !!(a[b] in u);
|
|
return C
|
|
}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")), n.inputtypes = function(a) {
|
|
for (var d, e, f, g = 0, h = a.length; h > g; g++) u.setAttribute("type", e = a[g]), d = "text" !== u.type, d && (u.value = v, u.style.cssText = "position:absolute;visibility:hidden;", /^range$/.test(e) && u.style.WebkitAppearance !== c ? (p.appendChild(u), f = b.defaultView, d = f.getComputedStyle && "textfield" !== f.getComputedStyle(u, null).WebkitAppearance && 0 !== u.offsetHeight, p.removeChild(u)) : /^(search|tel)$/.test(e) || (/^(url|email)$/.test(e) ? d = u.checkValidity && u.checkValidity() === !1 : /^color$/.test(e) ? (p.appendChild(u), p.offsetWidth, d = u.value != v, p.removeChild(u)) : d = u.value != v)), B[a[g]] = !!d;
|
|
return B
|
|
}("search tel url email datetime date month week time datetime-local number range color".split(" "))
|
|
}
|
|
|
|
function e(a, b) {
|
|
var c = a.charAt(0).toUpperCase() + a.substr(1),
|
|
d = (a + " " + y.join(c + " ") + c).split(" ");
|
|
return !!f(d, b)
|
|
}
|
|
|
|
function f(a, b) {
|
|
for (var d in a)
|
|
if (t[a[d]] !== c && (!b || b(a[d], s))) return !0
|
|
}
|
|
|
|
function g(a, b) {
|
|
return -1 !== ("" + a).indexOf(b)
|
|
}
|
|
|
|
function h(a, b) {
|
|
return typeof a === b
|
|
}
|
|
|
|
function i(a, b) {
|
|
return j(x.join(a + ";") + (b || ""))
|
|
}
|
|
|
|
function j(a) {
|
|
t.cssText = a
|
|
}
|
|
var k, l, m = "1.7",
|
|
n = {},
|
|
o = !0,
|
|
p = b.documentElement,
|
|
q = b.head || b.getElementsByTagName("head")[0],
|
|
r = "modernizr",
|
|
s = b.createElement(r),
|
|
t = s.style,
|
|
u = b.createElement("input"),
|
|
v = ":)",
|
|
w = Object.prototype.toString,
|
|
x = " -webkit- -moz- -o- -ms- -khtml- ".split(" "),
|
|
y = "Webkit Moz O ms Khtml".split(" "),
|
|
z = {
|
|
svg: "http://www.w3.org/2000/svg"
|
|
},
|
|
A = {},
|
|
B = {},
|
|
C = {},
|
|
D = [],
|
|
E = function(a) {
|
|
var c, d = b.createElement("style"),
|
|
e = b.createElement("div");
|
|
return d.textContent = a + "{#modernizr{height:3px}}", q.appendChild(d), e.id = "modernizr", p.appendChild(e), c = 3 === e.offsetHeight, d.parentNode.removeChild(d), e.parentNode.removeChild(e), !!c
|
|
},
|
|
F = function() {
|
|
function a(a, e) {
|
|
e = e || b.createElement(d[a] || "div");
|
|
var f = (a = "on" + a) in e;
|
|
return f || (e.setAttribute || (e = b.createElement("div")), e.setAttribute && e.removeAttribute && (e.setAttribute(a, ""), f = h(e[a], "function"), h(e[a], c) || (e[a] = c), e.removeAttribute(a))), e = null, f
|
|
}
|
|
var d = {
|
|
select: "input",
|
|
change: "input",
|
|
submit: "form",
|
|
reset: "form",
|
|
error: "img",
|
|
load: "img",
|
|
abort: "img"
|
|
};
|
|
return a
|
|
}(),
|
|
G = {}.hasOwnProperty;
|
|
l = h(G, c) || h(G.call, c) ? function(a, b) {
|
|
return b in a && h(a.constructor.prototype[b], c)
|
|
} : function(a, b) {
|
|
return G.call(a, b)
|
|
}, A.flexbox = function() {
|
|
function a(a, b, c, d) {
|
|
a.style.cssText = x.join(b + ":" + c + ";") + (d || "")
|
|
}
|
|
|
|
function c(a, b, c, d) {
|
|
b += ":", a.style.cssText = (b + x.join(c + ";" + b)).slice(0, -b.length) + (d || "")
|
|
}
|
|
var d = b.createElement("div"),
|
|
e = b.createElement("div");
|
|
c(d, "display", "box", "width:42px;padding:0;"), a(e, "box-flex", "1", "width:10px;"), d.appendChild(e), p.appendChild(d);
|
|
var f = 42 === e.offsetWidth;
|
|
return d.removeChild(e), p.removeChild(d), f
|
|
}, A.canvas = function() {
|
|
var a = b.createElement("canvas");
|
|
return a.getContext && a.getContext("2d")
|
|
}, A.canvastext = function() {
|
|
return n.canvas && h(b.createElement("canvas").getContext("2d").fillText, "function")
|
|
}, A.webgl = function() {
|
|
return !!a.WebGLRenderingContext
|
|
}, A.touch = function() {
|
|
return "ontouchstart" in a || E("@media (" + x.join("touch-enabled),(") + "modernizr)")
|
|
}, A.geolocation = function() {
|
|
return !!navigator.geolocation
|
|
}, A.postmessage = function() {
|
|
return !!a.postMessage
|
|
}, A.websqldatabase = function() {
|
|
var b = !!a.openDatabase;
|
|
return b
|
|
}, A.indexedDB = function() {
|
|
for (var b = -1, c = y.length; ++b < c;) {
|
|
var d = y[b].toLowerCase();
|
|
if (a[d + "_indexedDB"] || a[d + "IndexedDB"]) return !0
|
|
}
|
|
return !1
|
|
}, A.hashchange = function() {
|
|
return F("hashchange", a) && (b.documentMode === c || b.documentMode > 7)
|
|
}, A.history = function() {
|
|
return !(!a.history || !history.pushState)
|
|
}, A.draganddrop = function() {
|
|
return F("dragstart") && F("drop")
|
|
}, A.websockets = function() {
|
|
return "WebSocket" in a
|
|
}, A.rgba = function() {
|
|
return j("background-color:rgba(150,255,150,.5)"), g(t.backgroundColor, "rgba")
|
|
}, A.hsla = function() {
|
|
return j("background-color:hsla(120,40%,100%,.5)"), g(t.backgroundColor, "rgba") || g(t.backgroundColor, "hsla")
|
|
}, A.multiplebgs = function() {
|
|
return j("background:url(//:),url(//:),red url(//:)"), new RegExp("(url\\s*\\(.*?){3}").test(t.background)
|
|
}, A.backgroundsize = function() {
|
|
return e("backgroundSize")
|
|
}, A.borderimage = function() {
|
|
return e("borderImage")
|
|
}, A.borderradius = function() {
|
|
return e("borderRadius", "", function(a) {
|
|
return g(a, "orderRadius")
|
|
})
|
|
}, A.boxshadow = function() {
|
|
return e("boxShadow")
|
|
}, A.textshadow = function() {
|
|
return "" === b.createElement("div").style.textShadow
|
|
}, A.opacity = function() {
|
|
return i("opacity:.55"), /^0.55$/.test(t.opacity)
|
|
}, A.cssanimations = function() {
|
|
return e("animationName")
|
|
}, A.csscolumns = function() {
|
|
return e("columnCount")
|
|
}, A.cssgradients = function() {
|
|
var a = "background-image:",
|
|
b = "gradient(linear,left top,right bottom,from(#9f9),to(white));",
|
|
c = "linear-gradient(left top,#9f9, white);";
|
|
return j((a + x.join(b + a) + x.join(c + a)).slice(0, -a.length)), g(t.backgroundImage, "gradient")
|
|
}, A.cssreflections = function() {
|
|
return e("boxReflect")
|
|
}, A.csstransforms = function() {
|
|
return !!f(["transformProperty", "WebkitTransform", "MozTransform", "OTransform", "msTransform"])
|
|
}, A.csstransforms3d = function() {
|
|
var a = !!f(["perspectiveProperty", "WebkitPerspective", "MozPerspective", "OPerspective", "msPerspective"]);
|
|
return a && "webkitPerspective" in p.style && (a = E("@media (" + x.join("transform-3d),(") + "modernizr)")), a
|
|
}, A.csstransitions = function() {
|
|
return e("transitionProperty")
|
|
}, A.fontface = function() {
|
|
var a, c, d = q || p,
|
|
e = b.createElement("style"),
|
|
f = b.implementation || {
|
|
hasFeature: function() {
|
|
return !1
|
|
}
|
|
};
|
|
e.type = "text/css", d.insertBefore(e, d.firstChild), a = e.sheet || e.styleSheet;
|
|
var g = f.hasFeature("CSS2", "") ? function(b) {
|
|
if (!a || !b) return !1;
|
|
var c = !1;
|
|
try {
|
|
a.insertRule(b, 0), c = /src/i.test(a.cssRules[0].cssText), a.deleteRule(a.cssRules.length - 1)
|
|
} catch (d) {}
|
|
return c
|
|
} : function(b) {
|
|
return a && b ? (a.cssText = b, 0 !== a.cssText.length && /src/i.test(a.cssText) && 0 === a.cssText.replace(/\r+|\n+/g, "").indexOf(b.split(" ")[0])) : !1
|
|
};
|
|
return c = g('@font-face { font-family: "font"; src: url(data:,); }'), d.removeChild(e), c
|
|
}, A.video = function() {
|
|
var a = b.createElement("video"),
|
|
c = !!a.canPlayType;
|
|
if (c) {
|
|
c = new Boolean(c), c.ogg = a.canPlayType('video/ogg; codecs="theora"');
|
|
var d = 'video/mp4; codecs="avc1.42E01E';
|
|
c.h264 = a.canPlayType(d + '"') || a.canPlayType(d + ', mp4a.40.2"'), c.webm = a.canPlayType('video/webm; codecs="vp8, vorbis"')
|
|
}
|
|
return c
|
|
}, A.audio = function() {
|
|
var a = b.createElement("audio"),
|
|
c = !!a.canPlayType;
|
|
return c && (c = new Boolean(c), c.ogg = a.canPlayType('audio/ogg; codecs="vorbis"'), c.mp3 = a.canPlayType("audio/mpeg;"), c.wav = a.canPlayType('audio/wav; codecs="1"'), c.m4a = a.canPlayType("audio/x-m4a;") || a.canPlayType("audio/aac;")), c
|
|
}, A.localstorage = function() {
|
|
try {
|
|
return !!localStorage.getItem
|
|
} catch (a) {
|
|
return !1
|
|
}
|
|
}, A.sessionstorage = function() {
|
|
try {
|
|
return !!sessionStorage.getItem
|
|
} catch (a) {
|
|
return !1
|
|
}
|
|
}, A.webWorkers = function() {
|
|
return !!a.Worker
|
|
}, A.applicationcache = function() {
|
|
return !!a.applicationCache
|
|
}, A.svg = function() {
|
|
return !!b.createElementNS && !!b.createElementNS(z.svg, "svg").createSVGRect
|
|
}, A.inlinesvg = function() {
|
|
var a = b.createElement("div");
|
|
return a.innerHTML = "<svg/>", (a.firstChild && a.firstChild.namespaceURI) == z.svg
|
|
}, A.smil = function() {
|
|
return !!b.createElementNS && /SVG/.test(w.call(b.createElementNS(z.svg, "animate")))
|
|
}, A.svgclippaths = function() {
|
|
return !!b.createElementNS && /SVG/.test(w.call(b.createElementNS(z.svg, "clipPath")))
|
|
};
|
|
for (var H in A) l(A, H) && (k = H.toLowerCase(), n[k] = A[H](), D.push((n[k] ? "" : "no-") + k));
|
|
return n.input || d(), n.crosswindowmessaging = n.postmessage, n.historymanagement = n.history, n.addTest = function(a, b) {
|
|
return a = a.toLowerCase(), n[a] ? void 0 : (b = !!b(), p.className += " " + (b ? "" : "no-") + a, n[a] = b, n)
|
|
}, j(""), s = u = null, o && a.attachEvent && function() {
|
|
var a = b.createElement("div");
|
|
return a.innerHTML = "<elem></elem>", 1 !== a.childNodes.length
|
|
}() && function(a, b) {
|
|
function c(a, b) {
|
|
for (var d, e = -1, f = a.length, g = []; ++e < f;) d = a[e], "screen" != (b = d.media || b) && g.push(c(d.imports, b), d.cssText);
|
|
return g.join("")
|
|
}
|
|
|
|
function d(a) {
|
|
for (var b = -1; ++b < h;) a.createElement(g[b])
|
|
}
|
|
var e, f = "abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
|
|
g = f.split("|"),
|
|
h = g.length,
|
|
i = new RegExp("(^|\\s)(" + f + ")", "gi"),
|
|
j = new RegExp("<(/*)(" + f + ")", "gi"),
|
|
k = new RegExp("(^|[^\\n]*?\\s)(" + f + ")([^\\n]*)({[\\n\\w\\W]*?})", "gi"),
|
|
l = b.createDocumentFragment(),
|
|
m = b.documentElement,
|
|
n = m.firstChild,
|
|
o = b.createElement("body"),
|
|
p = b.createElement("style");
|
|
d(b), d(l), n.insertBefore(p, n.firstChild), p.media = "print", a.attachEvent("onbeforeprint", function() {
|
|
var a, d = -1,
|
|
f = c(b.styleSheets, "all"),
|
|
n = [];
|
|
for (e = e || b.body; null != (a = k.exec(f));) n.push((a[1] + a[2] + a[3]).replace(i, "$1.iepp_$2") + a[4]);
|
|
for (p.styleSheet.cssText = n.join("\n"); ++d < h;)
|
|
for (var q = b.getElementsByTagName(g[d]), r = q.length, s = -1; ++s < r;) q[s].className.indexOf("iepp_") < 0 && (q[s].className += " iepp_" + g[d]);
|
|
l.appendChild(e), m.appendChild(o), o.className = e.className, o.innerHTML = e.innerHTML.replace(j, "<$1font")
|
|
}), a.attachEvent("onafterprint", function() {
|
|
o.innerHTML = "", m.removeChild(o), m.appendChild(e), p.styleSheet.cssText = ""
|
|
})
|
|
}(a, b), n._enableHTML5 = o, n._version = m, p.className = p.className.replace(/\bno-js\b/, "") + " js " + D.join(" "), n
|
|
}(this, this.document), jQuery.easing.jswing = jQuery.easing.swing, jQuery.extend(jQuery.easing, {
|
|
def: "easeOutQuad",
|
|
swing: function(a, b, c, d, e) {
|
|
return jQuery.easing[jQuery.easing.def](a, b, c, d, e)
|
|
},
|
|
easeInQuad: function(a, b, c, d, e) {
|
|
return d * (b /= e) * b + c
|
|
},
|
|
easeOutQuad: function(a, b, c, d, e) {
|
|
return -d * (b /= e) * (b - 2) + c
|
|
},
|
|
easeInOutQuad: function(a, b, c, d, e) {
|
|
return (b /= e / 2) < 1 ? d / 2 * b * b + c : -d / 2 * (--b * (b - 2) - 1) + c
|
|
},
|
|
easeInCubic: function(a, b, c, d, e) {
|
|
return d * (b /= e) * b * b + c
|
|
},
|
|
easeOutCubic: function(a, b, c, d, e) {
|
|
return d * ((b = b / e - 1) * b * b + 1) + c
|
|
},
|
|
easeInOutCubic: function(a, b, c, d, e) {
|
|
return (b /= e / 2) < 1 ? d / 2 * b * b * b + c : d / 2 * ((b -= 2) * b * b + 2) + c
|
|
},
|
|
easeInQuart: function(a, b, c, d, e) {
|
|
return d * (b /= e) * b * b * b + c
|
|
},
|
|
easeOutQuart: function(a, b, c, d, e) {
|
|
return -d * ((b = b / e - 1) * b * b * b - 1) + c
|
|
},
|
|
easeInOutQuart: function(a, b, c, d, e) {
|
|
return (b /= e / 2) < 1 ? d / 2 * b * b * b * b + c : -d / 2 * ((b -= 2) * b * b * b - 2) + c
|
|
},
|
|
easeInQuint: function(a, b, c, d, e) {
|
|
return d * (b /= e) * b * b * b * b + c
|
|
},
|
|
easeOutQuint: function(a, b, c, d, e) {
|
|
return d * ((b = b / e - 1) * b * b * b * b + 1) + c
|
|
},
|
|
easeInOutQuint: function(a, b, c, d, e) {
|
|
return (b /= e / 2) < 1 ? d / 2 * b * b * b * b * b + c : d / 2 * ((b -= 2) * b * b * b * b + 2) + c
|
|
},
|
|
easeInSine: function(a, b, c, d, e) {
|
|
return -d * Math.cos(b / e * (Math.PI / 2)) + d + c
|
|
},
|
|
easeOutSine: function(a, b, c, d, e) {
|
|
return d * Math.sin(b / e * (Math.PI / 2)) + c
|
|
},
|
|
easeInOutSine: function(a, b, c, d, e) {
|
|
return -d / 2 * (Math.cos(Math.PI * b / e) - 1) + c
|
|
},
|
|
easeInExpo: function(a, b, c, d, e) {
|
|
return 0 == b ? c : d * Math.pow(2, 10 * (b / e - 1)) + c
|
|
},
|
|
easeOutExpo: function(a, b, c, d, e) {
|
|
return b == e ? c + d : d * (-Math.pow(2, -10 * b / e) + 1) + c
|
|
},
|
|
easeInOutExpo: function(a, b, c, d, e) {
|
|
return 0 == b ? c : b == e ? c + d : (b /= e / 2) < 1 ? d / 2 * Math.pow(2, 10 * (b - 1)) + c : d / 2 * (-Math.pow(2, -10 * --b) + 2) + c
|
|
},
|
|
easeInCirc: function(a, b, c, d, e) {
|
|
return -d * (Math.sqrt(1 - (b /= e) * b) - 1) + c
|
|
},
|
|
easeOutCirc: function(a, b, c, d, e) {
|
|
return d * Math.sqrt(1 - (b = b / e - 1) * b) + c
|
|
},
|
|
easeInOutCirc: function(a, b, c, d, e) {
|
|
return (b /= e / 2) < 1 ? -d / 2 * (Math.sqrt(1 - b * b) - 1) + c : d / 2 * (Math.sqrt(1 - (b -= 2) * b) + 1) + c
|
|
},
|
|
easeInElastic: function(a, b, c, d, e) {
|
|
var f = 1.70158,
|
|
g = 0,
|
|
h = d;
|
|
if (0 == b) return c;
|
|
if (1 == (b /= e)) return c + d;
|
|
if (g || (g = .3 * e), h < Math.abs(d)) {
|
|
h = d;
|
|
var f = g / 4
|
|
} else var f = g / (2 * Math.PI) * Math.asin(d / h);
|
|
return -(h * Math.pow(2, 10 * (b -= 1)) * Math.sin(2 * (b * e - f) * Math.PI / g)) + c
|
|
},
|
|
easeOutElastic: function(a, b, c, d, e) {
|
|
var f = 1.70158,
|
|
g = 0,
|
|
h = d;
|
|
if (0 == b) return c;
|
|
if (1 == (b /= e)) return c + d;
|
|
if (g || (g = .3 * e), h < Math.abs(d)) {
|
|
h = d;
|
|
var f = g / 4
|
|
} else var f = g / (2 * Math.PI) * Math.asin(d / h);
|
|
return h * Math.pow(2, -10 * b) * Math.sin(2 * (b * e - f) * Math.PI / g) + d + c
|
|
},
|
|
easeInOutElastic: function(a, b, c, d, e) {
|
|
var f = 1.70158,
|
|
g = 0,
|
|
h = d;
|
|
if (0 == b) return c;
|
|
if (2 == (b /= e / 2)) return c + d;
|
|
if (g || (g = .3 * e * 1.5), h < Math.abs(d)) {
|
|
h = d;
|
|
var f = g / 4
|
|
} else var f = g / (2 * Math.PI) * Math.asin(d / h);
|
|
return 1 > b ? -.5 * h * Math.pow(2, 10 * (b -= 1)) * Math.sin(2 * (b * e - f) * Math.PI / g) + c : h * Math.pow(2, -10 * (b -= 1)) * Math.sin(2 * (b * e - f) * Math.PI / g) * .5 + d + c
|
|
},
|
|
easeInBack: function(a, b, c, d, e, f) {
|
|
return void 0 == f && (f = 1.70158), d * (b /= e) * b * ((f + 1) * b - f) + c
|
|
},
|
|
easeOutBack: function(a, b, c, d, e, f) {
|
|
return void 0 == f && (f = 1.70158), d * ((b = b / e - 1) * b * ((f + 1) * b + f) + 1) + c
|
|
},
|
|
easeInOutBack: function(a, b, c, d, e, f) {
|
|
return void 0 == f && (f = 1.70158), (b /= e / 2) < 1 ? d / 2 * b * b * (((f *= 1.525) + 1) * b - f) + c : d / 2 * ((b -= 2) * b * (((f *= 1.525) + 1) * b + f) + 2) + c
|
|
},
|
|
easeInBounce: function(a, b, c, d, e) {
|
|
return d - jQuery.easing.easeOutBounce(a, e - b, 0, d, e) + c
|
|
},
|
|
easeOutBounce: function(a, b, c, d, e) {
|
|
return (b /= e) < 1 / 2.75 ? 7.5625 * d * b * b + c : 2 / 2.75 > b ? d * (7.5625 * (b -= 1.5 / 2.75) * b + .75) + c : 2.5 / 2.75 > b ? d * (7.5625 * (b -= 2.25 / 2.75) * b + .9375) + c : d * (7.5625 * (b -= 2.625 / 2.75) * b + .984375) + c
|
|
},
|
|
easeInOutBounce: function(a, b, c, d, e) {
|
|
return e / 2 > b ? .5 * jQuery.easing.easeInBounce(a, 2 * b, 0, d, e) + c : .5 * jQuery.easing.easeOutBounce(a, 2 * b - e, 0, d, e) + .5 * d + c
|
|
}
|
|
}), jQuery.extend(jQuery.easing, {
|
|
easeInOutMaterial: function(a, b, c, d, e) {
|
|
return (b /= e / 2) < 1 ? d / 2 * b * b + c : d / 4 * ((b -= 2) * b * b + 2) + c
|
|
}
|
|
}), ! function(a) {
|
|
function b(a) {
|
|
var b = a.length,
|
|
d = c.type(a);
|
|
return "function" === d || c.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === d || 0 === b || "number" == typeof b && b > 0 && b - 1 in a
|
|
}
|
|
if (!a.jQuery) {
|
|
var c = function(a, b) {
|
|
return new c.fn.init(a, b)
|
|
};
|
|
c.isWindow = function(a) {
|
|
return null != a && a == a.window
|
|
}, c.type = function(a) {
|
|
return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? e[g.call(a)] || "object" : typeof a
|
|
}, c.isArray = Array.isArray || function(a) {
|
|
return "array" === c.type(a)
|
|
}, c.isPlainObject = function(a) {
|
|
var b;
|
|
if (!a || "object" !== c.type(a) || a.nodeType || c.isWindow(a)) return !1;
|
|
try {
|
|
if (a.constructor && !f.call(a, "constructor") && !f.call(a.constructor.prototype, "isPrototypeOf")) return !1
|
|
} catch (d) {
|
|
return !1
|
|
}
|
|
for (b in a);
|
|
return void 0 === b || f.call(a, b)
|
|
}, c.each = function(a, c, d) {
|
|
var e, f = 0,
|
|
g = a.length,
|
|
h = b(a);
|
|
if (d) {
|
|
if (h)
|
|
for (; g > f && (e = c.apply(a[f], d), e !== !1); f++);
|
|
else
|
|
for (f in a)
|
|
if (e = c.apply(a[f], d), e === !1) break
|
|
} else if (h)
|
|
for (; g > f && (e = c.call(a[f], f, a[f]), e !== !1); f++);
|
|
else
|
|
for (f in a)
|
|
if (e = c.call(a[f], f, a[f]), e === !1) break;
|
|
return a
|
|
}, c.data = function(a, b, e) {
|
|
if (void 0 === e) {
|
|
var f = a[c.expando],
|
|
g = f && d[f];
|
|
if (void 0 === b) return g;
|
|
if (g && b in g) return g[b]
|
|
} else if (void 0 !== b) {
|
|
var f = a[c.expando] || (a[c.expando] = ++c.uuid);
|
|
return d[f] = d[f] || {}, d[f][b] = e, e
|
|
}
|
|
}, c.removeData = function(a, b) {
|
|
var e = a[c.expando],
|
|
f = e && d[e];
|
|
f && c.each(b, function(a, b) {
|
|
delete f[b]
|
|
})
|
|
}, c.extend = function() {
|
|
var a, b, d, e, f, g, h = arguments[0] || {},
|
|
i = 1,
|
|
j = arguments.length,
|
|
k = !1;
|
|
for ("boolean" == typeof h && (k = h, h = arguments[i] || {}, i++), "object" != typeof h && "function" !== c.type(h) && (h = {}), i === j && (h = this, i--); j > i; i++)
|
|
if (null != (f = arguments[i]))
|
|
for (e in f) a = h[e], d = f[e], h !== d && (k && d && (c.isPlainObject(d) || (b = c.isArray(d))) ? (b ? (b = !1, g = a && c.isArray(a) ? a : []) : g = a && c.isPlainObject(a) ? a : {}, h[e] = c.extend(k, g, d)) : void 0 !== d && (h[e] = d));
|
|
return h
|
|
}, c.queue = function(a, d, e) {
|
|
function f(a, c) {
|
|
var d = c || [];
|
|
return null != a && (b(Object(a)) ? ! function(a, b) {
|
|
for (var c = +b.length, d = 0, e = a.length; c > d;) a[e++] = b[d++];
|
|
if (c !== c)
|
|
for (; void 0 !== b[d];) a[e++] = b[d++];
|
|
return a.length = e, a
|
|
}(d, "string" == typeof a ? [a] : a) : [].push.call(d, a)), d
|
|
}
|
|
if (a) {
|
|
d = (d || "fx") + "queue";
|
|
var g = c.data(a, d);
|
|
return e ? (!g || c.isArray(e) ? g = c.data(a, d, f(e)) : g.push(e), g) : g || []
|
|
}
|
|
}, c.dequeue = function(a, b) {
|
|
c.each(a.nodeType ? [a] : a, function(a, d) {
|
|
b = b || "fx";
|
|
var e = c.queue(d, b),
|
|
f = e.shift();
|
|
"inprogress" === f && (f = e.shift()), f && ("fx" === b && e.unshift("inprogress"), f.call(d, function() {
|
|
c.dequeue(d, b)
|
|
}))
|
|
})
|
|
}, c.fn = c.prototype = {
|
|
init: function(a) {
|
|
if (a.nodeType) return this[0] = a, this;
|
|
throw new Error("Not a DOM node.")
|
|
},
|
|
offset: function() {
|
|
var b = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : {
|
|
top: 0,
|
|
left: 0
|
|
};
|
|
return {
|
|
top: b.top + (a.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0),
|
|
left: b.left + (a.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0)
|
|
}
|
|
},
|
|
position: function() {
|
|
function a() {
|
|
for (var a = this.offsetParent || document; a && "html" === !a.nodeType.toLowerCase && "static" === a.style.position;) a = a.offsetParent;
|
|
return a || document
|
|
}
|
|
var b = this[0],
|
|
a = a.apply(b),
|
|
d = this.offset(),
|
|
e = /^(?:body|html)$/i.test(a.nodeName) ? {
|
|
top: 0,
|
|
left: 0
|
|
} : c(a).offset();
|
|
return d.top -= parseFloat(b.style.marginTop) || 0, d.left -= parseFloat(b.style.marginLeft) || 0, a.style && (e.top += parseFloat(a.style.borderTopWidth) || 0, e.left += parseFloat(a.style.borderLeftWidth) || 0), {
|
|
top: d.top - e.top,
|
|
left: d.left - e.left
|
|
}
|
|
}
|
|
};
|
|
var d = {};
|
|
c.expando = "velocity" + (new Date).getTime(), c.uuid = 0;
|
|
for (var e = {}, f = e.hasOwnProperty, g = e.toString, h = "Boolean Number String Function Array Date RegExp Object Error".split(" "), i = 0; i < h.length; i++) e["[object " + h[i] + "]"] = h[i].toLowerCase();
|
|
c.fn.init.prototype = c.fn, a.Velocity = {
|
|
Utilities: c
|
|
}
|
|
}
|
|
}(window),
|
|
function(a) {
|
|
"object" == typeof module && "object" == typeof module.exports ? module.exports = a() : "function" == typeof define && define.amd ? define(a) : a()
|
|
}(function() {
|
|
return function(a, b, c, d) {
|
|
function e(a) {
|
|
for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) {
|
|
var e = a[b];
|
|
e && d.push(e)
|
|
}
|
|
return d
|
|
}
|
|
|
|
function f(a) {
|
|
return p.isWrapped(a) ? a = [].slice.call(a) : p.isNode(a) && (a = [a]), a
|
|
}
|
|
|
|
function g(a) {
|
|
var b = m.data(a, "velocity");
|
|
return null === b ? d : b
|
|
}
|
|
|
|
function h(a) {
|
|
return function(b) {
|
|
return Math.round(b * a) * (1 / a)
|
|
}
|
|
}
|
|
|
|
function i(a, c, d, e) {
|
|
function f(a, b) {
|
|
return 1 - 3 * b + 3 * a
|
|
}
|
|
|
|
function g(a, b) {
|
|
return 3 * b - 6 * a
|
|
}
|
|
|
|
function h(a) {
|
|
return 3 * a
|
|
}
|
|
|
|
function i(a, b, c) {
|
|
return ((f(b, c) * a + g(b, c)) * a + h(b)) * a
|
|
}
|
|
|
|
function j(a, b, c) {
|
|
return 3 * f(b, c) * a * a + 2 * g(b, c) * a + h(b)
|
|
}
|
|
|
|
function k(b, c) {
|
|
for (var e = 0; p > e; ++e) {
|
|
var f = j(c, a, d);
|
|
if (0 === f) return c;
|
|
var g = i(c, a, d) - b;
|
|
c -= g / f
|
|
}
|
|
return c
|
|
}
|
|
|
|
function l() {
|
|
for (var b = 0; t > b; ++b) x[b] = i(b * u, a, d)
|
|
}
|
|
|
|
function m(b, c, e) {
|
|
var f, g, h = 0;
|
|
do g = c + (e - c) / 2, f = i(g, a, d) - b, f > 0 ? e = g : c = g; while (Math.abs(f) > r && ++h < s);
|
|
return g
|
|
}
|
|
|
|
function n(b) {
|
|
for (var c = 0, e = 1, f = t - 1; e != f && x[e] <= b; ++e) c += u;
|
|
--e;
|
|
var g = (b - x[e]) / (x[e + 1] - x[e]),
|
|
h = c + g * u,
|
|
i = j(h, a, d);
|
|
return i >= q ? k(b, h) : 0 == i ? h : m(b, c, c + u)
|
|
}
|
|
|
|
function o() {
|
|
y = !0, (a != c || d != e) && l()
|
|
}
|
|
var p = 4,
|
|
q = .001,
|
|
r = 1e-7,
|
|
s = 10,
|
|
t = 11,
|
|
u = 1 / (t - 1),
|
|
v = "Float32Array" in b;
|
|
if (4 !== arguments.length) return !1;
|
|
for (var w = 0; 4 > w; ++w)
|
|
if ("number" != typeof arguments[w] || isNaN(arguments[w]) || !isFinite(arguments[w])) return !1;
|
|
a = Math.min(a, 1), d = Math.min(d, 1), a = Math.max(a, 0), d = Math.max(d, 0);
|
|
var x = v ? new Float32Array(t) : new Array(t),
|
|
y = !1,
|
|
z = function(b) {
|
|
return y || o(), a === c && d === e ? b : 0 === b ? 0 : 1 === b ? 1 : i(n(b), c, e)
|
|
};
|
|
z.getControlPoints = function() {
|
|
return [{
|
|
x: a,
|
|
y: c
|
|
}, {
|
|
x: d,
|
|
y: e
|
|
}]
|
|
};
|
|
var A = "generateBezier(" + [a, c, d, e] + ")";
|
|
return z.toString = function() {
|
|
return A
|
|
}, z
|
|
}
|
|
|
|
function j(a, b) {
|
|
var c = a;
|
|
return p.isString(a) ? t.Easings[a] || (c = !1) : c = p.isArray(a) && 1 === a.length ? h.apply(null, a) : p.isArray(a) && 2 === a.length ? u.apply(null, a.concat([b])) : p.isArray(a) && 4 === a.length ? i.apply(null, a) : !1, c === !1 && (c = t.Easings[t.defaults.easing] ? t.defaults.easing : s), c
|
|
}
|
|
|
|
function k(a) {
|
|
if (a)
|
|
for (var b = (new Date).getTime(), c = 0, e = t.State.calls.length; e > c; c++)
|
|
if (t.State.calls[c]) {
|
|
var f = t.State.calls[c],
|
|
h = f[0],
|
|
i = f[2],
|
|
j = f[3],
|
|
n = !!j;
|
|
j || (j = t.State.calls[c][3] = b - 16);
|
|
for (var o = Math.min((b - j) / i.duration, 1), q = 0, r = h.length; r > q; q++) {
|
|
var s = h[q],
|
|
u = s.element;
|
|
if (g(u)) {
|
|
var w = !1;
|
|
if (i.display !== d && null !== i.display && "none" !== i.display) {
|
|
if ("flex" === i.display) {
|
|
var y = ["-webkit-box", "-moz-box", "-ms-flexbox", "-webkit-flex"];
|
|
m.each(y, function(a, b) {
|
|
v.setPropertyValue(u, "display", b)
|
|
})
|
|
}
|
|
v.setPropertyValue(u, "display", i.display)
|
|
}
|
|
i.visibility !== d && "hidden" !== i.visibility && v.setPropertyValue(u, "visibility", i.visibility);
|
|
for (var z in s)
|
|
if ("element" !== z) {
|
|
var A, B = s[z],
|
|
C = p.isString(B.easing) ? t.Easings[B.easing] : B.easing;
|
|
if (1 === o) A = B.endValue;
|
|
else if (A = B.startValue + (B.endValue - B.startValue) * C(o), !n && A === B.currentValue) continue;
|
|
if (B.currentValue = A, v.Hooks.registered[z]) {
|
|
var D = v.Hooks.getRoot(z),
|
|
E = g(u).rootPropertyValueCache[D];
|
|
E && (B.rootPropertyValue = E)
|
|
}
|
|
var F = v.setPropertyValue(u, z, B.currentValue + (0 === parseFloat(A) ? "" : B.unitType), B.rootPropertyValue, B.scrollData);
|
|
v.Hooks.registered[z] && (g(u).rootPropertyValueCache[D] = v.Normalizations.registered[D] ? v.Normalizations.registered[D]("extract", null, F[1]) : F[1]), "transform" === F[0] && (w = !0)
|
|
} i.mobileHA && g(u).transformCache.translate3d === d && (g(u).transformCache.translate3d = "(0px, 0px, 0px)", w = !0), w && v.flushTransformCache(u)
|
|
}
|
|
}
|
|
i.display !== d && "none" !== i.display && (t.State.calls[c][2].display = !1), i.visibility !== d && "hidden" !== i.visibility && (t.State.calls[c][2].visibility = !1), i.progress && i.progress.call(f[1], f[1], o, Math.max(0, j + i.duration - b), j), 1 === o && l(c)
|
|
} t.State.isTicking && x(k)
|
|
}
|
|
|
|
function l(a, b) {
|
|
if (!t.State.calls[a]) return !1;
|
|
for (var c = t.State.calls[a][0], e = t.State.calls[a][1], f = t.State.calls[a][2], h = t.State.calls[a][4], i = !1, j = 0, k = c.length; k > j; j++) {
|
|
var l = c[j].element;
|
|
if (b || f.loop || ("none" === f.display && v.setPropertyValue(l, "display", f.display), "hidden" === f.visibility && v.setPropertyValue(l, "visibility", f.visibility)), f.loop !== !0 && (m.queue(l)[1] === d || !/\.velocityQueueEntryFlag/i.test(m.queue(l)[1])) && g(l)) {
|
|
g(l).isAnimating = !1, g(l).rootPropertyValueCache = {};
|
|
var n = !1;
|
|
m.each(v.Lists.transforms3D, function(a, b) {
|
|
var c = /^scale/.test(b) ? 1 : 0,
|
|
e = g(l).transformCache[b];
|
|
g(l).transformCache[b] !== d && new RegExp("^\\(" + c + "[^.]").test(e) && (n = !0, delete g(l).transformCache[b])
|
|
}), f.mobileHA && (n = !0, delete g(l).transformCache.translate3d), n && v.flushTransformCache(l), v.Values.removeClass(l, "velocity-animating")
|
|
}
|
|
if (!b && f.complete && !f.loop && j === k - 1) try {
|
|
f.complete.call(e, e)
|
|
} catch (o) {
|
|
setTimeout(function() {
|
|
throw o
|
|
}, 1)
|
|
}
|
|
h && f.loop !== !0 && h(e), f.loop !== !0 || b || (m.each(g(l).tweensContainer, function(a, b) {
|
|
/^rotate/.test(a) && 360 === parseFloat(b.endValue) && (b.endValue = 0, b.startValue = 360)
|
|
}), t(l, "reverse", {
|
|
loop: !0,
|
|
delay: f.delay
|
|
})), f.queue !== !1 && m.dequeue(l, f.queue)
|
|
}
|
|
t.State.calls[a] = !1;
|
|
for (var p = 0, q = t.State.calls.length; q > p; p++)
|
|
if (t.State.calls[p] !== !1) {
|
|
i = !0;
|
|
break
|
|
} i === !1 && (t.State.isTicking = !1, delete t.State.calls, t.State.calls = [])
|
|
}
|
|
var m, n = function() {
|
|
if (c.documentMode) return c.documentMode;
|
|
for (var a = 7; a > 4; a--) {
|
|
var b = c.createElement("div");
|
|
if (b.innerHTML = "<!--[if IE " + a + "]><span></span><![endif]-->", b.getElementsByTagName("span").length) return b = null, a
|
|
}
|
|
return d
|
|
}(),
|
|
o = function() {
|
|
var a = 0;
|
|
return b.webkitRequestAnimationFrame || b.mozRequestAnimationFrame || function(b) {
|
|
var c, d = (new Date).getTime();
|
|
return c = Math.max(0, 16 - (d - a)), a = d + c, setTimeout(function() {
|
|
b(d + c)
|
|
}, c)
|
|
}
|
|
}(),
|
|
p = {
|
|
isString: function(a) {
|
|
return "string" == typeof a
|
|
},
|
|
isArray: Array.isArray || function(a) {
|
|
return "[object Array]" === Object.prototype.toString.call(a)
|
|
},
|
|
isFunction: function(a) {
|
|
return "[object Function]" === Object.prototype.toString.call(a)
|
|
},
|
|
isNode: function(a) {
|
|
return a && a.nodeType
|
|
},
|
|
isNodeList: function(a) {
|
|
return "object" == typeof a && /^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(a)) && a.length !== d && (0 === a.length || "object" == typeof a[0] && a[0].nodeType > 0)
|
|
},
|
|
isWrapped: function(a) {
|
|
return a && (a.jquery || b.Zepto && b.Zepto.zepto.isZ(a))
|
|
},
|
|
isSVG: function(a) {
|
|
return b.SVGElement && a instanceof b.SVGElement
|
|
},
|
|
isEmptyObject: function(a) {
|
|
for (var b in a) return !1;
|
|
return !0
|
|
}
|
|
},
|
|
q = !1;
|
|
if (a.fn && a.fn.jquery ? (m = a, q = !0) : m = b.Velocity.Utilities, 8 >= n && !q) throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");
|
|
if (7 >= n) return void(jQuery.fn.velocity = jQuery.fn.animate);
|
|
var r = 400,
|
|
s = "swing",
|
|
t = {
|
|
State: {
|
|
isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
|
|
isAndroid: /Android/i.test(navigator.userAgent),
|
|
isGingerbread: /Android 2\.3\.[3-7]/i.test(navigator.userAgent),
|
|
isChrome: b.chrome,
|
|
isFirefox: /Firefox/i.test(navigator.userAgent),
|
|
prefixElement: c.createElement("div"),
|
|
prefixMatches: {},
|
|
scrollAnchor: null,
|
|
scrollPropertyLeft: null,
|
|
scrollPropertyTop: null,
|
|
isTicking: !1,
|
|
calls: []
|
|
},
|
|
CSS: {},
|
|
Utilities: m,
|
|
Redirects: {},
|
|
Easings: {},
|
|
Promise: b.Promise,
|
|
defaults: {
|
|
queue: "",
|
|
duration: r,
|
|
easing: s,
|
|
begin: d,
|
|
complete: d,
|
|
progress: d,
|
|
display: d,
|
|
visibility: d,
|
|
loop: !1,
|
|
delay: !1,
|
|
mobileHA: !0,
|
|
_cacheValues: !0
|
|
},
|
|
init: function(a) {
|
|
m.data(a, "velocity", {
|
|
isSVG: p.isSVG(a),
|
|
isAnimating: !1,
|
|
computedStyle: null,
|
|
tweensContainer: null,
|
|
rootPropertyValueCache: {},
|
|
transformCache: {}
|
|
})
|
|
},
|
|
hook: null,
|
|
mock: !1,
|
|
version: {
|
|
major: 1,
|
|
minor: 1,
|
|
patch: 0
|
|
},
|
|
debug: !1
|
|
};
|
|
b.pageYOffset !== d ? (t.State.scrollAnchor = b, t.State.scrollPropertyLeft = "pageXOffset", t.State.scrollPropertyTop = "pageYOffset") : (t.State.scrollAnchor = c.documentElement || c.body.parentNode || c.body, t.State.scrollPropertyLeft = "scrollLeft", t.State.scrollPropertyTop = "scrollTop");
|
|
var u = function() {
|
|
function a(a) {
|
|
return -a.tension * a.x - a.friction * a.v
|
|
}
|
|
|
|
function b(b, c, d) {
|
|
var e = {
|
|
x: b.x + d.dx * c,
|
|
v: b.v + d.dv * c,
|
|
tension: b.tension,
|
|
friction: b.friction
|
|
};
|
|
return {
|
|
dx: e.v,
|
|
dv: a(e)
|
|
}
|
|
}
|
|
|
|
function c(c, d) {
|
|
var e = {
|
|
dx: c.v,
|
|
dv: a(c)
|
|
},
|
|
f = b(c, .5 * d, e),
|
|
g = b(c, .5 * d, f),
|
|
h = b(c, d, g),
|
|
i = 1 / 6 * (e.dx + 2 * (f.dx + g.dx) + h.dx),
|
|
j = 1 / 6 * (e.dv + 2 * (f.dv + g.dv) + h.dv);
|
|
return c.x = c.x + i * d, c.v = c.v + j * d, c
|
|
}
|
|
return function d(a, b, e) {
|
|
var f, g, h, i = {
|
|
x: -1,
|
|
v: 0,
|
|
tension: null,
|
|
friction: null
|
|
},
|
|
j = [0],
|
|
k = 0,
|
|
l = 1e-4,
|
|
m = .016;
|
|
for (a = parseFloat(a) || 500, b = parseFloat(b) || 20, e = e || null, i.tension = a, i.friction = b, f = null !== e, f ? (k = d(a, b), g = k / e * m) : g = m; h = c(h || i, g), j.push(1 + h.x), k += 16, Math.abs(h.x) > l && Math.abs(h.v) > l;);
|
|
return f ? function(a) {
|
|
return j[a * (j.length - 1) | 0]
|
|
} : k
|
|
}
|
|
}();
|
|
t.Easings = {
|
|
linear: function(a) {
|
|
return a
|
|
},
|
|
swing: function(a) {
|
|
return .5 - Math.cos(a * Math.PI) / 2
|
|
},
|
|
spring: function(a) {
|
|
return 1 - Math.cos(4.5 * a * Math.PI) * Math.exp(6 * -a)
|
|
}
|
|
}, m.each([
|
|
["ease", [.25, .1, .25, 1]],
|
|
["ease-in", [.42, 0, 1, 1]],
|
|
["ease-out", [0, 0, .58, 1]],
|
|
["ease-in-out", [.42, 0, .58, 1]],
|
|
["easeInSine", [.47, 0, .745, .715]],
|
|
["easeOutSine", [.39, .575, .565, 1]],
|
|
["easeInOutSine", [.445, .05, .55, .95]],
|
|
["easeInQuad", [.55, .085, .68, .53]],
|
|
["easeOutQuad", [.25, .46, .45, .94]],
|
|
["easeInOutQuad", [.455, .03, .515, .955]],
|
|
["easeInCubic", [.55, .055, .675, .19]],
|
|
["easeOutCubic", [.215, .61, .355, 1]],
|
|
["easeInOutCubic", [.645, .045, .355, 1]],
|
|
["easeInQuart", [.895, .03, .685, .22]],
|
|
["easeOutQuart", [.165, .84, .44, 1]],
|
|
["easeInOutQuart", [.77, 0, .175, 1]],
|
|
["easeInQuint", [.755, .05, .855, .06]],
|
|
["easeOutQuint", [.23, 1, .32, 1]],
|
|
["easeInOutQuint", [.86, 0, .07, 1]],
|
|
["easeInExpo", [.95, .05, .795, .035]],
|
|
["easeOutExpo", [.19, 1, .22, 1]],
|
|
["easeInOutExpo", [1, 0, 0, 1]],
|
|
["easeInCirc", [.6, .04, .98, .335]],
|
|
["easeOutCirc", [.075, .82, .165, 1]],
|
|
["easeInOutCirc", [.785, .135, .15, .86]]
|
|
], function(a, b) {
|
|
t.Easings[b[0]] = i.apply(null, b[1])
|
|
});
|
|
var v = t.CSS = {
|
|
RegEx: {
|
|
isHex: /^#([A-f\d]{3}){1,2}$/i,
|
|
valueUnwrap: /^[A-z]+\((.*)\)$/i,
|
|
wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,
|
|
valueSplit: /([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi
|
|
},
|
|
Lists: {
|
|
colors: ["fill", "stroke", "stopColor", "color", "backgroundColor", "borderColor", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor", "outlineColor"],
|
|
transformsBase: ["translateX", "translateY", "scale", "scaleX", "scaleY", "skewX", "skewY", "rotateZ"],
|
|
transforms3D: ["transformPerspective", "translateZ", "scaleZ", "rotateX", "rotateY"]
|
|
},
|
|
Hooks: {
|
|
templates: {
|
|
textShadow: ["Color X Y Blur", "black 0px 0px 0px"],
|
|
boxShadow: ["Color X Y Blur Spread", "black 0px 0px 0px 0px"],
|
|
clip: ["Top Right Bottom Left", "0px 0px 0px 0px"],
|
|
backgroundPosition: ["X Y", "0% 0%"],
|
|
transformOrigin: ["X Y Z", "50% 50% 0px"],
|
|
perspectiveOrigin: ["X Y", "50% 50%"]
|
|
},
|
|
registered: {},
|
|
register: function() {
|
|
for (var a = 0; a < v.Lists.colors.length; a++) {
|
|
var b = "color" === v.Lists.colors[a] ? "0 0 0 1" : "255 255 255 1";
|
|
v.Hooks.templates[v.Lists.colors[a]] = ["Red Green Blue Alpha", b]
|
|
}
|
|
var c, d, e;
|
|
if (n)
|
|
for (c in v.Hooks.templates) {
|
|
d = v.Hooks.templates[c], e = d[0].split(" ");
|
|
var f = d[1].match(v.RegEx.valueSplit);
|
|
"Color" === e[0] && (e.push(e.shift()), f.push(f.shift()), v.Hooks.templates[c] = [e.join(" "), f.join(" ")])
|
|
}
|
|
for (c in v.Hooks.templates) {
|
|
d = v.Hooks.templates[c], e = d[0].split(" ");
|
|
for (var a in e) {
|
|
var g = c + e[a],
|
|
h = a;
|
|
v.Hooks.registered[g] = [c, h]
|
|
}
|
|
}
|
|
},
|
|
getRoot: function(a) {
|
|
var b = v.Hooks.registered[a];
|
|
return b ? b[0] : a
|
|
},
|
|
cleanRootPropertyValue: function(a, b) {
|
|
return v.RegEx.valueUnwrap.test(b) && (b = b.match(v.RegEx.valueUnwrap)[1]), v.Values.isCSSNullValue(b) && (b = v.Hooks.templates[a][1]), b
|
|
},
|
|
extractValue: function(a, b) {
|
|
var c = v.Hooks.registered[a];
|
|
if (c) {
|
|
var d = c[0],
|
|
e = c[1];
|
|
return b = v.Hooks.cleanRootPropertyValue(d, b), b.toString().match(v.RegEx.valueSplit)[e]
|
|
}
|
|
return b
|
|
},
|
|
injectValue: function(a, b, c) {
|
|
var d = v.Hooks.registered[a];
|
|
if (d) {
|
|
var e, f, g = d[0],
|
|
h = d[1];
|
|
return c = v.Hooks.cleanRootPropertyValue(g, c), e = c.toString().match(v.RegEx.valueSplit), e[h] = b, f = e.join(" ")
|
|
}
|
|
return c
|
|
}
|
|
},
|
|
Normalizations: {
|
|
registered: {
|
|
clip: function(a, b, c) {
|
|
switch (a) {
|
|
case "name":
|
|
return "clip";
|
|
case "extract":
|
|
var d;
|
|
return v.RegEx.wrappedValueAlreadyExtracted.test(c) ? d = c : (d = c.toString().match(v.RegEx.valueUnwrap), d = d ? d[1].replace(/,(\s+)?/g, " ") : c), d;
|
|
case "inject":
|
|
return "rect(" + c + ")"
|
|
}
|
|
},
|
|
blur: function(a, b, c) {
|
|
switch (a) {
|
|
case "name":
|
|
return "-webkit-filter";
|
|
case "extract":
|
|
var d = parseFloat(c);
|
|
if (!d && 0 !== d) {
|
|
var e = c.toString().match(/blur\(([0-9]+[A-z]+)\)/i);
|
|
d = e ? e[1] : 0
|
|
}
|
|
return d;
|
|
case "inject":
|
|
return parseFloat(c) ? "blur(" + c + ")" : "none"
|
|
}
|
|
},
|
|
opacity: function(a, b, c) {
|
|
if (8 >= n) switch (a) {
|
|
case "name":
|
|
return "filter";
|
|
case "extract":
|
|
var d = c.toString().match(/alpha\(opacity=(.*)\)/i);
|
|
return c = d ? d[1] / 100 : 1;
|
|
case "inject":
|
|
return b.style.zoom = 1, parseFloat(c) >= 1 ? "" : "alpha(opacity=" + parseInt(100 * parseFloat(c), 10) + ")"
|
|
} else switch (a) {
|
|
case "name":
|
|
return "opacity";
|
|
case "extract":
|
|
return c;
|
|
case "inject":
|
|
return c
|
|
}
|
|
}
|
|
},
|
|
register: function() {
|
|
9 >= n || t.State.isGingerbread || (v.Lists.transformsBase = v.Lists.transformsBase.concat(v.Lists.transforms3D));
|
|
for (var a = 0; a < v.Lists.transformsBase.length; a++) ! function() {
|
|
var b = v.Lists.transformsBase[a];
|
|
v.Normalizations.registered[b] = function(a, c, e) {
|
|
switch (a) {
|
|
case "name":
|
|
return "transform";
|
|
case "extract":
|
|
return g(c) === d || g(c).transformCache[b] === d ? /^scale/i.test(b) ? 1 : 0 : g(c).transformCache[b].replace(/[()]/g, "");
|
|
case "inject":
|
|
var f = !1;
|
|
switch (b.substr(0, b.length - 1)) {
|
|
case "translate":
|
|
f = !/(%|px|em|rem|vw|vh|\d)$/i.test(e);
|
|
break;
|
|
case "scal":
|
|
case "scale":
|
|
t.State.isAndroid && g(c).transformCache[b] === d && 1 > e && (e = 1), f = !/(\d)$/i.test(e);
|
|
break;
|
|
case "skew":
|
|
f = !/(deg|\d)$/i.test(e);
|
|
break;
|
|
case "rotate":
|
|
f = !/(deg|\d)$/i.test(e)
|
|
}
|
|
return f || (g(c).transformCache[b] = "(" + e + ")"), g(c).transformCache[b]
|
|
}
|
|
}
|
|
}();
|
|
for (var a = 0; a < v.Lists.colors.length; a++) ! function() {
|
|
var b = v.Lists.colors[a];
|
|
v.Normalizations.registered[b] = function(a, c, e) {
|
|
switch (a) {
|
|
case "name":
|
|
return b;
|
|
case "extract":
|
|
var f;
|
|
if (v.RegEx.wrappedValueAlreadyExtracted.test(e)) f = e;
|
|
else {
|
|
var g, h = {
|
|
black: "rgb(0, 0, 0)",
|
|
blue: "rgb(0, 0, 255)",
|
|
gray: "rgb(128, 128, 128)",
|
|
green: "rgb(0, 128, 0)",
|
|
red: "rgb(255, 0, 0)",
|
|
white: "rgb(255, 255, 255)"
|
|
};
|
|
/^[A-z]+$/i.test(e) ? g = h[e] !== d ? h[e] : h.black : v.RegEx.isHex.test(e) ? g = "rgb(" + v.Values.hexToRgb(e).join(" ") + ")" : /^rgba?\(/i.test(e) || (g = h.black), f = (g || e).toString().match(v.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g, " ")
|
|
}
|
|
return 8 >= n || 3 !== f.split(" ").length || (f += " 1"), f;
|
|
case "inject":
|
|
return 8 >= n ? 4 === e.split(" ").length && (e = e.split(/\s+/).slice(0, 3).join(" ")) : 3 === e.split(" ").length && (e += " 1"), (8 >= n ? "rgb" : "rgba") + "(" + e.replace(/\s+/g, ",").replace(/\.(\d)+(?=,)/g, "") + ")"
|
|
}
|
|
}
|
|
}()
|
|
}
|
|
},
|
|
Names: {
|
|
camelCase: function(a) {
|
|
return a.replace(/-(\w)/g, function(a, b) {
|
|
return b.toUpperCase()
|
|
})
|
|
},
|
|
SVGAttribute: function(a) {
|
|
var b = "width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";
|
|
return (n || t.State.isAndroid && !t.State.isChrome) && (b += "|transform"), new RegExp("^(" + b + ")$", "i").test(a)
|
|
},
|
|
prefixCheck: function(a) {
|
|
if (t.State.prefixMatches[a]) return [t.State.prefixMatches[a], !0];
|
|
for (var b = ["", "Webkit", "Moz", "ms", "O"], c = 0, d = b.length; d > c; c++) {
|
|
var e;
|
|
if (e = 0 === c ? a : b[c] + a.replace(/^\w/, function(a) {
|
|
return a.toUpperCase()
|
|
}), p.isString(t.State.prefixElement.style[e])) return t.State.prefixMatches[a] = e, [e, !0]
|
|
}
|
|
return [a, !1]
|
|
}
|
|
},
|
|
Values: {
|
|
hexToRgb: function(a) {
|
|
var b, c = /^#?([a-f\d])([a-f\d])([a-f\d])$/i,
|
|
d = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;
|
|
return a = a.replace(c, function(a, b, c, d) {
|
|
return b + b + c + c + d + d
|
|
}), b = d.exec(a), b ? [parseInt(b[1], 16), parseInt(b[2], 16), parseInt(b[3], 16)] : [0, 0, 0]
|
|
},
|
|
isCSSNullValue: function(a) {
|
|
return 0 == a || /^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a)
|
|
},
|
|
getUnitType: function(a) {
|
|
return /^(rotate|skew)/i.test(a) ? "deg" : /(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a) ? "" : "px"
|
|
},
|
|
getDisplayType: function(a) {
|
|
var b = a && a.tagName.toString().toLowerCase();
|
|
return /^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b) ? "inline" : /^(li)$/i.test(b) ? "list-item" : /^(tr)$/i.test(b) ? "table-row" : "block"
|
|
},
|
|
addClass: function(a, b) {
|
|
a.classList ? a.classList.add(b) : a.className += (a.className.length ? " " : "") + b
|
|
},
|
|
removeClass: function(a, b) {
|
|
a.classList ? a.classList.remove(b) : a.className = a.className.toString().replace(new RegExp("(^|\\s)" + b.split(" ").join("|") + "(\\s|$)", "gi"), " ")
|
|
}
|
|
},
|
|
getPropertyValue: function(a, c, e, f) {
|
|
function h(a, c) {
|
|
function e() {
|
|
j && v.setPropertyValue(a, "display", "none")
|
|
}
|
|
var i = 0;
|
|
if (8 >= n) i = m.css(a, c);
|
|
else {
|
|
var j = !1;
|
|
if (/^(width|height)$/.test(c) && 0 === v.getPropertyValue(a, "display") && (j = !0, v.setPropertyValue(a, "display", v.Values.getDisplayType(a))), !f) {
|
|
if ("height" === c && "border-box" !== v.getPropertyValue(a, "boxSizing").toString().toLowerCase()) {
|
|
var k = a.offsetHeight - (parseFloat(v.getPropertyValue(a, "borderTopWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "borderBottomWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingTop")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingBottom")) || 0);
|
|
return e(), k
|
|
}
|
|
if ("width" === c && "border-box" !== v.getPropertyValue(a, "boxSizing").toString().toLowerCase()) {
|
|
var l = a.offsetWidth - (parseFloat(v.getPropertyValue(a, "borderLeftWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "borderRightWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingLeft")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingRight")) || 0);
|
|
return e(), l
|
|
}
|
|
}
|
|
var o;
|
|
o = g(a) === d ? b.getComputedStyle(a, null) : g(a).computedStyle ? g(a).computedStyle : g(a).computedStyle = b.getComputedStyle(a, null), (n || t.State.isFirefox) && "borderColor" === c && (c = "borderTopColor"), i = 9 === n && "filter" === c ? o.getPropertyValue(c) : o[c], ("" === i || null === i) && (i = a.style[c]), e()
|
|
}
|
|
if ("auto" === i && /^(top|right|bottom|left)$/i.test(c)) {
|
|
var p = h(a, "position");
|
|
("fixed" === p || "absolute" === p && /top|left/i.test(c)) && (i = m(a).position()[c] + "px")
|
|
}
|
|
return i
|
|
}
|
|
var i;
|
|
if (v.Hooks.registered[c]) {
|
|
var j = c,
|
|
k = v.Hooks.getRoot(j);
|
|
e === d && (e = v.getPropertyValue(a, v.Names.prefixCheck(k)[0])), v.Normalizations.registered[k] && (e = v.Normalizations.registered[k]("extract", a, e)), i = v.Hooks.extractValue(j, e)
|
|
} else if (v.Normalizations.registered[c]) {
|
|
var l, o;
|
|
l = v.Normalizations.registered[c]("name", a), "transform" !== l && (o = h(a, v.Names.prefixCheck(l)[0]), v.Values.isCSSNullValue(o) && v.Hooks.templates[c] && (o = v.Hooks.templates[c][1])), i = v.Normalizations.registered[c]("extract", a, o)
|
|
}
|
|
return /^[\d-]/.test(i) || (i = g(a) && g(a).isSVG && v.Names.SVGAttribute(c) ? /^(height|width)$/i.test(c) ? a.getBBox()[c] : a.getAttribute(c) : h(a, v.Names.prefixCheck(c)[0])), v.Values.isCSSNullValue(i) && (i = 0), t.debug >= 2 && console.log("Get " + c + ": " + i), i
|
|
},
|
|
setPropertyValue: function(a, c, d, e, f) {
|
|
var h = c;
|
|
if ("scroll" === c) f.container ? f.container["scroll" + f.direction] = d : "Left" === f.direction ? b.scrollTo(d, f.alternateValue) : b.scrollTo(f.alternateValue, d);
|
|
else if (v.Normalizations.registered[c] && "transform" === v.Normalizations.registered[c]("name", a)) v.Normalizations.registered[c]("inject", a, d), h = "transform", d = g(a).transformCache[c];
|
|
else {
|
|
if (v.Hooks.registered[c]) {
|
|
var i = c,
|
|
j = v.Hooks.getRoot(c);
|
|
e = e || v.getPropertyValue(a, j), d = v.Hooks.injectValue(i, d, e), c = j
|
|
}
|
|
if (v.Normalizations.registered[c] && (d = v.Normalizations.registered[c]("inject", a, d), c = v.Normalizations.registered[c]("name", a)), h = v.Names.prefixCheck(c)[0], 8 >= n) try {
|
|
a.style[h] = d
|
|
} catch (k) {
|
|
t.debug && console.log("Browser does not support [" + d + "] for [" + h + "]")
|
|
} else g(a) && g(a).isSVG && v.Names.SVGAttribute(c) ? a.setAttribute(c, d) : a.style[h] = d;
|
|
t.debug >= 2 && console.log("Set " + c + " (" + h + "): " + d)
|
|
}
|
|
return [h, d]
|
|
},
|
|
flushTransformCache: function(a) {
|
|
function b(b) {
|
|
return parseFloat(v.getPropertyValue(a, b))
|
|
}
|
|
var c = "";
|
|
if ((n || t.State.isAndroid && !t.State.isChrome) && g(a).isSVG) {
|
|
var d = {
|
|
translate: [b("translateX"), b("translateY")],
|
|
skewX: [b("skewX")],
|
|
skewY: [b("skewY")],
|
|
scale: 1 !== b("scale") ? [b("scale"), b("scale")] : [b("scaleX"), b("scaleY")],
|
|
rotate: [b("rotateZ"), 0, 0]
|
|
};
|
|
m.each(g(a).transformCache, function(a) {
|
|
/^translate/i.test(a) ? a = "translate" : /^scale/i.test(a) ? a = "scale" : /^rotate/i.test(a) && (a = "rotate"), d[a] && (c += a + "(" + d[a].join(" ") + ") ", delete d[a])
|
|
})
|
|
} else {
|
|
var e, f;
|
|
m.each(g(a).transformCache, function(b) {
|
|
return e = g(a).transformCache[b], "transformPerspective" === b ? (f = e, !0) : (9 === n && "rotateZ" === b && (b = "rotate"), void(c += b + e + " "))
|
|
}), f && (c = "perspective" + f + " " + c)
|
|
}
|
|
v.setPropertyValue(a, "transform", c)
|
|
}
|
|
};
|
|
v.Hooks.register(), v.Normalizations.register(), t.hook = function(a, b, c) {
|
|
var e = d;
|
|
return a = f(a), m.each(a, function(a, f) {
|
|
if (g(f) === d && t.init(f), c === d) e === d && (e = t.CSS.getPropertyValue(f, b));
|
|
else {
|
|
var h = t.CSS.setPropertyValue(f, b, c);
|
|
|
|
"transform" === h[0] && t.CSS.flushTransformCache(f), e = h
|
|
}
|
|
}), e
|
|
};
|
|
var w = function() {
|
|
function a() {
|
|
return i ? C.promise || null : n
|
|
}
|
|
|
|
function h() {
|
|
function a() {
|
|
function a(a, b) {
|
|
var c = d,
|
|
e = d,
|
|
f = d;
|
|
return p.isArray(a) ? (c = a[0], !p.isArray(a[1]) && /^[\d-]/.test(a[1]) || p.isFunction(a[1]) || v.RegEx.isHex.test(a[1]) ? f = a[1] : (p.isString(a[1]) && !v.RegEx.isHex.test(a[1]) || p.isArray(a[1])) && (e = b ? a[1] : j(a[1], i.duration), a[2] !== d && (f = a[2]))) : c = a, b || (e = e || i.easing), p.isFunction(c) && (c = c.call(h, z, y)), p.isFunction(f) && (f = f.call(h, z, y)), [c || 0, e, f]
|
|
}
|
|
|
|
function n(a, b) {
|
|
var c, d;
|
|
return d = (b || "0").toString().toLowerCase().replace(/[%A-z]+$/, function(a) {
|
|
return c = a, ""
|
|
}), c || (c = v.Values.getUnitType(a)), [d, c]
|
|
}
|
|
|
|
function o() {
|
|
var a = {
|
|
myParent: h.parentNode || c.body,
|
|
position: v.getPropertyValue(h, "position"),
|
|
fontSize: v.getPropertyValue(h, "fontSize")
|
|
},
|
|
d = a.position === J.lastPosition && a.myParent === J.lastParent,
|
|
e = a.fontSize === J.lastFontSize;
|
|
J.lastParent = a.myParent, J.lastPosition = a.position, J.lastFontSize = a.fontSize;
|
|
var f = 100,
|
|
i = {};
|
|
if (e && d) i.emToPx = J.lastEmToPx, i.percentToPxWidth = J.lastPercentToPxWidth, i.percentToPxHeight = J.lastPercentToPxHeight;
|
|
else {
|
|
var j = g(h).isSVG ? c.createElementNS("http://www.w3.org/2000/svg", "rect") : c.createElement("div");
|
|
t.init(j), a.myParent.appendChild(j), m.each(["overflow", "overflowX", "overflowY"], function(a, b) {
|
|
t.CSS.setPropertyValue(j, b, "hidden")
|
|
}), t.CSS.setPropertyValue(j, "position", a.position), t.CSS.setPropertyValue(j, "fontSize", a.fontSize), t.CSS.setPropertyValue(j, "boxSizing", "content-box"), m.each(["minWidth", "maxWidth", "width", "minHeight", "maxHeight", "height"], function(a, b) {
|
|
t.CSS.setPropertyValue(j, b, f + "%")
|
|
}), t.CSS.setPropertyValue(j, "paddingLeft", f + "em"), i.percentToPxWidth = J.lastPercentToPxWidth = (parseFloat(v.getPropertyValue(j, "width", null, !0)) || 1) / f, i.percentToPxHeight = J.lastPercentToPxHeight = (parseFloat(v.getPropertyValue(j, "height", null, !0)) || 1) / f, i.emToPx = J.lastEmToPx = (parseFloat(v.getPropertyValue(j, "paddingLeft")) || 1) / f, a.myParent.removeChild(j)
|
|
}
|
|
return null === J.remToPx && (J.remToPx = parseFloat(v.getPropertyValue(c.body, "fontSize")) || 16), null === J.vwToPx && (J.vwToPx = parseFloat(b.innerWidth) / 100, J.vhToPx = parseFloat(b.innerHeight) / 100), i.remToPx = J.remToPx, i.vwToPx = J.vwToPx, i.vhToPx = J.vhToPx, t.debug >= 1 && console.log("Unit ratios: " + JSON.stringify(i), h), i
|
|
}
|
|
if (i.begin && 0 === z) try {
|
|
i.begin.call(q, q)
|
|
} catch (r) {
|
|
setTimeout(function() {
|
|
throw r
|
|
}, 1)
|
|
}
|
|
if ("scroll" === D) {
|
|
var w, x, A, B = /^x$/i.test(i.axis) ? "Left" : "Top",
|
|
E = parseFloat(i.offset) || 0;
|
|
i.container ? p.isWrapped(i.container) || p.isNode(i.container) ? (i.container = i.container[0] || i.container, w = i.container["scroll" + B], A = w + m(h).position()[B.toLowerCase()] + E) : i.container = null : (w = t.State.scrollAnchor[t.State["scrollProperty" + B]], x = t.State.scrollAnchor[t.State["scrollProperty" + ("Left" === B ? "Top" : "Left")]], A = m(h).offset()[B.toLowerCase()] + E), l = {
|
|
scroll: {
|
|
rootPropertyValue: !1,
|
|
startValue: w,
|
|
currentValue: w,
|
|
endValue: A,
|
|
unitType: "",
|
|
easing: i.easing,
|
|
scrollData: {
|
|
container: i.container,
|
|
direction: B,
|
|
alternateValue: x
|
|
}
|
|
},
|
|
element: h
|
|
}, t.debug && console.log("tweensContainer (scroll): ", l.scroll, h)
|
|
} else if ("reverse" === D) {
|
|
if (!g(h).tweensContainer) return void m.dequeue(h, i.queue);
|
|
"none" === g(h).opts.display && (g(h).opts.display = "auto"), "hidden" === g(h).opts.visibility && (g(h).opts.visibility = "visible"), g(h).opts.loop = !1, g(h).opts.begin = null, g(h).opts.complete = null, u.easing || delete i.easing, u.duration || delete i.duration, i = m.extend({}, g(h).opts, i);
|
|
var F = m.extend(!0, {}, g(h).tweensContainer);
|
|
for (var G in F)
|
|
if ("element" !== G) {
|
|
var H = F[G].startValue;
|
|
F[G].startValue = F[G].currentValue = F[G].endValue, F[G].endValue = H, p.isEmptyObject(u) || (F[G].easing = i.easing), t.debug && console.log("reverse tweensContainer (" + G + "): " + JSON.stringify(F[G]), h)
|
|
} l = F
|
|
} else if ("start" === D) {
|
|
var F;
|
|
g(h).tweensContainer && g(h).isAnimating === !0 && (F = g(h).tweensContainer), m.each(s, function(b, c) {
|
|
if (RegExp("^" + v.Lists.colors.join("$|^") + "$").test(b)) {
|
|
var e = a(c, !0),
|
|
f = e[0],
|
|
g = e[1],
|
|
h = e[2];
|
|
if (v.RegEx.isHex.test(f)) {
|
|
for (var i = ["Red", "Green", "Blue"], j = v.Values.hexToRgb(f), k = h ? v.Values.hexToRgb(h) : d, l = 0; l < i.length; l++) {
|
|
var m = [j[l]];
|
|
g && m.push(g), k !== d && m.push(k[l]), s[b + i[l]] = m
|
|
}
|
|
delete s[b]
|
|
}
|
|
}
|
|
});
|
|
for (var I in s) {
|
|
var L = a(s[I]),
|
|
M = L[0],
|
|
N = L[1],
|
|
O = L[2];
|
|
I = v.Names.camelCase(I);
|
|
var P = v.Hooks.getRoot(I),
|
|
Q = !1;
|
|
if (g(h).isSVG || v.Names.prefixCheck(P)[1] !== !1 || v.Normalizations.registered[P] !== d) {
|
|
(i.display !== d && null !== i.display && "none" !== i.display || i.visibility !== d && "hidden" !== i.visibility) && /opacity|filter/.test(I) && !O && 0 !== M && (O = 0), i._cacheValues && F && F[I] ? (O === d && (O = F[I].endValue + F[I].unitType), Q = g(h).rootPropertyValueCache[P]) : v.Hooks.registered[I] ? O === d ? (Q = v.getPropertyValue(h, P), O = v.getPropertyValue(h, I, Q)) : Q = v.Hooks.templates[P][1] : O === d && (O = v.getPropertyValue(h, I));
|
|
var R, S, T, U = !1;
|
|
if (R = n(I, O), O = R[0], T = R[1], R = n(I, M), M = R[0].replace(/^([+-\/*])=/, function(a, b) {
|
|
return U = b, ""
|
|
}), S = R[1], O = parseFloat(O) || 0, M = parseFloat(M) || 0, "%" === S && (/^(fontSize|lineHeight)$/.test(I) ? (M /= 100, S = "em") : /^scale/.test(I) ? (M /= 100, S = "") : /(Red|Green|Blue)$/i.test(I) && (M = M / 100 * 255, S = "")), /[\/*]/.test(U)) S = T;
|
|
else if (T !== S && 0 !== O)
|
|
if (0 === M) S = T;
|
|
else {
|
|
f = f || o();
|
|
var V = /margin|padding|left|right|width|text|word|letter/i.test(I) || /X$/.test(I) || "x" === I ? "x" : "y";
|
|
switch (T) {
|
|
case "%":
|
|
O *= "x" === V ? f.percentToPxWidth : f.percentToPxHeight;
|
|
break;
|
|
case "px":
|
|
break;
|
|
default:
|
|
O *= f[T + "ToPx"]
|
|
}
|
|
switch (S) {
|
|
case "%":
|
|
O *= 1 / ("x" === V ? f.percentToPxWidth : f.percentToPxHeight);
|
|
break;
|
|
case "px":
|
|
break;
|
|
default:
|
|
O *= 1 / f[S + "ToPx"]
|
|
}
|
|
} switch (U) {
|
|
case "+":
|
|
M = O + M;
|
|
break;
|
|
case "-":
|
|
M = O - M;
|
|
break;
|
|
case "*":
|
|
M = O * M;
|
|
break;
|
|
case "/":
|
|
M = O / M
|
|
}
|
|
l[I] = {
|
|
rootPropertyValue: Q,
|
|
startValue: O,
|
|
currentValue: O,
|
|
endValue: M,
|
|
unitType: S,
|
|
easing: N
|
|
}, t.debug && console.log("tweensContainer (" + I + "): " + JSON.stringify(l[I]), h)
|
|
} else t.debug && console.log("Skipping [" + P + "] due to a lack of browser support.")
|
|
}
|
|
l.element = h
|
|
}
|
|
l.element && (v.Values.addClass(h, "velocity-animating"), K.push(l), "" === i.queue && (g(h).tweensContainer = l, g(h).opts = i), g(h).isAnimating = !0, z === y - 1 ? (t.State.calls.length > 1e4 && (t.State.calls = e(t.State.calls)), t.State.calls.push([K, q, i, null, C.resolver]), t.State.isTicking === !1 && (t.State.isTicking = !0, k())) : z++)
|
|
}
|
|
var f, h = this,
|
|
i = m.extend({}, t.defaults, u),
|
|
l = {};
|
|
switch (g(h) === d && t.init(h), parseFloat(i.delay) && i.queue !== !1 && m.queue(h, i.queue, function(a) {
|
|
t.velocityQueueEntryFlag = !0, g(h).delayTimer = {
|
|
setTimeout: setTimeout(a, parseFloat(i.delay)),
|
|
next: a
|
|
}
|
|
}), i.duration.toString().toLowerCase()) {
|
|
case "fast":
|
|
i.duration = 200;
|
|
break;
|
|
case "normal":
|
|
i.duration = r;
|
|
break;
|
|
case "slow":
|
|
i.duration = 600;
|
|
break;
|
|
default:
|
|
i.duration = parseFloat(i.duration) || 1
|
|
}
|
|
t.mock !== !1 && (t.mock === !0 ? i.duration = i.delay = 1 : (i.duration *= parseFloat(t.mock) || 1, i.delay *= parseFloat(t.mock) || 1)), i.easing = j(i.easing, i.duration), i.begin && !p.isFunction(i.begin) && (i.begin = null), i.progress && !p.isFunction(i.progress) && (i.progress = null), i.complete && !p.isFunction(i.complete) && (i.complete = null), i.display !== d && null !== i.display && (i.display = i.display.toString().toLowerCase(), "auto" === i.display && (i.display = t.CSS.Values.getDisplayType(h))), i.visibility !== d && null !== i.visibility && (i.visibility = i.visibility.toString().toLowerCase()), i.mobileHA = i.mobileHA && t.State.isMobile && !t.State.isGingerbread, i.queue === !1 ? i.delay ? setTimeout(a, i.delay) : a() : m.queue(h, i.queue, function(b, c) {
|
|
return c === !0 ? (C.promise && C.resolver(q), !0) : (t.velocityQueueEntryFlag = !0, void a(b))
|
|
}), "" !== i.queue && "fx" !== i.queue || "inprogress" === m.queue(h)[0] || m.dequeue(h)
|
|
}
|
|
var i, n, o, q, s, u, x = arguments[0] && (m.isPlainObject(arguments[0].properties) && !arguments[0].properties.names || p.isString(arguments[0].properties));
|
|
if (p.isWrapped(this) ? (i = !1, o = 0, q = this, n = this) : (i = !0, o = 1, q = x ? arguments[0].elements : arguments[0]), q = f(q)) {
|
|
x ? (s = arguments[0].properties, u = arguments[0].options) : (s = arguments[o], u = arguments[o + 1]);
|
|
var y = q.length,
|
|
z = 0;
|
|
if ("stop" !== s && !m.isPlainObject(u)) {
|
|
var A = o + 1;
|
|
u = {};
|
|
for (var B = A; B < arguments.length; B++) p.isArray(arguments[B]) || !/^(fast|normal|slow)$/i.test(arguments[B]) && !/^\d/.test(arguments[B]) ? p.isString(arguments[B]) || p.isArray(arguments[B]) ? u.easing = arguments[B] : p.isFunction(arguments[B]) && (u.complete = arguments[B]) : u.duration = arguments[B]
|
|
}
|
|
var C = {
|
|
promise: null,
|
|
resolver: null,
|
|
rejecter: null
|
|
};
|
|
i && t.Promise && (C.promise = new t.Promise(function(a, b) {
|
|
C.resolver = a, C.rejecter = b
|
|
}));
|
|
var D;
|
|
switch (s) {
|
|
case "scroll":
|
|
D = "scroll";
|
|
break;
|
|
case "reverse":
|
|
D = "reverse";
|
|
break;
|
|
case "stop":
|
|
m.each(q, function(a, b) {
|
|
g(b) && g(b).delayTimer && (clearTimeout(g(b).delayTimer.setTimeout), g(b).delayTimer.next && g(b).delayTimer.next(), delete g(b).delayTimer)
|
|
});
|
|
var E = [];
|
|
return m.each(t.State.calls, function(a, b) {
|
|
b && m.each(b[1], function(c, e) {
|
|
var f = p.isString(u) ? u : "";
|
|
return u !== d && b[2].queue !== f ? !0 : void m.each(q, function(b, c) {
|
|
c === e && (u !== d && (m.each(m.queue(c, f), function(a, b) {
|
|
p.isFunction(b) && b(null, !0)
|
|
}), m.queue(c, f, [])), g(c) && "" === f && m.each(g(c).tweensContainer, function(a, b) {
|
|
b.endValue = b.currentValue
|
|
}), E.push(a))
|
|
})
|
|
})
|
|
}), m.each(E, function(a, b) {
|
|
l(b, !0)
|
|
}), C.promise && C.resolver(q), a();
|
|
default:
|
|
if (!m.isPlainObject(s) || p.isEmptyObject(s)) {
|
|
if (p.isString(s) && t.Redirects[s]) {
|
|
var F = m.extend({}, u),
|
|
G = F.duration,
|
|
H = F.delay || 0;
|
|
return F.backwards === !0 && (q = m.extend(!0, [], q).reverse()), m.each(q, function(a, b) {
|
|
parseFloat(F.stagger) ? F.delay = H + parseFloat(F.stagger) * a : p.isFunction(F.stagger) && (F.delay = H + F.stagger.call(b, a, y)), F.drag && (F.duration = parseFloat(G) || (/^(callout|transition)/.test(s) ? 1e3 : r), F.duration = Math.max(F.duration * (F.backwards ? 1 - a / y : (a + 1) / y), .75 * F.duration, 200)), t.Redirects[s].call(b, b, F || {}, a, y, q, C.promise ? C : d)
|
|
}), a()
|
|
}
|
|
var I = "Velocity: First argument (" + s + ") was not a property map, a known action, or a registered redirect. Aborting.";
|
|
return C.promise ? C.rejecter(new Error(I)) : console.log(I), a()
|
|
}
|
|
D = "start"
|
|
}
|
|
var J = {
|
|
lastParent: null,
|
|
lastPosition: null,
|
|
lastFontSize: null,
|
|
lastPercentToPxWidth: null,
|
|
lastPercentToPxHeight: null,
|
|
lastEmToPx: null,
|
|
remToPx: null,
|
|
vwToPx: null,
|
|
vhToPx: null
|
|
},
|
|
K = [];
|
|
m.each(q, function(a, b) {
|
|
p.isNode(b) && h.call(b)
|
|
});
|
|
var L, F = m.extend({}, t.defaults, u);
|
|
if (F.loop = parseInt(F.loop), L = 2 * F.loop - 1, F.loop)
|
|
for (var M = 0; L > M; M++) {
|
|
var N = {
|
|
delay: F.delay,
|
|
progress: F.progress
|
|
};
|
|
M === L - 1 && (N.display = F.display, N.visibility = F.visibility, N.complete = F.complete), w(q, "reverse", N)
|
|
}
|
|
return a()
|
|
}
|
|
};
|
|
t = m.extend(w, t), t.animate = w;
|
|
var x = b.requestAnimationFrame || o;
|
|
return t.State.isMobile || c.hidden === d || c.addEventListener("visibilitychange", function() {
|
|
c.hidden ? (x = function(a) {
|
|
return setTimeout(function() {
|
|
a(!0)
|
|
}, 16)
|
|
}, k()) : x = b.requestAnimationFrame || o
|
|
}), a.Velocity = t, a !== b && (a.fn.velocity = w, a.fn.velocity.defaults = t.defaults), m.each(["Down", "Up"], function(a, b) {
|
|
t.Redirects["slide" + b] = function(a, c, e, f, g, h) {
|
|
var i = m.extend({}, c),
|
|
j = i.begin,
|
|
k = i.complete,
|
|
l = {
|
|
height: "",
|
|
marginTop: "",
|
|
marginBottom: "",
|
|
paddingTop: "",
|
|
paddingBottom: ""
|
|
},
|
|
n = {};
|
|
i.display === d && (i.display = "Down" === b ? "inline" === t.CSS.Values.getDisplayType(a) ? "inline-block" : "block" : "none"), i.begin = function() {
|
|
j && j.call(g, g);
|
|
for (var c in l) {
|
|
n[c] = a.style[c];
|
|
var d = t.CSS.getPropertyValue(a, c);
|
|
l[c] = "Down" === b ? [d, 0] : [0, d]
|
|
}
|
|
n.overflow = a.style.overflow, a.style.overflow = "hidden"
|
|
}, i.complete = function() {
|
|
for (var b in n) a.style[b] = n[b];
|
|
k && k.call(g, g), h && h.resolver(g)
|
|
}, t(a, l, i)
|
|
}
|
|
}), m.each(["In", "Out"], function(a, b) {
|
|
t.Redirects["fade" + b] = function(a, c, e, f, g, h) {
|
|
var i = m.extend({}, c),
|
|
j = {
|
|
opacity: "In" === b ? 1 : 0
|
|
},
|
|
k = i.complete;
|
|
i.complete = e !== f - 1 ? i.begin = null : function() {
|
|
k && k.call(g, g), h && h.resolver(g)
|
|
}, i.display === d && (i.display = "In" === b ? "auto" : "none"), t(this, j, i)
|
|
}
|
|
}), t
|
|
}(window.jQuery || window.Zepto || window, window, document)
|
|
}), ! function(a, b, c, d) {
|
|
"use strict";
|
|
|
|
function e(a, b, c) {
|
|
return setTimeout(k(a, c), b)
|
|
}
|
|
|
|
function f(a, b, c) {
|
|
return Array.isArray(a) ? (g(a, c[b], c), !0) : !1
|
|
}
|
|
|
|
function g(a, b, c) {
|
|
var e;
|
|
if (a)
|
|
if (a.forEach) a.forEach(b, c);
|
|
else if (a.length !== d)
|
|
for (e = 0; e < a.length;) b.call(c, a[e], e, a), e++;
|
|
else
|
|
for (e in a) a.hasOwnProperty(e) && b.call(c, a[e], e, a)
|
|
}
|
|
|
|
function h(a, b, c) {
|
|
for (var e = Object.keys(b), f = 0; f < e.length;)(!c || c && a[e[f]] === d) && (a[e[f]] = b[e[f]]), f++;
|
|
return a
|
|
}
|
|
|
|
function i(a, b) {
|
|
return h(a, b, !0)
|
|
}
|
|
|
|
function j(a, b, c) {
|
|
var d, e = b.prototype;
|
|
d = a.prototype = Object.create(e), d.constructor = a, d._super = e, c && h(d, c)
|
|
}
|
|
|
|
function k(a, b) {
|
|
return function() {
|
|
return a.apply(b, arguments)
|
|
}
|
|
}
|
|
|
|
function l(a, b) {
|
|
return typeof a == ka ? a.apply(b ? b[0] || d : d, b) : a
|
|
}
|
|
|
|
function m(a, b) {
|
|
return a === d ? b : a
|
|
}
|
|
|
|
function n(a, b, c) {
|
|
g(r(b), function(b) {
|
|
a.addEventListener(b, c, !1)
|
|
})
|
|
}
|
|
|
|
function o(a, b, c) {
|
|
g(r(b), function(b) {
|
|
a.removeEventListener(b, c, !1)
|
|
})
|
|
}
|
|
|
|
function p(a, b) {
|
|
for (; a;) {
|
|
if (a == b) return !0;
|
|
a = a.parentNode
|
|
}
|
|
return !1
|
|
}
|
|
|
|
function q(a, b) {
|
|
return a.indexOf(b) > -1
|
|
}
|
|
|
|
function r(a) {
|
|
return a.trim().split(/\s+/g)
|
|
}
|
|
|
|
function s(a, b, c) {
|
|
if (a.indexOf && !c) return a.indexOf(b);
|
|
for (var d = 0; d < a.length;) {
|
|
if (c && a[d][c] == b || !c && a[d] === b) return d;
|
|
d++
|
|
}
|
|
return -1
|
|
}
|
|
|
|
function t(a) {
|
|
return Array.prototype.slice.call(a, 0)
|
|
}
|
|
|
|
function u(a, b, c) {
|
|
for (var d = [], e = [], f = 0; f < a.length;) {
|
|
var g = b ? a[f][b] : a[f];
|
|
s(e, g) < 0 && d.push(a[f]), e[f] = g, f++
|
|
}
|
|
return c && (d = b ? d.sort(function(a, c) {
|
|
return a[b] > c[b]
|
|
}) : d.sort()), d
|
|
}
|
|
|
|
function v(a, b) {
|
|
for (var c, e, f = b[0].toUpperCase() + b.slice(1), g = 0; g < ia.length;) {
|
|
if (c = ia[g], e = c ? c + f : b, e in a) return e;
|
|
g++
|
|
}
|
|
return d
|
|
}
|
|
|
|
function w() {
|
|
return oa++
|
|
}
|
|
|
|
function x(a) {
|
|
var b = a.ownerDocument;
|
|
return b.defaultView || b.parentWindow
|
|
}
|
|
|
|
function y(a, b) {
|
|
var c = this;
|
|
this.manager = a, this.callback = b, this.element = a.element, this.target = a.options.inputTarget, this.domHandler = function(b) {
|
|
l(a.options.enable, [a]) && c.handler(b)
|
|
}, this.init()
|
|
}
|
|
|
|
function z(a) {
|
|
var b, c = a.options.inputClass;
|
|
return new(b = c ? c : ra ? N : sa ? Q : qa ? S : M)(a, A)
|
|
}
|
|
|
|
function A(a, b, c) {
|
|
var d = c.pointers.length,
|
|
e = c.changedPointers.length,
|
|
f = b & ya && 0 === d - e,
|
|
g = b & (Aa | Ba) && 0 === d - e;
|
|
c.isFirst = !!f, c.isFinal = !!g, f && (a.session = {}), c.eventType = b, B(a, c), a.emit("hammer.input", c), a.recognize(c), a.session.prevInput = c
|
|
}
|
|
|
|
function B(a, b) {
|
|
var c = a.session,
|
|
d = b.pointers,
|
|
e = d.length;
|
|
c.firstInput || (c.firstInput = E(b)), e > 1 && !c.firstMultiple ? c.firstMultiple = E(b) : 1 === e && (c.firstMultiple = !1);
|
|
var f = c.firstInput,
|
|
g = c.firstMultiple,
|
|
h = g ? g.center : f.center,
|
|
i = b.center = F(d);
|
|
b.timeStamp = na(), b.deltaTime = b.timeStamp - f.timeStamp, b.angle = J(h, i), b.distance = I(h, i), C(c, b), b.offsetDirection = H(b.deltaX, b.deltaY), b.scale = g ? L(g.pointers, d) : 1, b.rotation = g ? K(g.pointers, d) : 0, D(c, b);
|
|
var j = a.element;
|
|
p(b.srcEvent.target, j) && (j = b.srcEvent.target), b.target = j
|
|
}
|
|
|
|
function C(a, b) {
|
|
var c = b.center,
|
|
d = a.offsetDelta || {},
|
|
e = a.prevDelta || {},
|
|
f = a.prevInput || {};
|
|
(b.eventType === ya || f.eventType === Aa) && (e = a.prevDelta = {
|
|
x: f.deltaX || 0,
|
|
y: f.deltaY || 0
|
|
}, d = a.offsetDelta = {
|
|
x: c.x,
|
|
y: c.y
|
|
}), b.deltaX = e.x + (c.x - d.x), b.deltaY = e.y + (c.y - d.y)
|
|
}
|
|
|
|
function D(a, b) {
|
|
var c, e, f, g, h = a.lastInterval || b,
|
|
i = b.timeStamp - h.timeStamp;
|
|
if (b.eventType != Ba && (i > xa || h.velocity === d)) {
|
|
var j = h.deltaX - b.deltaX,
|
|
k = h.deltaY - b.deltaY,
|
|
l = G(i, j, k);
|
|
e = l.x, f = l.y, c = ma(l.x) > ma(l.y) ? l.x : l.y, g = H(j, k), a.lastInterval = b
|
|
} else c = h.velocity, e = h.velocityX, f = h.velocityY, g = h.direction;
|
|
b.velocity = c, b.velocityX = e, b.velocityY = f, b.direction = g
|
|
}
|
|
|
|
function E(a) {
|
|
for (var b = [], c = 0; c < a.pointers.length;) b[c] = {
|
|
clientX: la(a.pointers[c].clientX),
|
|
clientY: la(a.pointers[c].clientY)
|
|
}, c++;
|
|
return {
|
|
timeStamp: na(),
|
|
pointers: b,
|
|
center: F(b),
|
|
deltaX: a.deltaX,
|
|
deltaY: a.deltaY
|
|
}
|
|
}
|
|
|
|
function F(a) {
|
|
var b = a.length;
|
|
if (1 === b) return {
|
|
x: la(a[0].clientX),
|
|
y: la(a[0].clientY)
|
|
};
|
|
for (var c = 0, d = 0, e = 0; b > e;) c += a[e].clientX, d += a[e].clientY, e++;
|
|
return {
|
|
x: la(c / b),
|
|
y: la(d / b)
|
|
}
|
|
}
|
|
|
|
function G(a, b, c) {
|
|
return {
|
|
x: b / a || 0,
|
|
y: c / a || 0
|
|
}
|
|
}
|
|
|
|
function H(a, b) {
|
|
return a === b ? Ca : ma(a) >= ma(b) ? a > 0 ? Da : Ea : b > 0 ? Fa : Ga
|
|
}
|
|
|
|
function I(a, b, c) {
|
|
c || (c = Ka);
|
|
var d = b[c[0]] - a[c[0]],
|
|
e = b[c[1]] - a[c[1]];
|
|
return Math.sqrt(d * d + e * e)
|
|
}
|
|
|
|
function J(a, b, c) {
|
|
c || (c = Ka);
|
|
var d = b[c[0]] - a[c[0]],
|
|
e = b[c[1]] - a[c[1]];
|
|
return 180 * Math.atan2(e, d) / Math.PI
|
|
}
|
|
|
|
function K(a, b) {
|
|
return J(b[1], b[0], La) - J(a[1], a[0], La)
|
|
}
|
|
|
|
function L(a, b) {
|
|
return I(b[0], b[1], La) / I(a[0], a[1], La)
|
|
}
|
|
|
|
function M() {
|
|
this.evEl = Na, this.evWin = Oa, this.allow = !0, this.pressed = !1, y.apply(this, arguments)
|
|
}
|
|
|
|
function N() {
|
|
this.evEl = Ra, this.evWin = Sa, y.apply(this, arguments), this.store = this.manager.session.pointerEvents = []
|
|
}
|
|
|
|
function O() {
|
|
this.evTarget = Ua, this.evWin = Va, this.started = !1, y.apply(this, arguments)
|
|
}
|
|
|
|
function P(a, b) {
|
|
var c = t(a.touches),
|
|
d = t(a.changedTouches);
|
|
return b & (Aa | Ba) && (c = u(c.concat(d), "identifier", !0)), [c, d]
|
|
}
|
|
|
|
function Q() {
|
|
this.evTarget = Xa, this.targetIds = {}, y.apply(this, arguments)
|
|
}
|
|
|
|
function R(a, b) {
|
|
var c = t(a.touches),
|
|
d = this.targetIds;
|
|
if (b & (ya | za) && 1 === c.length) return d[c[0].identifier] = !0, [c, c];
|
|
var e, f, g = t(a.changedTouches),
|
|
h = [],
|
|
i = this.target;
|
|
if (f = c.filter(function(a) {
|
|
return p(a.target, i)
|
|
}), b === ya)
|
|
for (e = 0; e < f.length;) d[f[e].identifier] = !0, e++;
|
|
for (e = 0; e < g.length;) d[g[e].identifier] && h.push(g[e]), b & (Aa | Ba) && delete d[g[e].identifier], e++;
|
|
return h.length ? [u(f.concat(h), "identifier", !0), h] : void 0
|
|
}
|
|
|
|
function S() {
|
|
y.apply(this, arguments);
|
|
var a = k(this.handler, this);
|
|
this.touch = new Q(this.manager, a), this.mouse = new M(this.manager, a)
|
|
}
|
|
|
|
function T(a, b) {
|
|
this.manager = a, this.set(b)
|
|
}
|
|
|
|
function U(a) {
|
|
if (q(a, bb)) return bb;
|
|
var b = q(a, cb),
|
|
c = q(a, db);
|
|
return b && c ? cb + " " + db : b || c ? b ? cb : db : q(a, ab) ? ab : _a
|
|
}
|
|
|
|
function V(a) {
|
|
this.id = w(), this.manager = null, this.options = i(a || {}, this.defaults), this.options.enable = m(this.options.enable, !0), this.state = eb, this.simultaneous = {}, this.requireFail = []
|
|
}
|
|
|
|
function W(a) {
|
|
return a & jb ? "cancel" : a & hb ? "end" : a & gb ? "move" : a & fb ? "start" : ""
|
|
}
|
|
|
|
function X(a) {
|
|
return a == Ga ? "down" : a == Fa ? "up" : a == Da ? "left" : a == Ea ? "right" : ""
|
|
}
|
|
|
|
function Y(a, b) {
|
|
var c = b.manager;
|
|
return c ? c.get(a) : a
|
|
}
|
|
|
|
function Z() {
|
|
V.apply(this, arguments)
|
|
}
|
|
|
|
function $() {
|
|
Z.apply(this, arguments), this.pX = null, this.pY = null
|
|
}
|
|
|
|
function _() {
|
|
Z.apply(this, arguments)
|
|
}
|
|
|
|
function aa() {
|
|
V.apply(this, arguments), this._timer = null, this._input = null
|
|
}
|
|
|
|
function ba() {
|
|
Z.apply(this, arguments)
|
|
}
|
|
|
|
function ca() {
|
|
Z.apply(this, arguments)
|
|
}
|
|
|
|
function da() {
|
|
V.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0
|
|
}
|
|
|
|
function ea(a, b) {
|
|
return b = b || {}, b.recognizers = m(b.recognizers, ea.defaults.preset), new fa(a, b)
|
|
}
|
|
|
|
function fa(a, b) {
|
|
b = b || {}, this.options = i(b, ea.defaults), this.options.inputTarget = this.options.inputTarget || a, this.handlers = {}, this.session = {}, this.recognizers = [], this.element = a, this.input = z(this), this.touchAction = new T(this, this.options.touchAction), ga(this, !0), g(b.recognizers, function(a) {
|
|
var b = this.add(new a[0](a[1]));
|
|
a[2] && b.recognizeWith(a[2]), a[3] && b.requireFailure(a[3])
|
|
}, this)
|
|
}
|
|
|
|
function ga(a, b) {
|
|
var c = a.element;
|
|
g(a.options.cssProps, function(a, d) {
|
|
c.style[v(c.style, d)] = b ? a : ""
|
|
})
|
|
}
|
|
|
|
function ha(a, c) {
|
|
var d = b.createEvent("Event");
|
|
d.initEvent(a, !0, !0), d.gesture = c, c.target.dispatchEvent(d)
|
|
}
|
|
var ia = ["", "webkit", "moz", "MS", "ms", "o"],
|
|
ja = b.createElement("div"),
|
|
ka = "function",
|
|
la = Math.round,
|
|
ma = Math.abs,
|
|
na = Date.now,
|
|
oa = 1,
|
|
pa = /mobile|tablet|ip(ad|hone|od)|android/i,
|
|
qa = "ontouchstart" in a,
|
|
ra = v(a, "PointerEvent") !== d,
|
|
sa = qa && pa.test(navigator.userAgent),
|
|
ta = "touch",
|
|
ua = "pen",
|
|
va = "mouse",
|
|
wa = "kinect",
|
|
xa = 25,
|
|
ya = 1,
|
|
za = 2,
|
|
Aa = 4,
|
|
Ba = 8,
|
|
Ca = 1,
|
|
Da = 2,
|
|
Ea = 4,
|
|
Fa = 8,
|
|
Ga = 16,
|
|
Ha = Da | Ea,
|
|
Ia = Fa | Ga,
|
|
Ja = Ha | Ia,
|
|
Ka = ["x", "y"],
|
|
La = ["clientX", "clientY"];
|
|
y.prototype = {
|
|
handler: function() {},
|
|
init: function() {
|
|
this.evEl && n(this.element, this.evEl, this.domHandler), this.evTarget && n(this.target, this.evTarget, this.domHandler), this.evWin && n(x(this.element), this.evWin, this.domHandler)
|
|
},
|
|
destroy: function() {
|
|
this.evEl && o(this.element, this.evEl, this.domHandler), this.evTarget && o(this.target, this.evTarget, this.domHandler), this.evWin && o(x(this.element), this.evWin, this.domHandler)
|
|
}
|
|
};
|
|
var Ma = {
|
|
mousedown: ya,
|
|
mousemove: za,
|
|
mouseup: Aa
|
|
},
|
|
Na = "mousedown",
|
|
Oa = "mousemove mouseup";
|
|
j(M, y, {
|
|
handler: function(a) {
|
|
var b = Ma[a.type];
|
|
b & ya && 0 === a.button && (this.pressed = !0), b & za && 1 !== a.which && (b = Aa), this.pressed && this.allow && (b & Aa && (this.pressed = !1), this.callback(this.manager, b, {
|
|
pointers: [a],
|
|
changedPointers: [a],
|
|
pointerType: va,
|
|
srcEvent: a
|
|
}))
|
|
}
|
|
});
|
|
var Pa = {
|
|
pointerdown: ya,
|
|
pointermove: za,
|
|
pointerup: Aa,
|
|
pointercancel: Ba,
|
|
pointerout: Ba
|
|
},
|
|
Qa = {
|
|
2: ta,
|
|
3: ua,
|
|
4: va,
|
|
5: wa
|
|
},
|
|
Ra = "pointerdown",
|
|
Sa = "pointermove pointerup pointercancel";
|
|
a.MSPointerEvent && (Ra = "MSPointerDown", Sa = "MSPointerMove MSPointerUp MSPointerCancel"), j(N, y, {
|
|
handler: function(a) {
|
|
var b = this.store,
|
|
c = !1,
|
|
d = a.type.toLowerCase().replace("ms", ""),
|
|
e = Pa[d],
|
|
f = Qa[a.pointerType] || a.pointerType,
|
|
g = f == ta,
|
|
h = s(b, a.pointerId, "pointerId");
|
|
e & ya && (0 === a.button || g) ? 0 > h && (b.push(a), h = b.length - 1) : e & (Aa | Ba) && (c = !0), 0 > h || (b[h] = a, this.callback(this.manager, e, {
|
|
pointers: b,
|
|
changedPointers: [a],
|
|
pointerType: f,
|
|
srcEvent: a
|
|
}), c && b.splice(h, 1))
|
|
}
|
|
});
|
|
var Ta = {
|
|
touchstart: ya,
|
|
touchmove: za,
|
|
touchend: Aa,
|
|
touchcancel: Ba
|
|
},
|
|
Ua = "touchstart",
|
|
Va = "touchstart touchmove touchend touchcancel";
|
|
j(O, y, {
|
|
handler: function(a) {
|
|
var b = Ta[a.type];
|
|
if (b === ya && (this.started = !0), this.started) {
|
|
var c = P.call(this, a, b);
|
|
b & (Aa | Ba) && 0 === c[0].length - c[1].length && (this.started = !1), this.callback(this.manager, b, {
|
|
pointers: c[0],
|
|
changedPointers: c[1],
|
|
pointerType: ta,
|
|
srcEvent: a
|
|
})
|
|
}
|
|
}
|
|
});
|
|
var Wa = {
|
|
touchstart: ya,
|
|
touchmove: za,
|
|
touchend: Aa,
|
|
touchcancel: Ba
|
|
},
|
|
Xa = "touchstart touchmove touchend touchcancel";
|
|
j(Q, y, {
|
|
handler: function(a) {
|
|
var b = Wa[a.type],
|
|
c = R.call(this, a, b);
|
|
c && this.callback(this.manager, b, {
|
|
pointers: c[0],
|
|
changedPointers: c[1],
|
|
pointerType: ta,
|
|
srcEvent: a
|
|
})
|
|
}
|
|
}), j(S, y, {
|
|
handler: function(a, b, c) {
|
|
var d = c.pointerType == ta,
|
|
e = c.pointerType == va;
|
|
if (d) this.mouse.allow = !1;
|
|
else if (e && !this.mouse.allow) return;
|
|
b & (Aa | Ba) && (this.mouse.allow = !0), this.callback(a, b, c)
|
|
},
|
|
destroy: function() {
|
|
this.touch.destroy(), this.mouse.destroy()
|
|
}
|
|
});
|
|
var Ya = v(ja.style, "touchAction"),
|
|
Za = Ya !== d,
|
|
$a = "compute",
|
|
_a = "auto",
|
|
ab = "manipulation",
|
|
bb = "none",
|
|
cb = "pan-x",
|
|
db = "pan-y";
|
|
T.prototype = {
|
|
set: function(a) {
|
|
a == $a && (a = this.compute()), Za && (this.manager.element.style[Ya] = a), this.actions = a.toLowerCase().trim()
|
|
},
|
|
update: function() {
|
|
this.set(this.manager.options.touchAction)
|
|
},
|
|
compute: function() {
|
|
var a = [];
|
|
return g(this.manager.recognizers, function(b) {
|
|
l(b.options.enable, [b]) && (a = a.concat(b.getTouchAction()))
|
|
}), U(a.join(" "))
|
|
},
|
|
preventDefaults: function(a) {
|
|
if (!Za) {
|
|
var b = a.srcEvent,
|
|
c = a.offsetDirection;
|
|
if (this.manager.session.prevented) return void b.preventDefault();
|
|
var d = this.actions,
|
|
e = q(d, bb),
|
|
f = q(d, db),
|
|
g = q(d, cb);
|
|
return e || f && c & Ha || g && c & Ia ? this.preventSrc(b) : void 0
|
|
}
|
|
},
|
|
preventSrc: function(a) {
|
|
this.manager.session.prevented = !0, a.preventDefault()
|
|
}
|
|
};
|
|
var eb = 1,
|
|
fb = 2,
|
|
gb = 4,
|
|
hb = 8,
|
|
ib = hb,
|
|
jb = 16,
|
|
kb = 32;
|
|
V.prototype = {
|
|
defaults: {},
|
|
set: function(a) {
|
|
return h(this.options, a), this.manager && this.manager.touchAction.update(), this
|
|
},
|
|
recognizeWith: function(a) {
|
|
if (f(a, "recognizeWith", this)) return this;
|
|
var b = this.simultaneous;
|
|
return a = Y(a, this), b[a.id] || (b[a.id] = a, a.recognizeWith(this)), this
|
|
},
|
|
dropRecognizeWith: function(a) {
|
|
return f(a, "dropRecognizeWith", this) ? this : (a = Y(a, this), delete this.simultaneous[a.id], this)
|
|
},
|
|
requireFailure: function(a) {
|
|
if (f(a, "requireFailure", this)) return this;
|
|
var b = this.requireFail;
|
|
return a = Y(a, this), -1 === s(b, a) && (b.push(a), a.requireFailure(this)), this
|
|
},
|
|
dropRequireFailure: function(a) {
|
|
if (f(a, "dropRequireFailure", this)) return this;
|
|
a = Y(a, this);
|
|
var b = s(this.requireFail, a);
|
|
return b > -1 && this.requireFail.splice(b, 1), this
|
|
},
|
|
hasRequireFailures: function() {
|
|
return this.requireFail.length > 0
|
|
},
|
|
canRecognizeWith: function(a) {
|
|
return !!this.simultaneous[a.id]
|
|
},
|
|
emit: function(a) {
|
|
function b(b) {
|
|
c.manager.emit(c.options.event + (b ? W(d) : ""), a)
|
|
}
|
|
var c = this,
|
|
d = this.state;
|
|
hb > d && b(!0), b(), d >= hb && b(!0)
|
|
},
|
|
tryEmit: function(a) {
|
|
return this.canEmit() ? this.emit(a) : void(this.state = kb)
|
|
},
|
|
canEmit: function() {
|
|
for (var a = 0; a < this.requireFail.length;) {
|
|
if (!(this.requireFail[a].state & (kb | eb))) return !1;
|
|
a++
|
|
}
|
|
return !0
|
|
},
|
|
recognize: function(a) {
|
|
var b = h({}, a);
|
|
return l(this.options.enable, [this, b]) ? (this.state & (ib | jb | kb) && (this.state = eb), this.state = this.process(b), void(this.state & (fb | gb | hb | jb) && this.tryEmit(b))) : (this.reset(), void(this.state = kb))
|
|
},
|
|
process: function() {},
|
|
getTouchAction: function() {},
|
|
reset: function() {}
|
|
}, j(Z, V, {
|
|
defaults: {
|
|
pointers: 1
|
|
},
|
|
attrTest: function(a) {
|
|
var b = this.options.pointers;
|
|
return 0 === b || a.pointers.length === b
|
|
},
|
|
process: function(a) {
|
|
var b = this.state,
|
|
c = a.eventType,
|
|
d = b & (fb | gb),
|
|
e = this.attrTest(a);
|
|
return d && (c & Ba || !e) ? b | jb : d || e ? c & Aa ? b | hb : b & fb ? b | gb : fb : kb
|
|
}
|
|
}), j($, Z, {
|
|
defaults: {
|
|
event: "pan",
|
|
threshold: 10,
|
|
pointers: 1,
|
|
direction: Ja
|
|
},
|
|
getTouchAction: function() {
|
|
var a = this.options.direction,
|
|
b = [];
|
|
return a & Ha && b.push(db), a & Ia && b.push(cb), b
|
|
},
|
|
directionTest: function(a) {
|
|
var b = this.options,
|
|
c = !0,
|
|
d = a.distance,
|
|
e = a.direction,
|
|
f = a.deltaX,
|
|
g = a.deltaY;
|
|
return e & b.direction || (b.direction & Ha ? (e = 0 === f ? Ca : 0 > f ? Da : Ea, c = f != this.pX, d = Math.abs(a.deltaX)) : (e = 0 === g ? Ca : 0 > g ? Fa : Ga, c = g != this.pY, d = Math.abs(a.deltaY))), a.direction = e, c && d > b.threshold && e & b.direction
|
|
},
|
|
attrTest: function(a) {
|
|
return Z.prototype.attrTest.call(this, a) && (this.state & fb || !(this.state & fb) && this.directionTest(a))
|
|
},
|
|
emit: function(a) {
|
|
this.pX = a.deltaX, this.pY = a.deltaY;
|
|
var b = X(a.direction);
|
|
b && this.manager.emit(this.options.event + b, a), this._super.emit.call(this, a)
|
|
}
|
|
}), j(_, Z, {
|
|
defaults: {
|
|
event: "pinch",
|
|
threshold: 0,
|
|
pointers: 2
|
|
},
|
|
getTouchAction: function() {
|
|
return [bb]
|
|
},
|
|
attrTest: function(a) {
|
|
return this._super.attrTest.call(this, a) && (Math.abs(a.scale - 1) > this.options.threshold || this.state & fb)
|
|
},
|
|
emit: function(a) {
|
|
if (this._super.emit.call(this, a), 1 !== a.scale) {
|
|
var b = a.scale < 1 ? "in" : "out";
|
|
this.manager.emit(this.options.event + b, a)
|
|
}
|
|
}
|
|
}), j(aa, V, {
|
|
defaults: {
|
|
event: "press",
|
|
pointers: 1,
|
|
time: 500,
|
|
threshold: 5
|
|
},
|
|
getTouchAction: function() {
|
|
return [_a]
|
|
},
|
|
process: function(a) {
|
|
var b = this.options,
|
|
c = a.pointers.length === b.pointers,
|
|
d = a.distance < b.threshold,
|
|
f = a.deltaTime > b.time;
|
|
if (this._input = a, !d || !c || a.eventType & (Aa | Ba) && !f) this.reset();
|
|
else if (a.eventType & ya) this.reset(), this._timer = e(function() {
|
|
this.state = ib, this.tryEmit()
|
|
}, b.time, this);
|
|
else if (a.eventType & Aa) return ib;
|
|
return kb
|
|
},
|
|
reset: function() {
|
|
clearTimeout(this._timer)
|
|
},
|
|
emit: function(a) {
|
|
this.state === ib && (a && a.eventType & Aa ? this.manager.emit(this.options.event + "up", a) : (this._input.timeStamp = na(), this.manager.emit(this.options.event, this._input)))
|
|
}
|
|
}), j(ba, Z, {
|
|
defaults: {
|
|
event: "rotate",
|
|
threshold: 0,
|
|
pointers: 2
|
|
},
|
|
getTouchAction: function() {
|
|
return [bb]
|
|
},
|
|
attrTest: function(a) {
|
|
return this._super.attrTest.call(this, a) && (Math.abs(a.rotation) > this.options.threshold || this.state & fb)
|
|
}
|
|
}), j(ca, Z, {
|
|
defaults: {
|
|
event: "swipe",
|
|
threshold: 10,
|
|
velocity: .65,
|
|
direction: Ha | Ia,
|
|
pointers: 1
|
|
},
|
|
getTouchAction: function() {
|
|
return $.prototype.getTouchAction.call(this)
|
|
},
|
|
attrTest: function(a) {
|
|
var b, c = this.options.direction;
|
|
return c & (Ha | Ia) ? b = a.velocity : c & Ha ? b = a.velocityX : c & Ia && (b = a.velocityY), this._super.attrTest.call(this, a) && c & a.direction && a.distance > this.options.threshold && ma(b) > this.options.velocity && a.eventType & Aa
|
|
},
|
|
emit: function(a) {
|
|
var b = X(a.direction);
|
|
b && this.manager.emit(this.options.event + b, a), this.manager.emit(this.options.event, a)
|
|
}
|
|
}), j(da, V, {
|
|
defaults: {
|
|
event: "tap",
|
|
pointers: 1,
|
|
taps: 1,
|
|
interval: 300,
|
|
time: 250,
|
|
threshold: 2,
|
|
posThreshold: 10
|
|
},
|
|
getTouchAction: function() {
|
|
return [ab]
|
|
},
|
|
process: function(a) {
|
|
var b = this.options,
|
|
c = a.pointers.length === b.pointers,
|
|
d = a.distance < b.threshold,
|
|
f = a.deltaTime < b.time;
|
|
if (this.reset(), a.eventType & ya && 0 === this.count) return this.failTimeout();
|
|
if (d && f && c) {
|
|
if (a.eventType != Aa) return this.failTimeout();
|
|
var g = this.pTime ? a.timeStamp - this.pTime < b.interval : !0,
|
|
h = !this.pCenter || I(this.pCenter, a.center) < b.posThreshold;
|
|
this.pTime = a.timeStamp, this.pCenter = a.center, h && g ? this.count += 1 : this.count = 1, this._input = a;
|
|
var i = this.count % b.taps;
|
|
if (0 === i) return this.hasRequireFailures() ? (this._timer = e(function() {
|
|
this.state = ib, this.tryEmit()
|
|
}, b.interval, this), fb) : ib
|
|
}
|
|
return kb
|
|
},
|
|
failTimeout: function() {
|
|
return this._timer = e(function() {
|
|
this.state = kb
|
|
}, this.options.interval, this), kb
|
|
},
|
|
reset: function() {
|
|
clearTimeout(this._timer)
|
|
},
|
|
emit: function() {
|
|
this.state == ib && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input))
|
|
}
|
|
}), ea.VERSION = "2.0.4", ea.defaults = {
|
|
domEvents: !1,
|
|
touchAction: $a,
|
|
enable: !0,
|
|
inputTarget: null,
|
|
inputClass: null,
|
|
preset: [
|
|
[ba, {
|
|
enable: !1
|
|
}],
|
|
[_, {
|
|
enable: !1
|
|
},
|
|
["rotate"]
|
|
],
|
|
[ca, {
|
|
direction: Ha
|
|
}],
|
|
[$, {
|
|
direction: Ha
|
|
},
|
|
["swipe"]
|
|
],
|
|
[da],
|
|
[da, {
|
|
event: "doubletap",
|
|
taps: 2
|
|
},
|
|
["tap"]
|
|
],
|
|
[aa]
|
|
],
|
|
cssProps: {
|
|
userSelect: "default",
|
|
touchSelect: "none",
|
|
touchCallout: "none",
|
|
contentZooming: "none",
|
|
userDrag: "none",
|
|
tapHighlightColor: "rgba(0,0,0,0)"
|
|
}
|
|
};
|
|
var lb = 1,
|
|
mb = 2;
|
|
fa.prototype = {
|
|
set: function(a) {
|
|
return h(this.options, a), a.touchAction && this.touchAction.update(), a.inputTarget && (this.input.destroy(), this.input.target = a.inputTarget, this.input.init()), this
|
|
},
|
|
stop: function(a) {
|
|
this.session.stopped = a ? mb : lb
|
|
},
|
|
recognize: function(a) {
|
|
var b = this.session;
|
|
if (!b.stopped) {
|
|
this.touchAction.preventDefaults(a);
|
|
var c, d = this.recognizers,
|
|
e = b.curRecognizer;
|
|
(!e || e && e.state & ib) && (e = b.curRecognizer = null);
|
|
for (var f = 0; f < d.length;) c = d[f], b.stopped === mb || e && c != e && !c.canRecognizeWith(e) ? c.reset() : c.recognize(a), !e && c.state & (fb | gb | hb) && (e = b.curRecognizer = c), f++
|
|
}
|
|
},
|
|
get: function(a) {
|
|
if (a instanceof V) return a;
|
|
for (var b = this.recognizers, c = 0; c < b.length; c++)
|
|
if (b[c].options.event == a) return b[c];
|
|
return null
|
|
},
|
|
add: function(a) {
|
|
if (f(a, "add", this)) return this;
|
|
var b = this.get(a.options.event);
|
|
return b && this.remove(b), this.recognizers.push(a), a.manager = this, this.touchAction.update(), a
|
|
},
|
|
remove: function(a) {
|
|
if (f(a, "remove", this)) return this;
|
|
var b = this.recognizers;
|
|
return a = this.get(a), b.splice(s(b, a), 1), this.touchAction.update(), this
|
|
},
|
|
on: function(a, b) {
|
|
var c = this.handlers;
|
|
return g(r(a), function(a) {
|
|
c[a] = c[a] || [], c[a].push(b)
|
|
}), this
|
|
},
|
|
off: function(a, b) {
|
|
var c = this.handlers;
|
|
return g(r(a), function(a) {
|
|
b ? c[a].splice(s(c[a], b), 1) : delete c[a]
|
|
}), this
|
|
},
|
|
emit: function(a, b) {
|
|
this.options.domEvents && ha(a, b);
|
|
var c = this.handlers[a] && this.handlers[a].slice();
|
|
if (c && c.length) {
|
|
b.type = a, b.preventDefault = function() {
|
|
b.srcEvent.preventDefault()
|
|
};
|
|
for (var d = 0; d < c.length;) c[d](b), d++
|
|
}
|
|
},
|
|
destroy: function() {
|
|
this.element && ga(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null
|
|
}
|
|
}, h(ea, {
|
|
INPUT_START: ya,
|
|
INPUT_MOVE: za,
|
|
INPUT_END: Aa,
|
|
INPUT_CANCEL: Ba,
|
|
STATE_POSSIBLE: eb,
|
|
STATE_BEGAN: fb,
|
|
STATE_CHANGED: gb,
|
|
STATE_ENDED: hb,
|
|
STATE_RECOGNIZED: ib,
|
|
STATE_CANCELLED: jb,
|
|
STATE_FAILED: kb,
|
|
DIRECTION_NONE: Ca,
|
|
DIRECTION_LEFT: Da,
|
|
DIRECTION_RIGHT: Ea,
|
|
DIRECTION_UP: Fa,
|
|
DIRECTION_DOWN: Ga,
|
|
DIRECTION_HORIZONTAL: Ha,
|
|
DIRECTION_VERTICAL: Ia,
|
|
DIRECTION_ALL: Ja,
|
|
Manager: fa,
|
|
Input: y,
|
|
TouchAction: T,
|
|
TouchInput: Q,
|
|
MouseInput: M,
|
|
PointerEventInput: N,
|
|
TouchMouseInput: S,
|
|
SingleTouchInput: O,
|
|
Recognizer: V,
|
|
AttrRecognizer: Z,
|
|
Tap: da,
|
|
Pan: $,
|
|
Swipe: ca,
|
|
Pinch: _,
|
|
Rotate: ba,
|
|
Press: aa,
|
|
on: n,
|
|
off: o,
|
|
each: g,
|
|
merge: i,
|
|
extend: h,
|
|
inherit: j,
|
|
bindFn: k,
|
|
prefixed: v
|
|
}), typeof define == ka && define.amd ? define(function() {
|
|
return ea
|
|
}) : "undefined" != typeof module && module.exports ? module.exports = ea : a[c] = ea
|
|
}(window, document, "Hammer"),
|
|
function(a) {
|
|
"function" == typeof define && define.amd ? define(["jquery", "hammerjs"], a) : "object" == typeof exports ? a(require("jquery"), require("hammerjs")) : a(jQuery, Hammer)
|
|
}(function(a, b) {
|
|
function c(c, d) {
|
|
var e = a(c);
|
|
e.data("hammer") || e.data("hammer", new b(e[0], d))
|
|
}
|
|
a.fn.hammer = function(a) {
|
|
return this.each(function() {
|
|
c(this, a)
|
|
})
|
|
}, b.Manager.prototype.emit = function(b) {
|
|
return function(c, d) {
|
|
b.call(this, c, d), a(this.element).trigger({
|
|
type: c,
|
|
gesture: d
|
|
})
|
|
}
|
|
}(b.Manager.prototype.emit)
|
|
}),
|
|
function(a) {
|
|
a.fn.collapsible = function(b) {
|
|
var c = {
|
|
accordion: void 0
|
|
};
|
|
return b = a.extend(c, b), this.each(function() {
|
|
function c(a) {
|
|
f = e.find(".collapsible-header"), a.parent().toggleClass("active"), a.parent().hasClass("active") ? a.siblings(".collapsible-body").stop(!0, !1).slideDown({
|
|
duration: 350,
|
|
easing: "easeOutQuart",
|
|
queue: !1
|
|
}) : a.siblings(".collapsible-body").stop(!0, !1).slideUp({
|
|
duration: 350,
|
|
easing: "easeOutQuart",
|
|
queue: !1
|
|
}), f.not(a).parent().removeClass("active"), f.not(a).parent().children(".collapsible-body").stop(!0, !1).slideUp({
|
|
duration: 350,
|
|
easing: "easeOutQuart",
|
|
queue: !1
|
|
})
|
|
}
|
|
|
|
function d(a) {
|
|
a.parent().toggleClass("active"), a.parent().hasClass("active") ? a.siblings(".collapsible-body").stop(!0, !1).slideDown({
|
|
duration: 350,
|
|
easing: "easeOutQuart",
|
|
queue: !1
|
|
}) : a.siblings(".collapsible-body").stop(!0, !1).slideUp({
|
|
duration: 350,
|
|
easing: "easeOutQuart",
|
|
queue: !1
|
|
})
|
|
}
|
|
var e = a(this),
|
|
f = a(this).find(".collapsible-header"),
|
|
g = e.data("collapsible");
|
|
e.off("click.collapse", ".collapsible-header"), f.off("click.collapse"), b.accordion || "accordion" == g || void 0 == g ? (e.on("click.collapse", ".collapsible-header", function(b) {
|
|
c(a(b.currentTarget))
|
|
}), c(f.filter(".active").first())) : f.each(function() {
|
|
a(this).on("click.collapse", function(b) {
|
|
d(a(b.currentTarget))
|
|
}), a(this).hasClass("active") && d(a(this))
|
|
})
|
|
})
|
|
}, a(document).ready(function() {
|
|
a(".collapsible").collapsible()
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a.fn.scrollTo = function(b) {
|
|
return a(this).scrollTop(a(this).scrollTop() - a(this).offset().top + a(b).offset().top), this
|
|
}, a.fn.dropdown = function(b) {
|
|
var c = {
|
|
inDuration: 300,
|
|
outDuration: 225,
|
|
constrain_width: !0,
|
|
hover: !0,
|
|
alignment: "left",
|
|
gutter: 0,
|
|
belowOrigin: !1
|
|
};
|
|
b = a.extend(c, b), this.each(function() {
|
|
function c() {
|
|
void 0 != g.data("inDuration") && (b.inDuration = g.data("inDuration")), void 0 != g.data("outDuration") && (b.outDuration = g.data("outDuration")), void 0 != g.data("constrainwidth") && (b.constrain_width = g.data("constrainwidth")), void 0 != g.data("hover") && (b.hover = g.data("hover")), void 0 != g.data("alignment") && (b.alignment = g.data("alignment")), void 0 != g.data("gutter") && (b.gutter = g.data("gutter")), void 0 != g.data("beloworigin") && (b.belowOrigin = g.data("beloworigin"))
|
|
}
|
|
|
|
function d() {
|
|
c(), 1 == b.constrain_width && h.css("width", g.outerWidth());
|
|
var d = 0;
|
|
|
|
1 == b.belowOrigin && (d = g.height());
|
|
var f = 0,
|
|
j = b.gutter;
|
|
"right" == b.alignment && (f = g.innerWidth() - h.innerWidth(), j = -1 * j), h.css(e(g[0]) ? {
|
|
display: "block",
|
|
position: "fixed",
|
|
height: 0,
|
|
top: g.offset().top - a(window).scrollTop() + d,
|
|
left: g.offset().left + f + j
|
|
} : {
|
|
display: "block",
|
|
top: g.offset().top + d,
|
|
left: g.offset().left + f + j,
|
|
height: 0
|
|
}), h.velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: b.inDuration,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}).velocity({
|
|
height: i
|
|
}, {
|
|
duration: b.inDuration,
|
|
queue: !1,
|
|
easing: "easeOutCubic",
|
|
complete: function() {
|
|
h.css("overflow-y", "auto")
|
|
}
|
|
})
|
|
}
|
|
|
|
function e(b) {
|
|
var c = a(b),
|
|
d = c.add(c.parents()),
|
|
e = !1;
|
|
return d.each(function() {
|
|
return "fixed" === a(this).css("position") ? (e = !0, !1) : void 0
|
|
}), e
|
|
}
|
|
|
|
function f() {
|
|
h.velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: b.outDuration,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
h.css({
|
|
display: "none",
|
|
"overflow-y": ""
|
|
})
|
|
}
|
|
})
|
|
}
|
|
var g = a(this),
|
|
h = a("#" + g.attr("data-activates"));
|
|
c(), h.parent().is(a("body")) || (h.detach(), a("body").append(h));
|
|
var i = h.height();
|
|
b.hover ? (g.on("mouseover", function() {
|
|
d()
|
|
}), h.on("mouseleave", function() {
|
|
f()
|
|
})) : (g.unbind("click." + g.attr("id")), g.bind("click." + g.attr("id"), function(b) {
|
|
g[0] == b.currentTarget && (b.preventDefault(), d()), a(document).bind("click." + h.attr("id"), function(b) {
|
|
!h.is(b.target) && !g.is(b.target) && !g.find(b.target).length > 0 && (f(), a(document).unbind("click." + h.attr("id")))
|
|
})
|
|
})), g.on("open", d), g.on("close", f)
|
|
})
|
|
}
|
|
}(jQuery),
|
|
function(a) {
|
|
a.fn.extend({
|
|
openModal: function(b) {
|
|
var c = this,
|
|
d = a('<div id="lean-overlay"></div>');
|
|
a("body").append(d);
|
|
var e = {
|
|
opacity: .5,
|
|
in_duration: 300,
|
|
out_duration: 200,
|
|
ready: void 0,
|
|
complete: void 0,
|
|
dismissible: !0
|
|
};
|
|
b = a.extend(e, b), b.dismissible && (a("#lean-overlay").click(function() {
|
|
a(c).closeModal(b)
|
|
}), a(document).keyup(function(d) {
|
|
27 === d.keyCode && (a(c).closeModal(b), a(this).off())
|
|
})), a(c).find(".modal-close").click(function(d) {
|
|
d.preventDefault(), a(c).closeModal(b)
|
|
}), a("#lean-overlay").css({
|
|
display: "block",
|
|
opacity: 0
|
|
}), a(c).css({
|
|
display: "block",
|
|
top: "4%",
|
|
opacity: 0
|
|
}), a("#lean-overlay").velocity({
|
|
opacity: b.opacity
|
|
}, {
|
|
duration: b.in_duration,
|
|
queue: !1,
|
|
ease: "easeOutCubic"
|
|
}), a(c).velocity({
|
|
top: "10%",
|
|
opacity: 1
|
|
}, {
|
|
duration: b.in_duration,
|
|
queue: !1,
|
|
ease: "easeOutCubic",
|
|
complete: function() {
|
|
"function" == typeof b.ready && b.ready()
|
|
}
|
|
})
|
|
}
|
|
}), a.fn.extend({
|
|
closeModal: function(b) {
|
|
var c = {
|
|
out_duration: 200,
|
|
complete: void 0
|
|
},
|
|
b = a.extend(c, b);
|
|
a(".modal-close").off(), a("#lean-overlay").velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: b.out_duration,
|
|
queue: !1,
|
|
ease: "easeOutQuart"
|
|
}), a(this).fadeOut(b.out_duration, function() {
|
|
a(this).css({
|
|
top: 0
|
|
}), a("#lean-overlay").css({
|
|
display: "none"
|
|
}), "function" == typeof b.complete && b.complete(), a("#lean-overlay").remove()
|
|
})
|
|
}
|
|
}), a.fn.extend({
|
|
leanModal: function(b) {
|
|
return this.each(function() {
|
|
a(this).click(function(c) {
|
|
var d = a(this).attr("href");
|
|
a(d).openModal(b), c.preventDefault()
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a.fn.materialbox = function() {
|
|
return this.each(function() {
|
|
function b() {
|
|
d = !1;
|
|
var b = g.parent(".material-placeholder"),
|
|
e = (window.innerWidth, window.innerHeight, g.data("width")),
|
|
h = g.data("height");
|
|
a("#materialbox-overlay").fadeOut(f, function() {
|
|
c = !1, a(this).remove()
|
|
}), g.velocity({
|
|
width: e,
|
|
height: h,
|
|
left: 0,
|
|
top: 0
|
|
}, {
|
|
duration: f,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a(".materialbox-caption").velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: f + 200,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
b.css({
|
|
height: "",
|
|
width: "",
|
|
position: "",
|
|
top: "",
|
|
left: ""
|
|
}), g.css({
|
|
height: "",
|
|
top: "",
|
|
left: "",
|
|
width: "",
|
|
"max-width": "",
|
|
position: "",
|
|
"z-index": ""
|
|
}), g.removeClass("active"), d = !0, a(this).remove()
|
|
}
|
|
})
|
|
}
|
|
if (!a(this).hasClass("intialized")) {
|
|
a(this).addClass("intialized");
|
|
var c = !1,
|
|
d = !0,
|
|
e = 275,
|
|
f = 200,
|
|
g = a(this),
|
|
h = a("<div></div>").addClass("material-placeholder");
|
|
g.wrap(h), g.on("click", function() {
|
|
var f = g.parent(".material-placeholder"),
|
|
h = window.innerWidth,
|
|
i = window.innerHeight,
|
|
j = g.width(),
|
|
k = g.height();
|
|
if (d === !1) return !1;
|
|
if (c && d === !0) return b(), !1;
|
|
d = !1, g.addClass("active"), c = !0, f.css({
|
|
width: f[0].getBoundingClientRect().width,
|
|
height: f[0].getBoundingClientRect().height,
|
|
position: "relative",
|
|
top: 0,
|
|
left: 0
|
|
}), g.css({
|
|
position: "absolute",
|
|
"z-index": 1e3
|
|
}).data("width", j).data("height", k);
|
|
var l = a('<div id="materialbox-overlay"></div>').css({
|
|
opacity: 0
|
|
}).click(function() {
|
|
d === !0 && b()
|
|
});
|
|
if (a("body").append(l), l.velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: e,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), "" !== g.data("caption")) {
|
|
var m = a('<div class="materialbox-caption"></div>');
|
|
m.text(g.data("caption")), a("body").append(m), m.css({
|
|
display: "inline"
|
|
}), m.velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: e,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})
|
|
}
|
|
var n = 0,
|
|
o = j / h,
|
|
p = k / i,
|
|
q = 0,
|
|
r = 0;
|
|
o > p ? (n = k / j, q = .9 * h, r = .9 * h * n) : (n = j / k, q = .9 * i * n, r = .9 * i), g.hasClass("responsive-img") ? g.velocity({
|
|
"max-width": q,
|
|
width: j
|
|
}, {
|
|
duration: 0,
|
|
queue: !1,
|
|
complete: function() {
|
|
g.css({
|
|
left: 0,
|
|
top: 0
|
|
}).velocity({
|
|
height: r,
|
|
width: q,
|
|
left: a(document).scrollLeft() + h / 2 - g.parent(".material-placeholder").offset().left - q / 2,
|
|
top: a(document).scrollTop() + i / 2 - g.parent(".material-placeholder").offset().top - r / 2
|
|
}, {
|
|
duration: e,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
d = !0
|
|
}
|
|
})
|
|
}
|
|
}) : g.css("left", 0).css("top", 0).velocity({
|
|
height: r,
|
|
width: q,
|
|
left: a(document).scrollLeft() + h / 2 - g.parent(".material-placeholder").offset().left - q / 2,
|
|
top: a(document).scrollTop() + i / 2 - g.parent(".material-placeholder").offset().top - r / 2
|
|
}, {
|
|
duration: e,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
d = !0
|
|
}
|
|
})
|
|
}), a(window).scroll(function() {
|
|
c && b()
|
|
}), a(document).keyup(function(a) {
|
|
27 === a.keyCode && d === !0 && c && b()
|
|
})
|
|
}
|
|
})
|
|
}, a(document).ready(function() {
|
|
a(".materialboxed").materialbox()
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a.fn.parallax = function() {
|
|
var b = a(window).width();
|
|
return this.each(function() {
|
|
function c(c) {
|
|
var e;
|
|
e = 992 > b ? d.height() > 0 ? d.height() : d.children("img").height() : d.height() > 0 ? d.height() : 500;
|
|
var f = d.children("img").height(),
|
|
g = f - e,
|
|
h = d.offset().top + e,
|
|
i = d.offset().top,
|
|
j = a(window).scrollTop(),
|
|
k = window.innerHeight,
|
|
l = j + k,
|
|
m = (l - i) / (e + k),
|
|
n = -1 * g * m;
|
|
h > j && j + k > i && d.children("img").first().css("bottom", n + "px"), c && d.children("img").first().css("display", "block")
|
|
}
|
|
var d = a(this);
|
|
d.addClass("parallax"), d.find("img").each(function() {
|
|
a(this).css("background-image", "url(" + a(this).attr("src") + ")"), a(this).attr("src", "data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==")
|
|
}), d.children("img").one("load", function() {
|
|
c(!0)
|
|
}).each(function() {
|
|
this.complete && a(this).load()
|
|
}), a(window).scroll(function() {
|
|
b = a(window).width(), c(!1)
|
|
}), a(window).resize(function() {
|
|
b = a(window).width(), c(!1)
|
|
})
|
|
})
|
|
}
|
|
}(jQuery),
|
|
function(a) {
|
|
var b = {
|
|
init: function() {
|
|
return this.each(function() {
|
|
var b = a(this);
|
|
a(window).width(), b.width("100%");
|
|
var c = a(this).children("li").length;
|
|
b.children("li").each(function() {
|
|
a(this).width(100 / c + "%")
|
|
});
|
|
var d, e, f = b.find("li.tab a"),
|
|
g = b.width(),
|
|
h = b.find("li").first().outerWidth(),
|
|
i = 0;
|
|
d = a(f.filter('[href="' + location.hash + '"]')), 0 === d.length && (d = a(this).find("li.tab a.active").first()), 0 === d.length && (d = a(this).find("li.tab a").first()), d.addClass("active"), i = f.index(d), 0 > i && (i = 0), e = a(d[0].hash), b.append('<div class="indicator"></div>');
|
|
var j = b.find(".indicator");
|
|
b.is(":visible") && (j.css({
|
|
right: g - (i + 1) * h
|
|
}), j.css({
|
|
left: i * h
|
|
})), a(window).resize(function() {
|
|
g = b.width(), h = b.find("li").first().outerWidth(), 0 > i && (i = 0), 0 !== h && 0 !== g && (j.css({
|
|
right: g - (i + 1) * h
|
|
}), j.css({
|
|
left: i * h
|
|
}))
|
|
}), f.not(d).each(function() {
|
|
a(this.hash).hide()
|
|
}), b.on("click", "a", function(c) {
|
|
g = b.width(), h = b.find("li").first().outerWidth(), d.removeClass("active"), e.hide(), d = a(this), e = a(this.hash), f = b.find("li.tab a"), d.addClass("active");
|
|
var k = i;
|
|
i = f.index(a(this)), 0 > i && (i = 0), e.show(), i - k >= 0 ? (j.velocity({
|
|
right: g - (i + 1) * h
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), j.velocity({
|
|
left: i * h
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
delay: 90
|
|
})) : (j.velocity({
|
|
left: i * h
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), j.velocity({
|
|
right: g - (i + 1) * h
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
delay: 90
|
|
})), c.preventDefault()
|
|
})
|
|
})
|
|
},
|
|
select_tab: function(a) {
|
|
this.find('a[href="#' + a + '"]').trigger("click")
|
|
}
|
|
};
|
|
a.fn.tabs = function(c) {
|
|
return b[c] ? b[c].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof c && c ? void a.error("Method " + c + " does not exist on jQuery.tooltip") : b.init.apply(this, arguments)
|
|
}, a(document).ready(function() {
|
|
a("ul.tabs").tabs()
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a.fn.tooltip = function(b) {
|
|
var c = null,
|
|
d = !1,
|
|
e = null,
|
|
f = 5,
|
|
g = {
|
|
delay: 350
|
|
};
|
|
return b = a.extend(g, b), a(".material-tooltip").remove(), this.each(function() {
|
|
var g = a(this),
|
|
h = a("<span></span>").text(g.attr("data-tooltip")),
|
|
i = a("<div></div>");
|
|
i.addClass("material-tooltip").append(h), i.appendTo(a("body"));
|
|
var j = a("<div></div>").addClass("backdrop");
|
|
j.appendTo(i), j.css({
|
|
top: 0,
|
|
left: 0
|
|
}), a(this).off("mouseenter mouseleave"), a(this).on({
|
|
mouseenter: function() {
|
|
var a = g.data("delay");
|
|
a = void 0 == a || "" == a ? b.delay : a, c = 0, e = setInterval(function() {
|
|
if (c += 10, c >= a && 0 == d) {
|
|
d = !0, i.css({
|
|
display: "block",
|
|
left: "0px",
|
|
top: "0px"
|
|
}), i.children("span").text(g.attr("data-tooltip"));
|
|
var b = g.outerWidth(),
|
|
e = g.outerHeight(),
|
|
h = g.attr("data-position"),
|
|
k = i.outerHeight(),
|
|
l = i.outerWidth(),
|
|
m = "0px",
|
|
n = "0px",
|
|
o = 8;
|
|
"top" === h ? (i.css({
|
|
top: g.offset().top - k - f,
|
|
left: g.offset().left + b / 2 - l / 2
|
|
}), m = "-10px", j.css({
|
|
borderRadius: "14px 14px 0 0",
|
|
transformOrigin: "50% 90%",
|
|
marginTop: k,
|
|
marginLeft: l / 2 - j.width() / 2
|
|
})) : "left" === h ? (i.css({
|
|
top: g.offset().top + e / 2 - k / 2,
|
|
left: g.offset().left - l - f
|
|
}), n = "-10px", j.css({
|
|
width: "14px",
|
|
height: "14px",
|
|
borderRadius: "14px 0 0 14px",
|
|
transformOrigin: "95% 50%",
|
|
marginTop: k / 2,
|
|
marginLeft: l
|
|
})) : "right" === h ? (i.css({
|
|
top: g.offset().top + e / 2 - k / 2,
|
|
left: g.offset().left + b + f
|
|
}), n = "+10px", j.css({
|
|
width: "14px",
|
|
height: "14px",
|
|
borderRadius: "0 14px 14px 0",
|
|
transformOrigin: "5% 50%",
|
|
marginTop: k / 2,
|
|
marginLeft: "0px"
|
|
})) : (i.css({
|
|
top: g.offset().top + g.outerHeight() + f,
|
|
left: g.offset().left + b / 2 - l / 2
|
|
}), m = "+10px", j.css({
|
|
marginLeft: l / 2 - j.width() / 2
|
|
})), o = l / 8, 8 > o && (o = 8), ("right" === h || "left" === h) && (o = l / 10, 6 > o && (o = 6)), i.velocity({
|
|
opacity: 1,
|
|
marginTop: m,
|
|
marginLeft: n
|
|
}, {
|
|
duration: 350,
|
|
queue: !1
|
|
}), j.css({
|
|
display: "block"
|
|
}).velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: 55,
|
|
delay: 0,
|
|
queue: !1
|
|
}).velocity({
|
|
scale: o
|
|
}, {
|
|
duration: 300,
|
|
delay: 0,
|
|
queue: !1,
|
|
easing: "easeInOutQuad"
|
|
})
|
|
}
|
|
}, 10)
|
|
},
|
|
mouseleave: function() {
|
|
clearInterval(e), c = 0, i.velocity({
|
|
opacity: 0,
|
|
marginTop: 0,
|
|
marginLeft: 0
|
|
}, {
|
|
duration: 225,
|
|
queue: !1,
|
|
delay: 275
|
|
}), j.velocity({
|
|
opacity: 0,
|
|
scale: 1
|
|
}, {
|
|
duration: 225,
|
|
delay: 275,
|
|
queue: !1,
|
|
complete: function() {
|
|
j.css("display", "none"), i.css("display", "none"), d = !1
|
|
}
|
|
})
|
|
}
|
|
})
|
|
})
|
|
}, a(document).ready(function() {
|
|
a(".tooltipped").tooltip()
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
"use strict";
|
|
|
|
function b(a) {
|
|
return null !== a && a === a.window
|
|
}
|
|
|
|
function c(a) {
|
|
return b(a) ? a : 9 === a.nodeType && a.defaultView
|
|
}
|
|
|
|
function d(a) {
|
|
var b, d, e = {
|
|
top: 0,
|
|
left: 0
|
|
},
|
|
f = a && a.ownerDocument;
|
|
return b = f.documentElement, "undefined" != typeof a.getBoundingClientRect && (e = a.getBoundingClientRect()), d = c(f), {
|
|
top: e.top + d.pageYOffset - b.clientTop,
|
|
left: e.left + d.pageXOffset - b.clientLeft
|
|
}
|
|
}
|
|
|
|
function e(a) {
|
|
var b = "";
|
|
for (var c in a) a.hasOwnProperty(c) && (b += c + ":" + a[c] + ";");
|
|
return b
|
|
}
|
|
|
|
function f(a) {
|
|
if (k.allowEvent(a) === !1) return null;
|
|
for (var b = null, c = a.target || a.srcElement; null !== c.parentElement;) {
|
|
if (-1 !== c.className.indexOf("waves-effect")) {
|
|
b = c;
|
|
break
|
|
}
|
|
c = c.parentElement
|
|
}
|
|
return b
|
|
}
|
|
|
|
function g(b) {
|
|
var c = f(b);
|
|
null !== c && (j.show(b, c), "ontouchstart" in a && (c.addEventListener("touchend", j.hide, !1), c.addEventListener("touchcancel", j.hide, !1)), c.addEventListener("mouseup", j.hide, !1), c.addEventListener("mouseleave", j.hide, !1))
|
|
}
|
|
var h = h || {},
|
|
i = document.querySelectorAll.bind(document),
|
|
j = {
|
|
duration: 750,
|
|
show: function(a, b) {
|
|
if (2 === a.button) return !1;
|
|
var c = b || this,
|
|
f = document.createElement("div");
|
|
f.className = "waves-ripple", c.appendChild(f);
|
|
var g = d(c),
|
|
h = a.pageY - g.top,
|
|
i = a.pageX - g.left,
|
|
k = "scale(" + c.clientWidth / 100 * 10 + ")";
|
|
"touches" in a && (h = a.touches[0].pageY - g.top, i = a.touches[0].pageX - g.left), f.setAttribute("data-hold", Date.now()), f.setAttribute("data-scale", k), f.setAttribute("data-x", i), f.setAttribute("data-y", h);
|
|
var l = {
|
|
top: h + "px",
|
|
left: i + "px"
|
|
};
|
|
f.className = f.className + " waves-notransition", f.setAttribute("style", e(l)), f.className = f.className.replace("waves-notransition", ""), l["-webkit-transform"] = k, l["-moz-transform"] = k, l["-ms-transform"] = k, l["-o-transform"] = k, l.transform = k, l.opacity = "1", l["-webkit-transition-duration"] = j.duration + "ms", l["-moz-transition-duration"] = j.duration + "ms", l["-o-transition-duration"] = j.duration + "ms", l["transition-duration"] = j.duration + "ms", l["-webkit-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", l["-moz-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", l["-o-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", l["transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", f.setAttribute("style", e(l))
|
|
},
|
|
hide: function(a) {
|
|
k.touchup(a);
|
|
var b = this,
|
|
c = (1.4 * b.clientWidth, null),
|
|
d = b.getElementsByClassName("waves-ripple");
|
|
if (!(d.length > 0)) return !1;
|
|
c = d[d.length - 1];
|
|
var f = c.getAttribute("data-x"),
|
|
g = c.getAttribute("data-y"),
|
|
h = c.getAttribute("data-scale"),
|
|
i = Date.now() - Number(c.getAttribute("data-hold")),
|
|
l = 350 - i;
|
|
0 > l && (l = 0), setTimeout(function() {
|
|
var a = {
|
|
top: g + "px",
|
|
left: f + "px",
|
|
opacity: "0",
|
|
"-webkit-transition-duration": j.duration + "ms",
|
|
"-moz-transition-duration": j.duration + "ms",
|
|
"-o-transition-duration": j.duration + "ms",
|
|
"transition-duration": j.duration + "ms",
|
|
"-webkit-transform": h,
|
|
"-moz-transform": h,
|
|
"-ms-transform": h,
|
|
"-o-transform": h,
|
|
transform: h
|
|
};
|
|
c.setAttribute("style", e(a)), setTimeout(function() {
|
|
try {
|
|
b.removeChild(c)
|
|
} catch (a) {
|
|
return !1
|
|
}
|
|
}, j.duration)
|
|
}, l)
|
|
},
|
|
wrapInput: function(a) {
|
|
for (var b = 0; b < a.length; b++) {
|
|
var c = a[b];
|
|
if ("input" === c.tagName.toLowerCase()) {
|
|
var d = c.parentNode;
|
|
if ("i" === d.tagName.toLowerCase() && -1 !== d.className.indexOf("waves-effect")) continue;
|
|
var e = document.createElement("i");
|
|
e.className = c.className + " waves-input-wrapper";
|
|
var f = c.getAttribute("style");
|
|
f || (f = ""), e.setAttribute("style", f), c.className = "waves-button-input", c.removeAttribute("style"), d.replaceChild(e, c), e.appendChild(c)
|
|
}
|
|
}
|
|
}
|
|
},
|
|
k = {
|
|
touches: 0,
|
|
allowEvent: function(a) {
|
|
var b = !0;
|
|
return "touchstart" === a.type ? k.touches += 1 : "touchend" === a.type || "touchcancel" === a.type ? setTimeout(function() {
|
|
k.touches > 0 && (k.touches -= 1)
|
|
}, 500) : "mousedown" === a.type && k.touches > 0 && (b = !1), b
|
|
},
|
|
touchup: function(a) {
|
|
k.allowEvent(a)
|
|
}
|
|
};
|
|
h.displayEffect = function(b) {
|
|
b = b || {}, "duration" in b && (j.duration = b.duration), j.wrapInput(i(".waves-effect")), "ontouchstart" in a && document.body.addEventListener("touchstart", g, !1), document.body.addEventListener("mousedown", g, !1)
|
|
}, h.attach = function(b) {
|
|
"input" === b.tagName.toLowerCase() && (j.wrapInput([b]), b = b.parentElement), "ontouchstart" in a && b.addEventListener("touchstart", g, !1), b.addEventListener("mousedown", g, !1)
|
|
}, a.Waves = h, document.addEventListener("DOMContentLoaded", function() {
|
|
h.displayEffect()
|
|
}, !1)
|
|
}(window),
|
|
function(a) {
|
|
var b = {
|
|
init: function(b) {
|
|
var c = {
|
|
menuWidth: 240,
|
|
edge: "left",
|
|
closeOnClick: !1
|
|
};
|
|
b = a.extend(c, b), a(this).each(function() {
|
|
function c() {
|
|
f = !1, g = !1, a("#sidenav-overlay").velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: 200,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
a(this).remove()
|
|
}
|
|
}), "left" === b.edge ? (a(".drag-target").css({
|
|
width: "",
|
|
right: "",
|
|
left: "0"
|
|
}), e.velocity({
|
|
left: -1 * (b.menuWidth + 10)
|
|
}, {
|
|
duration: 200,
|
|
queue: !1,
|
|
easing: "easeOutCubic"
|
|
})) : (a(".drag-target").css({
|
|
width: "",
|
|
right: "0",
|
|
left: ""
|
|
}), e.velocity({
|
|
right: -1 * (b.menuWidth + 10)
|
|
}, {
|
|
duration: 200,
|
|
queue: !1,
|
|
easing: "easeOutCubic"
|
|
}))
|
|
}
|
|
var d = a(this),
|
|
e = a("#" + d.attr("data-activates"));
|
|
240 != b.menuWidth && (e.css("width", b.menuWidth), e.hasClass("fixed") || e.css("left", -1 * (b.menuWidth + 10))), "left" != b.edge && e.addClass("right-aligned"), a("body").append(a('<div class="drag-target"></div>')), a(".drag-target").css("left" === b.edge ? {
|
|
left: 0
|
|
} : {
|
|
right: 0
|
|
}), e.hasClass("fixed") && a(window).resize(function() {
|
|
a(window).width() > 1200 && e.attr("style") && (e.removeAttr("style"), e.css("width", b.menuWidth)), 0 != a("#sidenav-overlay").css("opacity") && g && a("#sidenav-overlay").trigger("click")
|
|
}), 1 == b.closeOnClick && e.on("click.itemclick", "a:not(.collapsible-header)", function() {
|
|
c()
|
|
});
|
|
var f = !1,
|
|
g = !1;
|
|
a(".drag-target").hammer({
|
|
prevent_default: !1
|
|
}).bind("tap", function() {
|
|
a("#sidenav-overlay").trigger("click")
|
|
}).bind("pan", function(d) {
|
|
if ("touch" === d.gesture.pointerType) {
|
|
var f = (d.gesture.direction, d.gesture.center.x);
|
|
if (d.gesture.center.y, d.gesture.velocityX, !a("#sidenav-overlay").length) {
|
|
var h = a('<div id="sidenav-overlay"></div>');
|
|
h.css("opacity", 0).click(function() {
|
|
c()
|
|
}), a("body").append(h)
|
|
}
|
|
if ("left" === b.edge ? f > b.menuWidth ? f = b.menuWidth : 0 > f && (f = 0) : f < a(window).width() - b.menuWidth && (f = a(window).width() - b.menuWidth), "left" === b.edge ? (f < b.menuWidth / 2 ? g = !1 : f >= b.menuWidth / 2 && (g = !0), e.css("left", f - b.menuWidth)) : (f < a(window).width() - b.menuWidth / 2 ? g = !0 : f >= a(window).width() - b.menuWidth / 2 && (g = !1), e.css("right", -1 * (f - b.menuWidth / 2))), "left" === b.edge) {
|
|
var i = f / b.menuWidth;
|
|
a("#sidenav-overlay").velocity({
|
|
opacity: i
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})
|
|
} else {
|
|
var i = Math.abs((f - a(window).width()) / b.menuWidth);
|
|
a("#sidenav-overlay").velocity({
|
|
opacity: i
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})
|
|
}
|
|
}
|
|
}).bind("panend", function(c) {
|
|
if ("touch" === c.gesture.pointerType) {
|
|
var d = c.gesture.velocityX;
|
|
f = !1, "left" === b.edge ? g && .3 >= d || -.5 > d ? (e.velocity({
|
|
left: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a("#sidenav-overlay").velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a(".drag-target").css({
|
|
width: "50%",
|
|
right: 0,
|
|
left: ""
|
|
})) : (!g || d > .3) && (e.velocity({
|
|
left: -240
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a("#sidenav-overlay").velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
a(this).remove()
|
|
}
|
|
}), a(".drag-target").css({
|
|
width: "10%",
|
|
right: "",
|
|
left: 0
|
|
})) : g && d >= -.3 || d > .5 ? (e.velocity({
|
|
right: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a("#sidenav-overlay").velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a(".drag-target").css({
|
|
width: "50%",
|
|
right: "",
|
|
left: 0
|
|
})) : (!g || -.3 > d) && (e.velocity({
|
|
right: -240
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a("#sidenav-overlay").velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
a(this).remove()
|
|
}
|
|
}), a(".drag-target").css({
|
|
width: "10%",
|
|
right: 0,
|
|
left: ""
|
|
}))
|
|
}
|
|
}), d.click(function() {
|
|
if (1 == g) g = !1, f = !1, c();
|
|
else {
|
|
"left" === b.edge ? (a(".drag-target").css({
|
|
width: "50%",
|
|
right: 0,
|
|
left: ""
|
|
}), e.velocity({
|
|
left: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})) : (a(".drag-target").css({
|
|
width: "50%",
|
|
right: "",
|
|
left: 0
|
|
}), e.velocity({
|
|
right: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), e.css("left", ""));
|
|
var d = a('<div id="sidenav-overlay"></div>');
|
|
d.css("opacity", 0).click(function() {
|
|
g = !1, f = !1, c(), d.animate({
|
|
opacity: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
a(this).remove()
|
|
}
|
|
})
|
|
}), a("body").append(d), d.animate({
|
|
opacity: 1
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
g = !0, f = !1
|
|
}
|
|
})
|
|
}
|
|
return !1
|
|
})
|
|
})
|
|
},
|
|
show: function() {
|
|
this.trigger("click")
|
|
},
|
|
hide: function() {
|
|
a("#sidenav-overlay").trigger("click")
|
|
}
|
|
};
|
|
a.fn.sideNav = function(c) {
|
|
return b[c] ? b[c].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof c && c ? void a.error("Method " + c + " does not exist on jQuery.tooltip") : b.init.apply(this, arguments)
|
|
}
|
|
}(jQuery),
|
|
function(a) {
|
|
function b(b, c, d, e) {
|
|
var f = a();
|
|
return a.each(g, function(a, g) {
|
|
if (g.height() > 0) {
|
|
var h = g.offset().top,
|
|
i = g.offset().left,
|
|
j = i + g.width(),
|
|
k = h + g.height(),
|
|
l = !(i > c || e > j || h > d || b > k);
|
|
l && f.push(g)
|
|
}
|
|
}), f
|
|
}
|
|
|
|
function c() {
|
|
++j;
|
|
var c = f.scrollTop(),
|
|
d = f.scrollLeft(),
|
|
e = d + f.width(),
|
|
g = c + f.height(),
|
|
i = b(c + k.top + 200, e + k.right, g + k.bottom, d + k.left);
|
|
a.each(i, function(a, b) {
|
|
var c = b.data("scrollSpy:ticks");
|
|
"number" != typeof c && b.triggerHandler("scrollSpy:enter"), b.data("scrollSpy:ticks", j)
|
|
}), a.each(h, function(a, b) {
|
|
var c = b.data("scrollSpy:ticks");
|
|
"number" == typeof c && c !== j && (b.triggerHandler("scrollSpy:exit"), b.data("scrollSpy:ticks", null))
|
|
}), h = i
|
|
}
|
|
|
|
function d() {
|
|
f.trigger("scrollSpy:winSize")
|
|
}
|
|
|
|
function e(a, b, c) {
|
|
var d, e, f, g = null,
|
|
h = 0;
|
|
c || (c = {});
|
|
var i = function() {
|
|
h = c.leading === !1 ? 0 : l(), g = null, f = a.apply(d, e), d = e = null
|
|
};
|
|
return function() {
|
|
var j = l();
|
|
h || c.leading !== !1 || (h = j);
|
|
var k = b - (j - h);
|
|
return d = this, e = arguments, 0 >= k ? (clearTimeout(g), g = null, h = j, f = a.apply(d, e), d = e = null) : g || c.trailing === !1 || (g = setTimeout(i, k)), f
|
|
}
|
|
}
|
|
var f = a(window),
|
|
g = [],
|
|
h = [],
|
|
i = !1,
|
|
j = 0,
|
|
k = {
|
|
top: 0,
|
|
right: 0,
|
|
bottom: 0,
|
|
left: 0
|
|
},
|
|
l = Date.now || function() {
|
|
return (new Date).getTime()
|
|
};
|
|
a.scrollSpy = function(b, d) {
|
|
var h = [];
|
|
b = a(b), b.each(function(b, c) {
|
|
g.push(a(c)), a(c).data("scrollSpy:id", b), a("a[href=#" + a(c).attr("id") + "]").click(function(b) {
|
|
b.preventDefault();
|
|
var c = a(this.hash).offset().top + 1;
|
|
a(".tabs-wrapper").length ? a("html, body").animate({
|
|
scrollTop: c - 60
|
|
}, {
|
|
duration: 400,
|
|
easing: "easeOutCubic"
|
|
}) : a("html, body").animate({
|
|
scrollTop: c
|
|
}, {
|
|
duration: 400,
|
|
easing: "easeOutCubic"
|
|
})
|
|
})
|
|
}), d = d || {
|
|
throttle: 100
|
|
}, k.top = d.offsetTop || 0, k.right = d.offsetRight || 0, k.bottom = d.offsetBottom || 0, k.left = d.offsetLeft || 0;
|
|
var j = e(c, d.throttle || 100),
|
|
l = function() {
|
|
a(document).ready(j)
|
|
};
|
|
return i || (f.on("scroll", l), f.on("resize", l), i = !0), setTimeout(l, 0), b.on("scrollSpy:enter", function() {
|
|
h = a.grep(h, function(a) {
|
|
return 0 != a.height()
|
|
});
|
|
var b = a(this);
|
|
h[0] ? (a("a[href=#" + h[0].attr("id") + "]").removeClass("active"), b.data("scrollSpy:id") < h[0].data("scrollSpy:id") ? h.unshift(a(this)) : h.push(a(this))) : h.push(a(this)), a("a[href=#" + h[0].attr("id") + "]").addClass("active")
|
|
}), b.on("scrollSpy:exit", function() {
|
|
if (h = a.grep(h, function(a) {
|
|
return 0 != a.height()
|
|
}), h[0]) {
|
|
a("a[href=#" + h[0].attr("id") + "]").removeClass("active");
|
|
var b = a(this);
|
|
h = a.grep(h, function(a) {
|
|
return a.attr("id") != b.attr("id")
|
|
}), h[0] && a("a[href=#" + h[0].attr("id") + "]").addClass("active")
|
|
}
|
|
}), b
|
|
}, a.winSizeSpy = function(b) {
|
|
return a.winSizeSpy = function() {
|
|
return f
|
|
}, b = b || {
|
|
throttle: 100
|
|
}, f.on("resize", e(d, b.throttle || 100))
|
|
}, a.fn.scrollSpy = function(b) {
|
|
return a.scrollSpy(a(this), b)
|
|
}
|
|
}(jQuery),
|
|
function(a) {
|
|
a(document).ready(function() {
|
|
var b = "input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";
|
|
if (a(document).on("change", b, function() {
|
|
0 !== a(this).val().length && a(this).siblings("label, i").addClass("active"), validate_field(a(this))
|
|
}), a(document).ready(function() {
|
|
a(b).each(function(b, c) {
|
|
a(c).val().length > 0 && a(this).siblings("label, i").addClass("active")
|
|
})
|
|
}), a(document).on("reset", function(c) {
|
|
a(c.target).is("form") && (a(this).find(b).removeClass("valid").removeClass("invalid"), a(this).find("select.initialized").each(function() {
|
|
var b = a(this).find("option[selected]").text();
|
|
a(this).siblings("input.select-dropdown").val(b)
|
|
}))
|
|
}), a(document).on("focus", b, function() {
|
|
a(this).siblings("label, i").addClass("active")
|
|
}), a(document).on("blur", b, function() {
|
|
0 === a(this).val().length && a(this).siblings("label, i").removeClass("active"), validate_field(a(this))
|
|
}), validate_field = function(a) {
|
|
0 === a.val().length ? a.hasClass("validate") && (a.removeClass("valid"), a.removeClass("invalid")) : a.hasClass("validate") && (a.is(":valid") ? (a.removeClass("invalid"), a.addClass("valid")) : (a.removeClass("valid"), a.addClass("invalid")))
|
|
}, 0 === a(".hiddendiv").length) {
|
|
var c = a('<div class="hiddendiv common"></div>'),
|
|
d = null;
|
|
a("body").append(c)
|
|
}
|
|
var e = ".materialize-textarea";
|
|
a(".hiddendiv").css("width", a(e).width()), a(e).each(function() {
|
|
a(this).val().length && (d = a(this).val(), d = d.replace(/\n/g, "<br>"), c.html(d + "<br>"), a(this).css("height", c.height()))
|
|
}), a("body").on("keyup keydown", e, function() {
|
|
d = a(this).val(), d = d.replace(/\n/g, "<br>"), c.html(d + "<br>"), a(this).css("height", c.height())
|
|
}), a(".file-field").each(function() {
|
|
var b = a(this).find("input.file-path");
|
|
a(this).find('input[type="file"]').change(function() {
|
|
b.val(a(this).val()), b.trigger("change")
|
|
})
|
|
});
|
|
var f = "input[type=range]",
|
|
g = !1;
|
|
a(f).each(function() {
|
|
var b = a('<span class="thumb"><span class="value"></span></span>');
|
|
a(this).after(b)
|
|
});
|
|
var h = ".range-field";
|
|
a(document).on("mousedown", h, function(b) {
|
|
var c = a(this).children(".thumb");
|
|
c.length <= 0 && (c = a('<span class="thumb"><span class="value"></span></span>'), a(this).append(c)), g = !0, a(this).addClass("active"), c.hasClass("active") || c.velocity({
|
|
height: "30px",
|
|
width: "30px",
|
|
top: "-20px",
|
|
marginLeft: "-15px"
|
|
}, {
|
|
duration: 300,
|
|
easing: "easeOutExpo"
|
|
});
|
|
var d = b.pageX - a(this).offset().left,
|
|
e = a(this).outerWidth();
|
|
0 > d ? d = 0 : d > e && (d = e), c.addClass("active").css("left", d), c.find(".value").html(a(this).children("input[type=range]").val())
|
|
}), a(document).on("mouseup", h, function() {
|
|
g = !1, a(this).removeClass("active")
|
|
}), a(document).on("mousemove", h, function(b) {
|
|
var c = a(this).children(".thumb");
|
|
if (g) {
|
|
c.hasClass("active") || c.velocity({
|
|
height: "30px",
|
|
width: "30px",
|
|
top: "-20px",
|
|
marginLeft: "-15px"
|
|
}, {
|
|
duration: 300,
|
|
easing: "easeOutExpo"
|
|
});
|
|
var d = b.pageX - a(this).offset().left,
|
|
e = a(this).outerWidth();
|
|
0 > d ? d = 0 : d > e && (d = e), c.addClass("active").css("left", d), c.find(".value").html(a(this).children("input[type=range]").val())
|
|
}
|
|
}), a(document).on("mouseout", h, function() {
|
|
if (!g) {
|
|
var b = a(this).children(".thumb");
|
|
b.hasClass("active") && b.velocity({
|
|
height: "0",
|
|
width: "0",
|
|
top: "10px",
|
|
marginLeft: "-6px"
|
|
}, {
|
|
duration: 100
|
|
}), b.removeClass("active")
|
|
}
|
|
}), a.fn.material_select = function(b) {
|
|
a(this).each(function() {
|
|
if ($select = a(this), !$select.hasClass("browser-default") && !$select.hasClass("initialized")) {
|
|
var c = i(),
|
|
d = a('<div class="select-wrapper"></div>'),
|
|
e = a('<ul id="select-options-' + c + '" class="dropdown-content select-dropdown"></ul>'),
|
|
f = $select.children("option");
|
|
if (void 0 !== $select.find("option:selected")) var g = $select.find("option:selected");
|
|
else var g = e.first();
|
|
f.each(function() {
|
|
e.append(a('<li class="' + (a(this).is(":disabled") ? "disabled" : "") + '"><span>' + a(this).html() + "</span></li>"))
|
|
}), e.find("li").each(function(c) {
|
|
var d = $select;
|
|
a(this).click(function() {
|
|
a(this).hasClass("disabled") || (d.find("option").eq(c).prop("selected", !0), d.trigger("change"), d.siblings("input.select-dropdown").val(a(this).text()), "undefined" != typeof b && b())
|
|
})
|
|
}), $select.wrap(d);
|
|
var h = a('<input type="text" class="select-dropdown" readonly="true" ' + ($select.is(":disabled") ? "disabled" : "") + ' data-activates="select-options-' + c + '" value="' + g.html() + '"/><i class="mdi-navigation-arrow-drop-down">');
|
|
$select.before(h), a("body").append(e), $select.is(":disabled") || h.dropdown({
|
|
hover: !1
|
|
}), $select.addClass("initialized"), h.on("focus", function() {
|
|
a(this).trigger("open"), g = a(this).val(), selectedOption = e.find("li").filter(function() {
|
|
return a(this).text().toLowerCase() === g.toLowerCase()
|
|
})[0], activateOption(e, selectedOption)
|
|
}), h.on("blur", function() {
|
|
a(this).trigger("close")
|
|
}), activateOption = function(b, c) {
|
|
b.find("li.active").removeClass("active"), a(c).addClass("active"), b.scrollTo(c)
|
|
}, filterQuery = [], onKeyDown = function(b) {
|
|
return 9 == b.which ? void h.trigger("close") : 40 != b.which || e.is(":visible") ? void((13 != b.which || e.is(":visible")) && (b.preventDefault(), letter = String.fromCharCode(b.which).toLowerCase(), letter && (filterQuery.push(letter), string = filterQuery.join(""), newOption = e.find("li").filter(function() {
|
|
return 0 === a(this).text().toLowerCase().indexOf(string)
|
|
})[0], newOption && activateOption(e, newOption)), 13 == b.which && (activeOption = e.find("li.active:not(.disabled)")[0], activeOption && (a(activeOption).trigger("click"), h.trigger("close"))), 40 == b.which && (newOption = e.find("li.active").next("li:not(.disabled)")[0], newOption && activateOption(e, newOption)), 27 == b.which && h.trigger("close"), 38 == b.which && (newOption = e.find("li.active").prev("li:not(.disabled)")[0], newOption && activateOption(e, newOption)), setTimeout(function() {
|
|
filterQuery = []
|
|
}, 1e3))) : void h.trigger("open")
|
|
}, h.on("keydown", onKeyDown)
|
|
}
|
|
})
|
|
};
|
|
var i = function() {
|
|
function a() {
|
|
return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1)
|
|
}
|
|
return function() {
|
|
return a() + a() + "-" + a() + "-" + a() + "-" + a() + "-" + a() + a() + a()
|
|
}
|
|
}()
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a.fn.slider = function(b) {
|
|
var c = {
|
|
indicators: !0,
|
|
height: 400,
|
|
transition: 500,
|
|
interval: 6e4
|
|
};
|
|
return b = a.extend(c, b), this.each(function() {
|
|
function c(a, b) {
|
|
a.hasClass("center-align") ? a.velocity({
|
|
opacity: 0,
|
|
translateY: -100
|
|
}, {
|
|
duration: b,
|
|
queue: !1
|
|
}) : a.hasClass("right-align") ? a.velocity({
|
|
opacity: 0,
|
|
translateX: 100
|
|
}, {
|
|
duration: b,
|
|
queue: !1
|
|
}) : a.hasClass("left-align") && a.velocity({
|
|
opacity: 0,
|
|
translateX: -100
|
|
}, {
|
|
duration: b,
|
|
queue: !1
|
|
})
|
|
}
|
|
|
|
function d(a) {
|
|
a >= h.length ? a = 0 : 0 > a && (a = h.length - 1), i = g.find(".active").index(), i != a && (e = h.eq(i), $caption = e.find(".caption"), e.removeClass("active"), e.velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: b.transition,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
h.not(".active").velocity({
|
|
opacity: 0,
|
|
translateX: 0,
|
|
translateY: 0
|
|
}, {
|
|
duration: 0,
|
|
queue: !1
|
|
})
|
|
}
|
|
}), c($caption, b.transition), b.indicators && j.eq(i).removeClass("active"), h.eq(a).velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: b.transition,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), h.eq(a).find(".caption").velocity({
|
|
opacity: 1,
|
|
translateX: 0,
|
|
translateY: 0
|
|
}, {
|
|
duration: b.transition,
|
|
delay: b.transition,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), h.eq(a).addClass("active"), b.indicators && j.eq(a).addClass("active"))
|
|
}
|
|
var e, f = a(this),
|
|
g = f.find("ul.slides").first(),
|
|
h = g.find("li"),
|
|
i = g.find(".active").index();
|
|
if (-1 != i && (e = h.eq(i)), 400 != b.height && (f.height(b.height + 40), g.height(b.height)), h.find(".caption").each(function() {
|
|
c(a(this), 0)
|
|
}), h.find("img").each(function() {
|
|
a(this).css("background-image", "url(" + a(this).attr("src") + ")"), a(this).attr("src", "data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==")
|
|
}), b.indicators) {
|
|
var j = a('<ul class="indicators"></ul>');
|
|
h.each(function() {
|
|
var c = a('<li class="indicator-item"></li>');
|
|
c.click(function() {
|
|
var c = g.parent(),
|
|
e = c.find(a(this)).index();
|
|
d(e), clearInterval($interval), $interval = setInterval(function() {
|
|
i = g.find(".active").index(), h.length == i + 1 ? i = 0 : i += 1, d(i)
|
|
}, b.transition + b.interval)
|
|
}), j.append(c)
|
|
}), f.append(j), j = f.find("ul.indicators").find("li.indicator-item")
|
|
}
|
|
e ? e.show() : (h.first().addClass("active").velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: b.transition,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), i = 0, e = h.eq(i), b.indicators && j.eq(i).addClass("active")), e.find("img").each(function() {
|
|
e.find(".caption").velocity({
|
|
opacity: 1,
|
|
translateX: 0,
|
|
translateY: 0
|
|
}, {
|
|
duration: b.transition,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})
|
|
}), $interval = setInterval(function() {
|
|
i = g.find(".active").index(), d(i + 1)
|
|
}, b.transition + b.interval);
|
|
var k = !1,
|
|
l = !1,
|
|
m = !1;
|
|
f.hammer({
|
|
prevent_default: !1
|
|
}).bind("pan", function(a) {
|
|
if ("touch" === a.gesture.pointerType) {
|
|
clearInterval($interval);
|
|
var b = a.gesture.direction,
|
|
c = a.gesture.deltaX,
|
|
d = a.gesture.velocityX;
|
|
$curr_slide = g.find(".active"), $curr_slide.velocity({
|
|
translateX: c
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), 4 === b && (c > f.innerWidth() / 2 || -.65 > d) ? m = !0 : 2 === b && (c < -1 * f.innerWidth() / 2 || d > .65) && (l = !0);
|
|
var e;
|
|
l && (e = $curr_slide.next(), 0 === e.length && (e = h.first()), e.velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})), m && (e = $curr_slide.prev(), 0 === e.length && (e = h.last()), e.velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}))
|
|
}
|
|
}).bind("panend", function(a) {
|
|
"touch" === a.gesture.pointerType && ($curr_slide = g.find(".active"), k = !1, curr_index = g.find(".active").index(), m || l ? l ? (d(curr_index + 1), $curr_slide.velocity({
|
|
translateX: -1 * f.innerWidth()
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
$curr_slide.velocity({
|
|
opacity: 0,
|
|
translateX: 0
|
|
}, {
|
|
duration: 0,
|
|
queue: !1
|
|
})
|
|
}
|
|
})) : m && (d(curr_index - 1), $curr_slide.velocity({
|
|
translateX: f.innerWidth()
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
$curr_slide.velocity({
|
|
opacity: 0,
|
|
translateX: 0
|
|
}, {
|
|
duration: 0,
|
|
queue: !1
|
|
})
|
|
}
|
|
})) : $curr_slide.velocity({
|
|
translateX: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), l = !1, m = !1, clearInterval($interval), $interval = setInterval(function() {
|
|
i = g.find(".active").index(), h.length == i + 1 ? i = 0 : i += 1, d(i)
|
|
}, b.transition + b.interval))
|
|
})
|
|
})
|
|
}
|
|
}(jQuery),
|
|
function(a) {
|
|
a(document).ready(function() {
|
|
a(document).on("click.card", ".card", function(b) {
|
|
a(this).find(".card-reveal").length && (a(b.target).is(a(".card-reveal .card-title")) || a(b.target).is(a(".card-reveal .card-title i")) ? a(this).find(".card-reveal").velocity({
|
|
translateY: 0
|
|
}, {
|
|
duration: 225,
|
|
queue: !1,
|
|
easing: "easeInOutQuad"
|
|
}) : (a(b.target).is(a(".card .activator")) || a(b.target).is(a(".card .activator i"))) && a(this).find(".card-reveal").velocity({
|
|
translateY: "-100%"
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeInOutQuad"
|
|
}))
|
|
})
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a(document).ready(function() {
|
|
var b = function() {
|
|
function a() {
|
|
return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1)
|
|
}
|
|
return function() {
|
|
return a() + a() + "-" + a() + "-" + a() + "-" + a() + "-" + a() + a() + a()
|
|
}
|
|
}();
|
|
a.fn.pushpin = function(c) {
|
|
var d = {
|
|
top: 0,
|
|
bottom: 1 / 0,
|
|
offset: 0
|
|
};
|
|
return c = a.extend(d, c), $index = 0, this.each(function() {
|
|
function d(a) {
|
|
a.removeClass("pin-top"), a.removeClass("pinned"), a.removeClass("pin-bottom")
|
|
}
|
|
|
|
function e(b, e) {
|
|
b.each(function() {
|
|
c.top <= e && c.bottom >= e && !a(this).hasClass("pinned") && (d(a(this)), a(this).css("top", c.offset), a(this).addClass("pinned")), e < c.top && !a(this).hasClass("pin-top") && (d(a(this)), a(this).css("top", 0), a(this).addClass("pin-top")), e > c.bottom && !a(this).hasClass("pin-bottom") && (d(a(this)), a(this).addClass("pin-bottom"), a(this).css("top", c.bottom - h))
|
|
})
|
|
}
|
|
var f = b(),
|
|
g = a(this),
|
|
h = a(this).offset().top;
|
|
e(g, a(window).scrollTop()),
|
|
a(window).on("scroll." + f, function() {
|
|
var b = a(window).scrollTop() + c.offset;
|
|
e(g, b)
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a(document).ready(function() {
|
|
a.fn.reverse = [].reverse, a(document).on("mouseenter.fixedActionBtn", ".fixed-action-btn", function() {
|
|
var b = a(this);
|
|
b.find("ul a.btn-floating").velocity({
|
|
scaleY: ".4",
|
|
scaleX: ".4",
|
|
translateY: "40px"
|
|
}, {
|
|
duration: 0
|
|
});
|
|
var c = 0;
|
|
b.find("ul a.btn-floating").reverse().each(function() {
|
|
a(this).velocity({
|
|
opacity: "1",
|
|
scaleX: "1",
|
|
scaleY: "1",
|
|
translateY: "0"
|
|
}, {
|
|
duration: 80,
|
|
delay: c
|
|
}), c += 40
|
|
})
|
|
}), a(document).on("mouseleave.fixedActionBtn", ".fixed-action-btn", function() {
|
|
var b = a(this);
|
|
b.find("ul a.btn-floating").velocity("stop", !0), b.find("ul a.btn-floating").velocity({
|
|
opacity: "0",
|
|
scaleX: ".4",
|
|
scaleY: ".4",
|
|
translateY: "40px"
|
|
}, {
|
|
duration: 80
|
|
})
|
|
})
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a(document).ready(function() {
|
|
showStaggeredList = function(b) {
|
|
var c = 0;
|
|
a(b).find("li").velocity({
|
|
translateX: "-100px"
|
|
}, {
|
|
duration: 0
|
|
}), a(b).find("li").each(function() {
|
|
a(this).velocity({
|
|
opacity: "1",
|
|
translateX: "0"
|
|
}, {
|
|
duration: 800,
|
|
delay: c,
|
|
easing: [60, 10]
|
|
}), c += 120
|
|
})
|
|
};
|
|
var b = [];
|
|
a("ul.staggered-list").each(function(c) {
|
|
var d = "scrollFire-" + c;
|
|
a(this).addClass(d), b.push({
|
|
selector: "ul.staggered-list." + d,
|
|
offset: 200,
|
|
callback: 'showStaggeredList("ul.staggered-list.' + d + '")'
|
|
})
|
|
}), scrollFire(b);
|
|
var c = !1,
|
|
d = !1;
|
|
a(".dismissable").each(function() {
|
|
a(this).hammer({
|
|
prevent_default: !1
|
|
}).bind("pan", function(b) {
|
|
if ("touch" === b.gesture.pointerType) {
|
|
var e = a(this),
|
|
f = b.gesture.direction,
|
|
g = b.gesture.deltaX,
|
|
h = b.gesture.velocityX;
|
|
e.velocity({
|
|
translateX: g
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), 4 === f && (g > e.innerWidth() / 2 || -.75 > h) ? c = !0 : 2 === f && (g < -1 * e.innerWidth() / 2 || h > .75) && (d = !0)
|
|
}
|
|
}).bind("panend", function(b) {
|
|
if ("touch" === b.gesture.pointerType) {
|
|
var e = a(this);
|
|
if (c || d) {
|
|
var f;
|
|
f = c ? e.innerWidth() : -1 * e.innerWidth(), e.velocity({
|
|
translateX: f
|
|
}, {
|
|
duration: 100,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
e.css("border", "none"), e.velocity({
|
|
height: 0,
|
|
padding: 0
|
|
}, {
|
|
duration: 200,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
e.remove()
|
|
}
|
|
})
|
|
}
|
|
})
|
|
} else e.velocity({
|
|
translateX: 0
|
|
}, {
|
|
duration: 100,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
});
|
|
c = !1, d = !1
|
|
}
|
|
})
|
|
}), fadeInImage = function(b) {
|
|
var c = a(b);
|
|
c.css({
|
|
opacity: 0
|
|
}), a(c).velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: 650,
|
|
queue: !1,
|
|
easing: "easeOutSine"
|
|
}), a(c).animate({
|
|
opacity: 1
|
|
}, {
|
|
duration: 1300,
|
|
queue: !1,
|
|
easing: "swing",
|
|
step: function(b, c) {
|
|
c.start = 100;
|
|
var d = b / 100,
|
|
e = 150 - (100 - b) / 1.75;
|
|
100 > e && (e = 100), b >= 0 && a(this).css({
|
|
"-webkit-filter": "grayscale(" + d + ")brightness(" + e + "%)",
|
|
filter: "grayscale(" + d + ")brightness(" + e + "%)"
|
|
})
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
scrollFire = function(b) {
|
|
a(window).scroll(function() {
|
|
var c = a(window).scrollTop() + a(window).height();
|
|
a.each(b, function(b, d) {
|
|
var e = d.selector,
|
|
f = d.offset,
|
|
g = d.callback,
|
|
h = a(e).offset().top;
|
|
if (c > h + f && 1 != d.done) {
|
|
var i = new Function(g);
|
|
i(), d.done = !0
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}(jQuery),
|
|
function(a) {
|
|
"function" == typeof define && define.amd ? define("picker", ["jquery"], a) : "object" == typeof exports ? module.exports = a(require("jquery")) : this.Picker = a(jQuery)
|
|
}(function(a) {
|
|
function b(f, g, i, l) {
|
|
function m() {
|
|
return b._.node("div", b._.node("div", b._.node("div", b._.node("div", y.component.nodes(t.open), v.box), v.wrap), v.frame), v.holder)
|
|
}
|
|
|
|
function n() {
|
|
w.data(g, y).addClass(v.input).attr("tabindex", -1).val(w.data("value") ? y.get("select", u.format) : f.value), u.editable || w.on("focus." + t.id + " click." + t.id, function(a) {
|
|
a.preventDefault(), y.$root[0].focus()
|
|
}).on("keydown." + t.id, q), e(f, {
|
|
haspopup: !0,
|
|
expanded: !1,
|
|
readonly: !1,
|
|
owns: f.id + "_root"
|
|
})
|
|
}
|
|
|
|
function o() {
|
|
y.$root.on({
|
|
keydown: q,
|
|
focusin: function(a) {
|
|
y.$root.removeClass(v.focused), a.stopPropagation()
|
|
},
|
|
"mousedown click": function(b) {
|
|
var c = b.target;
|
|
c != y.$root.children()[0] && (b.stopPropagation(), "mousedown" != b.type || a(c).is("input, select, textarea, button, option") || (b.preventDefault(), y.$root[0].focus()))
|
|
}
|
|
}).on({
|
|
focus: function() {
|
|
w.addClass(v.target)
|
|
},
|
|
blur: function() {
|
|
w.removeClass(v.target)
|
|
}
|
|
}).on("focus.toOpen", r).on("click", "[data-pick], [data-nav], [data-clear], [data-close]", function() {
|
|
var b = a(this),
|
|
c = b.data(),
|
|
d = b.hasClass(v.navDisabled) || b.hasClass(v.disabled),
|
|
e = h();
|
|
e = e && (e.type || e.href), (d || e && !a.contains(y.$root[0], e)) && y.$root[0].focus(), !d && c.nav ? y.set("highlight", y.component.item.highlight, {
|
|
nav: c.nav
|
|
}) : !d && "pick" in c ? y.set("select", c.pick) : c.clear ? y.clear().close(!0) : c.close && y.close(!0)
|
|
}), e(y.$root[0], "hidden", !0)
|
|
}
|
|
|
|
function p() {
|
|
var b;
|
|
u.hiddenName === !0 ? (b = f.name, f.name = "") : (b = ["string" == typeof u.hiddenPrefix ? u.hiddenPrefix : "", "string" == typeof u.hiddenSuffix ? u.hiddenSuffix : "_submit"], b = b[0] + f.name + b[1]), y._hidden = a('<input type=hidden name="' + b + '"' + (w.data("value") || f.value ? ' value="' + y.get("select", u.formatSubmit) + '"' : "") + ">")[0], w.on("change." + t.id, function() {
|
|
y._hidden.value = f.value ? y.get("select", u.formatSubmit) : ""
|
|
}), u.container ? a(u.container).append(y._hidden) : w.after(y._hidden)
|
|
}
|
|
|
|
function q(a) {
|
|
var b = a.keyCode,
|
|
c = /^(8|46)$/.test(b);
|
|
return 27 == b ? (y.close(), !1) : void((32 == b || c || !t.open && y.component.key[b]) && (a.preventDefault(), a.stopPropagation(), c ? y.clear().close() : y.open()))
|
|
}
|
|
|
|
function r(a) {
|
|
a.stopPropagation(), "focus" == a.type && y.$root.addClass(v.focused), y.open()
|
|
}
|
|
if (!f) return b;
|
|
var s = !1,
|
|
t = {
|
|
id: f.id || "P" + Math.abs(~~(Math.random() * new Date))
|
|
},
|
|
u = i ? a.extend(!0, {}, i.defaults, l) : l || {},
|
|
v = a.extend({}, b.klasses(), u.klass),
|
|
w = a(f),
|
|
x = function() {
|
|
return this.start()
|
|
},
|
|
y = x.prototype = {
|
|
constructor: x,
|
|
$node: w,
|
|
start: function() {
|
|
return t && t.start ? y : (t.methods = {}, t.start = !0, t.open = !1, t.type = f.type, f.autofocus = f == h(), f.readOnly = !u.editable, f.id = f.id || t.id, "text" != f.type && (f.type = "text"), y.component = new i(y, u), y.$root = a(b._.node("div", m(), v.picker, 'id="' + f.id + '_root" tabindex="0"')), o(), u.formatSubmit && p(), n(), u.container ? a(u.container).append(y.$root) : w.after(y.$root), y.on({
|
|
start: y.component.onStart,
|
|
render: y.component.onRender,
|
|
stop: y.component.onStop,
|
|
open: y.component.onOpen,
|
|
close: y.component.onClose,
|
|
set: y.component.onSet
|
|
}).on({
|
|
start: u.onStart,
|
|
render: u.onRender,
|
|
stop: u.onStop,
|
|
open: u.onOpen,
|
|
close: u.onClose,
|
|
set: u.onSet
|
|
}), s = c(y.$root.children()[0]), f.autofocus && y.open(), y.trigger("start").trigger("render"))
|
|
},
|
|
render: function(a) {
|
|
return a ? y.$root.html(m()) : y.$root.find("." + v.box).html(y.component.nodes(t.open)), y.trigger("render")
|
|
},
|
|
stop: function() {
|
|
return t.start ? (y.close(), y._hidden && y._hidden.parentNode.removeChild(y._hidden), y.$root.remove(), w.removeClass(v.input).removeData(g), setTimeout(function() {
|
|
w.off("." + t.id)
|
|
}, 0), f.type = t.type, f.readOnly = !1, y.trigger("stop"), t.methods = {}, t.start = !1, y) : y
|
|
},
|
|
open: function(c) {
|
|
return t.open ? y : (w.addClass(v.active), e(f, "expanded", !0), setTimeout(function() {
|
|
y.$root.addClass(v.opened), e(y.$root[0], "hidden", !1)
|
|
}, 0), c !== !1 && (t.open = !0, s && k.css("overflow", "hidden").css("padding-right", "+=" + d()), y.$root[0].focus(), j.on("click." + t.id + " focusin." + t.id, function(a) {
|
|
var b = a.target;
|
|
b != f && b != document && 3 != a.which && y.close(b === y.$root.children()[0])
|
|
}).on("keydown." + t.id, function(c) {
|
|
var d = c.keyCode,
|
|
e = y.component.key[d],
|
|
f = c.target;
|
|
27 == d ? y.close(!0) : f != y.$root[0] || !e && 13 != d ? a.contains(y.$root[0], f) && 13 == d && (c.preventDefault(), f.click()) : (c.preventDefault(), e ? b._.trigger(y.component.key.go, y, [b._.trigger(e)]) : y.$root.find("." + v.highlighted).hasClass(v.disabled) || y.set("select", y.component.item.highlight).close())
|
|
})), y.trigger("open"))
|
|
},
|
|
close: function(a) {
|
|
return a && (y.$root.off("focus.toOpen")[0].focus(), setTimeout(function() {
|
|
y.$root.on("focus.toOpen", r)
|
|
}, 0)), w.removeClass(v.active), e(f, "expanded", !1), setTimeout(function() {
|
|
y.$root.removeClass(v.opened + " " + v.focused), e(y.$root[0], "hidden", !0)
|
|
}, 0), t.open ? (t.open = !1, s && k.css("overflow", "").css("padding-right", "-=" + d()), j.off("." + t.id), y.trigger("close")) : y
|
|
},
|
|
clear: function(a) {
|
|
return y.set("clear", null, a)
|
|
},
|
|
set: function(b, c, d) {
|
|
var e, f, g = a.isPlainObject(b),
|
|
h = g ? b : {};
|
|
if (d = g && a.isPlainObject(c) ? c : d || {}, b) {
|
|
g || (h[b] = c);
|
|
for (e in h) f = h[e], e in y.component.item && (void 0 === f && (f = null), y.component.set(e, f, d)), ("select" == e || "clear" == e) && w.val("clear" == e ? "" : y.get(e, u.format)).trigger("change");
|
|
y.render()
|
|
}
|
|
return d.muted ? y : y.trigger("set", h)
|
|
},
|
|
get: function(a, c) {
|
|
if (a = a || "value", null != t[a]) return t[a];
|
|
if ("valueSubmit" == a) {
|
|
if (y._hidden) return y._hidden.value;
|
|
a = "value"
|
|
}
|
|
if ("value" == a) return f.value;
|
|
if (a in y.component.item) {
|
|
if ("string" == typeof c) {
|
|
var d = y.component.get(a);
|
|
return d ? b._.trigger(y.component.formats.toString, y.component, [c, d]) : ""
|
|
}
|
|
return y.component.get(a)
|
|
}
|
|
},
|
|
on: function(b, c, d) {
|
|
var e, f, g = a.isPlainObject(b),
|
|
h = g ? b : {};
|
|
if (b) {
|
|
g || (h[b] = c);
|
|
for (e in h) f = h[e], d && (e = "_" + e), t.methods[e] = t.methods[e] || [], t.methods[e].push(f)
|
|
}
|
|
return y
|
|
},
|
|
off: function() {
|
|
var a, b, c = arguments;
|
|
for (a = 0, namesCount = c.length; a < namesCount; a += 1) b = c[a], b in t.methods && delete t.methods[b];
|
|
return y
|
|
},
|
|
trigger: function(a, c) {
|
|
var d = function(a) {
|
|
var d = t.methods[a];
|
|
d && d.map(function(a) {
|
|
b._.trigger(a, y, [c])
|
|
})
|
|
};
|
|
return d("_" + a), d(a), y
|
|
}
|
|
};
|
|
return new x
|
|
}
|
|
|
|
function c(a) {
|
|
var b, c = "position";
|
|
return a.currentStyle ? b = a.currentStyle[c] : window.getComputedStyle && (b = getComputedStyle(a)[c]), "fixed" == b
|
|
}
|
|
|
|
function d() {
|
|
if (k.height() <= i.height()) return 0;
|
|
var b = a('<div style="visibility:hidden;width:100px" />').appendTo("body"),
|
|
c = b[0].offsetWidth;
|
|
b.css("overflow", "scroll");
|
|
var d = a('<div style="width:100%" />').appendTo(b),
|
|
e = d[0].offsetWidth;
|
|
return b.remove(), c - e
|
|
}
|
|
|
|
function e(b, c, d) {
|
|
if (a.isPlainObject(c))
|
|
for (var e in c) f(b, e, c[e]);
|
|
else f(b, c, d)
|
|
}
|
|
|
|
function f(a, b, c) {
|
|
a.setAttribute(("role" == b ? "" : "aria-") + b, c)
|
|
}
|
|
|
|
function g(b, c) {
|
|
a.isPlainObject(b) || (b = {
|
|
attribute: c
|
|
}), c = "";
|
|
for (var d in b) {
|
|
var e = ("role" == d ? "" : "aria-") + d,
|
|
f = b[d];
|
|
c += null == f ? "" : e + '="' + b[d] + '"'
|
|
}
|
|
return c
|
|
}
|
|
|
|
function h() {
|
|
try {
|
|
return document.activeElement
|
|
} catch (a) {}
|
|
}
|
|
var i = a(window),
|
|
j = a(document),
|
|
k = a(document.documentElement);
|
|
return b.klasses = function(a) {
|
|
return a = a || "picker", {
|
|
picker: a,
|
|
opened: a + "--opened",
|
|
focused: a + "--focused",
|
|
input: a + "__input",
|
|
active: a + "__input--active",
|
|
target: a + "__input--target",
|
|
holder: a + "__holder",
|
|
frame: a + "__frame",
|
|
wrap: a + "__wrap",
|
|
box: a + "__box"
|
|
}
|
|
}, b._ = {
|
|
group: function(a) {
|
|
for (var c, d = "", e = b._.trigger(a.min, a); e <= b._.trigger(a.max, a, [e]); e += a.i) c = b._.trigger(a.item, a, [e]), d += b._.node(a.node, c[0], c[1], c[2]);
|
|
return d
|
|
},
|
|
node: function(b, c, d, e) {
|
|
return c ? (c = a.isArray(c) ? c.join("") : c, d = d ? ' class="' + d + '"' : "", e = e ? " " + e : "", "<" + b + d + e + ">" + c + "</" + b + ">") : ""
|
|
},
|
|
lead: function(a) {
|
|
return (10 > a ? "0" : "") + a
|
|
},
|
|
trigger: function(a, b, c) {
|
|
return "function" == typeof a ? a.apply(b, c || []) : a
|
|
},
|
|
digits: function(a) {
|
|
return /\d/.test(a[1]) ? 2 : 1
|
|
},
|
|
isDate: function(a) {
|
|
return {}.toString.call(a).indexOf("Date") > -1 && this.isInteger(a.getDate())
|
|
},
|
|
isInteger: function(a) {
|
|
return {}.toString.call(a).indexOf("Number") > -1 && a % 1 === 0
|
|
},
|
|
ariaAttr: g
|
|
}, b.extend = function(c, d) {
|
|
a.fn[c] = function(e, f) {
|
|
var g = this.data(c);
|
|
return "picker" == e ? g : g && "string" == typeof e ? b._.trigger(g[e], g, [f]) : this.each(function() {
|
|
var f = a(this);
|
|
f.data(c) || new b(this, c, d, e)
|
|
})
|
|
}, a.fn[c].defaults = d.defaults
|
|
}, b
|
|
}),
|
|
function(a) {
|
|
"function" == typeof define && define.amd ? define(["picker", "jquery"], a) : "object" == typeof exports ? module.exports = a(require("./picker.js"), require("jquery")) : a(Picker, jQuery)
|
|
}(function(a, b) {
|
|
function c(a, b) {
|
|
var c = this,
|
|
d = a.$node[0],
|
|
e = d.value,
|
|
f = a.$node.data("value"),
|
|
g = f || e,
|
|
h = f ? b.formatSubmit : b.format,
|
|
i = function() {
|
|
return d.currentStyle ? "rtl" == d.currentStyle.direction : "rtl" == getComputedStyle(a.$root[0]).direction
|
|
};
|
|
c.settings = b, c.$node = a.$node, c.queue = {
|
|
min: "measure create",
|
|
max: "measure create",
|
|
now: "now create",
|
|
select: "parse create validate",
|
|
highlight: "parse navigate create validate",
|
|
view: "parse create validate viewset",
|
|
disable: "deactivate",
|
|
enable: "activate"
|
|
}, c.item = {}, c.item.clear = null, c.item.disable = (b.disable || []).slice(0), c.item.enable = - function(a) {
|
|
return a[0] === !0 ? a.shift() : -1
|
|
}(c.item.disable), c.set("min", b.min).set("max", b.max).set("now"), g ? c.set("select", g, {
|
|
format: h
|
|
}) : c.set("select", null).set("highlight", c.item.now), c.key = {
|
|
40: 7,
|
|
38: -7,
|
|
39: function() {
|
|
return i() ? -1 : 1
|
|
},
|
|
37: function() {
|
|
return i() ? 1 : -1
|
|
},
|
|
go: function(a) {
|
|
var b = c.item.highlight,
|
|
d = new Date(b.year, b.month, b.date + a);
|
|
c.set("highlight", d, {
|
|
interval: a
|
|
}), this.render()
|
|
}
|
|
}, a.on("render", function() {
|
|
a.$root.find("." + b.klass.selectMonth).on("change", function() {
|
|
var c = this.value;
|
|
c && (a.set("highlight", [a.get("view").year, c, a.get("highlight").date]), a.$root.find("." + b.klass.selectMonth).trigger("focus"))
|
|
}), a.$root.find("." + b.klass.selectYear).on("change", function() {
|
|
var c = this.value;
|
|
c && (a.set("highlight", [c, a.get("view").month, a.get("highlight").date]), a.$root.find("." + b.klass.selectYear).trigger("focus"))
|
|
})
|
|
}, 1).on("open", function() {
|
|
var d = "";
|
|
c.disabled(c.get("now")) && (d = ":not(." + b.klass.buttonToday + ")"), a.$root.find("button" + d + ", select").attr("disabled", !1)
|
|
}, 1).on("close", function() {
|
|
a.$root.find("button, select").attr("disabled", !0)
|
|
}, 1)
|
|
}
|
|
var d = 7,
|
|
e = 6,
|
|
f = a._;
|
|
c.prototype.set = function(a, b, c) {
|
|
var d = this,
|
|
e = d.item;
|
|
return null === b ? ("clear" == a && (a = "select"), e[a] = b, d) : (e["enable" == a ? "disable" : "flip" == a ? "enable" : a] = d.queue[a].split(" ").map(function(e) {
|
|
return b = d[e](a, b, c)
|
|
}).pop(), "select" == a ? d.set("highlight", e.select, c) : "highlight" == a ? d.set("view", e.highlight, c) : a.match(/^(flip|min|max|disable|enable)$/) && (e.select && d.disabled(e.select) && d.set("select", e.select, c), e.highlight && d.disabled(e.highlight) && d.set("highlight", e.highlight, c)), d)
|
|
}, c.prototype.get = function(a) {
|
|
return this.item[a]
|
|
}, c.prototype.create = function(a, c, d) {
|
|
var e, g = this;
|
|
return c = void 0 === c ? a : c, c == -1 / 0 || 1 / 0 == c ? e = c : b.isPlainObject(c) && f.isInteger(c.pick) ? c = c.obj : b.isArray(c) ? (c = new Date(c[0], c[1], c[2]), c = f.isDate(c) ? c : g.create().obj) : c = f.isInteger(c) || f.isDate(c) ? g.normalize(new Date(c), d) : g.now(a, c, d), {
|
|
year: e || c.getFullYear(),
|
|
month: e || c.getMonth(),
|
|
date: e || c.getDate(),
|
|
day: e || c.getDay(),
|
|
obj: e || c,
|
|
pick: e || c.getTime()
|
|
}
|
|
}, c.prototype.createRange = function(a, c) {
|
|
var d = this,
|
|
e = function(a) {
|
|
return a === !0 || b.isArray(a) || f.isDate(a) ? d.create(a) : a
|
|
};
|
|
return f.isInteger(a) || (a = e(a)), f.isInteger(c) || (c = e(c)), f.isInteger(a) && b.isPlainObject(c) ? a = [c.year, c.month, c.date + a] : f.isInteger(c) && b.isPlainObject(a) && (c = [a.year, a.month, a.date + c]), {
|
|
from: e(a),
|
|
to: e(c)
|
|
}
|
|
}, c.prototype.withinRange = function(a, b) {
|
|
return a = this.createRange(a.from, a.to), b.pick >= a.from.pick && b.pick <= a.to.pick
|
|
}, c.prototype.overlapRanges = function(a, b) {
|
|
var c = this;
|
|
return a = c.createRange(a.from, a.to), b = c.createRange(b.from, b.to), c.withinRange(a, b.from) || c.withinRange(a, b.to) || c.withinRange(b, a.from) || c.withinRange(b, a.to)
|
|
}, c.prototype.now = function(a, b, c) {
|
|
return b = new Date, c && c.rel && b.setDate(b.getDate() + c.rel), this.normalize(b, c)
|
|
}, c.prototype.navigate = function(a, c, d) {
|
|
var e, f, g, h, i = b.isArray(c),
|
|
j = b.isPlainObject(c),
|
|
k = this.item.view;
|
|
if (i || j) {
|
|
for (j ? (f = c.year, g = c.month, h = c.date) : (f = +c[0], g = +c[1], h = +c[2]), d && d.nav && k && k.month !== g && (f = k.year, g = k.month), e = new Date(f, g + (d && d.nav ? d.nav : 0), 1), f = e.getFullYear(), g = e.getMonth(); new Date(f, g, h).getMonth() !== g;) h -= 1;
|
|
c = [f, g, h]
|
|
}
|
|
return c
|
|
}, c.prototype.normalize = function(a) {
|
|
return a.setHours(0, 0, 0, 0), a
|
|
}, c.prototype.measure = function(a, b) {
|
|
var c = this;
|
|
return b ? "string" == typeof b ? b = c.parse(a, b) : f.isInteger(b) && (b = c.now(a, b, {
|
|
rel: b
|
|
})) : b = "min" == a ? -1 / 0 : 1 / 0, b
|
|
}, c.prototype.viewset = function(a, b) {
|
|
return this.create([b.year, b.month, 1])
|
|
}, c.prototype.validate = function(a, c, d) {
|
|
var e, g, h, i, j = this,
|
|
k = c,
|
|
l = d && d.interval ? d.interval : 1,
|
|
m = -1 === j.item.enable,
|
|
n = j.item.min,
|
|
o = j.item.max,
|
|
p = m && j.item.disable.filter(function(a) {
|
|
if (b.isArray(a)) {
|
|
var d = j.create(a).pick;
|
|
d < c.pick ? e = !0 : d > c.pick && (g = !0)
|
|
}
|
|
return f.isInteger(a)
|
|
}).length;
|
|
if ((!d || !d.nav) && (!m && j.disabled(c) || m && j.disabled(c) && (p || e || g) || !m && (c.pick <= n.pick || c.pick >= o.pick)))
|
|
for (m && !p && (!g && l > 0 || !e && 0 > l) && (l *= -1); j.disabled(c) && (Math.abs(l) > 1 && (c.month < k.month || c.month > k.month) && (c = k, l = l > 0 ? 1 : -1), c.pick <= n.pick ? (h = !0, l = 1, c = j.create([n.year, n.month, n.date + (c.pick === n.pick ? 0 : -1)])) : c.pick >= o.pick && (i = !0, l = -1, c = j.create([o.year, o.month, o.date + (c.pick === o.pick ? 0 : 1)])), !h || !i);) c = j.create([c.year, c.month, c.date + l]);
|
|
return c
|
|
}, c.prototype.disabled = function(a) {
|
|
var c = this,
|
|
d = c.item.disable.filter(function(d) {
|
|
return f.isInteger(d) ? a.day === (c.settings.firstDay ? d : d - 1) % 7 : b.isArray(d) || f.isDate(d) ? a.pick === c.create(d).pick : b.isPlainObject(d) ? c.withinRange(d, a) : void 0
|
|
});
|
|
return d = d.length && !d.filter(function(a) {
|
|
return b.isArray(a) && "inverted" == a[3] || b.isPlainObject(a) && a.inverted
|
|
}).length, -1 === c.item.enable ? !d : d || a.pick < c.item.min.pick || a.pick > c.item.max.pick
|
|
}, c.prototype.parse = function(a, b, c) {
|
|
var d = this,
|
|
e = {};
|
|
return b && "string" == typeof b ? (c && c.format || (c = c || {}, c.format = d.settings.format), d.formats.toArray(c.format).map(function(a) {
|
|
var c = d.formats[a],
|
|
g = c ? f.trigger(c, d, [b, e]) : a.replace(/^!/, "").length;
|
|
c && (e[a] = b.substr(0, g)), b = b.substr(g)
|
|
}), [e.yyyy || e.yy, +(e.mm || e.m) - 1, e.dd || e.d]) : b
|
|
}, c.prototype.formats = function() {
|
|
function a(a, b, c) {
|
|
var d = a.match(/\w+/)[0];
|
|
return c.mm || c.m || (c.m = b.indexOf(d) + 1), d.length
|
|
}
|
|
|
|
function b(a) {
|
|
return a.match(/\w+/)[0].length
|
|
}
|
|
return {
|
|
d: function(a, b) {
|
|
return a ? f.digits(a) : b.date
|
|
},
|
|
dd: function(a, b) {
|
|
return a ? 2 : f.lead(b.date)
|
|
},
|
|
ddd: function(a, c) {
|
|
return a ? b(a) : this.settings.weekdaysShort[c.day]
|
|
},
|
|
dddd: function(a, c) {
|
|
return a ? b(a) : this.settings.weekdaysFull[c.day]
|
|
},
|
|
m: function(a, b) {
|
|
return a ? f.digits(a) : b.month + 1
|
|
},
|
|
mm: function(a, b) {
|
|
return a ? 2 : f.lead(b.month + 1)
|
|
},
|
|
mmm: function(b, c) {
|
|
var d = this.settings.monthsShort;
|
|
return b ? a(b, d, c) : d[c.month]
|
|
},
|
|
mmmm: function(b, c) {
|
|
var d = this.settings.monthsFull;
|
|
return b ? a(b, d, c) : d[c.month]
|
|
},
|
|
yy: function(a, b) {
|
|
return a ? 2 : ("" + b.year).slice(2)
|
|
},
|
|
yyyy: function(a, b) {
|
|
return a ? 4 : b.year
|
|
},
|
|
toArray: function(a) {
|
|
return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)
|
|
},
|
|
toString: function(a, b) {
|
|
var c = this;
|
|
return c.formats.toArray(a).map(function(a) {
|
|
return f.trigger(c.formats[a], c, [0, b]) || a.replace(/^!/, "")
|
|
}).join("")
|
|
}
|
|
}
|
|
}(), c.prototype.isDateExact = function(a, c) {
|
|
var d = this;
|
|
return f.isInteger(a) && f.isInteger(c) || "boolean" == typeof a && "boolean" == typeof c ? a === c : (f.isDate(a) || b.isArray(a)) && (f.isDate(c) || b.isArray(c)) ? d.create(a).pick === d.create(c).pick : b.isPlainObject(a) && b.isPlainObject(c) ? d.isDateExact(a.from, c.from) && d.isDateExact(a.to, c.to) : !1
|
|
}, c.prototype.isDateOverlap = function(a, c) {
|
|
var d = this,
|
|
e = d.settings.firstDay ? 1 : 0;
|
|
return f.isInteger(a) && (f.isDate(c) || b.isArray(c)) ? (a = a % 7 + e, a === d.create(c).day + 1) : f.isInteger(c) && (f.isDate(a) || b.isArray(a)) ? (c = c % 7 + e, c === d.create(a).day + 1) : b.isPlainObject(a) && b.isPlainObject(c) ? d.overlapRanges(a, c) : !1
|
|
}, c.prototype.flipEnable = function(a) {
|
|
var b = this.item;
|
|
b.enable = a || (-1 == b.enable ? 1 : -1)
|
|
}, c.prototype.deactivate = function(a, c) {
|
|
var d = this,
|
|
e = d.item.disable.slice(0);
|
|
return "flip" == c ? d.flipEnable() : c === !1 ? (d.flipEnable(1), e = []) : c === !0 ? (d.flipEnable(-1), e = []) : c.map(function(a) {
|
|
for (var c, g = 0; g < e.length; g += 1)
|
|
if (d.isDateExact(a, e[g])) {
|
|
c = !0;
|
|
break
|
|
} c || (f.isInteger(a) || f.isDate(a) || b.isArray(a) || b.isPlainObject(a) && a.from && a.to) && e.push(a)
|
|
}), e
|
|
}, c.prototype.activate = function(a, c) {
|
|
var d = this,
|
|
e = d.item.disable,
|
|
g = e.length;
|
|
return "flip" == c ? d.flipEnable() : c === !0 ? (d.flipEnable(1), e = []) : c === !1 ? (d.flipEnable(-1), e = []) : c.map(function(a) {
|
|
var c, h, i, j;
|
|
for (i = 0; g > i; i += 1) {
|
|
if (h = e[i], d.isDateExact(h, a)) {
|
|
c = e[i] = null, j = !0;
|
|
break
|
|
}
|
|
if (d.isDateOverlap(h, a)) {
|
|
b.isPlainObject(a) ? (a.inverted = !0, c = a) : b.isArray(a) ? (c = a, c[3] || c.push("inverted")) : f.isDate(a) && (c = [a.getFullYear(), a.getMonth(), a.getDate(), "inverted"]);
|
|
break
|
|
}
|
|
}
|
|
if (c)
|
|
for (i = 0; g > i; i += 1)
|
|
if (d.isDateExact(e[i], a)) {
|
|
e[i] = null;
|
|
break
|
|
} if (j)
|
|
for (i = 0; g > i; i += 1)
|
|
if (d.isDateOverlap(e[i], a)) {
|
|
e[i] = null;
|
|
break
|
|
} c && e.push(c)
|
|
}), e.filter(function(a) {
|
|
return null != a
|
|
})
|
|
}, c.prototype.nodes = function(a) {
|
|
var b = this,
|
|
c = b.settings,
|
|
g = b.item,
|
|
h = g.now,
|
|
i = g.select,
|
|
j = g.highlight,
|
|
k = g.view,
|
|
l = g.disable,
|
|
m = g.min,
|
|
n = g.max,
|
|
o = function(a, b) {
|
|
return c.firstDay && (a.push(a.shift()), b.push(b.shift())), f.node("thead", f.node("tr", f.group({
|
|
min: 0,
|
|
max: d - 1,
|
|
i: 1,
|
|
node: "th",
|
|
item: function(d) {
|
|
return [a[d], c.klass.weekdays, 'scope=col title="' + b[d] + '"']
|
|
}
|
|
})))
|
|
}((c.showWeekdaysFull ? c.weekdaysFull : c.weekdaysLetter).slice(0), c.weekdaysFull.slice(0)),
|
|
p = function(a) {
|
|
return f.node("div", " ", c.klass["nav" + (a ? "Next" : "Prev")] + (a && k.year >= n.year && k.month >= n.month || !a && k.year <= m.year && k.month <= m.month ? " " + c.klass.navDisabled : ""), "data-nav=" + (a || -1) + " " + f.ariaAttr({
|
|
role: "button",
|
|
controls: b.$node[0].id + "_table"
|
|
}) + ' title="' + (a ? c.labelMonthNext : c.labelMonthPrev) + '"')
|
|
},
|
|
q = function(d) {
|
|
var e = c.showMonthsShort ? c.monthsShort : c.monthsFull;
|
|
return "short_months" == d && (e = c.monthsShort), c.selectMonths && void 0 == d ? f.node("select", f.group({
|
|
min: 0,
|
|
max: 11,
|
|
i: 1,
|
|
node: "option",
|
|
item: function(a) {
|
|
return [e[a], 0, "value=" + a + (k.month == a ? " selected" : "") + (k.year == m.year && a < m.month || k.year == n.year && a > n.month ? " disabled" : "")]
|
|
}
|
|
}), c.klass.selectMonth + " browser-default", (a ? "" : "disabled") + " " + f.ariaAttr({
|
|
controls: b.$node[0].id + "_table"
|
|
}) + ' title="' + c.labelMonthSelect + '"') : "short_months" == d ? null != i ? f.node("div", e[i.month]) : f.node("div", e[k.month]) : f.node("div", e[k.month], c.klass.month)
|
|
},
|
|
r = function(d) {
|
|
var e = k.year,
|
|
g = c.selectYears === !0 ? 5 : ~~(c.selectYears / 2);
|
|
if (g) {
|
|
var h = m.year,
|
|
i = n.year,
|
|
j = e - g,
|
|
l = e + g;
|
|
if (h > j && (l += h - j, j = h), l > i) {
|
|
var o = j - h,
|
|
p = l - i;
|
|
j -= o > p ? p : o, l = i
|
|
}
|
|
if (c.selectYears && void 0 == d) return f.node("select", f.group({
|
|
min: j,
|
|
max: l,
|
|
i: 1,
|
|
node: "option",
|
|
item: function(a) {
|
|
return [a, 0, "value=" + a + (e == a ? " selected" : "")]
|
|
}
|
|
}), c.klass.selectYear + " browser-default", (a ? "" : "disabled") + " " + f.ariaAttr({
|
|
controls: b.$node[0].id + "_table"
|
|
}) + ' title="' + c.labelYearSelect + '"')
|
|
}
|
|
return "raw" == d ? f.node("div", e) : f.node("div", e, c.klass.year)
|
|
};
|
|
return createDayLabel = function() {
|
|
return null != i ? f.node("div", i.date) : f.node("div", h.date)
|
|
}, createWeekdayLabel = function() {
|
|
var a;
|
|
a = null != i ? i.day : h.day;
|
|
var b = c.weekdaysFull[a];
|
|
return b
|
|
}, f.node("div", f.node("div", createWeekdayLabel(), "picker__weekday-display") + f.node("div", q("short_months"), c.klass.month_display) + f.node("div", createDayLabel(), c.klass.day_display) + f.node("div", r("raw"), c.klass.year_display), c.klass.date_display) + f.node("div", f.node("div", (c.selectYears ? q() + r() : q() + r()) + p() + p(1), c.klass.header) + f.node("table", o + f.node("tbody", f.group({
|
|
min: 0,
|
|
max: e - 1,
|
|
i: 1,
|
|
node: "tr",
|
|
item: function(a) {
|
|
var e = c.firstDay && 0 === b.create([k.year, k.month, 1]).day ? -7 : 0;
|
|
return [f.group({
|
|
min: d * a - k.day + e + 1,
|
|
max: function() {
|
|
return this.min + d - 1
|
|
},
|
|
i: 1,
|
|
node: "td",
|
|
item: function(a) {
|
|
a = b.create([k.year, k.month, a + (c.firstDay ? 1 : 0)]);
|
|
var d = i && i.pick == a.pick,
|
|
e = j && j.pick == a.pick,
|
|
g = l && b.disabled(a) || a.pick < m.pick || a.pick > n.pick,
|
|
o = f.trigger(b.formats.toString, b, [c.format, a]);
|
|
return [f.node("div", a.date, function(b) {
|
|
return b.push(k.month == a.month ? c.klass.infocus : c.klass.outfocus), h.pick == a.pick && b.push(c.klass.now), d && b.push(c.klass.selected), e && b.push(c.klass.highlighted), g && b.push(c.klass.disabled), b.join(" ")
|
|
}([c.klass.day]), "data-pick=" + a.pick + " " + f.ariaAttr({
|
|
role: "gridcell",
|
|
label: o,
|
|
selected: d && b.$node.val() === o ? !0 : null,
|
|
activedescendant: e ? !0 : null,
|
|
disabled: g ? !0 : null
|
|
})), "", f.ariaAttr({
|
|
role: "presentation"
|
|
})]
|
|
}
|
|
})]
|
|
}
|
|
})), c.klass.table, 'id="' + b.$node[0].id + '_table" ' + f.ariaAttr({
|
|
role: "grid",
|
|
controls: b.$node[0].id,
|
|
readonly: !0
|
|
})), c.klass.calendar_container) + f.node("div", f.node("button", c.today, "btn-flat picker__today", "type=button data-pick=" + h.pick + (a && !b.disabled(h) ? "" : " disabled") + " " + f.ariaAttr({
|
|
controls: b.$node[0].id
|
|
})) + f.node("button", c.clear, "btn-flat picker__clear", "type=button data-clear=1" + (a ? "" : " disabled") + " " + f.ariaAttr({
|
|
controls: b.$node[0].id
|
|
})) + f.node("button", c.close, "btn-flat picker__close", "type=button data-close=true " + (a ? "" : " disabled") + " " + f.ariaAttr({
|
|
controls: b.$node[0].id
|
|
})), c.klass.footer)
|
|
}, c.defaults = function(a) {
|
|
return {
|
|
labelMonthNext: "Next month",
|
|
labelMonthPrev: "Previous month",
|
|
labelMonthSelect: "Select a month",
|
|
labelYearSelect: "Select a year",
|
|
monthsFull: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
|
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
|
weekdaysFull: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
|
weekdaysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
|
weekdaysLetter: ["S", "M", "T", "W", "T", "F", "S"],
|
|
today: "Today",
|
|
clear: "Clear",
|
|
close: "Close",
|
|
format: "d mmmm, yyyy",
|
|
klass: {
|
|
table: a + "table",
|
|
header: a + "header",
|
|
date_display: a + "date-display",
|
|
day_display: a + "day-display",
|
|
month_display: a + "month-display",
|
|
year_display: a + "year-display",
|
|
calendar_container: a + "calendar-container",
|
|
navPrev: a + "nav--prev",
|
|
navNext: a + "nav--next",
|
|
navDisabled: a + "nav--disabled",
|
|
month: a + "month",
|
|
year: a + "year",
|
|
selectMonth: a + "select--month",
|
|
selectYear: a + "select--year",
|
|
weekdays: a + "weekday",
|
|
day: a + "day",
|
|
disabled: a + "day--disabled",
|
|
selected: a + "day--selected",
|
|
highlighted: a + "day--highlighted",
|
|
now: a + "day--today",
|
|
infocus: a + "day--infocus",
|
|
outfocus: a + "day--outfocus",
|
|
footer: a + "footer",
|
|
buttonClear: a + "button--clear",
|
|
buttonToday: a + "button--today",
|
|
buttonClose: a + "button--close"
|
|
}
|
|
}
|
|
}(a.klasses().picker + "__"), a.extend("pickadate", c)
|
|
}), jQuery.easing.jswing = jQuery.easing.swing, jQuery.extend(jQuery.easing, {
|
|
def: "easeOutQuad",
|
|
swing: function(a, b, c, d, e) {
|
|
return jQuery.easing[jQuery.easing.def](a, b, c, d, e)
|
|
},
|
|
easeInQuad: function(a, b, c, d, e) {
|
|
return d * (b /= e) * b + c
|
|
},
|
|
easeOutQuad: function(a, b, c, d, e) {
|
|
return -d * (b /= e) * (b - 2) + c
|
|
},
|
|
easeInOutQuad: function(a, b, c, d, e) {
|
|
return (b /= e / 2) < 1 ? d / 2 * b * b + c : -d / 2 * (--b * (b - 2) - 1) + c
|
|
},
|
|
easeInCubic: function(a, b, c, d, e) {
|
|
return d * (b /= e) * b * b + c
|
|
},
|
|
easeOutCubic: function(a, b, c, d, e) {
|
|
return d * ((b = b / e - 1) * b * b + 1) + c
|
|
},
|
|
easeInOutCubic: function(a, b, c, d, e) {
|
|
return (b /= e / 2) < 1 ? d / 2 * b * b * b + c : d / 2 * ((b -= 2) * b * b + 2) + c
|
|
},
|
|
easeInQuart: function(a, b, c, d, e) {
|
|
return d * (b /= e) * b * b * b + c
|
|
},
|
|
easeOutQuart: function(a, b, c, d, e) {
|
|
return -d * ((b = b / e - 1) * b * b * b - 1) + c
|
|
},
|
|
easeInOutQuart: function(a, b, c, d, e) {
|
|
return (b /= e / 2) < 1 ? d / 2 * b * b * b * b + c : -d / 2 * ((b -= 2) * b * b * b - 2) + c
|
|
},
|
|
easeInQuint: function(a, b, c, d, e) {
|
|
return d * (b /= e) * b * b * b * b + c
|
|
},
|
|
easeOutQuint: function(a, b, c, d, e) {
|
|
return d * ((b = b / e - 1) * b * b * b * b + 1) + c
|
|
},
|
|
easeInOutQuint: function(a, b, c, d, e) {
|
|
return (b /= e / 2) < 1 ? d / 2 * b * b * b * b * b + c : d / 2 * ((b -= 2) * b * b * b * b + 2) + c
|
|
},
|
|
easeInSine: function(a, b, c, d, e) {
|
|
return -d * Math.cos(b / e * (Math.PI / 2)) + d + c
|
|
},
|
|
easeOutSine: function(a, b, c, d, e) {
|
|
return d * Math.sin(b / e * (Math.PI / 2)) + c
|
|
},
|
|
easeInOutSine: function(a, b, c, d, e) {
|
|
return -d / 2 * (Math.cos(Math.PI * b / e) - 1) + c
|
|
},
|
|
easeInExpo: function(a, b, c, d, e) {
|
|
return 0 == b ? c : d * Math.pow(2, 10 * (b / e - 1)) + c
|
|
},
|
|
easeOutExpo: function(a, b, c, d, e) {
|
|
return b == e ? c + d : d * (-Math.pow(2, -10 * b / e) + 1) + c
|
|
},
|
|
easeInOutExpo: function(a, b, c, d, e) {
|
|
return 0 == b ? c : b == e ? c + d : (b /= e / 2) < 1 ? d / 2 * Math.pow(2, 10 * (b - 1)) + c : d / 2 * (-Math.pow(2, -10 * --b) + 2) + c
|
|
},
|
|
easeInCirc: function(a, b, c, d, e) {
|
|
return -d * (Math.sqrt(1 - (b /= e) * b) - 1) + c
|
|
},
|
|
easeOutCirc: function(a, b, c, d, e) {
|
|
return d * Math.sqrt(1 - (b = b / e - 1) * b) + c
|
|
},
|
|
easeInOutCirc: function(a, b, c, d, e) {
|
|
return (b /= e / 2) < 1 ? -d / 2 * (Math.sqrt(1 - b * b) - 1) + c : d / 2 * (Math.sqrt(1 - (b -= 2) * b) + 1) + c
|
|
},
|
|
easeInElastic: function(a, b, c, d, e) {
|
|
var f = 1.70158,
|
|
g = 0,
|
|
h = d;
|
|
if (0 == b) return c;
|
|
if (1 == (b /= e)) return c + d;
|
|
if (g || (g = .3 * e), h < Math.abs(d)) {
|
|
h = d;
|
|
var f = g / 4
|
|
} else var f = g / (2 * Math.PI) * Math.asin(d / h);
|
|
return -(h * Math.pow(2, 10 * (b -= 1)) * Math.sin(2 * (b * e - f) * Math.PI / g)) + c
|
|
},
|
|
easeOutElastic: function(a, b, c, d, e) {
|
|
var f = 1.70158,
|
|
g = 0,
|
|
h = d;
|
|
if (0 == b) return c;
|
|
if (1 == (b /= e)) return c + d;
|
|
if (g || (g = .3 * e), h < Math.abs(d)) {
|
|
h = d;
|
|
var f = g / 4
|
|
} else var f = g / (2 * Math.PI) * Math.asin(d / h);
|
|
return h * Math.pow(2, -10 * b) * Math.sin(2 * (b * e - f) * Math.PI / g) + d + c
|
|
},
|
|
easeInOutElastic: function(a, b, c, d, e) {
|
|
var f = 1.70158,
|
|
g = 0,
|
|
h = d;
|
|
if (0 == b) return c;
|
|
if (2 == (b /= e / 2)) return c + d;
|
|
if (g || (g = .3 * e * 1.5), h < Math.abs(d)) {
|
|
h = d;
|
|
var f = g / 4
|
|
} else var f = g / (2 * Math.PI) * Math.asin(d / h);
|
|
return 1 > b ? -.5 * h * Math.pow(2, 10 * (b -= 1)) * Math.sin(2 * (b * e - f) * Math.PI / g) + c : h * Math.pow(2, -10 * (b -= 1)) * Math.sin(2 * (b * e - f) * Math.PI / g) * .5 + d + c
|
|
},
|
|
easeInBack: function(a, b, c, d, e, f) {
|
|
return void 0 == f && (f = 1.70158), d * (b /= e) * b * ((f + 1) * b - f) + c
|
|
},
|
|
easeOutBack: function(a, b, c, d, e, f) {
|
|
return void 0 == f && (f = 1.70158), d * ((b = b / e - 1) * b * ((f + 1) * b + f) + 1) + c
|
|
},
|
|
easeInOutBack: function(a, b, c, d, e, f) {
|
|
return void 0 == f && (f = 1.70158), (b /= e / 2) < 1 ? d / 2 * b * b * (((f *= 1.525) + 1) * b - f) + c : d / 2 * ((b -= 2) * b * (((f *= 1.525) + 1) * b + f) + 2) + c
|
|
},
|
|
easeInBounce: function(a, b, c, d, e) {
|
|
return d - jQuery.easing.easeOutBounce(a, e - b, 0, d, e) + c
|
|
},
|
|
easeOutBounce: function(a, b, c, d, e) {
|
|
return (b /= e) < 1 / 2.75 ? 7.5625 * d * b * b + c : 2 / 2.75 > b ? d * (7.5625 * (b -= 1.5 / 2.75) * b + .75) + c : 2.5 / 2.75 > b ? d * (7.5625 * (b -= 2.25 / 2.75) * b + .9375) + c : d * (7.5625 * (b -= 2.625 / 2.75) * b + .984375) + c
|
|
},
|
|
easeInOutBounce: function(a, b, c, d, e) {
|
|
return e / 2 > b ? .5 * jQuery.easing.easeInBounce(a, 2 * b, 0, d, e) + c : .5 * jQuery.easing.easeOutBounce(a, 2 * b - e, 0, d, e) + .5 * d + c
|
|
}
|
|
}), ! function(a) {
|
|
function b(a) {
|
|
var b = a.length,
|
|
d = c.type(a);
|
|
return "function" === d || c.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === d || 0 === b || "number" == typeof b && b > 0 && b - 1 in a
|
|
}
|
|
if (!a.jQuery) {
|
|
var c = function(a, b) {
|
|
return new c.fn.init(a, b)
|
|
};
|
|
c.isWindow = function(a) {
|
|
return null != a && a == a.window
|
|
}, c.type = function(a) {
|
|
return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? e[g.call(a)] || "object" : typeof a
|
|
}, c.isArray = Array.isArray || function(a) {
|
|
return "array" === c.type(a)
|
|
}, c.isPlainObject = function(a) {
|
|
var b;
|
|
if (!a || "object" !== c.type(a) || a.nodeType || c.isWindow(a)) return !1;
|
|
try {
|
|
if (a.constructor && !f.call(a, "constructor") && !f.call(a.constructor.prototype, "isPrototypeOf")) return !1
|
|
} catch (d) {
|
|
return !1
|
|
}
|
|
for (b in a);
|
|
return void 0 === b || f.call(a, b)
|
|
}, c.each = function(a, c, d) {
|
|
var e, f = 0,
|
|
g = a.length,
|
|
h = b(a);
|
|
if (d) {
|
|
if (h)
|
|
for (; g > f && (e = c.apply(a[f], d), e !== !1); f++);
|
|
else
|
|
for (f in a)
|
|
if (e = c.apply(a[f], d), e === !1) break
|
|
} else if (h)
|
|
for (; g > f && (e = c.call(a[f], f, a[f]), e !== !1); f++);
|
|
else
|
|
for (f in a)
|
|
if (e = c.call(a[f], f, a[f]), e === !1) break;
|
|
return a
|
|
}, c.data = function(a, b, e) {
|
|
if (void 0 === e) {
|
|
var f = a[c.expando],
|
|
g = f && d[f];
|
|
if (void 0 === b) return g;
|
|
if (g && b in g) return g[b]
|
|
} else if (void 0 !== b) {
|
|
var f = a[c.expando] || (a[c.expando] = ++c.uuid);
|
|
return d[f] = d[f] || {}, d[f][b] = e, e
|
|
}
|
|
}, c.removeData = function(a, b) {
|
|
var e = a[c.expando],
|
|
f = e && d[e];
|
|
f && c.each(b, function(a, b) {
|
|
delete f[b]
|
|
})
|
|
}, c.extend = function() {
|
|
var a, b, d, e, f, g, h = arguments[0] || {},
|
|
i = 1,
|
|
j = arguments.length,
|
|
k = !1;
|
|
for ("boolean" == typeof h && (k = h, h = arguments[i] || {}, i++), "object" != typeof h && "function" !== c.type(h) && (h = {}), i === j && (h = this, i--); j > i; i++)
|
|
if (null != (f = arguments[i]))
|
|
for (e in f) a = h[e], d = f[e], h !== d && (k && d && (c.isPlainObject(d) || (b = c.isArray(d))) ? (b ? (b = !1, g = a && c.isArray(a) ? a : []) : g = a && c.isPlainObject(a) ? a : {}, h[e] = c.extend(k, g, d)) : void 0 !== d && (h[e] = d));
|
|
return h
|
|
}, c.queue = function(a, d, e) {
|
|
function f(a, c) {
|
|
var d = c || [];
|
|
return null != a && (b(Object(a)) ? ! function(a, b) {
|
|
for (var c = +b.length, d = 0, e = a.length; c > d;) a[e++] = b[d++];
|
|
if (c !== c)
|
|
for (; void 0 !== b[d];) a[e++] = b[d++];
|
|
return a.length = e, a
|
|
}(d, "string" == typeof a ? [a] : a) : [].push.call(d, a)), d
|
|
}
|
|
if (a) {
|
|
d = (d || "fx") + "queue";
|
|
var g = c.data(a, d);
|
|
return e ? (!g || c.isArray(e) ? g = c.data(a, d, f(e)) : g.push(e), g) : g || []
|
|
}
|
|
}, c.dequeue = function(a, b) {
|
|
c.each(a.nodeType ? [a] : a, function(a, d) {
|
|
b = b || "fx";
|
|
var e = c.queue(d, b),
|
|
f = e.shift();
|
|
"inprogress" === f && (f = e.shift()), f && ("fx" === b && e.unshift("inprogress"), f.call(d, function() {
|
|
c.dequeue(d, b)
|
|
}))
|
|
})
|
|
}, c.fn = c.prototype = {
|
|
init: function(a) {
|
|
if (a.nodeType) return this[0] = a, this;
|
|
throw new Error("Not a DOM node.")
|
|
},
|
|
offset: function() {
|
|
var b = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : {
|
|
top: 0,
|
|
left: 0
|
|
};
|
|
return {
|
|
top: b.top + (a.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0),
|
|
left: b.left + (a.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0)
|
|
}
|
|
},
|
|
position: function() {
|
|
function a() {
|
|
for (var a = this.offsetParent || document; a && "html" === !a.nodeType.toLowerCase && "static" === a.style.position;) a = a.offsetParent;
|
|
return a || document
|
|
}
|
|
var b = this[0],
|
|
a = a.apply(b),
|
|
d = this.offset(),
|
|
e = /^(?:body|html)$/i.test(a.nodeName) ? {
|
|
top: 0,
|
|
left: 0
|
|
} : c(a).offset();
|
|
return d.top -= parseFloat(b.style.marginTop) || 0, d.left -= parseFloat(b.style.marginLeft) || 0, a.style && (e.top += parseFloat(a.style.borderTopWidth) || 0, e.left += parseFloat(a.style.borderLeftWidth) || 0), {
|
|
top: d.top - e.top,
|
|
left: d.left - e.left
|
|
}
|
|
}
|
|
};
|
|
var d = {};
|
|
c.expando = "velocity" + (new Date).getTime(), c.uuid = 0;
|
|
for (var e = {}, f = e.hasOwnProperty, g = e.toString, h = "Boolean Number String Function Array Date RegExp Object Error".split(" "), i = 0; i < h.length; i++) e["[object " + h[i] + "]"] = h[i].toLowerCase();
|
|
c.fn.init.prototype = c.fn, a.Velocity = {
|
|
Utilities: c
|
|
}
|
|
}
|
|
}(window),
|
|
function(a) {
|
|
"object" == typeof module && "object" == typeof module.exports ? module.exports = a() : "function" == typeof define && define.amd ? define(a) : a()
|
|
}(function() {
|
|
return function(a, b, c, d) {
|
|
function e(a) {
|
|
for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) {
|
|
var e = a[b];
|
|
e && d.push(e)
|
|
}
|
|
return d
|
|
}
|
|
|
|
function f(a) {
|
|
return p.isWrapped(a) ? a = [].slice.call(a) : p.isNode(a) && (a = [a]), a
|
|
}
|
|
|
|
function g(a) {
|
|
var b = m.data(a, "velocity");
|
|
return null === b ? d : b
|
|
}
|
|
|
|
function h(a) {
|
|
return function(b) {
|
|
return Math.round(b * a) * (1 / a)
|
|
}
|
|
}
|
|
|
|
function i(a, c, d, e) {
|
|
function f(a, b) {
|
|
return 1 - 3 * b + 3 * a
|
|
}
|
|
|
|
function g(a, b) {
|
|
return 3 * b - 6 * a
|
|
}
|
|
|
|
function h(a) {
|
|
return 3 * a
|
|
}
|
|
|
|
function i(a, b, c) {
|
|
return ((f(b, c) * a + g(b, c)) * a + h(b)) * a
|
|
}
|
|
|
|
function j(a, b, c) {
|
|
return 3 * f(b, c) * a * a + 2 * g(b, c) * a + h(b)
|
|
}
|
|
|
|
function k(b, c) {
|
|
for (var e = 0; p > e; ++e) {
|
|
var f = j(c, a, d);
|
|
if (0 === f) return c;
|
|
var g = i(c, a, d) - b;
|
|
c -= g / f
|
|
}
|
|
return c
|
|
}
|
|
|
|
function l() {
|
|
for (var b = 0; t > b; ++b) x[b] = i(b * u, a, d)
|
|
}
|
|
|
|
function m(b, c, e) {
|
|
var f, g, h = 0;
|
|
do g = c + (e - c) / 2, f = i(g, a, d) - b, f > 0 ? e = g : c = g; while (Math.abs(f) > r && ++h < s);
|
|
return g
|
|
}
|
|
|
|
function n(b) {
|
|
for (var c = 0, e = 1, f = t - 1; e != f && x[e] <= b; ++e) c += u;
|
|
--e;
|
|
var g = (b - x[e]) / (x[e + 1] - x[e]),
|
|
h = c + g * u,
|
|
i = j(h, a, d);
|
|
return i >= q ? k(b, h) : 0 == i ? h : m(b, c, c + u)
|
|
}
|
|
|
|
function o() {
|
|
y = !0, (a != c || d != e) && l()
|
|
}
|
|
var p = 4,
|
|
q = .001,
|
|
r = 1e-7,
|
|
s = 10,
|
|
t = 11,
|
|
u = 1 / (t - 1),
|
|
v = "Float32Array" in b;
|
|
|
|
if (4 !== arguments.length) return !1;
|
|
for (var w = 0; 4 > w; ++w)
|
|
if ("number" != typeof arguments[w] || isNaN(arguments[w]) || !isFinite(arguments[w])) return !1;
|
|
a = Math.min(a, 1), d = Math.min(d, 1), a = Math.max(a, 0), d = Math.max(d, 0);
|
|
var x = v ? new Float32Array(t) : new Array(t),
|
|
y = !1,
|
|
z = function(b) {
|
|
return y || o(), a === c && d === e ? b : 0 === b ? 0 : 1 === b ? 1 : i(n(b), c, e)
|
|
};
|
|
z.getControlPoints = function() {
|
|
return [{
|
|
x: a,
|
|
y: c
|
|
}, {
|
|
x: d,
|
|
y: e
|
|
}]
|
|
};
|
|
var A = "generateBezier(" + [a, c, d, e] + ")";
|
|
return z.toString = function() {
|
|
return A
|
|
}, z
|
|
}
|
|
|
|
function j(a, b) {
|
|
var c = a;
|
|
return p.isString(a) ? t.Easings[a] || (c = !1) : c = p.isArray(a) && 1 === a.length ? h.apply(null, a) : p.isArray(a) && 2 === a.length ? u.apply(null, a.concat([b])) : p.isArray(a) && 4 === a.length ? i.apply(null, a) : !1, c === !1 && (c = t.Easings[t.defaults.easing] ? t.defaults.easing : s), c
|
|
}
|
|
|
|
function k(a) {
|
|
if (a)
|
|
for (var b = (new Date).getTime(), c = 0, e = t.State.calls.length; e > c; c++)
|
|
if (t.State.calls[c]) {
|
|
var f = t.State.calls[c],
|
|
h = f[0],
|
|
i = f[2],
|
|
j = f[3],
|
|
n = !!j;
|
|
j || (j = t.State.calls[c][3] = b - 16);
|
|
for (var o = Math.min((b - j) / i.duration, 1), q = 0, r = h.length; r > q; q++) {
|
|
var s = h[q],
|
|
u = s.element;
|
|
if (g(u)) {
|
|
var w = !1;
|
|
if (i.display !== d && null !== i.display && "none" !== i.display) {
|
|
if ("flex" === i.display) {
|
|
var y = ["-webkit-box", "-moz-box", "-ms-flexbox", "-webkit-flex"];
|
|
m.each(y, function(a, b) {
|
|
v.setPropertyValue(u, "display", b)
|
|
})
|
|
}
|
|
v.setPropertyValue(u, "display", i.display)
|
|
}
|
|
i.visibility !== d && "hidden" !== i.visibility && v.setPropertyValue(u, "visibility", i.visibility);
|
|
for (var z in s)
|
|
if ("element" !== z) {
|
|
var A, B = s[z],
|
|
C = p.isString(B.easing) ? t.Easings[B.easing] : B.easing;
|
|
if (1 === o) A = B.endValue;
|
|
else if (A = B.startValue + (B.endValue - B.startValue) * C(o), !n && A === B.currentValue) continue;
|
|
if (B.currentValue = A, v.Hooks.registered[z]) {
|
|
var D = v.Hooks.getRoot(z),
|
|
E = g(u).rootPropertyValueCache[D];
|
|
E && (B.rootPropertyValue = E)
|
|
}
|
|
var F = v.setPropertyValue(u, z, B.currentValue + (0 === parseFloat(A) ? "" : B.unitType), B.rootPropertyValue, B.scrollData);
|
|
v.Hooks.registered[z] && (g(u).rootPropertyValueCache[D] = v.Normalizations.registered[D] ? v.Normalizations.registered[D]("extract", null, F[1]) : F[1]), "transform" === F[0] && (w = !0)
|
|
} i.mobileHA && g(u).transformCache.translate3d === d && (g(u).transformCache.translate3d = "(0px, 0px, 0px)", w = !0), w && v.flushTransformCache(u)
|
|
}
|
|
}
|
|
i.display !== d && "none" !== i.display && (t.State.calls[c][2].display = !1), i.visibility !== d && "hidden" !== i.visibility && (t.State.calls[c][2].visibility = !1), i.progress && i.progress.call(f[1], f[1], o, Math.max(0, j + i.duration - b), j), 1 === o && l(c)
|
|
} t.State.isTicking && x(k)
|
|
}
|
|
|
|
function l(a, b) {
|
|
if (!t.State.calls[a]) return !1;
|
|
for (var c = t.State.calls[a][0], e = t.State.calls[a][1], f = t.State.calls[a][2], h = t.State.calls[a][4], i = !1, j = 0, k = c.length; k > j; j++) {
|
|
var l = c[j].element;
|
|
if (b || f.loop || ("none" === f.display && v.setPropertyValue(l, "display", f.display), "hidden" === f.visibility && v.setPropertyValue(l, "visibility", f.visibility)), f.loop !== !0 && (m.queue(l)[1] === d || !/\.velocityQueueEntryFlag/i.test(m.queue(l)[1])) && g(l)) {
|
|
g(l).isAnimating = !1, g(l).rootPropertyValueCache = {};
|
|
var n = !1;
|
|
m.each(v.Lists.transforms3D, function(a, b) {
|
|
var c = /^scale/.test(b) ? 1 : 0,
|
|
e = g(l).transformCache[b];
|
|
g(l).transformCache[b] !== d && new RegExp("^\\(" + c + "[^.]").test(e) && (n = !0, delete g(l).transformCache[b])
|
|
}), f.mobileHA && (n = !0, delete g(l).transformCache.translate3d), n && v.flushTransformCache(l), v.Values.removeClass(l, "velocity-animating")
|
|
}
|
|
if (!b && f.complete && !f.loop && j === k - 1) try {
|
|
f.complete.call(e, e)
|
|
} catch (o) {
|
|
setTimeout(function() {
|
|
throw o
|
|
}, 1)
|
|
}
|
|
h && f.loop !== !0 && h(e), f.loop !== !0 || b || (m.each(g(l).tweensContainer, function(a, b) {
|
|
/^rotate/.test(a) && 360 === parseFloat(b.endValue) && (b.endValue = 0, b.startValue = 360)
|
|
}), t(l, "reverse", {
|
|
loop: !0,
|
|
delay: f.delay
|
|
})), f.queue !== !1 && m.dequeue(l, f.queue)
|
|
}
|
|
t.State.calls[a] = !1;
|
|
for (var p = 0, q = t.State.calls.length; q > p; p++)
|
|
if (t.State.calls[p] !== !1) {
|
|
i = !0;
|
|
break
|
|
} i === !1 && (t.State.isTicking = !1, delete t.State.calls, t.State.calls = [])
|
|
}
|
|
var m, n = function() {
|
|
if (c.documentMode) return c.documentMode;
|
|
for (var a = 7; a > 4; a--) {
|
|
var b = c.createElement("div");
|
|
if (b.innerHTML = "<!--[if IE " + a + "]><span></span><![endif]-->", b.getElementsByTagName("span").length) return b = null, a
|
|
}
|
|
return d
|
|
}(),
|
|
o = function() {
|
|
var a = 0;
|
|
return b.webkitRequestAnimationFrame || b.mozRequestAnimationFrame || function(b) {
|
|
var c, d = (new Date).getTime();
|
|
return c = Math.max(0, 16 - (d - a)), a = d + c, setTimeout(function() {
|
|
b(d + c)
|
|
}, c)
|
|
}
|
|
}(),
|
|
p = {
|
|
isString: function(a) {
|
|
return "string" == typeof a
|
|
},
|
|
isArray: Array.isArray || function(a) {
|
|
return "[object Array]" === Object.prototype.toString.call(a)
|
|
},
|
|
isFunction: function(a) {
|
|
return "[object Function]" === Object.prototype.toString.call(a)
|
|
},
|
|
isNode: function(a) {
|
|
return a && a.nodeType
|
|
},
|
|
isNodeList: function(a) {
|
|
return "object" == typeof a && /^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(a)) && a.length !== d && (0 === a.length || "object" == typeof a[0] && a[0].nodeType > 0)
|
|
},
|
|
isWrapped: function(a) {
|
|
return a && (a.jquery || b.Zepto && b.Zepto.zepto.isZ(a))
|
|
},
|
|
isSVG: function(a) {
|
|
return b.SVGElement && a instanceof b.SVGElement
|
|
},
|
|
isEmptyObject: function(a) {
|
|
for (var b in a) return !1;
|
|
return !0
|
|
}
|
|
},
|
|
q = !1;
|
|
if (a.fn && a.fn.jquery ? (m = a, q = !0) : m = b.Velocity.Utilities, 8 >= n && !q) throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");
|
|
if (7 >= n) return void(jQuery.fn.velocity = jQuery.fn.animate);
|
|
var r = 400,
|
|
s = "swing",
|
|
t = {
|
|
State: {
|
|
isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
|
|
isAndroid: /Android/i.test(navigator.userAgent),
|
|
isGingerbread: /Android 2\.3\.[3-7]/i.test(navigator.userAgent),
|
|
isChrome: b.chrome,
|
|
isFirefox: /Firefox/i.test(navigator.userAgent),
|
|
prefixElement: c.createElement("div"),
|
|
prefixMatches: {},
|
|
scrollAnchor: null,
|
|
scrollPropertyLeft: null,
|
|
scrollPropertyTop: null,
|
|
isTicking: !1,
|
|
calls: []
|
|
},
|
|
CSS: {},
|
|
Utilities: m,
|
|
Redirects: {},
|
|
Easings: {},
|
|
Promise: b.Promise,
|
|
defaults: {
|
|
queue: "",
|
|
duration: r,
|
|
easing: s,
|
|
begin: d,
|
|
complete: d,
|
|
progress: d,
|
|
display: d,
|
|
visibility: d,
|
|
loop: !1,
|
|
delay: !1,
|
|
mobileHA: !0,
|
|
_cacheValues: !0
|
|
},
|
|
init: function(a) {
|
|
m.data(a, "velocity", {
|
|
isSVG: p.isSVG(a),
|
|
isAnimating: !1,
|
|
computedStyle: null,
|
|
tweensContainer: null,
|
|
rootPropertyValueCache: {},
|
|
transformCache: {}
|
|
})
|
|
},
|
|
hook: null,
|
|
mock: !1,
|
|
version: {
|
|
major: 1,
|
|
minor: 1,
|
|
patch: 0
|
|
},
|
|
debug: !1
|
|
};
|
|
b.pageYOffset !== d ? (t.State.scrollAnchor = b, t.State.scrollPropertyLeft = "pageXOffset", t.State.scrollPropertyTop = "pageYOffset") : (t.State.scrollAnchor = c.documentElement || c.body.parentNode || c.body, t.State.scrollPropertyLeft = "scrollLeft", t.State.scrollPropertyTop = "scrollTop");
|
|
var u = function() {
|
|
function a(a) {
|
|
return -a.tension * a.x - a.friction * a.v
|
|
}
|
|
|
|
function b(b, c, d) {
|
|
var e = {
|
|
x: b.x + d.dx * c,
|
|
v: b.v + d.dv * c,
|
|
tension: b.tension,
|
|
friction: b.friction
|
|
};
|
|
return {
|
|
dx: e.v,
|
|
dv: a(e)
|
|
}
|
|
}
|
|
|
|
function c(c, d) {
|
|
var e = {
|
|
dx: c.v,
|
|
dv: a(c)
|
|
},
|
|
f = b(c, .5 * d, e),
|
|
g = b(c, .5 * d, f),
|
|
h = b(c, d, g),
|
|
i = 1 / 6 * (e.dx + 2 * (f.dx + g.dx) + h.dx),
|
|
j = 1 / 6 * (e.dv + 2 * (f.dv + g.dv) + h.dv);
|
|
return c.x = c.x + i * d, c.v = c.v + j * d, c
|
|
}
|
|
return function d(a, b, e) {
|
|
var f, g, h, i = {
|
|
x: -1,
|
|
v: 0,
|
|
tension: null,
|
|
friction: null
|
|
},
|
|
j = [0],
|
|
k = 0,
|
|
l = 1e-4,
|
|
m = .016;
|
|
for (a = parseFloat(a) || 500, b = parseFloat(b) || 20, e = e || null, i.tension = a, i.friction = b, f = null !== e, f ? (k = d(a, b), g = k / e * m) : g = m; h = c(h || i, g), j.push(1 + h.x), k += 16, Math.abs(h.x) > l && Math.abs(h.v) > l;);
|
|
return f ? function(a) {
|
|
return j[a * (j.length - 1) | 0]
|
|
} : k
|
|
}
|
|
}();
|
|
t.Easings = {
|
|
linear: function(a) {
|
|
return a
|
|
},
|
|
swing: function(a) {
|
|
return .5 - Math.cos(a * Math.PI) / 2
|
|
},
|
|
spring: function(a) {
|
|
return 1 - Math.cos(4.5 * a * Math.PI) * Math.exp(6 * -a)
|
|
}
|
|
}, m.each([
|
|
["ease", [.25, .1, .25, 1]],
|
|
["ease-in", [.42, 0, 1, 1]],
|
|
["ease-out", [0, 0, .58, 1]],
|
|
["ease-in-out", [.42, 0, .58, 1]],
|
|
["easeInSine", [.47, 0, .745, .715]],
|
|
["easeOutSine", [.39, .575, .565, 1]],
|
|
["easeInOutSine", [.445, .05, .55, .95]],
|
|
["easeInQuad", [.55, .085, .68, .53]],
|
|
["easeOutQuad", [.25, .46, .45, .94]],
|
|
["easeInOutQuad", [.455, .03, .515, .955]],
|
|
["easeInCubic", [.55, .055, .675, .19]],
|
|
["easeOutCubic", [.215, .61, .355, 1]],
|
|
["easeInOutCubic", [.645, .045, .355, 1]],
|
|
["easeInQuart", [.895, .03, .685, .22]],
|
|
["easeOutQuart", [.165, .84, .44, 1]],
|
|
["easeInOutQuart", [.77, 0, .175, 1]],
|
|
["easeInQuint", [.755, .05, .855, .06]],
|
|
["easeOutQuint", [.23, 1, .32, 1]],
|
|
["easeInOutQuint", [.86, 0, .07, 1]],
|
|
["easeInExpo", [.95, .05, .795, .035]],
|
|
["easeOutExpo", [.19, 1, .22, 1]],
|
|
["easeInOutExpo", [1, 0, 0, 1]],
|
|
["easeInCirc", [.6, .04, .98, .335]],
|
|
["easeOutCirc", [.075, .82, .165, 1]],
|
|
["easeInOutCirc", [.785, .135, .15, .86]]
|
|
], function(a, b) {
|
|
t.Easings[b[0]] = i.apply(null, b[1])
|
|
});
|
|
var v = t.CSS = {
|
|
RegEx: {
|
|
isHex: /^#([A-f\d]{3}){1,2}$/i,
|
|
valueUnwrap: /^[A-z]+\((.*)\)$/i,
|
|
wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,
|
|
valueSplit: /([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi
|
|
},
|
|
Lists: {
|
|
colors: ["fill", "stroke", "stopColor", "color", "backgroundColor", "borderColor", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor", "outlineColor"],
|
|
transformsBase: ["translateX", "translateY", "scale", "scaleX", "scaleY", "skewX", "skewY", "rotateZ"],
|
|
transforms3D: ["transformPerspective", "translateZ", "scaleZ", "rotateX", "rotateY"]
|
|
},
|
|
Hooks: {
|
|
templates: {
|
|
textShadow: ["Color X Y Blur", "black 0px 0px 0px"],
|
|
boxShadow: ["Color X Y Blur Spread", "black 0px 0px 0px 0px"],
|
|
clip: ["Top Right Bottom Left", "0px 0px 0px 0px"],
|
|
backgroundPosition: ["X Y", "0% 0%"],
|
|
transformOrigin: ["X Y Z", "50% 50% 0px"],
|
|
perspectiveOrigin: ["X Y", "50% 50%"]
|
|
},
|
|
registered: {},
|
|
register: function() {
|
|
for (var a = 0; a < v.Lists.colors.length; a++) {
|
|
var b = "color" === v.Lists.colors[a] ? "0 0 0 1" : "255 255 255 1";
|
|
v.Hooks.templates[v.Lists.colors[a]] = ["Red Green Blue Alpha", b]
|
|
}
|
|
var c, d, e;
|
|
if (n)
|
|
for (c in v.Hooks.templates) {
|
|
d = v.Hooks.templates[c], e = d[0].split(" ");
|
|
var f = d[1].match(v.RegEx.valueSplit);
|
|
"Color" === e[0] && (e.push(e.shift()), f.push(f.shift()), v.Hooks.templates[c] = [e.join(" "), f.join(" ")])
|
|
}
|
|
for (c in v.Hooks.templates) {
|
|
d = v.Hooks.templates[c], e = d[0].split(" ");
|
|
for (var a in e) {
|
|
var g = c + e[a],
|
|
h = a;
|
|
v.Hooks.registered[g] = [c, h]
|
|
}
|
|
}
|
|
},
|
|
getRoot: function(a) {
|
|
var b = v.Hooks.registered[a];
|
|
return b ? b[0] : a
|
|
},
|
|
cleanRootPropertyValue: function(a, b) {
|
|
return v.RegEx.valueUnwrap.test(b) && (b = b.match(v.RegEx.valueUnwrap)[1]), v.Values.isCSSNullValue(b) && (b = v.Hooks.templates[a][1]), b
|
|
},
|
|
extractValue: function(a, b) {
|
|
var c = v.Hooks.registered[a];
|
|
if (c) {
|
|
var d = c[0],
|
|
e = c[1];
|
|
return b = v.Hooks.cleanRootPropertyValue(d, b), b.toString().match(v.RegEx.valueSplit)[e]
|
|
}
|
|
return b
|
|
},
|
|
injectValue: function(a, b, c) {
|
|
var d = v.Hooks.registered[a];
|
|
if (d) {
|
|
var e, f, g = d[0],
|
|
h = d[1];
|
|
return c = v.Hooks.cleanRootPropertyValue(g, c), e = c.toString().match(v.RegEx.valueSplit), e[h] = b, f = e.join(" ")
|
|
}
|
|
return c
|
|
}
|
|
},
|
|
Normalizations: {
|
|
registered: {
|
|
clip: function(a, b, c) {
|
|
switch (a) {
|
|
case "name":
|
|
return "clip";
|
|
case "extract":
|
|
var d;
|
|
return v.RegEx.wrappedValueAlreadyExtracted.test(c) ? d = c : (d = c.toString().match(v.RegEx.valueUnwrap), d = d ? d[1].replace(/,(\s+)?/g, " ") : c), d;
|
|
case "inject":
|
|
return "rect(" + c + ")"
|
|
}
|
|
},
|
|
blur: function(a, b, c) {
|
|
switch (a) {
|
|
case "name":
|
|
return "-webkit-filter";
|
|
case "extract":
|
|
var d = parseFloat(c);
|
|
if (!d && 0 !== d) {
|
|
var e = c.toString().match(/blur\(([0-9]+[A-z]+)\)/i);
|
|
d = e ? e[1] : 0
|
|
}
|
|
return d;
|
|
case "inject":
|
|
return parseFloat(c) ? "blur(" + c + ")" : "none"
|
|
}
|
|
},
|
|
opacity: function(a, b, c) {
|
|
if (8 >= n) switch (a) {
|
|
case "name":
|
|
return "filter";
|
|
case "extract":
|
|
var d = c.toString().match(/alpha\(opacity=(.*)\)/i);
|
|
return c = d ? d[1] / 100 : 1;
|
|
case "inject":
|
|
return b.style.zoom = 1, parseFloat(c) >= 1 ? "" : "alpha(opacity=" + parseInt(100 * parseFloat(c), 10) + ")"
|
|
} else switch (a) {
|
|
case "name":
|
|
return "opacity";
|
|
case "extract":
|
|
return c;
|
|
case "inject":
|
|
return c
|
|
}
|
|
}
|
|
},
|
|
register: function() {
|
|
9 >= n || t.State.isGingerbread || (v.Lists.transformsBase = v.Lists.transformsBase.concat(v.Lists.transforms3D));
|
|
for (var a = 0; a < v.Lists.transformsBase.length; a++) ! function() {
|
|
var b = v.Lists.transformsBase[a];
|
|
v.Normalizations.registered[b] = function(a, c, e) {
|
|
switch (a) {
|
|
case "name":
|
|
return "transform";
|
|
case "extract":
|
|
return g(c) === d || g(c).transformCache[b] === d ? /^scale/i.test(b) ? 1 : 0 : g(c).transformCache[b].replace(/[()]/g, "");
|
|
case "inject":
|
|
var f = !1;
|
|
switch (b.substr(0, b.length - 1)) {
|
|
case "translate":
|
|
f = !/(%|px|em|rem|vw|vh|\d)$/i.test(e);
|
|
break;
|
|
case "scal":
|
|
case "scale":
|
|
t.State.isAndroid && g(c).transformCache[b] === d && 1 > e && (e = 1), f = !/(\d)$/i.test(e);
|
|
break;
|
|
case "skew":
|
|
f = !/(deg|\d)$/i.test(e);
|
|
break;
|
|
case "rotate":
|
|
f = !/(deg|\d)$/i.test(e)
|
|
}
|
|
return f || (g(c).transformCache[b] = "(" + e + ")"), g(c).transformCache[b]
|
|
}
|
|
}
|
|
}();
|
|
for (var a = 0; a < v.Lists.colors.length; a++) ! function() {
|
|
var b = v.Lists.colors[a];
|
|
v.Normalizations.registered[b] = function(a, c, e) {
|
|
switch (a) {
|
|
case "name":
|
|
return b;
|
|
case "extract":
|
|
var f;
|
|
if (v.RegEx.wrappedValueAlreadyExtracted.test(e)) f = e;
|
|
else {
|
|
var g, h = {
|
|
black: "rgb(0, 0, 0)",
|
|
blue: "rgb(0, 0, 255)",
|
|
gray: "rgb(128, 128, 128)",
|
|
green: "rgb(0, 128, 0)",
|
|
red: "rgb(255, 0, 0)",
|
|
white: "rgb(255, 255, 255)"
|
|
};
|
|
/^[A-z]+$/i.test(e) ? g = h[e] !== d ? h[e] : h.black : v.RegEx.isHex.test(e) ? g = "rgb(" + v.Values.hexToRgb(e).join(" ") + ")" : /^rgba?\(/i.test(e) || (g = h.black), f = (g || e).toString().match(v.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g, " ")
|
|
}
|
|
return 8 >= n || 3 !== f.split(" ").length || (f += " 1"), f;
|
|
case "inject":
|
|
return 8 >= n ? 4 === e.split(" ").length && (e = e.split(/\s+/).slice(0, 3).join(" ")) : 3 === e.split(" ").length && (e += " 1"), (8 >= n ? "rgb" : "rgba") + "(" + e.replace(/\s+/g, ",").replace(/\.(\d)+(?=,)/g, "") + ")"
|
|
}
|
|
}
|
|
}()
|
|
}
|
|
},
|
|
Names: {
|
|
camelCase: function(a) {
|
|
return a.replace(/-(\w)/g, function(a, b) {
|
|
return b.toUpperCase()
|
|
})
|
|
},
|
|
SVGAttribute: function(a) {
|
|
var b = "width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";
|
|
return (n || t.State.isAndroid && !t.State.isChrome) && (b += "|transform"), new RegExp("^(" + b + ")$", "i").test(a)
|
|
},
|
|
prefixCheck: function(a) {
|
|
if (t.State.prefixMatches[a]) return [t.State.prefixMatches[a], !0];
|
|
for (var b = ["", "Webkit", "Moz", "ms", "O"], c = 0, d = b.length; d > c; c++) {
|
|
var e;
|
|
if (e = 0 === c ? a : b[c] + a.replace(/^\w/, function(a) {
|
|
return a.toUpperCase()
|
|
}), p.isString(t.State.prefixElement.style[e])) return t.State.prefixMatches[a] = e, [e, !0]
|
|
}
|
|
return [a, !1]
|
|
}
|
|
},
|
|
Values: {
|
|
hexToRgb: function(a) {
|
|
var b, c = /^#?([a-f\d])([a-f\d])([a-f\d])$/i,
|
|
d = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;
|
|
return a = a.replace(c, function(a, b, c, d) {
|
|
return b + b + c + c + d + d
|
|
}), b = d.exec(a), b ? [parseInt(b[1], 16), parseInt(b[2], 16), parseInt(b[3], 16)] : [0, 0, 0]
|
|
},
|
|
isCSSNullValue: function(a) {
|
|
return 0 == a || /^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a)
|
|
},
|
|
getUnitType: function(a) {
|
|
return /^(rotate|skew)/i.test(a) ? "deg" : /(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a) ? "" : "px"
|
|
},
|
|
getDisplayType: function(a) {
|
|
var b = a && a.tagName.toString().toLowerCase();
|
|
return /^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b) ? "inline" : /^(li)$/i.test(b) ? "list-item" : /^(tr)$/i.test(b) ? "table-row" : "block"
|
|
},
|
|
addClass: function(a, b) {
|
|
a.classList ? a.classList.add(b) : a.className += (a.className.length ? " " : "") + b
|
|
},
|
|
removeClass: function(a, b) {
|
|
a.classList ? a.classList.remove(b) : a.className = a.className.toString().replace(new RegExp("(^|\\s)" + b.split(" ").join("|") + "(\\s|$)", "gi"), " ")
|
|
}
|
|
},
|
|
getPropertyValue: function(a, c, e, f) {
|
|
function h(a, c) {
|
|
function e() {
|
|
j && v.setPropertyValue(a, "display", "none")
|
|
}
|
|
var i = 0;
|
|
if (8 >= n) i = m.css(a, c);
|
|
else {
|
|
var j = !1;
|
|
if (/^(width|height)$/.test(c) && 0 === v.getPropertyValue(a, "display") && (j = !0, v.setPropertyValue(a, "display", v.Values.getDisplayType(a))), !f) {
|
|
if ("height" === c && "border-box" !== v.getPropertyValue(a, "boxSizing").toString().toLowerCase()) {
|
|
var k = a.offsetHeight - (parseFloat(v.getPropertyValue(a, "borderTopWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "borderBottomWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingTop")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingBottom")) || 0);
|
|
return e(), k
|
|
}
|
|
if ("width" === c && "border-box" !== v.getPropertyValue(a, "boxSizing").toString().toLowerCase()) {
|
|
var l = a.offsetWidth - (parseFloat(v.getPropertyValue(a, "borderLeftWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "borderRightWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingLeft")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingRight")) || 0);
|
|
return e(), l
|
|
}
|
|
}
|
|
var o;
|
|
o = g(a) === d ? b.getComputedStyle(a, null) : g(a).computedStyle ? g(a).computedStyle : g(a).computedStyle = b.getComputedStyle(a, null), (n || t.State.isFirefox) && "borderColor" === c && (c = "borderTopColor"), i = 9 === n && "filter" === c ? o.getPropertyValue(c) : o[c], ("" === i || null === i) && (i = a.style[c]), e()
|
|
}
|
|
if ("auto" === i && /^(top|right|bottom|left)$/i.test(c)) {
|
|
var p = h(a, "position");
|
|
("fixed" === p || "absolute" === p && /top|left/i.test(c)) && (i = m(a).position()[c] + "px")
|
|
}
|
|
return i
|
|
}
|
|
var i;
|
|
if (v.Hooks.registered[c]) {
|
|
var j = c,
|
|
k = v.Hooks.getRoot(j);
|
|
e === d && (e = v.getPropertyValue(a, v.Names.prefixCheck(k)[0])), v.Normalizations.registered[k] && (e = v.Normalizations.registered[k]("extract", a, e)), i = v.Hooks.extractValue(j, e)
|
|
} else if (v.Normalizations.registered[c]) {
|
|
var l, o;
|
|
l = v.Normalizations.registered[c]("name", a), "transform" !== l && (o = h(a, v.Names.prefixCheck(l)[0]), v.Values.isCSSNullValue(o) && v.Hooks.templates[c] && (o = v.Hooks.templates[c][1])), i = v.Normalizations.registered[c]("extract", a, o)
|
|
}
|
|
return /^[\d-]/.test(i) || (i = g(a) && g(a).isSVG && v.Names.SVGAttribute(c) ? /^(height|width)$/i.test(c) ? a.getBBox()[c] : a.getAttribute(c) : h(a, v.Names.prefixCheck(c)[0])), v.Values.isCSSNullValue(i) && (i = 0), t.debug >= 2 && console.log("Get " + c + ": " + i), i
|
|
},
|
|
setPropertyValue: function(a, c, d, e, f) {
|
|
var h = c;
|
|
if ("scroll" === c) f.container ? f.container["scroll" + f.direction] = d : "Left" === f.direction ? b.scrollTo(d, f.alternateValue) : b.scrollTo(f.alternateValue, d);
|
|
else if (v.Normalizations.registered[c] && "transform" === v.Normalizations.registered[c]("name", a)) v.Normalizations.registered[c]("inject", a, d), h = "transform", d = g(a).transformCache[c];
|
|
else {
|
|
if (v.Hooks.registered[c]) {
|
|
var i = c,
|
|
j = v.Hooks.getRoot(c);
|
|
e = e || v.getPropertyValue(a, j), d = v.Hooks.injectValue(i, d, e), c = j
|
|
}
|
|
if (v.Normalizations.registered[c] && (d = v.Normalizations.registered[c]("inject", a, d), c = v.Normalizations.registered[c]("name", a)), h = v.Names.prefixCheck(c)[0], 8 >= n) try {
|
|
a.style[h] = d
|
|
} catch (k) {
|
|
t.debug && console.log("Browser does not support [" + d + "] for [" + h + "]")
|
|
} else g(a) && g(a).isSVG && v.Names.SVGAttribute(c) ? a.setAttribute(c, d) : a.style[h] = d;
|
|
t.debug >= 2 && console.log("Set " + c + " (" + h + "): " + d)
|
|
}
|
|
return [h, d]
|
|
},
|
|
flushTransformCache: function(a) {
|
|
function b(b) {
|
|
return parseFloat(v.getPropertyValue(a, b))
|
|
}
|
|
var c = "";
|
|
if ((n || t.State.isAndroid && !t.State.isChrome) && g(a).isSVG) {
|
|
var d = {
|
|
translate: [b("translateX"), b("translateY")],
|
|
skewX: [b("skewX")],
|
|
skewY: [b("skewY")],
|
|
scale: 1 !== b("scale") ? [b("scale"), b("scale")] : [b("scaleX"), b("scaleY")],
|
|
rotate: [b("rotateZ"), 0, 0]
|
|
};
|
|
m.each(g(a).transformCache, function(a) {
|
|
/^translate/i.test(a) ? a = "translate" : /^scale/i.test(a) ? a = "scale" : /^rotate/i.test(a) && (a = "rotate"), d[a] && (c += a + "(" + d[a].join(" ") + ") ", delete d[a])
|
|
})
|
|
} else {
|
|
var e, f;
|
|
m.each(g(a).transformCache, function(b) {
|
|
return e = g(a).transformCache[b], "transformPerspective" === b ? (f = e, !0) : (9 === n && "rotateZ" === b && (b = "rotate"), void(c += b + e + " "))
|
|
}), f && (c = "perspective" + f + " " + c)
|
|
}
|
|
v.setPropertyValue(a, "transform", c)
|
|
}
|
|
};
|
|
v.Hooks.register(), v.Normalizations.register(), t.hook = function(a, b, c) {
|
|
var e = d;
|
|
return a = f(a), m.each(a, function(a, f) {
|
|
if (g(f) === d && t.init(f), c === d) e === d && (e = t.CSS.getPropertyValue(f, b));
|
|
else {
|
|
var h = t.CSS.setPropertyValue(f, b, c);
|
|
"transform" === h[0] && t.CSS.flushTransformCache(f), e = h
|
|
}
|
|
}), e
|
|
};
|
|
var w = function() {
|
|
function a() {
|
|
return i ? C.promise || null : n
|
|
}
|
|
|
|
function h() {
|
|
function a() {
|
|
function a(a, b) {
|
|
var c = d,
|
|
e = d,
|
|
f = d;
|
|
return p.isArray(a) ? (c = a[0], !p.isArray(a[1]) && /^[\d-]/.test(a[1]) || p.isFunction(a[1]) || v.RegEx.isHex.test(a[1]) ? f = a[1] : (p.isString(a[1]) && !v.RegEx.isHex.test(a[1]) || p.isArray(a[1])) && (e = b ? a[1] : j(a[1], i.duration), a[2] !== d && (f = a[2]))) : c = a, b || (e = e || i.easing), p.isFunction(c) && (c = c.call(h, z, y)), p.isFunction(f) && (f = f.call(h, z, y)), [c || 0, e, f]
|
|
}
|
|
|
|
function n(a, b) {
|
|
var c, d;
|
|
return d = (b || "0").toString().toLowerCase().replace(/[%A-z]+$/, function(a) {
|
|
return c = a, ""
|
|
}), c || (c = v.Values.getUnitType(a)), [d, c]
|
|
}
|
|
|
|
function o() {
|
|
var a = {
|
|
myParent: h.parentNode || c.body,
|
|
position: v.getPropertyValue(h, "position"),
|
|
fontSize: v.getPropertyValue(h, "fontSize")
|
|
},
|
|
d = a.position === J.lastPosition && a.myParent === J.lastParent,
|
|
e = a.fontSize === J.lastFontSize;
|
|
J.lastParent = a.myParent, J.lastPosition = a.position, J.lastFontSize = a.fontSize;
|
|
var f = 100,
|
|
i = {};
|
|
if (e && d) i.emToPx = J.lastEmToPx, i.percentToPxWidth = J.lastPercentToPxWidth, i.percentToPxHeight = J.lastPercentToPxHeight;
|
|
else {
|
|
var j = g(h).isSVG ? c.createElementNS("http://www.w3.org/2000/svg", "rect") : c.createElement("div");
|
|
t.init(j), a.myParent.appendChild(j), m.each(["overflow", "overflowX", "overflowY"], function(a, b) {
|
|
t.CSS.setPropertyValue(j, b, "hidden")
|
|
}), t.CSS.setPropertyValue(j, "position", a.position), t.CSS.setPropertyValue(j, "fontSize", a.fontSize), t.CSS.setPropertyValue(j, "boxSizing", "content-box"), m.each(["minWidth", "maxWidth", "width", "minHeight", "maxHeight", "height"], function(a, b) {
|
|
t.CSS.setPropertyValue(j, b, f + "%")
|
|
}), t.CSS.setPropertyValue(j, "paddingLeft", f + "em"), i.percentToPxWidth = J.lastPercentToPxWidth = (parseFloat(v.getPropertyValue(j, "width", null, !0)) || 1) / f, i.percentToPxHeight = J.lastPercentToPxHeight = (parseFloat(v.getPropertyValue(j, "height", null, !0)) || 1) / f, i.emToPx = J.lastEmToPx = (parseFloat(v.getPropertyValue(j, "paddingLeft")) || 1) / f, a.myParent.removeChild(j)
|
|
}
|
|
return null === J.remToPx && (J.remToPx = parseFloat(v.getPropertyValue(c.body, "fontSize")) || 16), null === J.vwToPx && (J.vwToPx = parseFloat(b.innerWidth) / 100, J.vhToPx = parseFloat(b.innerHeight) / 100), i.remToPx = J.remToPx, i.vwToPx = J.vwToPx, i.vhToPx = J.vhToPx, t.debug >= 1 && console.log("Unit ratios: " + JSON.stringify(i), h), i
|
|
}
|
|
if (i.begin && 0 === z) try {
|
|
i.begin.call(q, q)
|
|
} catch (r) {
|
|
setTimeout(function() {
|
|
throw r
|
|
}, 1)
|
|
}
|
|
if ("scroll" === D) {
|
|
var w, x, A, B = /^x$/i.test(i.axis) ? "Left" : "Top",
|
|
E = parseFloat(i.offset) || 0;
|
|
i.container ? p.isWrapped(i.container) || p.isNode(i.container) ? (i.container = i.container[0] || i.container, w = i.container["scroll" + B], A = w + m(h).position()[B.toLowerCase()] + E) : i.container = null : (w = t.State.scrollAnchor[t.State["scrollProperty" + B]], x = t.State.scrollAnchor[t.State["scrollProperty" + ("Left" === B ? "Top" : "Left")]], A = m(h).offset()[B.toLowerCase()] + E), l = {
|
|
scroll: {
|
|
rootPropertyValue: !1,
|
|
startValue: w,
|
|
currentValue: w,
|
|
endValue: A,
|
|
unitType: "",
|
|
easing: i.easing,
|
|
scrollData: {
|
|
container: i.container,
|
|
direction: B,
|
|
alternateValue: x
|
|
}
|
|
},
|
|
element: h
|
|
}, t.debug && console.log("tweensContainer (scroll): ", l.scroll, h)
|
|
} else if ("reverse" === D) {
|
|
if (!g(h).tweensContainer) return void m.dequeue(h, i.queue);
|
|
"none" === g(h).opts.display && (g(h).opts.display = "auto"), "hidden" === g(h).opts.visibility && (g(h).opts.visibility = "visible"), g(h).opts.loop = !1, g(h).opts.begin = null, g(h).opts.complete = null, u.easing || delete i.easing, u.duration || delete i.duration, i = m.extend({}, g(h).opts, i);
|
|
var F = m.extend(!0, {}, g(h).tweensContainer);
|
|
for (var G in F)
|
|
if ("element" !== G) {
|
|
var H = F[G].startValue;
|
|
F[G].startValue = F[G].currentValue = F[G].endValue, F[G].endValue = H, p.isEmptyObject(u) || (F[G].easing = i.easing), t.debug && console.log("reverse tweensContainer (" + G + "): " + JSON.stringify(F[G]), h)
|
|
} l = F
|
|
} else if ("start" === D) {
|
|
var F;
|
|
g(h).tweensContainer && g(h).isAnimating === !0 && (F = g(h).tweensContainer), m.each(s, function(b, c) {
|
|
if (RegExp("^" + v.Lists.colors.join("$|^") + "$").test(b)) {
|
|
var e = a(c, !0),
|
|
f = e[0],
|
|
g = e[1],
|
|
h = e[2];
|
|
if (v.RegEx.isHex.test(f)) {
|
|
for (var i = ["Red", "Green", "Blue"], j = v.Values.hexToRgb(f), k = h ? v.Values.hexToRgb(h) : d, l = 0; l < i.length; l++) {
|
|
var m = [j[l]];
|
|
g && m.push(g), k !== d && m.push(k[l]), s[b + i[l]] = m
|
|
}
|
|
delete s[b]
|
|
}
|
|
}
|
|
});
|
|
for (var I in s) {
|
|
var L = a(s[I]),
|
|
M = L[0],
|
|
N = L[1],
|
|
O = L[2];
|
|
I = v.Names.camelCase(I);
|
|
var P = v.Hooks.getRoot(I),
|
|
Q = !1;
|
|
if (g(h).isSVG || v.Names.prefixCheck(P)[1] !== !1 || v.Normalizations.registered[P] !== d) {
|
|
(i.display !== d && null !== i.display && "none" !== i.display || i.visibility !== d && "hidden" !== i.visibility) && /opacity|filter/.test(I) && !O && 0 !== M && (O = 0), i._cacheValues && F && F[I] ? (O === d && (O = F[I].endValue + F[I].unitType), Q = g(h).rootPropertyValueCache[P]) : v.Hooks.registered[I] ? O === d ? (Q = v.getPropertyValue(h, P), O = v.getPropertyValue(h, I, Q)) : Q = v.Hooks.templates[P][1] : O === d && (O = v.getPropertyValue(h, I));
|
|
var R, S, T, U = !1;
|
|
if (R = n(I, O), O = R[0], T = R[1], R = n(I, M), M = R[0].replace(/^([+-\/*])=/, function(a, b) {
|
|
return U = b, ""
|
|
}), S = R[1], O = parseFloat(O) || 0, M = parseFloat(M) || 0, "%" === S && (/^(fontSize|lineHeight)$/.test(I) ? (M /= 100, S = "em") : /^scale/.test(I) ? (M /= 100, S = "") : /(Red|Green|Blue)$/i.test(I) && (M = M / 100 * 255, S = "")), /[\/*]/.test(U)) S = T;
|
|
else if (T !== S && 0 !== O)
|
|
if (0 === M) S = T;
|
|
else {
|
|
f = f || o();
|
|
var V = /margin|padding|left|right|width|text|word|letter/i.test(I) || /X$/.test(I) || "x" === I ? "x" : "y";
|
|
switch (T) {
|
|
case "%":
|
|
O *= "x" === V ? f.percentToPxWidth : f.percentToPxHeight;
|
|
break;
|
|
case "px":
|
|
break;
|
|
default:
|
|
O *= f[T + "ToPx"]
|
|
}
|
|
switch (S) {
|
|
case "%":
|
|
O *= 1 / ("x" === V ? f.percentToPxWidth : f.percentToPxHeight);
|
|
break;
|
|
case "px":
|
|
break;
|
|
default:
|
|
O *= 1 / f[S + "ToPx"]
|
|
}
|
|
} switch (U) {
|
|
case "+":
|
|
M = O + M;
|
|
break;
|
|
case "-":
|
|
M = O - M;
|
|
break;
|
|
case "*":
|
|
M = O * M;
|
|
break;
|
|
case "/":
|
|
M = O / M
|
|
}
|
|
l[I] = {
|
|
rootPropertyValue: Q,
|
|
startValue: O,
|
|
currentValue: O,
|
|
endValue: M,
|
|
unitType: S,
|
|
easing: N
|
|
}, t.debug && console.log("tweensContainer (" + I + "): " + JSON.stringify(l[I]), h)
|
|
} else t.debug && console.log("Skipping [" + P + "] due to a lack of browser support.")
|
|
}
|
|
l.element = h
|
|
}
|
|
l.element && (v.Values.addClass(h, "velocity-animating"), K.push(l), "" === i.queue && (g(h).tweensContainer = l, g(h).opts = i), g(h).isAnimating = !0, z === y - 1 ? (t.State.calls.length > 1e4 && (t.State.calls = e(t.State.calls)), t.State.calls.push([K, q, i, null, C.resolver]), t.State.isTicking === !1 && (t.State.isTicking = !0, k())) : z++)
|
|
}
|
|
var f, h = this,
|
|
i = m.extend({}, t.defaults, u),
|
|
l = {};
|
|
switch (g(h) === d && t.init(h), parseFloat(i.delay) && i.queue !== !1 && m.queue(h, i.queue, function(a) {
|
|
t.velocityQueueEntryFlag = !0, g(h).delayTimer = {
|
|
setTimeout: setTimeout(a, parseFloat(i.delay)),
|
|
next: a
|
|
}
|
|
}), i.duration.toString().toLowerCase()) {
|
|
case "fast":
|
|
i.duration = 200;
|
|
break;
|
|
case "normal":
|
|
i.duration = r;
|
|
break;
|
|
case "slow":
|
|
i.duration = 600;
|
|
break;
|
|
default:
|
|
i.duration = parseFloat(i.duration) || 1
|
|
}
|
|
t.mock !== !1 && (t.mock === !0 ? i.duration = i.delay = 1 : (i.duration *= parseFloat(t.mock) || 1, i.delay *= parseFloat(t.mock) || 1)), i.easing = j(i.easing, i.duration), i.begin && !p.isFunction(i.begin) && (i.begin = null), i.progress && !p.isFunction(i.progress) && (i.progress = null), i.complete && !p.isFunction(i.complete) && (i.complete = null), i.display !== d && null !== i.display && (i.display = i.display.toString().toLowerCase(), "auto" === i.display && (i.display = t.CSS.Values.getDisplayType(h))), i.visibility !== d && null !== i.visibility && (i.visibility = i.visibility.toString().toLowerCase()), i.mobileHA = i.mobileHA && t.State.isMobile && !t.State.isGingerbread, i.queue === !1 ? i.delay ? setTimeout(a, i.delay) : a() : m.queue(h, i.queue, function(b, c) {
|
|
return c === !0 ? (C.promise && C.resolver(q), !0) : (t.velocityQueueEntryFlag = !0, void a(b))
|
|
}), "" !== i.queue && "fx" !== i.queue || "inprogress" === m.queue(h)[0] || m.dequeue(h)
|
|
}
|
|
var i, n, o, q, s, u, x = arguments[0] && (m.isPlainObject(arguments[0].properties) && !arguments[0].properties.names || p.isString(arguments[0].properties));
|
|
if (p.isWrapped(this) ? (i = !1, o = 0, q = this, n = this) : (i = !0, o = 1, q = x ? arguments[0].elements : arguments[0]), q = f(q)) {
|
|
x ? (s = arguments[0].properties, u = arguments[0].options) : (s = arguments[o], u = arguments[o + 1]);
|
|
var y = q.length,
|
|
z = 0;
|
|
if ("stop" !== s && !m.isPlainObject(u)) {
|
|
var A = o + 1;
|
|
u = {};
|
|
for (var B = A; B < arguments.length; B++) p.isArray(arguments[B]) || !/^(fast|normal|slow)$/i.test(arguments[B]) && !/^\d/.test(arguments[B]) ? p.isString(arguments[B]) || p.isArray(arguments[B]) ? u.easing = arguments[B] : p.isFunction(arguments[B]) && (u.complete = arguments[B]) : u.duration = arguments[B]
|
|
}
|
|
var C = {
|
|
promise: null,
|
|
resolver: null,
|
|
rejecter: null
|
|
};
|
|
i && t.Promise && (C.promise = new t.Promise(function(a, b) {
|
|
C.resolver = a, C.rejecter = b
|
|
}));
|
|
var D;
|
|
switch (s) {
|
|
case "scroll":
|
|
D = "scroll";
|
|
break;
|
|
case "reverse":
|
|
D = "reverse";
|
|
break;
|
|
case "stop":
|
|
m.each(q, function(a, b) {
|
|
g(b) && g(b).delayTimer && (clearTimeout(g(b).delayTimer.setTimeout), g(b).delayTimer.next && g(b).delayTimer.next(), delete g(b).delayTimer)
|
|
});
|
|
var E = [];
|
|
return m.each(t.State.calls, function(a, b) {
|
|
b && m.each(b[1], function(c, e) {
|
|
var f = p.isString(u) ? u : "";
|
|
return u !== d && b[2].queue !== f ? !0 : void m.each(q, function(b, c) {
|
|
c === e && (u !== d && (m.each(m.queue(c, f), function(a, b) {
|
|
p.isFunction(b) && b(null, !0)
|
|
}), m.queue(c, f, [])), g(c) && "" === f && m.each(g(c).tweensContainer, function(a, b) {
|
|
b.endValue = b.currentValue
|
|
}), E.push(a))
|
|
})
|
|
})
|
|
}), m.each(E, function(a, b) {
|
|
l(b, !0)
|
|
}), C.promise && C.resolver(q), a();
|
|
default:
|
|
if (!m.isPlainObject(s) || p.isEmptyObject(s)) {
|
|
if (p.isString(s) && t.Redirects[s]) {
|
|
var F = m.extend({}, u),
|
|
G = F.duration,
|
|
H = F.delay || 0;
|
|
return F.backwards === !0 && (q = m.extend(!0, [], q).reverse()), m.each(q, function(a, b) {
|
|
parseFloat(F.stagger) ? F.delay = H + parseFloat(F.stagger) * a : p.isFunction(F.stagger) && (F.delay = H + F.stagger.call(b, a, y)), F.drag && (F.duration = parseFloat(G) || (/^(callout|transition)/.test(s) ? 1e3 : r), F.duration = Math.max(F.duration * (F.backwards ? 1 - a / y : (a + 1) / y), .75 * F.duration, 200)), t.Redirects[s].call(b, b, F || {}, a, y, q, C.promise ? C : d)
|
|
}), a()
|
|
}
|
|
var I = "Velocity: First argument (" + s + ") was not a property map, a known action, or a registered redirect. Aborting.";
|
|
return C.promise ? C.rejecter(new Error(I)) : console.log(I), a()
|
|
}
|
|
D = "start"
|
|
}
|
|
var J = {
|
|
lastParent: null,
|
|
lastPosition: null,
|
|
lastFontSize: null,
|
|
lastPercentToPxWidth: null,
|
|
lastPercentToPxHeight: null,
|
|
lastEmToPx: null,
|
|
remToPx: null,
|
|
vwToPx: null,
|
|
vhToPx: null
|
|
},
|
|
K = [];
|
|
m.each(q, function(a, b) {
|
|
p.isNode(b) && h.call(b)
|
|
});
|
|
var L, F = m.extend({}, t.defaults, u);
|
|
if (F.loop = parseInt(F.loop), L = 2 * F.loop - 1, F.loop)
|
|
for (var M = 0; L > M; M++) {
|
|
var N = {
|
|
delay: F.delay,
|
|
progress: F.progress
|
|
};
|
|
M === L - 1 && (N.display = F.display, N.visibility = F.visibility, N.complete = F.complete), w(q, "reverse", N)
|
|
}
|
|
return a()
|
|
}
|
|
};
|
|
t = m.extend(w, t), t.animate = w;
|
|
var x = b.requestAnimationFrame || o;
|
|
return t.State.isMobile || c.hidden === d || c.addEventListener("visibilitychange", function() {
|
|
c.hidden ? (x = function(a) {
|
|
return setTimeout(function() {
|
|
a(!0)
|
|
}, 16)
|
|
}, k()) : x = b.requestAnimationFrame || o
|
|
}), a.Velocity = t, a !== b && (a.fn.velocity = w, a.fn.velocity.defaults = t.defaults), m.each(["Down", "Up"], function(a, b) {
|
|
t.Redirects["slide" + b] = function(a, c, e, f, g, h) {
|
|
var i = m.extend({}, c),
|
|
j = i.begin,
|
|
k = i.complete,
|
|
l = {
|
|
height: "",
|
|
marginTop: "",
|
|
marginBottom: "",
|
|
paddingTop: "",
|
|
paddingBottom: ""
|
|
},
|
|
n = {};
|
|
i.display === d && (i.display = "Down" === b ? "inline" === t.CSS.Values.getDisplayType(a) ? "inline-block" : "block" : "none"), i.begin = function() {
|
|
j && j.call(g, g);
|
|
for (var c in l) {
|
|
n[c] = a.style[c];
|
|
var d = t.CSS.getPropertyValue(a, c);
|
|
l[c] = "Down" === b ? [d, 0] : [0, d]
|
|
}
|
|
n.overflow = a.style.overflow, a.style.overflow = "hidden"
|
|
}, i.complete = function() {
|
|
for (var b in n) a.style[b] = n[b];
|
|
k && k.call(g, g), h && h.resolver(g)
|
|
}, t(a, l, i)
|
|
}
|
|
}), m.each(["In", "Out"], function(a, b) {
|
|
t.Redirects["fade" + b] = function(a, c, e, f, g, h) {
|
|
var i = m.extend({}, c),
|
|
j = {
|
|
opacity: "In" === b ? 1 : 0
|
|
},
|
|
k = i.complete;
|
|
i.complete = e !== f - 1 ? i.begin = null : function() {
|
|
k && k.call(g, g), h && h.resolver(g)
|
|
}, i.display === d && (i.display = "In" === b ? "auto" : "none"), t(this, j, i)
|
|
}
|
|
}), t
|
|
}(window.jQuery || window.Zepto || window, window, document)
|
|
}), ! function(a, b, c, d) {
|
|
"use strict";
|
|
|
|
function e(a, b, c) {
|
|
return setTimeout(k(a, c), b)
|
|
}
|
|
|
|
function f(a, b, c) {
|
|
return Array.isArray(a) ? (g(a, c[b], c), !0) : !1
|
|
}
|
|
|
|
function g(a, b, c) {
|
|
var e;
|
|
if (a)
|
|
if (a.forEach) a.forEach(b, c);
|
|
else if (a.length !== d)
|
|
for (e = 0; e < a.length;) b.call(c, a[e], e, a), e++;
|
|
else
|
|
for (e in a) a.hasOwnProperty(e) && b.call(c, a[e], e, a)
|
|
}
|
|
|
|
function h(a, b, c) {
|
|
for (var e = Object.keys(b), f = 0; f < e.length;)(!c || c && a[e[f]] === d) && (a[e[f]] = b[e[f]]), f++;
|
|
return a
|
|
}
|
|
|
|
function i(a, b) {
|
|
return h(a, b, !0)
|
|
}
|
|
|
|
function j(a, b, c) {
|
|
var d, e = b.prototype;
|
|
d = a.prototype = Object.create(e), d.constructor = a, d._super = e, c && h(d, c)
|
|
}
|
|
|
|
function k(a, b) {
|
|
return function() {
|
|
return a.apply(b, arguments)
|
|
}
|
|
}
|
|
|
|
function l(a, b) {
|
|
return typeof a == ka ? a.apply(b ? b[0] || d : d, b) : a
|
|
}
|
|
|
|
function m(a, b) {
|
|
return a === d ? b : a
|
|
}
|
|
|
|
function n(a, b, c) {
|
|
g(r(b), function(b) {
|
|
a.addEventListener(b, c, !1)
|
|
})
|
|
}
|
|
|
|
function o(a, b, c) {
|
|
g(r(b), function(b) {
|
|
a.removeEventListener(b, c, !1)
|
|
})
|
|
}
|
|
|
|
function p(a, b) {
|
|
for (; a;) {
|
|
if (a == b) return !0;
|
|
a = a.parentNode
|
|
}
|
|
return !1
|
|
}
|
|
|
|
function q(a, b) {
|
|
return a.indexOf(b) > -1
|
|
}
|
|
|
|
function r(a) {
|
|
return a.trim().split(/\s+/g)
|
|
}
|
|
|
|
function s(a, b, c) {
|
|
if (a.indexOf && !c) return a.indexOf(b);
|
|
for (var d = 0; d < a.length;) {
|
|
if (c && a[d][c] == b || !c && a[d] === b) return d;
|
|
d++
|
|
}
|
|
return -1
|
|
}
|
|
|
|
function t(a) {
|
|
return Array.prototype.slice.call(a, 0)
|
|
}
|
|
|
|
function u(a, b, c) {
|
|
for (var d = [], e = [], f = 0; f < a.length;) {
|
|
var g = b ? a[f][b] : a[f];
|
|
s(e, g) < 0 && d.push(a[f]), e[f] = g, f++
|
|
}
|
|
return c && (d = b ? d.sort(function(a, c) {
|
|
return a[b] > c[b]
|
|
}) : d.sort()), d
|
|
}
|
|
|
|
function v(a, b) {
|
|
for (var c, e, f = b[0].toUpperCase() + b.slice(1), g = 0; g < ia.length;) {
|
|
if (c = ia[g], e = c ? c + f : b, e in a) return e;
|
|
g++
|
|
}
|
|
return d
|
|
}
|
|
|
|
function w() {
|
|
return oa++
|
|
}
|
|
|
|
function x(a) {
|
|
var b = a.ownerDocument;
|
|
return b.defaultView || b.parentWindow
|
|
}
|
|
|
|
function y(a, b) {
|
|
var c = this;
|
|
this.manager = a, this.callback = b, this.element = a.element, this.target = a.options.inputTarget, this.domHandler = function(b) {
|
|
l(a.options.enable, [a]) && c.handler(b)
|
|
}, this.init()
|
|
}
|
|
|
|
function z(a) {
|
|
var b, c = a.options.inputClass;
|
|
return new(b = c ? c : ra ? N : sa ? Q : qa ? S : M)(a, A)
|
|
}
|
|
|
|
function A(a, b, c) {
|
|
var d = c.pointers.length,
|
|
e = c.changedPointers.length,
|
|
f = b & ya && 0 === d - e,
|
|
g = b & (Aa | Ba) && 0 === d - e;
|
|
c.isFirst = !!f, c.isFinal = !!g, f && (a.session = {}), c.eventType = b, B(a, c), a.emit("hammer.input", c), a.recognize(c), a.session.prevInput = c
|
|
}
|
|
|
|
function B(a, b) {
|
|
var c = a.session,
|
|
d = b.pointers,
|
|
e = d.length;
|
|
c.firstInput || (c.firstInput = E(b)), e > 1 && !c.firstMultiple ? c.firstMultiple = E(b) : 1 === e && (c.firstMultiple = !1);
|
|
var f = c.firstInput,
|
|
g = c.firstMultiple,
|
|
h = g ? g.center : f.center,
|
|
i = b.center = F(d);
|
|
b.timeStamp = na(), b.deltaTime = b.timeStamp - f.timeStamp, b.angle = J(h, i), b.distance = I(h, i), C(c, b), b.offsetDirection = H(b.deltaX, b.deltaY), b.scale = g ? L(g.pointers, d) : 1, b.rotation = g ? K(g.pointers, d) : 0, D(c, b);
|
|
var j = a.element;
|
|
p(b.srcEvent.target, j) && (j = b.srcEvent.target), b.target = j;
|
|
|
|
}
|
|
|
|
function C(a, b) {
|
|
var c = b.center,
|
|
d = a.offsetDelta || {},
|
|
e = a.prevDelta || {},
|
|
f = a.prevInput || {};
|
|
(b.eventType === ya || f.eventType === Aa) && (e = a.prevDelta = {
|
|
x: f.deltaX || 0,
|
|
y: f.deltaY || 0
|
|
}, d = a.offsetDelta = {
|
|
x: c.x,
|
|
y: c.y
|
|
}), b.deltaX = e.x + (c.x - d.x), b.deltaY = e.y + (c.y - d.y)
|
|
}
|
|
|
|
function D(a, b) {
|
|
var c, e, f, g, h = a.lastInterval || b,
|
|
i = b.timeStamp - h.timeStamp;
|
|
if (b.eventType != Ba && (i > xa || h.velocity === d)) {
|
|
var j = h.deltaX - b.deltaX,
|
|
k = h.deltaY - b.deltaY,
|
|
l = G(i, j, k);
|
|
e = l.x, f = l.y, c = ma(l.x) > ma(l.y) ? l.x : l.y, g = H(j, k), a.lastInterval = b
|
|
} else c = h.velocity, e = h.velocityX, f = h.velocityY, g = h.direction;
|
|
b.velocity = c, b.velocityX = e, b.velocityY = f, b.direction = g
|
|
}
|
|
|
|
function E(a) {
|
|
for (var b = [], c = 0; c < a.pointers.length;) b[c] = {
|
|
clientX: la(a.pointers[c].clientX),
|
|
clientY: la(a.pointers[c].clientY)
|
|
}, c++;
|
|
return {
|
|
timeStamp: na(),
|
|
pointers: b,
|
|
center: F(b),
|
|
deltaX: a.deltaX,
|
|
deltaY: a.deltaY
|
|
}
|
|
}
|
|
|
|
function F(a) {
|
|
var b = a.length;
|
|
if (1 === b) return {
|
|
x: la(a[0].clientX),
|
|
y: la(a[0].clientY)
|
|
};
|
|
for (var c = 0, d = 0, e = 0; b > e;) c += a[e].clientX, d += a[e].clientY, e++;
|
|
return {
|
|
x: la(c / b),
|
|
y: la(d / b)
|
|
}
|
|
}
|
|
|
|
function G(a, b, c) {
|
|
return {
|
|
x: b / a || 0,
|
|
y: c / a || 0
|
|
}
|
|
}
|
|
|
|
function H(a, b) {
|
|
return a === b ? Ca : ma(a) >= ma(b) ? a > 0 ? Da : Ea : b > 0 ? Fa : Ga
|
|
}
|
|
|
|
function I(a, b, c) {
|
|
c || (c = Ka);
|
|
var d = b[c[0]] - a[c[0]],
|
|
e = b[c[1]] - a[c[1]];
|
|
return Math.sqrt(d * d + e * e)
|
|
}
|
|
|
|
function J(a, b, c) {
|
|
c || (c = Ka);
|
|
var d = b[c[0]] - a[c[0]],
|
|
e = b[c[1]] - a[c[1]];
|
|
return 180 * Math.atan2(e, d) / Math.PI
|
|
}
|
|
|
|
function K(a, b) {
|
|
return J(b[1], b[0], La) - J(a[1], a[0], La)
|
|
}
|
|
|
|
function L(a, b) {
|
|
return I(b[0], b[1], La) / I(a[0], a[1], La)
|
|
}
|
|
|
|
function M() {
|
|
this.evEl = Na, this.evWin = Oa, this.allow = !0, this.pressed = !1, y.apply(this, arguments)
|
|
}
|
|
|
|
function N() {
|
|
this.evEl = Ra, this.evWin = Sa, y.apply(this, arguments), this.store = this.manager.session.pointerEvents = []
|
|
}
|
|
|
|
function O() {
|
|
this.evTarget = Ua, this.evWin = Va, this.started = !1, y.apply(this, arguments)
|
|
}
|
|
|
|
function P(a, b) {
|
|
var c = t(a.touches),
|
|
d = t(a.changedTouches);
|
|
return b & (Aa | Ba) && (c = u(c.concat(d), "identifier", !0)), [c, d]
|
|
}
|
|
|
|
function Q() {
|
|
this.evTarget = Xa, this.targetIds = {}, y.apply(this, arguments)
|
|
}
|
|
|
|
function R(a, b) {
|
|
var c = t(a.touches),
|
|
d = this.targetIds;
|
|
if (b & (ya | za) && 1 === c.length) return d[c[0].identifier] = !0, [c, c];
|
|
var e, f, g = t(a.changedTouches),
|
|
h = [],
|
|
i = this.target;
|
|
if (f = c.filter(function(a) {
|
|
return p(a.target, i)
|
|
}), b === ya)
|
|
for (e = 0; e < f.length;) d[f[e].identifier] = !0, e++;
|
|
for (e = 0; e < g.length;) d[g[e].identifier] && h.push(g[e]), b & (Aa | Ba) && delete d[g[e].identifier], e++;
|
|
return h.length ? [u(f.concat(h), "identifier", !0), h] : void 0
|
|
}
|
|
|
|
function S() {
|
|
y.apply(this, arguments);
|
|
var a = k(this.handler, this);
|
|
this.touch = new Q(this.manager, a), this.mouse = new M(this.manager, a)
|
|
}
|
|
|
|
function T(a, b) {
|
|
this.manager = a, this.set(b)
|
|
}
|
|
|
|
function U(a) {
|
|
if (q(a, bb)) return bb;
|
|
var b = q(a, cb),
|
|
c = q(a, db);
|
|
return b && c ? cb + " " + db : b || c ? b ? cb : db : q(a, ab) ? ab : _a
|
|
}
|
|
|
|
function V(a) {
|
|
this.id = w(), this.manager = null, this.options = i(a || {}, this.defaults), this.options.enable = m(this.options.enable, !0), this.state = eb, this.simultaneous = {}, this.requireFail = []
|
|
}
|
|
|
|
function W(a) {
|
|
return a & jb ? "cancel" : a & hb ? "end" : a & gb ? "move" : a & fb ? "start" : ""
|
|
}
|
|
|
|
function X(a) {
|
|
return a == Ga ? "down" : a == Fa ? "up" : a == Da ? "left" : a == Ea ? "right" : ""
|
|
}
|
|
|
|
function Y(a, b) {
|
|
var c = b.manager;
|
|
return c ? c.get(a) : a
|
|
}
|
|
|
|
function Z() {
|
|
V.apply(this, arguments)
|
|
}
|
|
|
|
function $() {
|
|
Z.apply(this, arguments), this.pX = null, this.pY = null
|
|
}
|
|
|
|
function _() {
|
|
Z.apply(this, arguments)
|
|
}
|
|
|
|
function aa() {
|
|
V.apply(this, arguments), this._timer = null, this._input = null
|
|
}
|
|
|
|
function ba() {
|
|
Z.apply(this, arguments)
|
|
}
|
|
|
|
function ca() {
|
|
Z.apply(this, arguments)
|
|
}
|
|
|
|
function da() {
|
|
V.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0
|
|
}
|
|
|
|
function ea(a, b) {
|
|
return b = b || {}, b.recognizers = m(b.recognizers, ea.defaults.preset), new fa(a, b)
|
|
}
|
|
|
|
function fa(a, b) {
|
|
b = b || {}, this.options = i(b, ea.defaults), this.options.inputTarget = this.options.inputTarget || a, this.handlers = {}, this.session = {}, this.recognizers = [], this.element = a, this.input = z(this), this.touchAction = new T(this, this.options.touchAction), ga(this, !0), g(b.recognizers, function(a) {
|
|
var b = this.add(new a[0](a[1]));
|
|
a[2] && b.recognizeWith(a[2]), a[3] && b.requireFailure(a[3])
|
|
}, this)
|
|
}
|
|
|
|
function ga(a, b) {
|
|
var c = a.element;
|
|
g(a.options.cssProps, function(a, d) {
|
|
c.style[v(c.style, d)] = b ? a : ""
|
|
})
|
|
}
|
|
|
|
function ha(a, c) {
|
|
var d = b.createEvent("Event");
|
|
d.initEvent(a, !0, !0), d.gesture = c, c.target.dispatchEvent(d)
|
|
}
|
|
var ia = ["", "webkit", "moz", "MS", "ms", "o"],
|
|
ja = b.createElement("div"),
|
|
ka = "function",
|
|
la = Math.round,
|
|
ma = Math.abs,
|
|
na = Date.now,
|
|
oa = 1,
|
|
pa = /mobile|tablet|ip(ad|hone|od)|android/i,
|
|
qa = "ontouchstart" in a,
|
|
ra = v(a, "PointerEvent") !== d,
|
|
sa = qa && pa.test(navigator.userAgent),
|
|
ta = "touch",
|
|
ua = "pen",
|
|
va = "mouse",
|
|
wa = "kinect",
|
|
xa = 25,
|
|
ya = 1,
|
|
za = 2,
|
|
Aa = 4,
|
|
Ba = 8,
|
|
Ca = 1,
|
|
Da = 2,
|
|
Ea = 4,
|
|
Fa = 8,
|
|
Ga = 16,
|
|
Ha = Da | Ea,
|
|
Ia = Fa | Ga,
|
|
Ja = Ha | Ia,
|
|
Ka = ["x", "y"],
|
|
La = ["clientX", "clientY"];
|
|
y.prototype = {
|
|
handler: function() {},
|
|
init: function() {
|
|
this.evEl && n(this.element, this.evEl, this.domHandler), this.evTarget && n(this.target, this.evTarget, this.domHandler), this.evWin && n(x(this.element), this.evWin, this.domHandler)
|
|
},
|
|
destroy: function() {
|
|
this.evEl && o(this.element, this.evEl, this.domHandler), this.evTarget && o(this.target, this.evTarget, this.domHandler), this.evWin && o(x(this.element), this.evWin, this.domHandler)
|
|
}
|
|
};
|
|
var Ma = {
|
|
mousedown: ya,
|
|
mousemove: za,
|
|
mouseup: Aa
|
|
},
|
|
Na = "mousedown",
|
|
Oa = "mousemove mouseup";
|
|
j(M, y, {
|
|
handler: function(a) {
|
|
var b = Ma[a.type];
|
|
b & ya && 0 === a.button && (this.pressed = !0), b & za && 1 !== a.which && (b = Aa), this.pressed && this.allow && (b & Aa && (this.pressed = !1), this.callback(this.manager, b, {
|
|
pointers: [a],
|
|
changedPointers: [a],
|
|
pointerType: va,
|
|
srcEvent: a
|
|
}))
|
|
}
|
|
});
|
|
var Pa = {
|
|
pointerdown: ya,
|
|
pointermove: za,
|
|
pointerup: Aa,
|
|
pointercancel: Ba,
|
|
pointerout: Ba
|
|
},
|
|
Qa = {
|
|
2: ta,
|
|
3: ua,
|
|
4: va,
|
|
5: wa
|
|
},
|
|
Ra = "pointerdown",
|
|
Sa = "pointermove pointerup pointercancel";
|
|
a.MSPointerEvent && (Ra = "MSPointerDown", Sa = "MSPointerMove MSPointerUp MSPointerCancel"), j(N, y, {
|
|
handler: function(a) {
|
|
var b = this.store,
|
|
c = !1,
|
|
d = a.type.toLowerCase().replace("ms", ""),
|
|
e = Pa[d],
|
|
f = Qa[a.pointerType] || a.pointerType,
|
|
g = f == ta,
|
|
h = s(b, a.pointerId, "pointerId");
|
|
e & ya && (0 === a.button || g) ? 0 > h && (b.push(a), h = b.length - 1) : e & (Aa | Ba) && (c = !0), 0 > h || (b[h] = a, this.callback(this.manager, e, {
|
|
pointers: b,
|
|
changedPointers: [a],
|
|
pointerType: f,
|
|
srcEvent: a
|
|
}), c && b.splice(h, 1))
|
|
}
|
|
});
|
|
var Ta = {
|
|
touchstart: ya,
|
|
touchmove: za,
|
|
touchend: Aa,
|
|
touchcancel: Ba
|
|
},
|
|
Ua = "touchstart",
|
|
Va = "touchstart touchmove touchend touchcancel";
|
|
j(O, y, {
|
|
handler: function(a) {
|
|
var b = Ta[a.type];
|
|
if (b === ya && (this.started = !0), this.started) {
|
|
var c = P.call(this, a, b);
|
|
b & (Aa | Ba) && 0 === c[0].length - c[1].length && (this.started = !1), this.callback(this.manager, b, {
|
|
pointers: c[0],
|
|
changedPointers: c[1],
|
|
pointerType: ta,
|
|
srcEvent: a
|
|
})
|
|
}
|
|
}
|
|
});
|
|
var Wa = {
|
|
touchstart: ya,
|
|
touchmove: za,
|
|
touchend: Aa,
|
|
touchcancel: Ba
|
|
},
|
|
Xa = "touchstart touchmove touchend touchcancel";
|
|
j(Q, y, {
|
|
handler: function(a) {
|
|
var b = Wa[a.type],
|
|
c = R.call(this, a, b);
|
|
c && this.callback(this.manager, b, {
|
|
pointers: c[0],
|
|
changedPointers: c[1],
|
|
pointerType: ta,
|
|
srcEvent: a
|
|
})
|
|
}
|
|
}), j(S, y, {
|
|
handler: function(a, b, c) {
|
|
var d = c.pointerType == ta,
|
|
e = c.pointerType == va;
|
|
if (d) this.mouse.allow = !1;
|
|
else if (e && !this.mouse.allow) return;
|
|
b & (Aa | Ba) && (this.mouse.allow = !0), this.callback(a, b, c)
|
|
},
|
|
destroy: function() {
|
|
this.touch.destroy(), this.mouse.destroy()
|
|
}
|
|
});
|
|
var Ya = v(ja.style, "touchAction"),
|
|
Za = Ya !== d,
|
|
$a = "compute",
|
|
_a = "auto",
|
|
ab = "manipulation",
|
|
bb = "none",
|
|
cb = "pan-x",
|
|
db = "pan-y";
|
|
T.prototype = {
|
|
set: function(a) {
|
|
a == $a && (a = this.compute()), Za && (this.manager.element.style[Ya] = a), this.actions = a.toLowerCase().trim()
|
|
},
|
|
update: function() {
|
|
this.set(this.manager.options.touchAction)
|
|
},
|
|
compute: function() {
|
|
var a = [];
|
|
return g(this.manager.recognizers, function(b) {
|
|
l(b.options.enable, [b]) && (a = a.concat(b.getTouchAction()))
|
|
}), U(a.join(" "))
|
|
},
|
|
preventDefaults: function(a) {
|
|
if (!Za) {
|
|
var b = a.srcEvent,
|
|
c = a.offsetDirection;
|
|
if (this.manager.session.prevented) return void b.preventDefault();
|
|
var d = this.actions,
|
|
e = q(d, bb),
|
|
f = q(d, db),
|
|
g = q(d, cb);
|
|
return e || f && c & Ha || g && c & Ia ? this.preventSrc(b) : void 0
|
|
}
|
|
},
|
|
preventSrc: function(a) {
|
|
this.manager.session.prevented = !0, a.preventDefault()
|
|
}
|
|
};
|
|
var eb = 1,
|
|
fb = 2,
|
|
gb = 4,
|
|
hb = 8,
|
|
ib = hb,
|
|
jb = 16,
|
|
kb = 32;
|
|
V.prototype = {
|
|
defaults: {},
|
|
set: function(a) {
|
|
return h(this.options, a), this.manager && this.manager.touchAction.update(), this
|
|
},
|
|
recognizeWith: function(a) {
|
|
if (f(a, "recognizeWith", this)) return this;
|
|
var b = this.simultaneous;
|
|
return a = Y(a, this), b[a.id] || (b[a.id] = a, a.recognizeWith(this)), this
|
|
},
|
|
dropRecognizeWith: function(a) {
|
|
return f(a, "dropRecognizeWith", this) ? this : (a = Y(a, this), delete this.simultaneous[a.id], this)
|
|
},
|
|
requireFailure: function(a) {
|
|
if (f(a, "requireFailure", this)) return this;
|
|
var b = this.requireFail;
|
|
return a = Y(a, this), -1 === s(b, a) && (b.push(a), a.requireFailure(this)), this
|
|
},
|
|
dropRequireFailure: function(a) {
|
|
if (f(a, "dropRequireFailure", this)) return this;
|
|
a = Y(a, this);
|
|
var b = s(this.requireFail, a);
|
|
return b > -1 && this.requireFail.splice(b, 1), this
|
|
},
|
|
hasRequireFailures: function() {
|
|
return this.requireFail.length > 0
|
|
},
|
|
canRecognizeWith: function(a) {
|
|
return !!this.simultaneous[a.id]
|
|
},
|
|
emit: function(a) {
|
|
function b(b) {
|
|
c.manager.emit(c.options.event + (b ? W(d) : ""), a)
|
|
}
|
|
var c = this,
|
|
d = this.state;
|
|
hb > d && b(!0), b(), d >= hb && b(!0)
|
|
},
|
|
tryEmit: function(a) {
|
|
return this.canEmit() ? this.emit(a) : void(this.state = kb)
|
|
},
|
|
canEmit: function() {
|
|
for (var a = 0; a < this.requireFail.length;) {
|
|
if (!(this.requireFail[a].state & (kb | eb))) return !1;
|
|
a++
|
|
}
|
|
return !0
|
|
},
|
|
recognize: function(a) {
|
|
var b = h({}, a);
|
|
return l(this.options.enable, [this, b]) ? (this.state & (ib | jb | kb) && (this.state = eb), this.state = this.process(b), void(this.state & (fb | gb | hb | jb) && this.tryEmit(b))) : (this.reset(), void(this.state = kb))
|
|
},
|
|
process: function() {},
|
|
getTouchAction: function() {},
|
|
reset: function() {}
|
|
}, j(Z, V, {
|
|
defaults: {
|
|
pointers: 1
|
|
},
|
|
attrTest: function(a) {
|
|
var b = this.options.pointers;
|
|
return 0 === b || a.pointers.length === b
|
|
},
|
|
process: function(a) {
|
|
var b = this.state,
|
|
c = a.eventType,
|
|
d = b & (fb | gb),
|
|
e = this.attrTest(a);
|
|
return d && (c & Ba || !e) ? b | jb : d || e ? c & Aa ? b | hb : b & fb ? b | gb : fb : kb
|
|
}
|
|
}), j($, Z, {
|
|
defaults: {
|
|
event: "pan",
|
|
threshold: 10,
|
|
pointers: 1,
|
|
direction: Ja
|
|
},
|
|
getTouchAction: function() {
|
|
var a = this.options.direction,
|
|
b = [];
|
|
return a & Ha && b.push(db), a & Ia && b.push(cb), b
|
|
},
|
|
directionTest: function(a) {
|
|
var b = this.options,
|
|
c = !0,
|
|
d = a.distance,
|
|
e = a.direction,
|
|
f = a.deltaX,
|
|
g = a.deltaY;
|
|
return e & b.direction || (b.direction & Ha ? (e = 0 === f ? Ca : 0 > f ? Da : Ea, c = f != this.pX, d = Math.abs(a.deltaX)) : (e = 0 === g ? Ca : 0 > g ? Fa : Ga, c = g != this.pY, d = Math.abs(a.deltaY))), a.direction = e, c && d > b.threshold && e & b.direction
|
|
},
|
|
attrTest: function(a) {
|
|
return Z.prototype.attrTest.call(this, a) && (this.state & fb || !(this.state & fb) && this.directionTest(a))
|
|
},
|
|
emit: function(a) {
|
|
this.pX = a.deltaX, this.pY = a.deltaY;
|
|
var b = X(a.direction);
|
|
b && this.manager.emit(this.options.event + b, a), this._super.emit.call(this, a)
|
|
}
|
|
}), j(_, Z, {
|
|
defaults: {
|
|
event: "pinch",
|
|
threshold: 0,
|
|
pointers: 2
|
|
},
|
|
getTouchAction: function() {
|
|
return [bb]
|
|
},
|
|
attrTest: function(a) {
|
|
return this._super.attrTest.call(this, a) && (Math.abs(a.scale - 1) > this.options.threshold || this.state & fb)
|
|
},
|
|
emit: function(a) {
|
|
if (this._super.emit.call(this, a), 1 !== a.scale) {
|
|
var b = a.scale < 1 ? "in" : "out";
|
|
this.manager.emit(this.options.event + b, a)
|
|
}
|
|
}
|
|
}), j(aa, V, {
|
|
defaults: {
|
|
event: "press",
|
|
pointers: 1,
|
|
time: 500,
|
|
threshold: 5
|
|
},
|
|
getTouchAction: function() {
|
|
return [_a]
|
|
},
|
|
process: function(a) {
|
|
var b = this.options,
|
|
c = a.pointers.length === b.pointers,
|
|
d = a.distance < b.threshold,
|
|
f = a.deltaTime > b.time;
|
|
if (this._input = a, !d || !c || a.eventType & (Aa | Ba) && !f) this.reset();
|
|
else if (a.eventType & ya) this.reset(), this._timer = e(function() {
|
|
this.state = ib, this.tryEmit()
|
|
}, b.time, this);
|
|
else if (a.eventType & Aa) return ib;
|
|
return kb
|
|
},
|
|
reset: function() {
|
|
clearTimeout(this._timer)
|
|
},
|
|
emit: function(a) {
|
|
this.state === ib && (a && a.eventType & Aa ? this.manager.emit(this.options.event + "up", a) : (this._input.timeStamp = na(), this.manager.emit(this.options.event, this._input)))
|
|
}
|
|
}), j(ba, Z, {
|
|
defaults: {
|
|
event: "rotate",
|
|
threshold: 0,
|
|
pointers: 2
|
|
},
|
|
getTouchAction: function() {
|
|
return [bb]
|
|
},
|
|
attrTest: function(a) {
|
|
return this._super.attrTest.call(this, a) && (Math.abs(a.rotation) > this.options.threshold || this.state & fb)
|
|
}
|
|
}), j(ca, Z, {
|
|
defaults: {
|
|
event: "swipe",
|
|
threshold: 10,
|
|
velocity: .65,
|
|
direction: Ha | Ia,
|
|
pointers: 1
|
|
},
|
|
getTouchAction: function() {
|
|
return $.prototype.getTouchAction.call(this)
|
|
},
|
|
attrTest: function(a) {
|
|
var b, c = this.options.direction;
|
|
return c & (Ha | Ia) ? b = a.velocity : c & Ha ? b = a.velocityX : c & Ia && (b = a.velocityY), this._super.attrTest.call(this, a) && c & a.direction && a.distance > this.options.threshold && ma(b) > this.options.velocity && a.eventType & Aa
|
|
},
|
|
emit: function(a) {
|
|
var b = X(a.direction);
|
|
b && this.manager.emit(this.options.event + b, a), this.manager.emit(this.options.event, a)
|
|
}
|
|
}), j(da, V, {
|
|
defaults: {
|
|
event: "tap",
|
|
pointers: 1,
|
|
taps: 1,
|
|
interval: 300,
|
|
time: 250,
|
|
threshold: 2,
|
|
posThreshold: 10
|
|
},
|
|
getTouchAction: function() {
|
|
return [ab]
|
|
},
|
|
process: function(a) {
|
|
var b = this.options,
|
|
c = a.pointers.length === b.pointers,
|
|
d = a.distance < b.threshold,
|
|
f = a.deltaTime < b.time;
|
|
if (this.reset(), a.eventType & ya && 0 === this.count) return this.failTimeout();
|
|
if (d && f && c) {
|
|
if (a.eventType != Aa) return this.failTimeout();
|
|
var g = this.pTime ? a.timeStamp - this.pTime < b.interval : !0,
|
|
h = !this.pCenter || I(this.pCenter, a.center) < b.posThreshold;
|
|
this.pTime = a.timeStamp, this.pCenter = a.center, h && g ? this.count += 1 : this.count = 1, this._input = a;
|
|
var i = this.count % b.taps;
|
|
if (0 === i) return this.hasRequireFailures() ? (this._timer = e(function() {
|
|
this.state = ib, this.tryEmit()
|
|
}, b.interval, this), fb) : ib
|
|
}
|
|
return kb
|
|
},
|
|
failTimeout: function() {
|
|
return this._timer = e(function() {
|
|
this.state = kb
|
|
}, this.options.interval, this), kb
|
|
},
|
|
reset: function() {
|
|
clearTimeout(this._timer)
|
|
},
|
|
emit: function() {
|
|
this.state == ib && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input))
|
|
}
|
|
}), ea.VERSION = "2.0.4", ea.defaults = {
|
|
domEvents: !1,
|
|
touchAction: $a,
|
|
enable: !0,
|
|
inputTarget: null,
|
|
inputClass: null,
|
|
preset: [
|
|
[ba, {
|
|
enable: !1
|
|
}],
|
|
[_, {
|
|
enable: !1
|
|
},
|
|
["rotate"]
|
|
],
|
|
[ca, {
|
|
direction: Ha
|
|
}],
|
|
[$, {
|
|
direction: Ha
|
|
},
|
|
["swipe"]
|
|
],
|
|
[da],
|
|
[da, {
|
|
event: "doubletap",
|
|
taps: 2
|
|
},
|
|
["tap"]
|
|
],
|
|
[aa]
|
|
],
|
|
cssProps: {
|
|
userSelect: "default",
|
|
touchSelect: "none",
|
|
touchCallout: "none",
|
|
contentZooming: "none",
|
|
userDrag: "none",
|
|
tapHighlightColor: "rgba(0,0,0,0)"
|
|
}
|
|
};
|
|
var lb = 1,
|
|
mb = 2;
|
|
fa.prototype = {
|
|
set: function(a) {
|
|
return h(this.options, a), a.touchAction && this.touchAction.update(), a.inputTarget && (this.input.destroy(), this.input.target = a.inputTarget, this.input.init()), this
|
|
},
|
|
stop: function(a) {
|
|
this.session.stopped = a ? mb : lb
|
|
},
|
|
recognize: function(a) {
|
|
var b = this.session;
|
|
if (!b.stopped) {
|
|
this.touchAction.preventDefaults(a);
|
|
var c, d = this.recognizers,
|
|
e = b.curRecognizer;
|
|
(!e || e && e.state & ib) && (e = b.curRecognizer = null);
|
|
for (var f = 0; f < d.length;) c = d[f], b.stopped === mb || e && c != e && !c.canRecognizeWith(e) ? c.reset() : c.recognize(a), !e && c.state & (fb | gb | hb) && (e = b.curRecognizer = c), f++
|
|
}
|
|
},
|
|
get: function(a) {
|
|
if (a instanceof V) return a;
|
|
for (var b = this.recognizers, c = 0; c < b.length; c++)
|
|
if (b[c].options.event == a) return b[c];
|
|
return null
|
|
},
|
|
add: function(a) {
|
|
if (f(a, "add", this)) return this;
|
|
var b = this.get(a.options.event);
|
|
return b && this.remove(b), this.recognizers.push(a), a.manager = this, this.touchAction.update(), a
|
|
},
|
|
remove: function(a) {
|
|
if (f(a, "remove", this)) return this;
|
|
var b = this.recognizers;
|
|
return a = this.get(a), b.splice(s(b, a), 1), this.touchAction.update(), this
|
|
},
|
|
on: function(a, b) {
|
|
var c = this.handlers;
|
|
return g(r(a), function(a) {
|
|
c[a] = c[a] || [], c[a].push(b)
|
|
}), this
|
|
},
|
|
off: function(a, b) {
|
|
var c = this.handlers;
|
|
return g(r(a), function(a) {
|
|
b ? c[a].splice(s(c[a], b), 1) : delete c[a]
|
|
}), this
|
|
},
|
|
emit: function(a, b) {
|
|
this.options.domEvents && ha(a, b);
|
|
var c = this.handlers[a] && this.handlers[a].slice();
|
|
if (c && c.length) {
|
|
b.type = a, b.preventDefault = function() {
|
|
b.srcEvent.preventDefault()
|
|
};
|
|
for (var d = 0; d < c.length;) c[d](b), d++
|
|
}
|
|
},
|
|
destroy: function() {
|
|
this.element && ga(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null
|
|
}
|
|
}, h(ea, {
|
|
INPUT_START: ya,
|
|
INPUT_MOVE: za,
|
|
INPUT_END: Aa,
|
|
INPUT_CANCEL: Ba,
|
|
STATE_POSSIBLE: eb,
|
|
STATE_BEGAN: fb,
|
|
STATE_CHANGED: gb,
|
|
STATE_ENDED: hb,
|
|
STATE_RECOGNIZED: ib,
|
|
STATE_CANCELLED: jb,
|
|
STATE_FAILED: kb,
|
|
DIRECTION_NONE: Ca,
|
|
DIRECTION_LEFT: Da,
|
|
DIRECTION_RIGHT: Ea,
|
|
DIRECTION_UP: Fa,
|
|
DIRECTION_DOWN: Ga,
|
|
DIRECTION_HORIZONTAL: Ha,
|
|
DIRECTION_VERTICAL: Ia,
|
|
DIRECTION_ALL: Ja,
|
|
Manager: fa,
|
|
Input: y,
|
|
TouchAction: T,
|
|
TouchInput: Q,
|
|
MouseInput: M,
|
|
PointerEventInput: N,
|
|
TouchMouseInput: S,
|
|
SingleTouchInput: O,
|
|
Recognizer: V,
|
|
AttrRecognizer: Z,
|
|
Tap: da,
|
|
Pan: $,
|
|
Swipe: ca,
|
|
Pinch: _,
|
|
Rotate: ba,
|
|
Press: aa,
|
|
on: n,
|
|
off: o,
|
|
each: g,
|
|
merge: i,
|
|
extend: h,
|
|
inherit: j,
|
|
bindFn: k,
|
|
prefixed: v
|
|
}), typeof define == ka && define.amd ? define(function() {
|
|
return ea
|
|
}) : "undefined" != typeof module && module.exports ? module.exports = ea : a[c] = ea
|
|
}(window, document, "Hammer"),
|
|
function(a) {
|
|
"function" == typeof define && define.amd ? define(["jquery", "hammerjs"], a) : "object" == typeof exports ? a(require("jquery"), require("hammerjs")) : a(jQuery, Hammer)
|
|
}(function(a, b) {
|
|
function c(c, d) {
|
|
var e = a(c);
|
|
e.data("hammer") || e.data("hammer", new b(e[0], d))
|
|
}
|
|
a.fn.hammer = function(a) {
|
|
return this.each(function() {
|
|
c(this, a)
|
|
})
|
|
}, b.Manager.prototype.emit = function(b) {
|
|
return function(c, d) {
|
|
b.call(this, c, d), a(this.element).trigger({
|
|
type: c,
|
|
gesture: d
|
|
})
|
|
}
|
|
}(b.Manager.prototype.emit)
|
|
}),
|
|
function(a) {
|
|
a.fn.collapsible = function(b) {
|
|
var c = {
|
|
accordion: void 0
|
|
};
|
|
return b = a.extend(c, b), this.each(function() {
|
|
function c(a) {
|
|
f = e.find(".collapsible-header"), a.parent().toggleClass("active"), a.parent().hasClass("active") ? a.siblings(".collapsible-body").stop(!0, !1).slideDown({
|
|
duration: 350,
|
|
easing: "easeOutQuart",
|
|
queue: !1
|
|
}) : a.siblings(".collapsible-body").stop(!0, !1).slideUp({
|
|
duration: 350,
|
|
easing: "easeOutQuart",
|
|
queue: !1
|
|
}), f.not(a).parent().removeClass("active"), f.not(a).parent().children(".collapsible-body").stop(!0, !1).slideUp({
|
|
duration: 350,
|
|
easing: "easeOutQuart",
|
|
queue: !1
|
|
})
|
|
}
|
|
|
|
function d(a) {
|
|
a.parent().toggleClass("active"), a.parent().hasClass("active") ? a.siblings(".collapsible-body").stop(!0, !1).slideDown({
|
|
duration: 350,
|
|
easing: "easeOutQuart",
|
|
queue: !1
|
|
}) : a.siblings(".collapsible-body").stop(!0, !1).slideUp({
|
|
duration: 350,
|
|
easing: "easeOutQuart",
|
|
queue: !1
|
|
})
|
|
}
|
|
var e = a(this),
|
|
f = a(this).find(".collapsible-header"),
|
|
g = e.data("collapsible");
|
|
e.off(), e.children().off(), b.accordion || "accordion" == g || void 0 == g ? (e.on("click", ".collapsible-header", function(b) {
|
|
c(a(b.currentTarget))
|
|
}), c(f.filter(".active").first())) : f.each(function() {
|
|
e.on("click", ".collapsible-header", function(b) {
|
|
d(a(b.currentTarget))
|
|
}), a(this).hasClass("active") && d(a(this))
|
|
})
|
|
})
|
|
}, a(document).ready(function() {
|
|
a(".collapsible").collapsible()
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a.fn.dropdown = function(b) {
|
|
var c = {
|
|
inDuration: 300,
|
|
outDuration: 225,
|
|
constrain_width: !0,
|
|
hover: !0,
|
|
alignment: "left",
|
|
gutter: 0
|
|
};
|
|
b = a.extend(c, b), this.each(function() {
|
|
function c() {
|
|
void 0 != f.data("inDuration") && (b.inDuration = f.data("inDuration")), void 0 != f.data("outDuration") && (b.outDuration = f.data("outDuration")), void 0 != f.data("constrainwidth") && (b.constrain_width = f.data("constrainwidth")), void 0 != f.data("hover") && (b.hover = f.data("hover")), void 0 != f.data("alignment") && (b.alignment = f.data("alignment")), void 0 != f.data("gutter") && (b.gutter = f.data("gutter"))
|
|
}
|
|
|
|
function d() {
|
|
c();
|
|
var d = g.height();
|
|
1 == b.constrain_width && g.css("width", f.outerWidth());
|
|
var h = 0,
|
|
i = b.gutter;
|
|
"right" == b.alignment && (h = f.innerWidth() - g.innerWidth(), i = -1 * i), g.css(e(f[0]) ? {
|
|
display: "block",
|
|
position: "fixed",
|
|
height: 0,
|
|
top: f.offset().top - a(window).scrollTop(),
|
|
left: f.offset().left + h + i
|
|
} : {
|
|
display: "block",
|
|
top: f.offset().top,
|
|
left: f.offset().left + h + i,
|
|
height: 0
|
|
}), g.velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: b.inDuration,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}).velocity({
|
|
height: d
|
|
}, {
|
|
duration: b.inDuration,
|
|
queue: !1,
|
|
easing: "easeOutCubic",
|
|
complete: function() {
|
|
g.css("overflow-y", "auto")
|
|
}
|
|
})
|
|
}
|
|
|
|
function e(b) {
|
|
var c = a(b),
|
|
d = c.add(c.parents()),
|
|
e = !1;
|
|
return d.each(function() {
|
|
return "fixed" === a(this).css("position") ? (e = !0, !1) : void 0
|
|
}), e
|
|
}
|
|
var f = a(this),
|
|
g = a("#" + f.attr("data-activates"));
|
|
c(), g.parent().is(a("body")) || (g.detach(), a("body").append(g)), b.hover ? (f.on("mouseover", function() {
|
|
d()
|
|
}), g.on("mouseleave", function() {
|
|
g.velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: b.outDuration,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
g.css({
|
|
display: "none",
|
|
"overflow-y": ""
|
|
})
|
|
}
|
|
})
|
|
})) : f.click(function(c) {
|
|
c.preventDefault(), c.stopPropagation(), d(), a(document).bind("click." + g.attr("id"), function(c) {
|
|
g.is(c.target) || f.is(c.target) || (g.velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: b.outDuration,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
g.css({
|
|
display: "none",
|
|
"overflow-y": ""
|
|
})
|
|
}
|
|
}), a(document).unbind("click." + g.attr("id")))
|
|
})
|
|
}), a(document).on("resize", function() {})
|
|
})
|
|
}
|
|
}(jQuery),
|
|
function(a) {
|
|
a.fn.extend({
|
|
openModal: function(b) {
|
|
var c = this,
|
|
d = a('<div id="lean-overlay"></div>');
|
|
a("body").append(d);
|
|
var e = {
|
|
opacity: .5,
|
|
in_duration: 300,
|
|
out_duration: 200,
|
|
ready: void 0,
|
|
complete: void 0,
|
|
dismissible: !0
|
|
};
|
|
b = a.extend(e, b), b.dismissible && (a("#lean-overlay").click(function() {
|
|
a(c).closeModal(b)
|
|
}), a(document).keyup(function(d) {
|
|
27 === d.keyCode && (a(c).closeModal(b), a(this).off())
|
|
})), a(c).find(".modal-close").click(function(d) {
|
|
d.preventDefault(), a(c).closeModal(b)
|
|
}), a("#lean-overlay").css({
|
|
display: "block",
|
|
opacity: 0
|
|
}), a(c).css({
|
|
display: "block",
|
|
top: "4%",
|
|
opacity: 0
|
|
}), a("#lean-overlay").velocity({
|
|
opacity: b.opacity
|
|
}, {
|
|
duration: b.in_duration,
|
|
queue: !1,
|
|
ease: "easeOutCubic"
|
|
}), a(c).velocity({
|
|
top: "10%",
|
|
opacity: 1
|
|
}, {
|
|
duration: b.in_duration,
|
|
queue: !1,
|
|
ease: "easeOutCubic",
|
|
complete: function() {
|
|
"function" == typeof b.ready && b.ready()
|
|
}
|
|
})
|
|
}
|
|
}), a.fn.extend({
|
|
closeModal: function(b) {
|
|
var c = {
|
|
out_duration: 200,
|
|
complete: void 0
|
|
},
|
|
b = a.extend(c, b);
|
|
a("#lean-overlay").velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: b.out_duration,
|
|
queue: !1,
|
|
ease: "easeOutQuart"
|
|
}), a(this).fadeOut(b.out_duration, function() {
|
|
a(this).css({
|
|
top: 0
|
|
}), a("#lean-overlay").css({
|
|
display: "none"
|
|
}), "function" == typeof b.complete && b.complete(), a("#lean-overlay").remove()
|
|
})
|
|
}
|
|
}), a.fn.extend({
|
|
leanModal: function(b) {
|
|
return this.each(function() {
|
|
a(this).click(function(c) {
|
|
var d = a(this).attr("href");
|
|
a(d).openModal(b), c.preventDefault()
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a.fn.materialbox = function() {
|
|
return this.each(function() {
|
|
function b() {
|
|
d = !1;
|
|
var b = g.parent(".material-placeholder"),
|
|
e = (window.innerWidth, window.innerHeight, g.data("width")),
|
|
h = g.data("height");
|
|
a("#materialbox-overlay").fadeOut(f, function() {
|
|
c = !1, a(this).remove()
|
|
}), g.velocity({
|
|
width: e,
|
|
height: h,
|
|
left: 0,
|
|
top: 0
|
|
}, {
|
|
duration: f,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a(".materialbox-caption").velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: f + 200,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
b.css({
|
|
height: "",
|
|
width: "",
|
|
position: "",
|
|
top: "",
|
|
left: ""
|
|
}), g.css({
|
|
height: "",
|
|
position: "",
|
|
top: "",
|
|
left: "",
|
|
width: "",
|
|
"max-width": "",
|
|
position: "",
|
|
"z-index": ""
|
|
}), g.removeClass("active"), d = !0, a(this).remove()
|
|
}
|
|
})
|
|
}
|
|
if (!a(this).hasClass("intialized")) {
|
|
a(this).addClass("intialized");
|
|
var c = !1,
|
|
d = !0,
|
|
e = 275,
|
|
f = 200,
|
|
g = a(this),
|
|
h = a("<div></div>").addClass("material-placeholder");
|
|
g.wrap(h), g.on("click", function() {
|
|
var f = g.parent(".material-placeholder"),
|
|
h = window.innerWidth,
|
|
i = window.innerHeight,
|
|
j = g.width(),
|
|
k = g.height();
|
|
if (d === !1) return !1;
|
|
if (c && d === !0) return b(), !1;
|
|
d = !1, g.addClass("active"), c = !0, f.css({
|
|
width: f[0].getBoundingClientRect().width,
|
|
height: f[0].getBoundingClientRect().height,
|
|
position: "relative",
|
|
top: 0,
|
|
left: 0
|
|
}), g.css({
|
|
position: "absolute",
|
|
"z-index": 1e3
|
|
}).data("width", j).data("height", k);
|
|
var l = a('<div id="materialbox-overlay"></div>').css({
|
|
opacity: 0
|
|
}).click(function() {
|
|
d === !0 && b()
|
|
});
|
|
if (a("body").append(l), l.velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: e,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), "" !== g.data("caption")) {
|
|
var m = a('<div class="materialbox-caption"></div>');
|
|
m.text(g.data("caption")), a("body").append(m), m.css({
|
|
display: "inline"
|
|
}), m.velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: e,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})
|
|
}
|
|
var n = 0,
|
|
o = j / h,
|
|
p = k / i,
|
|
q = 0,
|
|
r = 0;
|
|
o > p ? (n = k / j, q = .9 * h, r = .9 * h * n) : (n = j / k, q = .9 * i * n, r = .9 * i), g.hasClass("responsive-img") ? g.velocity({
|
|
"max-width": q,
|
|
width: j
|
|
}, {
|
|
duration: 0,
|
|
queue: !1,
|
|
complete: function() {
|
|
g.css({
|
|
left: 0,
|
|
top: 0
|
|
}).velocity({
|
|
height: r,
|
|
width: q,
|
|
left: a(document).scrollLeft() + h / 2 - g.parent(".material-placeholder").offset().left - q / 2,
|
|
top: a(document).scrollTop() + i / 2 - g.parent(".material-placeholder").offset().top - r / 2
|
|
}, {
|
|
duration: e,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
d = !0
|
|
}
|
|
})
|
|
}
|
|
}) : g.css("left", 0).css("top", 0).velocity({
|
|
height: r,
|
|
width: q,
|
|
left: a(document).scrollLeft() + h / 2 - g.parent(".material-placeholder").offset().left - q / 2,
|
|
top: a(document).scrollTop() + i / 2 - g.parent(".material-placeholder").offset().top - r / 2
|
|
}, {
|
|
duration: e,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
d = !0
|
|
}
|
|
})
|
|
}), a(window).scroll(function() {
|
|
c && b()
|
|
}), a(document).keyup(function(a) {
|
|
27 === a.keyCode && d === !0 && c && b()
|
|
})
|
|
}
|
|
})
|
|
}, a(document).ready(function() {
|
|
a(".materialboxed").materialbox()
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a.fn.parallax = function() {
|
|
var b = a(window).width();
|
|
return this.each(function() {
|
|
function c(c) {
|
|
var e;
|
|
e = 992 > b ? d.height() > 0 ? d.height() : d.children("img").height() : d.height() > 0 ? d.height() : 500;
|
|
var f = d.children("img").height(),
|
|
g = f - e,
|
|
h = d.offset().top + e,
|
|
i = d.offset().top,
|
|
j = a(window).scrollTop(),
|
|
k = window.innerHeight,
|
|
l = j + k,
|
|
m = (l - i) / (e + k),
|
|
n = -1 * g * m;
|
|
h > j && j + k > i && d.children("img").first().css("bottom", n + "px"), c && d.children("img").first().css("display", "block")
|
|
}
|
|
var d = a(this);
|
|
d.addClass("parallax"), c(!0), a(window).scroll(function() {
|
|
b = a(window).width(), c(!1)
|
|
}), a(window).resize(function() {
|
|
b = a(window).width(), c(!1)
|
|
})
|
|
})
|
|
}
|
|
}(jQuery),
|
|
function(a) {
|
|
var b = {
|
|
init: function() {
|
|
return this.each(function() {
|
|
var b = a(this);
|
|
a(window).width(), b.width("100%");
|
|
var c = a(this).children("li").length;
|
|
b.children("li").each(function() {
|
|
a(this).width(100 / c + "%")
|
|
});
|
|
var d, e, f = b.find("li.tab a"),
|
|
g = b.width(),
|
|
h = b.find("li").first().outerWidth(),
|
|
i = 0;
|
|
d = a(f.filter('[href="' + location.hash + '"]')), 0 === d.length && (d = a(this).find("li.tab a.active").first()), 0 === d.length && (d = a(this).find("li.tab a").first()), d.addClass("active"), i = f.index(d), 0 > i && (i = 0), e = a(d[0].hash), b.append('<div class="indicator"></div>');
|
|
var j = b.find(".indicator");
|
|
b.is(":visible") && (j.css({
|
|
right: g - (i + 1) * h
|
|
}), j.css({
|
|
left: i * h
|
|
})), a(window).resize(function() {
|
|
g = b.width(), h = b.find("li").first().outerWidth(), 0 > i && (i = 0), 0 !== h && 0 !== g && (j.css({
|
|
right: g - (i + 1) * h
|
|
}), j.css({
|
|
left: i * h
|
|
}))
|
|
}), f.not(d).each(function() {
|
|
a(this.hash).hide()
|
|
}), b.on("click", "a", function(c) {
|
|
g = b.width(), h = b.find("li").first().outerWidth(), d.removeClass("active"), e.hide(), d = a(this), e = a(this.hash), f = b.find("li.tab a"), d.addClass("active");
|
|
var k = i;
|
|
i = f.index(a(this)), 0 > i && (i = 0), e.show(), i - k >= 0 ? (j.velocity({
|
|
right: g - (i + 1) * h
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), j.velocity({
|
|
left: i * h
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
delay: 90
|
|
})) : (j.velocity({
|
|
left: i * h
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), j.velocity({
|
|
right: g - (i + 1) * h
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
delay: 90
|
|
})), c.preventDefault()
|
|
})
|
|
})
|
|
},
|
|
select_tab: function(a) {
|
|
this.find('a[href="#' + a + '"]').trigger("click")
|
|
}
|
|
};
|
|
a.fn.tabs = function(c) {
|
|
return b[c] ? b[c].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof c && c ? void a.error("Method " + c + " does not exist on jQuery.tooltip") : b.init.apply(this, arguments)
|
|
}, a(document).ready(function() {
|
|
a("ul.tabs").tabs()
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a.fn.tooltip = function(b) {
|
|
var c = null,
|
|
d = !1,
|
|
e = null,
|
|
f = 5,
|
|
g = {
|
|
delay: 350
|
|
};
|
|
return b = a.extend(g, b), a(".material-tooltip").remove(), this.each(function() {
|
|
var g = a(this),
|
|
h = a("<span></span>").text(g.attr("data-tooltip")),
|
|
i = a("<div></div>");
|
|
i.addClass("material-tooltip").append(h), i.appendTo(a("body"));
|
|
var j = a("<div></div>").addClass("backdrop");
|
|
j.appendTo(i), j.css({
|
|
top: 0,
|
|
left: 0
|
|
}), a(this).off("mouseenter mouseleave"), a(this).on({
|
|
mouseenter: function(a) {
|
|
a.stopPropagation();
|
|
var h = g.data("delay");
|
|
h = void 0 == h || "" == h ? b.delay : h, c = 0, e = setInterval(function() {
|
|
if (c += 10, c >= h && 0 == d) {
|
|
d = !0, i.css({
|
|
display: "block",
|
|
left: "0px",
|
|
top: "0px"
|
|
}), i.children("span").text(g.attr("data-tooltip"));
|
|
var a = g.outerWidth(),
|
|
b = g.outerHeight(),
|
|
e = g.attr("data-position"),
|
|
k = i.outerHeight(),
|
|
l = i.outerWidth(),
|
|
m = "0px",
|
|
n = "0px",
|
|
o = 8;
|
|
"top" === e ? (i.css({
|
|
top: g.offset().top - k - f,
|
|
left: g.offset().left + a / 2 - l / 2
|
|
}), m = "-10px", j.css({
|
|
borderRadius: "14px 14px 0 0",
|
|
transformOrigin: "50% 90%",
|
|
marginTop: k,
|
|
marginLeft: l / 2 - j.width() / 2
|
|
})) : "left" === e ? (i.css({
|
|
top: g.offset().top + b / 2 - k / 2,
|
|
left: g.offset().left - l - f
|
|
}), n = "-10px", j.css({
|
|
width: "14px",
|
|
height: "14px",
|
|
borderRadius: "14px 0 0 14px",
|
|
transformOrigin: "95% 50%",
|
|
marginTop: k / 2,
|
|
marginLeft: l
|
|
})) : "right" === e ? (i.css({
|
|
top: g.offset().top + b / 2 - k / 2,
|
|
left: g.offset().left + a + f
|
|
}), n = "+10px", j.css({
|
|
width: "14px",
|
|
height: "14px",
|
|
borderRadius: "0 14px 14px 0",
|
|
transformOrigin: "5% 50%",
|
|
marginTop: k / 2,
|
|
marginLeft: "0px"
|
|
})) : (i.css({
|
|
top: g.offset().top + g.outerHeight() + f,
|
|
left: g.offset().left + a / 2 - l / 2
|
|
}), m = "+10px", j.css({
|
|
marginLeft: l / 2 - j.width() / 2
|
|
})), o = l / 8, 8 > o && (o = 8), ("right" === e || "left" === e) && (o = l / 10, 6 > o && (o = 6)), i.velocity({
|
|
opacity: 1,
|
|
marginTop: m,
|
|
marginLeft: n
|
|
}, {
|
|
duration: 350,
|
|
queue: !1
|
|
}), j.css({
|
|
display: "block"
|
|
}).velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: 55,
|
|
delay: 0,
|
|
queue: !1
|
|
}).velocity({
|
|
scale: o
|
|
}, {
|
|
duration: 300,
|
|
delay: 0,
|
|
queue: !1,
|
|
easing: "easeInOutQuad"
|
|
})
|
|
}
|
|
}, 10)
|
|
},
|
|
mouseleave: function() {
|
|
clearInterval(e), c = 0, i.velocity({
|
|
opacity: 0,
|
|
marginTop: 0,
|
|
marginLeft: 0
|
|
}, {
|
|
duration: 225,
|
|
queue: !1,
|
|
delay: 275
|
|
}), j.velocity({
|
|
opacity: 0,
|
|
scale: 1
|
|
}, {
|
|
duration: 225,
|
|
delay: 275,
|
|
queue: !1,
|
|
complete: function() {
|
|
j.css("display", "none"), i.css("display", "none"), d = !1
|
|
}
|
|
})
|
|
}
|
|
})
|
|
})
|
|
}, a(document).ready(function() {
|
|
a(".tooltipped").tooltip()
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
"use strict";
|
|
|
|
function b(a) {
|
|
return null !== a && a === a.window
|
|
}
|
|
|
|
function c(a) {
|
|
return b(a) ? a : 9 === a.nodeType && a.defaultView
|
|
}
|
|
|
|
function d(a) {
|
|
var b, d, e = {
|
|
top: 0,
|
|
left: 0
|
|
},
|
|
f = a && a.ownerDocument;
|
|
return b = f.documentElement, "undefined" != typeof a.getBoundingClientRect && (e = a.getBoundingClientRect()), d = c(f), {
|
|
top: e.top + d.pageYOffset - b.clientTop,
|
|
left: e.left + d.pageXOffset - b.clientLeft
|
|
}
|
|
}
|
|
|
|
function e(a) {
|
|
var b = "";
|
|
for (var c in a) a.hasOwnProperty(c) && (b += c + ":" + a[c] + ";");
|
|
return b
|
|
}
|
|
|
|
function f(a) {
|
|
if (k.allowEvent(a) === !1) return null;
|
|
for (var b = null, c = a.target || a.srcElement; null !== c.parentElement;) {
|
|
if (-1 !== c.className.indexOf("waves-effect")) {
|
|
b = c;
|
|
break
|
|
}
|
|
c = c.parentElement
|
|
}
|
|
return b
|
|
}
|
|
|
|
function g(b) {
|
|
var c = f(b);
|
|
null !== c && (j.show(b, c), "ontouchstart" in a && (c.addEventListener("touchend", j.hide, !1), c.addEventListener("touchcancel", j.hide, !1)), c.addEventListener("mouseup", j.hide, !1), c.addEventListener("mouseleave", j.hide, !1))
|
|
}
|
|
var h = h || {},
|
|
i = document.querySelectorAll.bind(document),
|
|
j = {
|
|
duration: 750,
|
|
show: function(a, b) {
|
|
if (2 === a.button) return !1;
|
|
var c = b || this,
|
|
f = document.createElement("div");
|
|
f.className = "waves-ripple", c.appendChild(f);
|
|
var g = d(c),
|
|
h = a.pageY - g.top,
|
|
i = a.pageX - g.left,
|
|
k = "scale(" + c.clientWidth / 100 * 10 + ")";
|
|
"touches" in a && (h = a.touches[0].pageY - g.top, i = a.touches[0].pageX - g.left), f.setAttribute("data-hold", Date.now()), f.setAttribute("data-scale", k), f.setAttribute("data-x", i), f.setAttribute("data-y", h);
|
|
var l = {
|
|
top: h + "px",
|
|
left: i + "px"
|
|
};
|
|
f.className = f.className + " waves-notransition", f.setAttribute("style", e(l)), f.className = f.className.replace("waves-notransition", ""), l["-webkit-transform"] = k, l["-moz-transform"] = k, l["-ms-transform"] = k, l["-o-transform"] = k, l.transform = k, l.opacity = "1", l["-webkit-transition-duration"] = j.duration + "ms", l["-moz-transition-duration"] = j.duration + "ms", l["-o-transition-duration"] = j.duration + "ms", l["transition-duration"] = j.duration + "ms", l["-webkit-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", l["-moz-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", l["-o-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", l["transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", f.setAttribute("style", e(l))
|
|
},
|
|
hide: function(a) {
|
|
k.touchup(a);
|
|
var b = this,
|
|
c = (1.4 * b.clientWidth, null),
|
|
d = b.getElementsByClassName("waves-ripple");
|
|
if (!(d.length > 0)) return !1;
|
|
c = d[d.length - 1];
|
|
var f = c.getAttribute("data-x"),
|
|
g = c.getAttribute("data-y"),
|
|
h = c.getAttribute("data-scale"),
|
|
i = Date.now() - Number(c.getAttribute("data-hold")),
|
|
l = 350 - i;
|
|
0 > l && (l = 0), setTimeout(function() {
|
|
var a = {
|
|
top: g + "px",
|
|
left: f + "px",
|
|
opacity: "0",
|
|
"-webkit-transition-duration": j.duration + "ms",
|
|
"-moz-transition-duration": j.duration + "ms",
|
|
"-o-transition-duration": j.duration + "ms",
|
|
"transition-duration": j.duration + "ms",
|
|
"-webkit-transform": h,
|
|
"-moz-transform": h,
|
|
"-ms-transform": h,
|
|
"-o-transform": h,
|
|
transform: h
|
|
};
|
|
c.setAttribute("style", e(a)), setTimeout(function() {
|
|
try {
|
|
b.removeChild(c)
|
|
} catch (a) {
|
|
return !1
|
|
}
|
|
}, j.duration)
|
|
}, l)
|
|
},
|
|
wrapInput: function(a) {
|
|
for (var b = 0; b < a.length; b++) {
|
|
var c = a[b];
|
|
if ("input" === c.tagName.toLowerCase()) {
|
|
var d = c.parentNode;
|
|
if ("i" === d.tagName.toLowerCase() && -1 !== d.className.indexOf("waves-effect")) continue;
|
|
var e = document.createElement("i");
|
|
e.className = c.className + " waves-input-wrapper";
|
|
var f = c.getAttribute("style");
|
|
f || (f = ""), e.setAttribute("style", f), c.className = "waves-button-input", c.removeAttribute("style"), d.replaceChild(e, c), e.appendChild(c)
|
|
}
|
|
}
|
|
}
|
|
},
|
|
k = {
|
|
touches: 0,
|
|
allowEvent: function(a) {
|
|
var b = !0;
|
|
return "touchstart" === a.type ? k.touches += 1 : "touchend" === a.type || "touchcancel" === a.type ? setTimeout(function() {
|
|
k.touches > 0 && (k.touches -= 1)
|
|
}, 500) : "mousedown" === a.type && k.touches > 0 && (b = !1), b
|
|
},
|
|
touchup: function(a) {
|
|
k.allowEvent(a)
|
|
}
|
|
};
|
|
h.displayEffect = function(b) {
|
|
b = b || {}, "duration" in b && (j.duration = b.duration), j.wrapInput(i(".waves-effect")), "ontouchstart" in a && document.body.addEventListener("touchstart", g, !1), document.body.addEventListener("mousedown", g, !1)
|
|
}, h.attach = function(b) {
|
|
"input" === b.tagName.toLowerCase() && (j.wrapInput([b]), b = b.parentElement), "ontouchstart" in a && b.addEventListener("touchstart", g, !1), b.addEventListener("mousedown", g, !1)
|
|
}, a.Waves = h, document.addEventListener("DOMContentLoaded", function() {
|
|
h.displayEffect()
|
|
}, !1)
|
|
}(window),
|
|
function(a) {
|
|
var b = {
|
|
init: function(b) {
|
|
var c = {
|
|
activationWidth: 70,
|
|
edge: "left"
|
|
};
|
|
b = a.extend(c, b),
|
|
a(this).each(function() {
|
|
function c() {
|
|
g = !1, h = !1, a("#sidenav-overlay").velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: 200,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
a(this).remove()
|
|
}
|
|
}), "left" === b.edge ? (a(".drag-target").css({
|
|
width: "",
|
|
right: "",
|
|
left: "0"
|
|
}), e.velocity({
|
|
left: -1 * (f + 10)
|
|
}, {
|
|
duration: 200,
|
|
queue: !1,
|
|
easing: "easeOutCubic"
|
|
})) : (a(".drag-target").css({
|
|
width: "",
|
|
right: "0",
|
|
left: ""
|
|
}), e.velocity({
|
|
right: -1 * (f + 10)
|
|
}, {
|
|
duration: 200,
|
|
queue: !1,
|
|
easing: "easeOutCubic"
|
|
}))
|
|
}
|
|
var d = a(this),
|
|
e = a("#" + d.attr("data-activates")),
|
|
f = 240;
|
|
"left" != b.edge && e.addClass("right-aligned"), a("body").append(a('<div class="drag-target"></div>')), a(".drag-target").css("left" === b.edge ? {
|
|
left: 0
|
|
} : {
|
|
right: 0
|
|
}), e.hasClass("fixed") && a(window).resize(function() {
|
|
a(window).width() > 1200 && e.attr("style") && e.removeAttr("style"), 0 != a("#sidenav-overlay").css("opacity") && h && a("#sidenav-overlay").trigger("click")
|
|
});
|
|
var g = !1,
|
|
h = !1;
|
|
a(".drag-target").hammer({
|
|
prevent_default: !1
|
|
}).bind("tap", function() {
|
|
a("#sidenav-overlay").trigger("click")
|
|
}).bind("pan", function(d) {
|
|
if ("touch" === d.gesture.pointerType) {
|
|
var g = (d.gesture.direction, d.gesture.center.x);
|
|
if (d.gesture.center.y, d.gesture.velocityX, !a("#sidenav-overlay").length) {
|
|
var i = a('<div id="sidenav-overlay"></div>');
|
|
i.css("opacity", 0).click(function() {
|
|
c()
|
|
}), a("body").append(i)
|
|
}
|
|
if ("left" === b.edge ? g > f ? g = f : 0 > g && (g = 0) : g < a(window).width() - f && (g = a(window).width() - f), "left" === b.edge ? f / 2 > g ? h = !1 : g >= f / 2 && (h = !0) : g < a(window).width() - f / 2 ? h = !0 : g >= a(window).width() - f / 2 && (h = !1), "left" === b.edge ? e.css("left", g - f) : e.css("right", -1 * (g - f / 2)), "left" === b.edge) {
|
|
var j = g / f;
|
|
a("#sidenav-overlay").velocity({
|
|
opacity: j
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})
|
|
} else {
|
|
var j = Math.abs((g - a(window).width()) / f);
|
|
a("#sidenav-overlay").velocity({
|
|
opacity: j
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})
|
|
}
|
|
}
|
|
}).bind("panend", function(c) {
|
|
if ("touch" === c.gesture.pointerType) {
|
|
var d = c.gesture.velocityX;
|
|
g = !1, "left" === b.edge ? h || -.5 > d ? (e.velocity({
|
|
left: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a("#sidenav-overlay").velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a(".drag-target").css({
|
|
width: "50%",
|
|
right: 0,
|
|
left: ""
|
|
})) : (!h || d > .3) && (e.velocity({
|
|
left: -240
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a("#sidenav-overlay").velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
a(this).remove()
|
|
}
|
|
}), a(".drag-target").css({
|
|
width: "10%",
|
|
right: "",
|
|
left: 0
|
|
})) : h || d > .5 ? (e.velocity({
|
|
right: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a("#sidenav-overlay").velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a(".drag-target").css({
|
|
width: "50%",
|
|
right: "",
|
|
left: 0
|
|
})) : (!h || -.3 > d) && (e.velocity({
|
|
right: -240
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), a("#sidenav-overlay").velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
a(this).remove()
|
|
}
|
|
}), a(".drag-target").css({
|
|
width: "10%",
|
|
right: 0,
|
|
left: ""
|
|
}))
|
|
}
|
|
}), d.click(function() {
|
|
if (e.hasClass("active")) h = !1, g = !1, c();
|
|
else {
|
|
"left" === b.edge ? (a(".drag-target").css({
|
|
width: "50%",
|
|
right: 0,
|
|
left: ""
|
|
}), e.velocity({
|
|
left: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})) : (a(".drag-target").css({
|
|
width: "50%",
|
|
right: "",
|
|
left: 0
|
|
}), e.velocity({
|
|
right: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}));
|
|
var d = a('<div id="sidenav-overlay"></div>');
|
|
d.css("opacity", 0).click(function() {
|
|
h = !1, g = !1, c(), d.animate({
|
|
opacity: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
a(this).remove()
|
|
}
|
|
})
|
|
}), a("body").append(d), d.animate({
|
|
opacity: 1
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
h = !0, g = !1
|
|
}
|
|
})
|
|
}
|
|
return !1
|
|
})
|
|
})
|
|
},
|
|
show: function() {
|
|
this.trigger("click")
|
|
},
|
|
hide: function() {
|
|
a("#sidenav-overlay").trigger("click")
|
|
}
|
|
};
|
|
a.fn.sideNav = function(c) {
|
|
return b[c] ? b[c].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof c && c ? void a.error("Method " + c + " does not exist on jQuery.tooltip") : b.init.apply(this, arguments)
|
|
}
|
|
}(jQuery),
|
|
function(a) {
|
|
function b(b, c, d, e) {
|
|
var f = a();
|
|
return a.each(g, function(a, g) {
|
|
if (g.height() > 0) {
|
|
var h = g.offset().top,
|
|
i = g.offset().left,
|
|
j = i + g.width(),
|
|
k = h + g.height(),
|
|
l = !(i > c || e > j || h > d || b > k);
|
|
l && f.push(g)
|
|
}
|
|
}), f
|
|
}
|
|
|
|
function c() {
|
|
++j;
|
|
var c = f.scrollTop(),
|
|
d = f.scrollLeft(),
|
|
e = d + f.width(),
|
|
g = c + f.height(),
|
|
i = b(c + k.top + 200, e + k.right, g + k.bottom, d + k.left);
|
|
a.each(i, function(a, b) {
|
|
var c = b.data("scrollSpy:ticks");
|
|
"number" != typeof c && b.triggerHandler("scrollSpy:enter"), b.data("scrollSpy:ticks", j)
|
|
}), a.each(h, function(a, b) {
|
|
var c = b.data("scrollSpy:ticks");
|
|
"number" == typeof c && c !== j && (b.triggerHandler("scrollSpy:exit"), b.data("scrollSpy:ticks", null))
|
|
}), h = i
|
|
}
|
|
|
|
function d() {
|
|
f.trigger("scrollSpy:winSize")
|
|
}
|
|
|
|
function e(a, b, c) {
|
|
var d, e, f, g = null,
|
|
h = 0;
|
|
c || (c = {});
|
|
var i = function() {
|
|
h = c.leading === !1 ? 0 : l(), g = null, f = a.apply(d, e), d = e = null
|
|
};
|
|
return function() {
|
|
var j = l();
|
|
h || c.leading !== !1 || (h = j);
|
|
var k = b - (j - h);
|
|
return d = this, e = arguments, 0 >= k ? (clearTimeout(g), g = null, h = j, f = a.apply(d, e), d = e = null) : g || c.trailing === !1 || (g = setTimeout(i, k)), f
|
|
}
|
|
}
|
|
var f = a(window),
|
|
g = [],
|
|
h = [],
|
|
i = !1,
|
|
j = 0,
|
|
k = {
|
|
top: 0,
|
|
right: 0,
|
|
bottom: 0,
|
|
left: 0
|
|
},
|
|
l = Date.now || function() {
|
|
return (new Date).getTime()
|
|
};
|
|
a.scrollSpy = function(b, d) {
|
|
var h = [];
|
|
b = a(b), b.each(function(b, c) {
|
|
g.push(a(c)), a(c).data("scrollSpy:id", b), a("a[href=#" + a(c).attr("id") + "]").click(function(b) {
|
|
b.preventDefault();
|
|
var c = a(this.hash).offset().top + 1;
|
|
a(".tabs-wrapper").length ? a("html, body").animate({
|
|
scrollTop: c - 60
|
|
}, {
|
|
duration: 400,
|
|
easing: "easeOutCubic"
|
|
}) : a("html, body").animate({
|
|
scrollTop: c
|
|
}, {
|
|
duration: 400,
|
|
easing: "easeOutCubic"
|
|
})
|
|
})
|
|
}), d = d || {
|
|
throttle: 100
|
|
}, k.top = d.offsetTop || 0, k.right = d.offsetRight || 0, k.bottom = d.offsetBottom || 0, k.left = d.offsetLeft || 0;
|
|
var j = e(c, d.throttle || 100),
|
|
l = function() {
|
|
a(document).ready(j)
|
|
};
|
|
return i || (f.on("scroll", l), f.on("resize", l), i = !0), setTimeout(l, 0), b.on("scrollSpy:enter", function() {
|
|
h = a.grep(h, function(a) {
|
|
return 0 != a.height()
|
|
});
|
|
var b = a(this);
|
|
h[0] ? (a("a[href=#" + h[0].attr("id") + "]").removeClass("active"), b.data("scrollSpy:id") < h[0].data("scrollSpy:id") ? h.unshift(a(this)) : h.push(a(this))) : h.push(a(this)), a("a[href=#" + h[0].attr("id") + "]").addClass("active")
|
|
}), b.on("scrollSpy:exit", function() {
|
|
if (h = a.grep(h, function(a) {
|
|
return 0 != a.height()
|
|
}), h[0]) {
|
|
a("a[href=#" + h[0].attr("id") + "]").removeClass("active");
|
|
var b = a(this);
|
|
h = a.grep(h, function(a) {
|
|
return a.attr("id") != b.attr("id")
|
|
}), h[0] && a("a[href=#" + h[0].attr("id") + "]").addClass("active")
|
|
}
|
|
}), b
|
|
}, a.winSizeSpy = function(b) {
|
|
return a.winSizeSpy = function() {
|
|
return f
|
|
}, b = b || {
|
|
throttle: 100
|
|
}, f.on("resize", e(d, b.throttle || 100))
|
|
}, a.fn.scrollSpy = function(b) {
|
|
return a.scrollSpy(a(this), b)
|
|
}
|
|
}(jQuery),
|
|
function(a) {
|
|
a(document).ready(function() {
|
|
var b = "input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";
|
|
if (a(document).on("change", b, function() {
|
|
0 !== a(this).val().length && a(this).siblings("label, i").addClass("active")
|
|
}), a(document).ready(function() {
|
|
a(b).each(function(b, c) {
|
|
a(c).val().length > 0 && a(this).siblings("label, i").addClass("active")
|
|
})
|
|
}), a(document).on("reset", function(c) {
|
|
a(c.target).is("form") && (a(this).find(b).removeClass("valid").removeClass("invalid"), a(this).find("select.initialized").each(function() {
|
|
var b = a(this).find("option[selected]").text();
|
|
a(this).prev("span.select-dropdown").html(b)
|
|
}))
|
|
}), a(document).on("focus", b, function() {
|
|
a(this).siblings("label, i").addClass("active")
|
|
}), a(document).on("blur", b, function() {
|
|
0 === a(this).val().length ? (a(this).siblings("label, i").removeClass("active"), a(this).hasClass("validate") && (a(this).removeClass("valid"), a(this).removeClass("invalid"))) : a(this).hasClass("validate") && (a(this).is(":valid") ? (a(this).removeClass("invalid"), a(this).addClass("valid")) : (a(this).removeClass("valid"), a(this).addClass("invalid")))
|
|
}), 0 === a(".hiddendiv").length) {
|
|
var c = a('<div class="hiddendiv common"></div>'),
|
|
d = null;
|
|
a("body").append(c)
|
|
}
|
|
var e = ".materialize-textarea";
|
|
a(".hiddendiv").css("width", a(e).width()), a(e).each(function() {
|
|
a(this).val().length && (d = a(this).val(), d = d.replace(/\n/g, "<br>"), c.html(d + "<br>"), a(this).css("height", c.height()))
|
|
}), a("body").on("keyup keydown", e, function() {
|
|
d = a(this).val(), d = d.replace(/\n/g, "<br>"), c.html(d + "<br>"), a(this).css("height", c.height())
|
|
});
|
|
var f = "input[type=range]",
|
|
g = !1;
|
|
a(f).each(function() {
|
|
var b = a('<span class="thumb"><span class="value"></span></span>');
|
|
a(this).after(b)
|
|
});
|
|
var h = ".range-field";
|
|
a(document).on("mousedown", h, function(b) {
|
|
var c = a(this).children(".thumb");
|
|
c.length <= 0 && (c = a('<span class="thumb"><span class="value"></span></span>'), a(this).append(c)), g = !0, a(this).addClass("active"), c.hasClass("active") || c.velocity({
|
|
height: "30px",
|
|
width: "30px",
|
|
top: "-20px",
|
|
marginLeft: "-15px"
|
|
}, {
|
|
duration: 300,
|
|
easing: "easeOutExpo"
|
|
});
|
|
var d = b.pageX - a(this).offset().left,
|
|
e = a(this).outerWidth();
|
|
0 > d ? d = 0 : d > e && (d = e), c.addClass("active").css("left", d), c.find(".value").html(a(this).children("input[type=range]").val())
|
|
}), a(document).on("mouseup", h, function() {
|
|
g = !1, a(this).removeClass("active")
|
|
}), a(document).on("mousemove", h, function(b) {
|
|
var c = a(this).children(".thumb");
|
|
if (g) {
|
|
c.hasClass("active") || c.velocity({
|
|
height: "30px",
|
|
width: "30px",
|
|
top: "-20px",
|
|
marginLeft: "-15px"
|
|
}, {
|
|
duration: 300,
|
|
easing: "easeOutExpo"
|
|
});
|
|
var d = b.pageX - a(this).offset().left,
|
|
e = a(this).outerWidth();
|
|
0 > d ? d = 0 : d > e && (d = e), c.addClass("active").css("left", d), c.find(".value").html(a(this).children("input[type=range]").val())
|
|
}
|
|
}), a(document).on("mouseout", h, function() {
|
|
if (!g) {
|
|
var b = a(this).children(".thumb");
|
|
b.hasClass("active") && b.velocity({
|
|
height: "0",
|
|
width: "0",
|
|
top: "10px",
|
|
marginLeft: "-6px"
|
|
}, {
|
|
duration: 100
|
|
}), b.removeClass("active")
|
|
}
|
|
}), a.fn.material_select = function(b) {
|
|
a(this).each(function() {
|
|
if ($select = a(this), !$select.hasClass("browser-default") && !$select.hasClass("initialized")) {
|
|
var c = i(),
|
|
d = a('<div class="select-wrapper"></div>'),
|
|
e = a('<ul id="select-options-' + c + '" class="dropdown-content select-dropdown"></ul>'),
|
|
f = $select.children("option");
|
|
if (void 0 !== $select.find("option:selected")) var g = $select.find("option:selected");
|
|
else var g = e.first();
|
|
f.each(function() {
|
|
e.append(a('<li class="' + (a(this).is(":disabled") ? "disabled" : "") + '"><span>' + a(this).html() + "</span></li>"))
|
|
}), e.find("li").each(function(c) {
|
|
var d = $select;
|
|
a(this).click(function() {
|
|
a(this).hasClass("disabled") || (d.find("option").eq(c).prop("selected", !0), d.trigger("change"), d.prev("span.select-dropdown").html(a(this).text()), "undefined" != typeof b && b())
|
|
})
|
|
}), $select.wrap(d);
|
|
var h = a('<span class="select-dropdown ' + ($select.is(":disabled") ? "disabled" : "") + '" data-activates="select-options-' + c + '">' + g.html() + "</span>");
|
|
$select.before(h), a("body").append(e), $select.is(":disabled") || h.dropdown({
|
|
hover: !1
|
|
}), $select.addClass("initialized")
|
|
}
|
|
})
|
|
};
|
|
var i = function() {
|
|
function a() {
|
|
return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1)
|
|
}
|
|
return function() {
|
|
return a() + a() + "-" + a() + "-" + a() + "-" + a() + "-" + a() + a() + a()
|
|
}
|
|
}()
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a.fn.slider = function(b) {
|
|
var c = {
|
|
indicators: !0,
|
|
height: 400,
|
|
transition: 500,
|
|
interval: 6e3
|
|
};
|
|
return b = a.extend(c, b), this.each(function() {
|
|
function c(a, b) {
|
|
a.hasClass("center-align") ? a.velocity({
|
|
opacity: 0,
|
|
translateY: -100
|
|
}, {
|
|
duration: b,
|
|
queue: !1
|
|
}) : a.hasClass("right-align") ? a.velocity({
|
|
opacity: 0,
|
|
translateX: 100
|
|
}, {
|
|
duration: b,
|
|
queue: !1
|
|
}) : a.hasClass("left-align") && a.velocity({
|
|
opacity: 0,
|
|
translateX: -100
|
|
}, {
|
|
duration: b,
|
|
queue: !1
|
|
})
|
|
}
|
|
|
|
function d(a) {
|
|
a >= h.length ? a = 0 : 0 > a && (a = h.length - 1), i = g.find(".active").index(), i != a && (e = h.eq(i), $caption = e.find(".caption"), e.removeClass("active"), e.velocity({
|
|
opacity: 0
|
|
}, {
|
|
duration: b.transition,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
h.not(".active").velocity({
|
|
opacity: 0,
|
|
translateX: 0,
|
|
translateY: 0
|
|
}, {
|
|
duration: 0,
|
|
queue: !1
|
|
})
|
|
}
|
|
}), c($caption, b.transition), b.indicators && j.eq(i).removeClass("active"), h.eq(a).velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: b.transition,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), h.eq(a).find(".caption").velocity({
|
|
opacity: 1,
|
|
translateX: 0,
|
|
translateY: 0
|
|
}, {
|
|
duration: b.transition,
|
|
delay: b.transition,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), h.eq(a).addClass("active"), b.indicators && j.eq(a).addClass("active"))
|
|
}
|
|
var e, f = a(this),
|
|
g = f.find("ul.slides").first(),
|
|
h = g.find("li"),
|
|
i = g.find(".active").index();
|
|
if (-1 != i && (e = h.eq(i)), 400 != b.height && (f.height(b.height + 40), g.height(b.height)), h.find(".caption").each(function() {
|
|
c(a(this), 0)
|
|
}), h.find("img").each(function() {
|
|
a(this).load(function() {
|
|
a(this).width() < a(this).parent().width() && a(this).css({
|
|
width: "100%",
|
|
height: "auto"
|
|
})
|
|
})
|
|
}), b.indicators) {
|
|
var j = a('<ul class="indicators"></ul>');
|
|
h.each(function() {
|
|
var c = a('<li class="indicator-item"></li>');
|
|
c.click(function() {
|
|
var c = g.parent(),
|
|
e = c.find(a(this)).index();
|
|
d(e), clearInterval($interval), $interval = setInterval(function() {
|
|
i = g.find(".active").index(), h.length == i + 1 ? i = 0 : i += 1, d(i)
|
|
}, b.transition + b.interval)
|
|
}), j.append(c)
|
|
}), f.append(j), j = f.find("ul.indicators").find("li.indicator-item")
|
|
}
|
|
e ? e.show() : (h.first().addClass("active").velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: b.transition,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), i = 0, e = h.eq(i), b.indicators && j.eq(i).addClass("active")), e.find("img").load(function() {
|
|
e.find(".caption").velocity({
|
|
opacity: 1,
|
|
translateX: 0,
|
|
translateY: 0
|
|
}, {
|
|
duration: b.transition,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})
|
|
}), $interval = setInterval(function() {
|
|
i = g.find(".active").index(), d(i + 1)
|
|
}, b.transition + b.interval);
|
|
var k = !1,
|
|
l = !1,
|
|
m = !1;
|
|
f.hammer({
|
|
prevent_default: !1
|
|
}).bind("pan", function(a) {
|
|
if ("touch" === a.gesture.pointerType) {
|
|
clearInterval($interval);
|
|
var b = a.gesture.direction,
|
|
c = a.gesture.deltaX,
|
|
d = a.gesture.velocityX;
|
|
$curr_slide = g.find(".active"), $curr_slide.velocity({
|
|
translateX: c
|
|
}, {
|
|
duration: 50,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), 4 === b && (c > f.innerWidth() / 2 || -.65 > d) ? m = !0 : 2 === b && (c < -1 * f.innerWidth() / 2 || d > .65) && (l = !0);
|
|
var e;
|
|
l && (e = $curr_slide.next(), 0 === e.length && (e = h.first()), e.velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
})), m && (e = $curr_slide.prev(), 0 === e.length && (e = h.last()), e.velocity({
|
|
opacity: 1
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}))
|
|
}
|
|
}).bind("panend", function(a) {
|
|
"touch" === a.gesture.pointerType && ($curr_slide = g.find(".active"), k = !1, curr_index = g.find(".active").index(), m || l ? l ? (d(curr_index + 1), $curr_slide.velocity({
|
|
translateX: -1 * f.innerWidth()
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
$curr_slide.velocity({
|
|
opacity: 0,
|
|
translateX: 0
|
|
}, {
|
|
duration: 0,
|
|
queue: !1
|
|
})
|
|
}
|
|
})) : m && (d(curr_index - 1), $curr_slide.velocity({
|
|
translateX: f.innerWidth()
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad",
|
|
complete: function() {
|
|
$curr_slide.velocity({
|
|
opacity: 0,
|
|
translateX: 0
|
|
}, {
|
|
duration: 0,
|
|
queue: !1
|
|
})
|
|
}
|
|
})) : $curr_slide.velocity({
|
|
translateX: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}), l = !1, m = !1, clearInterval($interval), $interval = setInterval(function() {
|
|
i = g.find(".active").index(), h.length == i + 1 ? i = 0 : i += 1, d(i)
|
|
}, b.transition + b.interval))
|
|
})
|
|
})
|
|
}
|
|
}(jQuery),
|
|
function(a) {
|
|
a(document).ready(function() {
|
|
a(document).on("click.card", ".card", function(b) {
|
|
a(this).find(".card-reveal").length && (a(b.target).is(a(".card-reveal .card-title")) || a(b.target).is(a(".card-reveal .card-title i")) ? a(this).find(".card-reveal").velocity({
|
|
translateY: 0
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}) : (a(b.target).is(a(".card .activator")) || a(b.target).is(a(".card .activator i"))) && a(this).find(".card-reveal").velocity({
|
|
translateY: "-100%"
|
|
}, {
|
|
duration: 300,
|
|
queue: !1,
|
|
easing: "easeOutQuad"
|
|
}))
|
|
})
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
a(document).ready(function() {
|
|
var b = function() {
|
|
function a() {
|
|
return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1)
|
|
}
|
|
return function() {
|
|
return a() + a() + "-" + a() + "-" + a() + "-" + a() + "-" + a() + a() + a()
|
|
}
|
|
}();
|
|
a.fn.pushpin = function(c) {
|
|
var d = {
|
|
top: 0,
|
|
bottom: 1 / 0,
|
|
offset: 0
|
|
};
|
|
return c = a.extend(d, c), $index = 0, this.each(function() {
|
|
function d(a) {
|
|
a.removeClass("pin-top"), a.removeClass("pinned"), a.removeClass("pin-bottom")
|
|
}
|
|
|
|
function e(b, e) {
|
|
b.each(function() {
|
|
c.top <= e && c.bottom >= e && !a(this).hasClass("pinned") && (d(a(this)), a(this).css("top", c.offset), a(this).addClass("pinned")), e < c.top && !a(this).hasClass("pin-top") && (d(a(this)), a(this).css("top", 0), a(this).addClass("pin-top")), e > c.bottom && !a(this).hasClass("pin-bottom") && (d(a(this)), a(this).addClass("pin-bottom"), a(this).css("top", c.bottom - h))
|
|
})
|
|
}
|
|
var f = b(),
|
|
g = a(this),
|
|
h = a(this).offset().top;
|
|
e(g, a(window).scrollTop()), a(window).on("scroll." + f, function() {
|
|
var b = a(window).scrollTop() + c.offset;
|
|
e(g, b)
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}(jQuery),
|
|
function(a) {
|
|
"function" == typeof define && define.amd ? define("picker", ["jquery"], a) : "object" == typeof exports ? module.exports = a(require("jquery")) : this.Picker = a(jQuery)
|
|
}(function(a) {
|
|
function b(f, g, i, l) {
|
|
function m() {
|
|
return b._.node("div", b._.node("div", b._.node("div", b._.node("div", y.component.nodes(t.open), v.box), v.wrap), v.frame), v.holder)
|
|
}
|
|
|
|
function n() {
|
|
w.data(g, y).addClass(v.input).attr("tabindex", -1).val(w.data("value") ? y.get("select", u.format) : f.value), u.editable || w.on("focus." + t.id + " click." + t.id, function(a) {
|
|
a.preventDefault(), y.$root[0].focus()
|
|
}).on("keydown." + t.id, q), e(f, {
|
|
haspopup: !0,
|
|
expanded: !1,
|
|
readonly: !1,
|
|
owns: f.id + "_root"
|
|
})
|
|
}
|
|
|
|
function o() {
|
|
y.$root.on({
|
|
keydown: q,
|
|
focusin: function(a) {
|
|
y.$root.removeClass(v.focused), a.stopPropagation()
|
|
},
|
|
"mousedown click": function(b) {
|
|
var c = b.target;
|
|
c != y.$root.children()[0] && (b.stopPropagation(), "mousedown" != b.type || a(c).is("input, select, textarea, button, option") || (b.preventDefault(), y.$root[0].focus()))
|
|
}
|
|
}).on({
|
|
focus: function() {
|
|
w.addClass(v.target)
|
|
},
|
|
blur: function() {
|
|
w.removeClass(v.target)
|
|
}
|
|
}).on("focus.toOpen", r).on("click", "[data-pick], [data-nav], [data-clear], [data-close]", function() {
|
|
var b = a(this),
|
|
c = b.data(),
|
|
d = b.hasClass(v.navDisabled) || b.hasClass(v.disabled),
|
|
e = h();
|
|
e = e && (e.type || e.href), (d || e && !a.contains(y.$root[0], e)) && y.$root[0].focus(), !d && c.nav ? y.set("highlight", y.component.item.highlight, {
|
|
nav: c.nav
|
|
}) : !d && "pick" in c ? y.set("select", c.pick) : c.clear ? y.clear().close(!0) : c.close && y.close(!0)
|
|
}), e(y.$root[0], "hidden", !0)
|
|
}
|
|
|
|
function p() {
|
|
var b;
|
|
u.hiddenName === !0 ? (b = f.name, f.name = "") : (b = ["string" == typeof u.hiddenPrefix ? u.hiddenPrefix : "", "string" == typeof u.hiddenSuffix ? u.hiddenSuffix : "_submit"], b = b[0] + f.name + b[1]), y._hidden = a('<input type=hidden name="' + b + '"' + (w.data("value") || f.value ? ' value="' + y.get("select", u.formatSubmit) + '"' : "") + ">")[0], w.on("change." + t.id, function() {
|
|
y._hidden.value = f.value ? y.get("select", u.formatSubmit) : ""
|
|
}), u.container ? a(u.container).append(y._hidden) : w.after(y._hidden)
|
|
}
|
|
|
|
function q(a) {
|
|
var b = a.keyCode,
|
|
c = /^(8|46)$/.test(b);
|
|
return 27 == b ? (y.close(), !1) : void((32 == b || c || !t.open && y.component.key[b]) && (a.preventDefault(), a.stopPropagation(), c ? y.clear().close() : y.open()))
|
|
}
|
|
|
|
function r(a) {
|
|
a.stopPropagation(), "focus" == a.type && y.$root.addClass(v.focused), y.open()
|
|
}
|
|
if (!f) return b;
|
|
var s = !1,
|
|
t = {
|
|
id: f.id || "P" + Math.abs(~~(Math.random() * new Date))
|
|
},
|
|
u = i ? a.extend(!0, {}, i.defaults, l) : l || {},
|
|
v = a.extend({}, b.klasses(), u.klass),
|
|
w = a(f),
|
|
x = function() {
|
|
return this.start()
|
|
},
|
|
y = x.prototype = {
|
|
constructor: x,
|
|
$node: w,
|
|
start: function() {
|
|
return t && t.start ? y : (t.methods = {}, t.start = !0, t.open = !1, t.type = f.type, f.autofocus = f == h(), f.readOnly = !u.editable, f.id = f.id || t.id, "text" != f.type && (f.type = "text"), y.component = new i(y, u), y.$root = a(b._.node("div", m(), v.picker, 'id="' + f.id + '_root" tabindex="0"')), o(), u.formatSubmit && p(), n(), u.container ? a(u.container).append(y.$root) : w.after(y.$root), y.on({
|
|
start: y.component.onStart,
|
|
render: y.component.onRender,
|
|
stop: y.component.onStop,
|
|
open: y.component.onOpen,
|
|
close: y.component.onClose,
|
|
set: y.component.onSet
|
|
}).on({
|
|
start: u.onStart,
|
|
render: u.onRender,
|
|
stop: u.onStop,
|
|
open: u.onOpen,
|
|
close: u.onClose,
|
|
set: u.onSet
|
|
}), s = c(y.$root.children()[0]), f.autofocus && y.open(), y.trigger("start").trigger("render"))
|
|
},
|
|
render: function(a) {
|
|
return a ? y.$root.html(m()) : y.$root.find("." + v.box).html(y.component.nodes(t.open)), y.trigger("render")
|
|
},
|
|
stop: function() {
|
|
return t.start ? (y.close(), y._hidden && y._hidden.parentNode.removeChild(y._hidden), y.$root.remove(), w.removeClass(v.input).removeData(g), setTimeout(function() {
|
|
w.off("." + t.id)
|
|
}, 0), f.type = t.type, f.readOnly = !1, y.trigger("stop"), t.methods = {}, t.start = !1, y) : y
|
|
},
|
|
open: function(c) {
|
|
return t.open ? y : (w.addClass(v.active), e(f, "expanded", !0), setTimeout(function() {
|
|
y.$root.addClass(v.opened), e(y.$root[0], "hidden", !1)
|
|
}, 0), c !== !1 && (t.open = !0, s && k.css("overflow", "hidden").css("padding-right", "+=" + d()), y.$root[0].focus(), j.on("click." + t.id + " focusin." + t.id, function(a) {
|
|
var b = a.target;
|
|
b != f && b != document && 3 != a.which && y.close(b === y.$root.children()[0])
|
|
}).on("keydown." + t.id, function(c) {
|
|
var d = c.keyCode,
|
|
e = y.component.key[d],
|
|
f = c.target;
|
|
27 == d ? y.close(!0) : f != y.$root[0] || !e && 13 != d ? a.contains(y.$root[0], f) && 13 == d && (c.preventDefault(), f.click()) : (c.preventDefault(), e ? b._.trigger(y.component.key.go, y, [b._.trigger(e)]) : y.$root.find("." + v.highlighted).hasClass(v.disabled) || y.set("select", y.component.item.highlight).close())
|
|
})), y.trigger("open"))
|
|
},
|
|
close: function(a) {
|
|
return a && (y.$root.off("focus.toOpen")[0].focus(), setTimeout(function() {
|
|
y.$root.on("focus.toOpen", r)
|
|
}, 0)), w.removeClass(v.active), e(f, "expanded", !1), setTimeout(function() {
|
|
y.$root.removeClass(v.opened + " " + v.focused), e(y.$root[0], "hidden", !0)
|
|
}, 0), t.open ? (t.open = !1, s && k.css("overflow", "").css("padding-right", "-=" + d()), j.off("." + t.id), y.trigger("close")) : y
|
|
},
|
|
clear: function(a) {
|
|
return y.set("clear", null, a)
|
|
},
|
|
set: function(b, c, d) {
|
|
var e, f, g = a.isPlainObject(b),
|
|
h = g ? b : {};
|
|
if (d = g && a.isPlainObject(c) ? c : d || {}, b) {
|
|
g || (h[b] = c);
|
|
for (e in h) f = h[e], e in y.component.item && (void 0 === f && (f = null), y.component.set(e, f, d)), ("select" == e || "clear" == e) && w.val("clear" == e ? "" : y.get(e, u.format)).trigger("change");
|
|
y.render()
|
|
}
|
|
return d.muted ? y : y.trigger("set", h)
|
|
},
|
|
get: function(a, c) {
|
|
if (a = a || "value", null != t[a]) return t[a];
|
|
if ("valueSubmit" == a) {
|
|
if (y._hidden) return y._hidden.value;
|
|
a = "value"
|
|
}
|
|
if ("value" == a) return f.value;
|
|
if (a in y.component.item) {
|
|
if ("string" == typeof c) {
|
|
var d = y.component.get(a);
|
|
return d ? b._.trigger(y.component.formats.toString, y.component, [c, d]) : ""
|
|
}
|
|
return y.component.get(a)
|
|
}
|
|
},
|
|
on: function(b, c, d) {
|
|
var e, f, g = a.isPlainObject(b),
|
|
h = g ? b : {};
|
|
if (b) {
|
|
g || (h[b] = c);
|
|
for (e in h) f = h[e], d && (e = "_" + e), t.methods[e] = t.methods[e] || [], t.methods[e].push(f)
|
|
}
|
|
return y
|
|
},
|
|
off: function() {
|
|
var a, b, c = arguments;
|
|
for (a = 0, namesCount = c.length; a < namesCount; a += 1) b = c[a], b in t.methods && delete t.methods[b];
|
|
return y
|
|
},
|
|
trigger: function(a, c) {
|
|
var d = function(a) {
|
|
var d = t.methods[a];
|
|
d && d.map(function(a) {
|
|
b._.trigger(a, y, [c])
|
|
})
|
|
};
|
|
return d("_" + a), d(a), y
|
|
}
|
|
};
|
|
return new x
|
|
}
|
|
|
|
function c(a) {
|
|
var b, c = "position";
|
|
return a.currentStyle ? b = a.currentStyle[c] : window.getComputedStyle && (b = getComputedStyle(a)[c]), "fixed" == b
|
|
}
|
|
|
|
function d() {
|
|
if (k.height() <= i.height()) return 0;
|
|
var b = a('<div style="visibility:hidden;width:100px" />').appendTo("body"),
|
|
c = b[0].offsetWidth;
|
|
b.css("overflow", "scroll");
|
|
var d = a('<div style="width:100%" />').appendTo(b),
|
|
e = d[0].offsetWidth;
|
|
return b.remove(), c - e
|
|
}
|
|
|
|
function e(b, c, d) {
|
|
if (a.isPlainObject(c))
|
|
for (var e in c) f(b, e, c[e]);
|
|
else f(b, c, d)
|
|
}
|
|
|
|
function f(a, b, c) {
|
|
a.setAttribute(("role" == b ? "" : "aria-") + b, c)
|
|
}
|
|
|
|
function g(b, c) {
|
|
a.isPlainObject(b) || (b = {
|
|
attribute: c
|
|
}), c = "";
|
|
for (var d in b) {
|
|
var e = ("role" == d ? "" : "aria-") + d,
|
|
f = b[d];
|
|
c += null == f ? "" : e + '="' + b[d] + '"'
|
|
}
|
|
return c
|
|
}
|
|
|
|
function h() {
|
|
try {
|
|
return document.activeElement
|
|
} catch (a) {}
|
|
}
|
|
var i = a(window),
|
|
j = a(document),
|
|
k = a(document.documentElement);
|
|
return b.klasses = function(a) {
|
|
return a = a || "picker", {
|
|
picker: a,
|
|
opened: a + "--opened",
|
|
focused: a + "--focused",
|
|
input: a + "__input",
|
|
active: a + "__input--active",
|
|
target: a + "__input--target",
|
|
holder: a + "__holder",
|
|
frame: a + "__frame",
|
|
wrap: a + "__wrap",
|
|
box: a + "__box"
|
|
}
|
|
}, b._ = {
|
|
group: function(a) {
|
|
for (var c, d = "", e = b._.trigger(a.min, a); e <= b._.trigger(a.max, a, [e]); e += a.i) c = b._.trigger(a.item, a, [e]), d += b._.node(a.node, c[0], c[1], c[2]);
|
|
return d
|
|
},
|
|
node: function(b, c, d, e) {
|
|
return c ? (c = a.isArray(c) ? c.join("") : c, d = d ? ' class="' + d + '"' : "", e = e ? " " + e : "", "<" + b + d + e + ">" + c + "</" + b + ">") : ""
|
|
},
|
|
lead: function(a) {
|
|
return (10 > a ? "0" : "") + a
|
|
},
|
|
trigger: function(a, b, c) {
|
|
return "function" == typeof a ? a.apply(b, c || []) : a
|
|
},
|
|
digits: function(a) {
|
|
return /\d/.test(a[1]) ? 2 : 1
|
|
},
|
|
isDate: function(a) {
|
|
return {}.toString.call(a).indexOf("Date") > -1 && this.isInteger(a.getDate())
|
|
},
|
|
isInteger: function(a) {
|
|
return {}.toString.call(a).indexOf("Number") > -1 && a % 1 === 0
|
|
},
|
|
ariaAttr: g
|
|
}, b.extend = function(c, d) {
|
|
a.fn[c] = function(e, f) {
|
|
var g = this.data(c);
|
|
return "picker" == e ? g : g && "string" == typeof e ? b._.trigger(g[e], g, [f]) : this.each(function() {
|
|
var f = a(this);
|
|
f.data(c) || new b(this, c, d, e)
|
|
})
|
|
}, a.fn[c].defaults = d.defaults
|
|
}, b
|
|
}),
|
|
function(a) {
|
|
"function" == typeof define && define.amd ? define(["picker", "jquery"], a) : "object" == typeof exports ? module.exports = a(require("./picker.js"), require("jquery")) : a(Picker, jQuery)
|
|
}(function(a, b) {
|
|
function c(a, b) {
|
|
var c = this,
|
|
d = a.$node[0],
|
|
e = d.value,
|
|
f = a.$node.data("value"),
|
|
g = f || e,
|
|
h = f ? b.formatSubmit : b.format,
|
|
i = function() {
|
|
return d.currentStyle ? "rtl" == d.currentStyle.direction : "rtl" == getComputedStyle(a.$root[0]).direction
|
|
};
|
|
c.settings = b, c.$node = a.$node, c.queue = {
|
|
min: "measure create",
|
|
max: "measure create",
|
|
now: "now create",
|
|
select: "parse create validate",
|
|
highlight: "parse navigate create validate",
|
|
view: "parse create validate viewset",
|
|
disable: "deactivate",
|
|
enable: "activate"
|
|
}, c.item = {}, c.item.clear = null, c.item.disable = (b.disable || []).slice(0), c.item.enable = - function(a) {
|
|
return a[0] === !0 ? a.shift() : -1
|
|
}(c.item.disable), c.set("min", b.min).set("max", b.max).set("now"), g ? c.set("select", g, {
|
|
format: h
|
|
}) : c.set("select", null).set("highlight", c.item.now), c.key = {
|
|
40: 7,
|
|
38: -7,
|
|
39: function() {
|
|
return i() ? -1 : 1
|
|
},
|
|
37: function() {
|
|
return i() ? 1 : -1
|
|
},
|
|
go: function(a) {
|
|
var b = c.item.highlight,
|
|
d = new Date(b.year, b.month, b.date + a);
|
|
c.set("highlight", d, {
|
|
interval: a
|
|
}), this.render()
|
|
}
|
|
}, a.on("render", function() {
|
|
a.$root.find("." + b.klass.selectMonth).on("change", function() {
|
|
var c = this.value;
|
|
c && (a.set("highlight", [a.get("view").year, c, a.get("highlight").date]), a.$root.find("." + b.klass.selectMonth).trigger("focus"))
|
|
}), a.$root.find("." + b.klass.selectYear).on("change", function() {
|
|
var c = this.value;
|
|
c && (a.set("highlight", [c, a.get("view").month, a.get("highlight").date]), a.$root.find("." + b.klass.selectYear).trigger("focus"))
|
|
})
|
|
}, 1).on("open", function() {
|
|
var d = "";
|
|
c.disabled(c.get("now")) && (d = ":not(." + b.klass.buttonToday + ")"), a.$root.find("button" + d + ", select").attr("disabled", !1)
|
|
}, 1).on("close", function() {
|
|
a.$root.find("button, select").attr("disabled", !0)
|
|
}, 1)
|
|
}
|
|
var d = 7,
|
|
e = 6,
|
|
f = a._;
|
|
c.prototype.set = function(a, b, c) {
|
|
var d = this,
|
|
e = d.item;
|
|
return null === b ? ("clear" == a && (a = "select"), e[a] = b, d) : (e["enable" == a ? "disable" : "flip" == a ? "enable" : a] = d.queue[a].split(" ").map(function(e) {
|
|
return b = d[e](a, b, c)
|
|
}).pop(), "select" == a ? d.set("highlight", e.select, c) : "highlight" == a ? d.set("view", e.highlight, c) : a.match(/^(flip|min|max|disable|enable)$/) && (e.select && d.disabled(e.select) && d.set("select", e.select, c), e.highlight && d.disabled(e.highlight) && d.set("highlight", e.highlight, c)), d)
|
|
}, c.prototype.get = function(a) {
|
|
return this.item[a]
|
|
}, c.prototype.create = function(a, c, d) {
|
|
var e, g = this;
|
|
return c = void 0 === c ? a : c, c == -1 / 0 || 1 / 0 == c ? e = c : b.isPlainObject(c) && f.isInteger(c.pick) ? c = c.obj : b.isArray(c) ? (c = new Date(c[0], c[1], c[2]), c = f.isDate(c) ? c : g.create().obj) : c = f.isInteger(c) || f.isDate(c) ? g.normalize(new Date(c), d) : g.now(a, c, d), {
|
|
year: e || c.getFullYear(),
|
|
month: e || c.getMonth(),
|
|
date: e || c.getDate(),
|
|
day: e || c.getDay(),
|
|
obj: e || c,
|
|
pick: e || c.getTime()
|
|
}
|
|
}, c.prototype.createRange = function(a, c) {
|
|
var d = this,
|
|
e = function(a) {
|
|
return a === !0 || b.isArray(a) || f.isDate(a) ? d.create(a) : a
|
|
};
|
|
return f.isInteger(a) || (a = e(a)), f.isInteger(c) || (c = e(c)), f.isInteger(a) && b.isPlainObject(c) ? a = [c.year, c.month, c.date + a] : f.isInteger(c) && b.isPlainObject(a) && (c = [a.year, a.month, a.date + c]), {
|
|
from: e(a),
|
|
to: e(c)
|
|
}
|
|
}, c.prototype.withinRange = function(a, b) {
|
|
return a = this.createRange(a.from, a.to), b.pick >= a.from.pick && b.pick <= a.to.pick
|
|
}, c.prototype.overlapRanges = function(a, b) {
|
|
var c = this;
|
|
return a = c.createRange(a.from, a.to), b = c.createRange(b.from, b.to), c.withinRange(a, b.from) || c.withinRange(a, b.to) || c.withinRange(b, a.from) || c.withinRange(b, a.to)
|
|
}, c.prototype.now = function(a, b, c) {
|
|
return b = new Date, c && c.rel && b.setDate(b.getDate() + c.rel), this.normalize(b, c)
|
|
}, c.prototype.navigate = function(a, c, d) {
|
|
var e, f, g, h, i = b.isArray(c),
|
|
j = b.isPlainObject(c),
|
|
k = this.item.view;
|
|
if (i || j) {
|
|
for (j ? (f = c.year, g = c.month, h = c.date) : (f = +c[0], g = +c[1], h = +c[2]), d && d.nav && k && k.month !== g && (f = k.year, g = k.month), e = new Date(f, g + (d && d.nav ? d.nav : 0), 1), f = e.getFullYear(), g = e.getMonth(); new Date(f, g, h).getMonth() !== g;) h -= 1;
|
|
c = [f, g, h]
|
|
}
|
|
return c
|
|
}, c.prototype.normalize = function(a) {
|
|
return a.setHours(0, 0, 0, 0), a
|
|
}, c.prototype.measure = function(a, b) {
|
|
var c = this;
|
|
return b ? "string" == typeof b ? b = c.parse(a, b) : f.isInteger(b) && (b = c.now(a, b, {
|
|
rel: b
|
|
})) : b = "min" == a ? -1 / 0 : 1 / 0, b
|
|
}, c.prototype.viewset = function(a, b) {
|
|
return this.create([b.year, b.month, 1])
|
|
}, c.prototype.validate = function(a, c, d) {
|
|
var e, g, h, i, j = this,
|
|
k = c,
|
|
l = d && d.interval ? d.interval : 1,
|
|
m = -1 === j.item.enable,
|
|
n = j.item.min,
|
|
o = j.item.max,
|
|
p = m && j.item.disable.filter(function(a) {
|
|
if (b.isArray(a)) {
|
|
var d = j.create(a).pick;
|
|
d < c.pick ? e = !0 : d > c.pick && (g = !0)
|
|
}
|
|
return f.isInteger(a)
|
|
}).length;
|
|
if ((!d || !d.nav) && (!m && j.disabled(c) || m && j.disabled(c) && (p || e || g) || !m && (c.pick <= n.pick || c.pick >= o.pick)))
|
|
for (m && !p && (!g && l > 0 || !e && 0 > l) && (l *= -1); j.disabled(c) && (Math.abs(l) > 1 && (c.month < k.month || c.month > k.month) && (c = k, l = l > 0 ? 1 : -1), c.pick <= n.pick ? (h = !0, l = 1, c = j.create([n.year, n.month, n.date + (c.pick === n.pick ? 0 : -1)])) : c.pick >= o.pick && (i = !0, l = -1, c = j.create([o.year, o.month, o.date + (c.pick === o.pick ? 0 : 1)])), !h || !i);) c = j.create([c.year, c.month, c.date + l]);
|
|
return c
|
|
}, c.prototype.disabled = function(a) {
|
|
var c = this,
|
|
d = c.item.disable.filter(function(d) {
|
|
return f.isInteger(d) ? a.day === (c.settings.firstDay ? d : d - 1) % 7 : b.isArray(d) || f.isDate(d) ? a.pick === c.create(d).pick : b.isPlainObject(d) ? c.withinRange(d, a) : void 0
|
|
});
|
|
return d = d.length && !d.filter(function(a) {
|
|
return b.isArray(a) && "inverted" == a[3] || b.isPlainObject(a) && a.inverted
|
|
}).length, -1 === c.item.enable ? !d : d || a.pick < c.item.min.pick || a.pick > c.item.max.pick
|
|
}, c.prototype.parse = function(a, b, c) {
|
|
var d = this,
|
|
e = {};
|
|
return b && "string" == typeof b ? (c && c.format || (c = c || {}, c.format = d.settings.format), d.formats.toArray(c.format).map(function(a) {
|
|
var c = d.formats[a],
|
|
g = c ? f.trigger(c, d, [b, e]) : a.replace(/^!/, "").length;
|
|
c && (e[a] = b.substr(0, g)), b = b.substr(g)
|
|
}), [e.yyyy || e.yy, +(e.mm || e.m) - 1, e.dd || e.d]) : b
|
|
}, c.prototype.formats = function() {
|
|
function a(a, b, c) {
|
|
var d = a.match(/\w+/)[0];
|
|
return c.mm || c.m || (c.m = b.indexOf(d) + 1), d.length
|
|
}
|
|
|
|
function b(a) {
|
|
return a.match(/\w+/)[0].length
|
|
}
|
|
return {
|
|
d: function(a, b) {
|
|
return a ? f.digits(a) : b.date
|
|
},
|
|
dd: function(a, b) {
|
|
return a ? 2 : f.lead(b.date)
|
|
},
|
|
ddd: function(a, c) {
|
|
return a ? b(a) : this.settings.weekdaysShort[c.day]
|
|
},
|
|
dddd: function(a, c) {
|
|
return a ? b(a) : this.settings.weekdaysFull[c.day]
|
|
},
|
|
m: function(a, b) {
|
|
return a ? f.digits(a) : b.month + 1
|
|
},
|
|
mm: function(a, b) {
|
|
return a ? 2 : f.lead(b.month + 1)
|
|
},
|
|
mmm: function(b, c) {
|
|
var d = this.settings.monthsShort;
|
|
return b ? a(b, d, c) : d[c.month]
|
|
},
|
|
mmmm: function(b, c) {
|
|
var d = this.settings.monthsFull;
|
|
return b ? a(b, d, c) : d[c.month]
|
|
},
|
|
yy: function(a, b) {
|
|
return a ? 2 : ("" + b.year).slice(2)
|
|
},
|
|
yyyy: function(a, b) {
|
|
return a ? 4 : b.year
|
|
},
|
|
toArray: function(a) {
|
|
return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)
|
|
},
|
|
toString: function(a, b) {
|
|
var c = this;
|
|
return c.formats.toArray(a).map(function(a) {
|
|
return f.trigger(c.formats[a], c, [0, b]) || a.replace(/^!/, "")
|
|
}).join("")
|
|
}
|
|
}
|
|
}(), c.prototype.isDateExact = function(a, c) {
|
|
var d = this;
|
|
return f.isInteger(a) && f.isInteger(c) || "boolean" == typeof a && "boolean" == typeof c ? a === c : (f.isDate(a) || b.isArray(a)) && (f.isDate(c) || b.isArray(c)) ? d.create(a).pick === d.create(c).pick : b.isPlainObject(a) && b.isPlainObject(c) ? d.isDateExact(a.from, c.from) && d.isDateExact(a.to, c.to) : !1
|
|
}, c.prototype.isDateOverlap = function(a, c) {
|
|
var d = this,
|
|
e = d.settings.firstDay ? 1 : 0;
|
|
return f.isInteger(a) && (f.isDate(c) || b.isArray(c)) ? (a = a % 7 + e, a === d.create(c).day + 1) : f.isInteger(c) && (f.isDate(a) || b.isArray(a)) ? (c = c % 7 + e, c === d.create(a).day + 1) : b.isPlainObject(a) && b.isPlainObject(c) ? d.overlapRanges(a, c) : !1
|
|
}, c.prototype.flipEnable = function(a) {
|
|
var b = this.item;
|
|
b.enable = a || (-1 == b.enable ? 1 : -1)
|
|
}, c.prototype.deactivate = function(a, c) {
|
|
var d = this,
|
|
e = d.item.disable.slice(0);
|
|
return "flip" == c ? d.flipEnable() : c === !1 ? (d.flipEnable(1), e = []) : c === !0 ? (d.flipEnable(-1), e = []) : c.map(function(a) {
|
|
for (var c, g = 0; g < e.length; g += 1)
|
|
if (d.isDateExact(a, e[g])) {
|
|
c = !0;
|
|
break
|
|
} c || (f.isInteger(a) || f.isDate(a) || b.isArray(a) || b.isPlainObject(a) && a.from && a.to) && e.push(a)
|
|
}), e
|
|
}, c.prototype.activate = function(a, c) {
|
|
var d = this,
|
|
e = d.item.disable,
|
|
g = e.length;
|
|
return "flip" == c ? d.flipEnable() : c === !0 ? (d.flipEnable(1), e = []) : c === !1 ? (d.flipEnable(-1), e = []) : c.map(function(a) {
|
|
var c, h, i, j;
|
|
for (i = 0; g > i; i += 1) {
|
|
if (h = e[i], d.isDateExact(h, a)) {
|
|
c = e[i] = null, j = !0;
|
|
break
|
|
}
|
|
if (d.isDateOverlap(h, a)) {
|
|
b.isPlainObject(a) ? (a.inverted = !0, c = a) : b.isArray(a) ? (c = a, c[3] || c.push("inverted")) : f.isDate(a) && (c = [a.getFullYear(), a.getMonth(), a.getDate(), "inverted"]);
|
|
break
|
|
}
|
|
}
|
|
if (c)
|
|
for (i = 0; g > i; i += 1)
|
|
if (d.isDateExact(e[i], a)) {
|
|
e[i] = null;
|
|
break
|
|
} if (j)
|
|
for (i = 0; g > i; i += 1)
|
|
if (d.isDateOverlap(e[i], a)) {
|
|
e[i] = null;
|
|
break
|
|
} c && e.push(c)
|
|
}), e.filter(function(a) {
|
|
return null != a
|
|
})
|
|
}, c.prototype.nodes = function(a) {
|
|
var b = this,
|
|
c = b.settings,
|
|
g = b.item,
|
|
h = g.now,
|
|
i = g.select,
|
|
j = g.highlight,
|
|
k = g.view,
|
|
l = g.disable,
|
|
m = g.min,
|
|
n = g.max,
|
|
o = function(a, b) {
|
|
return c.firstDay && (a.push(a.shift()), b.push(b.shift())), f.node("thead", f.node("tr", f.group({
|
|
min: 0,
|
|
max: d - 1,
|
|
i: 1,
|
|
node: "th",
|
|
item: function(d) {
|
|
return [a[d], c.klass.weekdays, 'scope=col title="' + b[d] + '"']
|
|
}
|
|
})))
|
|
}((c.showWeekdaysFull ? c.weekdaysFull : c.weekdaysLetter).slice(0), c.weekdaysFull.slice(0)),
|
|
p = function(a) {
|
|
return f.node("div", " ", c.klass["nav" + (a ? "Next" : "Prev")] + (a && k.year >= n.year && k.month >= n.month || !a && k.year <= m.year && k.month <= m.month ? " " + c.klass.navDisabled : ""), "data-nav=" + (a || -1) + " " + f.ariaAttr({
|
|
role: "button",
|
|
controls: b.$node[0].id + "_table"
|
|
}) + ' title="' + (a ? c.labelMonthNext : c.labelMonthPrev) + '"')
|
|
},
|
|
q = function(d) {
|
|
var e = c.showMonthsShort ? c.monthsShort : c.monthsFull;
|
|
return "short_months" == d && (e = c.monthsShort), c.selectMonths ? f.node("select", f.group({
|
|
min: 0,
|
|
max: 11,
|
|
i: 1,
|
|
node: "option",
|
|
item: function(a) {
|
|
return [e[a], 0, "value=" + a + (k.month == a ? " selected" : "") + (k.year == m.year && a < m.month || k.year == n.year && a > n.month ? " disabled" : "")]
|
|
}
|
|
}), c.klass.selectMonth, (a ? "" : "disabled") + " " + f.ariaAttr({
|
|
controls: b.$node[0].id + "_table"
|
|
}) + ' title="' + c.labelMonthSelect + '"') : "short_months" == d ? f.node("div", e[k.month]) : f.node("div", e[k.month], c.klass.month)
|
|
},
|
|
r = function(d) {
|
|
var e = k.year,
|
|
g = c.selectYears === !0 ? 5 : ~~(c.selectYears / 2);
|
|
if (g) {
|
|
var h = m.year,
|
|
i = n.year,
|
|
j = e - g,
|
|
l = e + g;
|
|
if (h > j && (l += h - j, j = h), l > i) {
|
|
var o = j - h,
|
|
p = l - i;
|
|
j -= o > p ? p : o, l = i
|
|
}
|
|
return f.node("select", f.group({
|
|
min: j,
|
|
max: l,
|
|
i: 1,
|
|
node: "option",
|
|
item: function(a) {
|
|
return [a, 0, "value=" + a + (e == a ? " selected" : "")]
|
|
}
|
|
}), c.klass.selectYear, (a ? "" : "disabled") + " " + f.ariaAttr({
|
|
controls: b.$node[0].id + "_table"
|
|
}) + ' title="' + c.labelYearSelect + '"')
|
|
}
|
|
return "raw" == d ? f.node("div", e) : f.node("div", e, c.klass.year)
|
|
};
|
|
return createDayLabel = function() {
|
|
return null != i ? f.node("div", i.date) : f.node("div", h.date)
|
|
}, createWeekdayLabel = function() {
|
|
var a;
|
|
a = null != i ? i.day : h.day;
|
|
var b = c.weekdaysFull[a];
|
|
return b
|
|
}, f.node("div", f.node("div", createWeekdayLabel(), "picker__weekday-display") + f.node("div", q("short_months"), c.klass.month_display) + f.node("div", createDayLabel(), c.klass.day_display) + f.node("div", r("raw"), c.klass.year_display), c.klass.date_display) + f.node("div", f.node("div", (c.selectYears ? r() + q() : q() + r()) + p() + p(1), c.klass.header) + f.node("table", o + f.node("tbody", f.group({
|
|
min: 0,
|
|
max: e - 1,
|
|
i: 1,
|
|
node: "tr",
|
|
item: function(a) {
|
|
var e = c.firstDay && 0 === b.create([k.year, k.month, 1]).day ? -7 : 0;
|
|
return [f.group({
|
|
min: d * a - k.day + e + 1,
|
|
max: function() {
|
|
return this.min + d - 1
|
|
},
|
|
i: 1,
|
|
node: "td",
|
|
item: function(a) {
|
|
a = b.create([k.year, k.month, a + (c.firstDay ? 1 : 0)]);
|
|
var d = i && i.pick == a.pick,
|
|
e = j && j.pick == a.pick,
|
|
g = l && b.disabled(a) || a.pick < m.pick || a.pick > n.pick,
|
|
o = f.trigger(b.formats.toString, b, [c.format, a]);
|
|
return [f.node("div", a.date, function(b) {
|
|
return b.push(k.month == a.month ? c.klass.infocus : c.klass.outfocus), h.pick == a.pick && b.push(c.klass.now), d && b.push(c.klass.selected), e && b.push(c.klass.highlighted), g && b.push(c.klass.disabled), b.join(" ")
|
|
}([c.klass.day]), "data-pick=" + a.pick + " " + f.ariaAttr({
|
|
role: "gridcell",
|
|
label: o,
|
|
selected: d && b.$node.val() === o ? !0 : null,
|
|
activedescendant: e ? !0 : null,
|
|
disabled: g ? !0 : null
|
|
})), "", f.ariaAttr({
|
|
role: "presentation"
|
|
})]
|
|
}
|
|
})]
|
|
}
|
|
})), c.klass.table, 'id="' + b.$node[0].id + '_table" ' + f.ariaAttr({
|
|
role: "grid",
|
|
controls: b.$node[0].id,
|
|
readonly: !0
|
|
})), c.klass.calendar_container) + f.node("div", f.node("button", c.today, "btn-flat picker__today", "type=button data-pick=" + h.pick + (a && !b.disabled(h) ? "" : " disabled") + " " + f.ariaAttr({
|
|
controls: b.$node[0].id
|
|
})) + f.node("button", c.clear, "btn-flat picker__clear", "type=button data-clear=1" + (a ? "" : " disabled") + " " + f.ariaAttr({
|
|
controls: b.$node[0].id
|
|
})) + f.node("button", c.close, "btn-flat picker__close", "type=button data-close=true " + (a ? "" : " disabled") + " " + f.ariaAttr({
|
|
controls: b.$node[0].id
|
|
})), c.klass.footer)
|
|
}, c.defaults = function(a) {
|
|
return {
|
|
labelMonthNext: "Next month",
|
|
labelMonthPrev: "Previous month",
|
|
labelMonthSelect: "Select a month",
|
|
labelYearSelect: "Select a year",
|
|
monthsFull: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
|
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
|
weekdaysFull: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
|
weekdaysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
|
weekdaysLetter: ["S", "M", "T", "W", "T", "F", "S"],
|
|
today: "Today",
|
|
clear: "Clear",
|
|
close: "Close",
|
|
format: "d mmmm, yyyy",
|
|
klass: {
|
|
table: a + "table",
|
|
header: a + "header",
|
|
date_display: a + "date-display",
|
|
day_display: a + "day-display",
|
|
month_display: a + "month-display",
|
|
year_display: a + "year-display",
|
|
calendar_container: a + "calendar-container",
|
|
navPrev: a + "nav--prev",
|
|
navNext: a + "nav--next",
|
|
navDisabled: a + "nav--disabled",
|
|
month: a + "month",
|
|
year: a + "year",
|
|
selectMonth: a + "select--month",
|
|
selectYear: a + "select--year",
|
|
weekdays: a + "weekday",
|
|
day: a + "day",
|
|
disabled: a + "day--disabled",
|
|
selected: a + "day--selected",
|
|
highlighted: a + "day--highlighted",
|
|
now: a + "day--today",
|
|
infocus: a + "day--infocus",
|
|
outfocus: a + "day--outfocus",
|
|
footer: a + "footer",
|
|
buttonClear: a + "button--clear",
|
|
buttonToday: a + "button--today",
|
|
buttonClose: a + "button--close"
|
|
}
|
|
}
|
|
}(a.klasses().picker + "__"), a.extend("pickadate", c)
|
|
}), GithubRepo.prototype.toHTML = function() {
|
|
var a = this;
|
|
return a.pushed_at = a._parsePushedDate(a.pushed_at), a.url = a._parseURL(a.url), $('<div class="card"><div class="card-content"><span class="card-title activator grey-text text-darken-4">' + a.name + '<i class="mdi-navigation-more-vert right"></i></span><p>' + a.description + '</p><p><a href="' + a.url + '" target="_blank">' + a.name + '</a><span class="repo-update"> - Latest commit to <strong>master</strong> on ' + a.pushed_at + '</span><span class="github-stats right"><a class="repo-stars tooltipped" target="_blank" href="' + a.url + '/watchers" data-position="bottom" data-tooltip="Stars on repo"><i class="fa fa-star"></i> ' + a.watchers + '</a><a class="repo-forks tooltipped" target="_blank" href="' + a.url + '/network" data-position="bottom" data-tooltip="Repo Forks"><i class="fa fa-code-fork"></i> ' + a.forks + '</a></span></p></div><div class="card-reveal"><span class="card-title grey-text text-darken-4">' + a.name + '<i class="mdi-navigation-close right"></i></span><p><a href="' + a.url + '#readme" target="_blank">Read more</a></p></div</div>')
|
|
}, GithubRepo.prototype._parsePushedDate = function(a) {
|
|
var b = new Date(a);
|
|
return b.getDate() + "/" + (b.getMonth() + 1) + "/" + b.getFullYear()
|
|
}, GithubRepo.prototype._parseURL = function(a) {
|
|
return a.replace("api.", "").replace("repos/", "")
|
|
}, Github.prototype.init = function() {
|
|
var a = this,
|
|
b = a.getCache();
|
|
null !== b ? a.applyTemplate(JSON.parse(b)) : a.requestData(a.repo)
|
|
}, Github.prototype.displayIcons = function() {
|
|
$iconStars = $(".repo-stars"), $iconForks = $(".repo-forks"), $iconIssues = $(".repo-issues"), this.options.iconStars ? $iconStars.css("display", "inline-block") : $iconStars.css("display", "none"), this.options.iconForks ? $iconForks.css("display", "inline-block") : $iconForks.css("display", "none"), this.options.iconIssues ? $iconIssues.css("display", "inline-block") : $iconIssues.css("display", "none")
|
|
}, Github.prototype.requestData = function(a) {
|
|
var b = this;
|
|
$.ajax({
|
|
url: "https://api.github.com/repos/" + a,
|
|
dataType: "jsonp",
|
|
success: function(a) {
|
|
var c = a.data;
|
|
a.meta.status >= 400 && c.message ? b.handleErrorRequest(c) : b.handleSuccessfulRequest(c)
|
|
}
|
|
})
|
|
}, Github.prototype.handleErrorRequest = function(a) {
|
|
console.warn(a.message)
|
|
}, Github.prototype.handleSuccessfulRequest = function(a) {
|
|
var b = this;
|
|
b.applyTemplate(a), b.setCache(a)
|
|
}, Github.prototype.setCache = function(a) {
|
|
var b = this;
|
|
window.sessionStorage && window.sessionStorage.setItem("gh-repos:" + b.repo, JSON.stringify(a))
|
|
}, Github.prototype.getCache = function() {
|
|
var a = this;
|
|
return window.sessionStorage ? window.sessionStorage.getItem("gh-repos:" + a.repo) : !1
|
|
}, Github.prototype.applyTemplate = function(a) {
|
|
var b = this,
|
|
c = new GithubRepo(a),
|
|
d = c.toHTML();
|
|
d.appendTo(b.$container)
|
|
},
|
|
function(a) {
|
|
a.fn.github = function(b) {
|
|
return this.each(function() {
|
|
a(this).data("plugin_github") || a(this).data("plugin_github", new Github(this, b))
|
|
})
|
|
}
|
|
}(window.jQuery || window.Zepto, window);
|