/*! Amaze UI v2.7.2 | by Amaze UI Team | (c) 2016 AllMobilize, Inc. | Licensed under MIT | 2016-08-17T16:17:24+0800 */ ! function (t, e) {
"object" == typeof exports && "object" == typeof module ? module.exports = e(require("jquery")) : "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof exports ? exports.AMUI = e(require("jquery")) : t.AMUI = e(t.jQuery)
}(this, function (t) {
return function (t) {
function e(n) {
if (i[n]) return i[n].exports;
var s = i[n] = {
exports: {},
id: n,
loaded: !1
};
return t[n].call(s.exports, s, s.exports, e), s.loaded = !0, s.exports
}
var i = {};
return e.m = t, e.c = i, e.p = "", e(0)
}([function (t, e, i) {
"use strict";
var n = i(1),
s = i(2);
i(3), i(4), i(5), i(6), i(7), i(8), i(9), i(10), i(11), i(14), i(15), i(16), i(17), i(18), i(19), i(20), i(21), i(22), i(24), i(25), i(23), i(27), i(28), i(29), i(30), i(31), i(32), i(33), i(26), i(34), i(35), i(36), i(37), i(38), i(39), i(40), i(41), i(42), i(43), i(44), i(45), i(46), i(47), i(48), i(49), i(50), i(51), i(52), i(53), i(54), t.exports = n.AMUI = s
}, function (e, i) {
e.exports = t
}, function (t, e, i) {
"use strict";
var n = i(1);
if ("undefined" == typeof n) throw new Error("Amaze UI 2.x requires jQuery :-(\n\u7231\u4e0a\u4e00\u5339\u91ce\u9a6c\uff0c\u53ef\u4f60\u7684\u5bb6\u91cc\u6ca1\u6709\u8349\u539f\u2026");
var s = n.AMUI || {},
o = n(window),
a = window.document,
r = n("html");
s.VERSION = "2.7.2", s.support = {}, s.support.transition = function () {
var t = function () {
var t = a.body || a.documentElement,
e = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd otransitionend",
transition: "transitionend"
};
for (var i in e)
if (void 0 !== t.style[i]) return e[i]
}();
return t && {
end: t
}
}(), s.support.animation = function () {
var t = function () {
var t = a.body || a.documentElement,
e = {
WebkitAnimation: "webkitAnimationEnd",
MozAnimation: "animationend",
OAnimation: "oAnimationEnd oanimationend",
animation: "animationend"
};
for (var i in e)
if (void 0 !== t.style[i]) return e[i]
}();
return t && {
end: t
}
}(), s.support.touch = "ontouchstart" in window && navigator.userAgent.toLowerCase().match(/mobile|tablet/) || window.DocumentTouch && document instanceof window.DocumentTouch || window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 0 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 0 || !1, s.support.mutationobserver = window.MutationObserver || window.WebKitMutationObserver || null, s.support.formValidation = "function" == typeof document.createElement("form").checkValidity, s.utils = {}, s.utils.debounce = function (t, e, i) {
var n;
return function () {
var s = this,
o = arguments,
a = function () {
n = null, i || t.apply(s, o)
},
r = i && !n;
clearTimeout(n), n = setTimeout(a, e), r && t.apply(s, o)
}
}, s.utils.isInView = function (t, e) {
var i = n(t),
s = !(!i.width() && !i.height()) && "none" !== i.css("display");
if (!s) return !1;
var a = o.scrollLeft(),
r = o.scrollTop(),
l = i.offset(),
c = l.left,
u = l.top;
return e = n.extend({
topOffset: 0,
leftOffset: 0
}, e), u + i.height() >= r && u - e.topOffset <= r + o.height() && c + i.width() >= a && c - e.leftOffset <= a + o.width()
}, s.utils.parseOptions = s.utils.options = function (t) {
if (n.isPlainObject(t)) return t;
var e = t ? t.indexOf("{") : -1,
i = {};
if (e != -1) try {
i = new Function("", "var json = " + t.substr(e) + "; return JSON.parse(JSON.stringify(json));")()
} catch (s) {}
return i
}, s.utils.generateGUID = function (t) {
var e = t + "-" || "am-";
do e += Math.random().toString(36).substring(2, 7); while (document.getElementById(e));
return e
}, s.utils.getAbsoluteUrl = function () {
var t;
return function (e) {
return t || (t = document.createElement("a")), t.href = e, t.href
}
}(), s.plugin = function (t, e, i) {
var o = n.fn[t];
i = i || {}, n.fn[t] = function (o) {
var a, r = Array.prototype.slice.call(arguments, 0),
l = r.slice(1),
c = this.each(function () {
var c = n(this),
u = "amui." + t,
h = i.dataOptions || "data-am-" + t,
d = c.data(u),
p = n.extend({}, s.utils.parseOptions(c.attr(h)), "object" == typeof o && o);
(d || "destroy" !== o) && (d || c.data(u, d = new e(this, p)), i.methodCall ? i.methodCall.call(c, r, d) : (i.before && i.before.call(c, r, d), "string" == typeof o && (a = "function" == typeof d[o] ? d[o].apply(d, l) : d[o]), i.after && i.after.call(c, r, d)))
});
return void 0 === a ? c : a
}, n.fn[t].Constructor = e, n.fn[t].noConflict = function () {
return n.fn[t] = o, this
}, s[t] = e
}, n.fn.emulateTransitionEnd = function (t) {
var e = !1,
i = this;
n(this).one(s.support.transition.end, function () {
e = !0
});
var o = function () {
e || n(i).trigger(s.support.transition.end), i.transitionEndTimmer = void 0
};
return this.transitionEndTimmer = setTimeout(o, t), this
}, n.fn.redraw = function () {
return this.each(function () {
this.offsetHeight
})
}, n.fn.transitionEnd = function (t) {
function e(s) {
t.call(this, s), i && n.off(i, e)
}
var i = s.support.transition.end,
n = this;
return t && i && n.on(i, e), this
}, n.fn.removeClassRegEx = function () {
return this.each(function (t) {
var e = n(this).attr("class");
if (!e || !t) return !1;
var i = [];
e = e.split(" ");
for (var s = 0, o = e.length; s < o; s++) e[s].match(t) || i.push(e[s]);
n(this).attr("class", i.join(" "))
})
}, n.fn.alterClass = function (t, e) {
var i = this;
if (t.indexOf("*") === -1) return i.removeClass(t), e ? i.addClass(e) : i;
var s = new RegExp("\\s" + t.replace(/\*/g, "[A-Za-z0-9-_]+").split(" ").join("\\s|\\s") + "\\s", "g");
return i.each(function (t, e) {
for (var i = " " + e.className + " "; s.test(i);) i = i.replace(s, " ");
e.className = n.trim(i)
}), e ? i.addClass(e) : i
}, s.utils.rAF = function () {
return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || function (t) {
return window.setTimeout(t, 1e3 / 60)
}
}(), s.utils.cancelAF = function () {
return window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || function (t) {
window.clearTimeout(t)
}
}(), s.utils.measureScrollbar = function () {
if (document.body.clientWidth >= window.innerWidth) return 0;
var t = n('
');
n(document.body).append(t);
var e = t[0].offsetWidth - t[0].clientWidth;
return t.remove(), e
}, s.utils.imageLoader = function (t, e) {
function i() {
e(t[0])
}
function n() {
if (this.one("load", i), /MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
var t = this.attr("src"),
e = t.match(/\?/) ? "&" : "?";
e += "random=" + (new Date).getTime(), this.attr("src", t + e)
}
}
return t.attr("src") ? void(t[0].complete || 4 === t[0].readyState ? i() : n.call(t)) : void i()
}, s.template = function (t, e) {
var i = s.template;
return i.cache[t] || (i.cache[t] = function () {
var e = t,
n = /^[\w\-]+$/.test(t) ? i.get(t) : (e = "template(string)", t),
s = 1,
o = ("try { " + (i.variable ? "var " + i.variable + " = this.stash;" : "with (this.stash) { ") + "this.ret += '" + n.replace(/<%/g, "\x11").replace(/%>/g, "\x13").replace(/'(?![^\x11\x13]+?\x13)/g, "\\x27").replace(/^\s*|\s*$/g, "").replace(/\n/g, function () {
return "';\nthis.line = " + ++s + "; this.ret += '\\n"
}).replace(/\x11-(.+?)\x13/g, "' + ($1) + '").replace(/\x11=(.+?)\x13/g, "' + this.escapeHTML($1) + '").replace(/\x11(.+?)\x13/g, "'; $1; this.ret += '") + "'; " + (i.variable ? "" : "}") + "return this.ret;} catch (e) { throw 'TemplateError: ' + e + ' (on " + e + "' + ' line ' + this.line + ')'; } //@ sourceURL=" + e + "\n").replace(/this\.ret \+= '';/g, ""),
a = new Function(o),
r = {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'"
},
l = function (t) {
return ("" + t).replace(/[&<>\'\"]/g, function (t) {
return r[t]
})
};
return function (t) {
return a.call(i.context = {
escapeHTML: l,
line: 1,
ret: "",
stash: t
})
}
}()), e ? i.cache[t](e) : i.cache[t]
}, s.template.cache = {}, s.template.get = function (t) {
if (t) {
var e = document.getElementById(t);
return e && e.innerHTML || ""
}
}, s.DOMWatchers = [], s.DOMReady = !1, s.ready = function (t) {
s.DOMWatchers.push(t), s.DOMReady && t(document)
}, s.DOMObserve = function (t, e, i) {
var o = s.support.mutationobserver;
o && (e = n.isPlainObject(e) ? e : {
childList: !0,
subtree: !0
}, i = "function" == typeof i && i || function () {}, n(t).each(function () {
var t = this,
a = n(t);
if (!a.data("am.observer")) try {
var r = new o(s.utils.debounce(function (e, n) {
i.call(t, e, n), a.trigger("changed.dom.amui")
}, 50));
r.observe(t, e), a.data("am.observer", r)
} catch (l) {}
}))
}, n.fn.DOMObserve = function (t, e) {
return this.each(function () {
s.DOMObserve(this, t, e)
})
}, s.support.touch && r.addClass("am-touch"), n(document).on("changed.dom.amui", function (t) {
var e = t.target;
n.each(s.DOMWatchers, function (t, i) {
i(e)
})
}), n(function () {
var t = n(document.body);
s.DOMReady = !0, n.each(s.DOMWatchers, function (t, e) {
e(document)
}), s.DOMObserve("[data-am-observe]"), r.removeClass("no-js").addClass("js"), s.support.animation && r.addClass("cssanimations"), window.navigator.standalone && r.addClass("am-standalone"), n(".am-topbar-fixed-top").length && t.addClass("am-with-topbar-fixed-top"), n(".am-topbar-fixed-bottom").length && t.addClass("am-with-topbar-fixed-bottom");
var e = n(".am-layout");
e.find('[class*="md-block-grid"]').alterClass("md-block-grid-*"), e.find('[class*="lg-block-grid"]').alterClass("lg-block-grid"), n("[data-am-widget]").each(function () {
var t = n(this);
0 === t.parents(".am-layout").length && t.addClass("am-no-layout")
})
}), t.exports = s
}, function (t, e, i) {
"use strict";
function n(t, e, i) {
return setTimeout(l(t, i), e)
}
function s(t, e, i) {
return !!Array.isArray(t) && (o(t, i[e], i), !0)
}
function o(t, e, i) {
var n;
if (t)
if (t.forEach) t.forEach(e, i);
else if (void 0 !== t.length)
for (n = 0; n < t.length;) e.call(i, t[n], n, t), n++;
else
for (n in t) t.hasOwnProperty(n) && e.call(i, t[n], n, t)
}
function a(t, e, i) {
var n = "DEPRECATED METHOD: " + e + "\n" + i + " AT \n";
return function () {
var e = new Error("get-stack-trace"),
i = e && e.stack ? e.stack.replace(/^[^\(]+?[\n$]/gm, "").replace(/^\s+at\s+/gm, "").replace(/^Object.\s*\(/gm, "{anonymous}()@") : "Unknown Stack Trace",
s = window.console && (window.console.warn || window.console.log);
return s && s.call(window.console, n, i), t.apply(this, arguments)
}
}
function r(t, e, i) {
var n, s = e.prototype;
n = t.prototype = Object.create(s), n.constructor = t, n._super = s, i && ut(n, i)
}
function l(t, e) {
return function () {
return t.apply(e, arguments)
}
}
function c(t, e) {
return typeof t == ft ? t.apply(e ? e[0] || void 0 : void 0, e) : t
}
function u(t, e) {
return void 0 === t ? e : t
}
function h(t, e, i) {
o(f(e), function (e) {
t.addEventListener(e, i, !1)
})
}
function d(t, e, i) {
o(f(e), function (e) {
t.removeEventListener(e, i, !1)
})
}
function p(t, e) {
for (; t;) {
if (t == e) return !0;
t = t.parentNode
}
return !1
}
function m(t, e) {
return t.indexOf(e) > -1
}
function f(t) {
return t.trim().split(/\s+/g)
}
function v(t, e, i) {
if (t.indexOf && !i) return t.indexOf(e);
for (var n = 0; n < t.length;) {
if (i && t[n][i] == e || !i && t[n] === e) return n;
n++
}
return -1
}
function g(t) {
return Array.prototype.slice.call(t, 0)
}
function y(t, e, i) {
for (var n = [], s = [], o = 0; o < t.length;) {
var a = e ? t[o][e] : t[o];
v(s, a) < 0 && n.push(t[o]), s[o] = a, o++
}
return i && (n = e ? n.sort(function (t, i) {
return t[e] > i[e]
}) : n.sort()), n
}
function w(t, e) {
for (var i, n, s = e[0].toUpperCase() + e.slice(1), o = 0; o < pt.length;) {
if (i = pt[o], n = i ? i + s : e, n in t) return n;
o++
}
}
function b() {
return Tt++
}
function T(t) {
var e = t.ownerDocument || t;
return e.defaultView || e.parentWindow || window
}
function x(t, e) {
var i = this;
this.manager = t, this.callback = e, this.element = t.element, this.target = t.options.inputTarget, this.domHandler = function (e) {
c(t.options.enable, [t]) && i.handler(e)
}, this.init()
}
function C(t) {
var e, i = t.options.inputClass;
return new(e = i ? i : Et ? _ : St ? q : Ct ? H : L)(t, E)
}
function E(t, e, i) {
var n = i.pointers.length,
s = i.changedPointers.length,
o = e & Mt && n - s === 0,
a = e & (Nt | It) && n - s === 0;
i.isFirst = !!o, i.isFinal = !!a, o && (t.session = {}), i.eventType = e, S(t, i), t.emit("hammer.input", i), t.recognize(i), t.session.prevInput = i
}
function S(t, e) {
var i = t.session,
n = e.pointers,
s = n.length;
i.firstInput || (i.firstInput = F(e)), s > 1 && !i.firstMultiple ? i.firstMultiple = F(e) : 1 === s && (i.firstMultiple = !1);
var o = i.firstInput,
a = i.firstMultiple,
r = a ? a.center : o.center,
l = e.center = A(n);
e.timeStamp = yt(), e.deltaTime = e.timeStamp - o.timeStamp, e.angle = N(r, l), e.distance = P(r, l), k(i, e), e.offsetDirection = M(e.deltaX, e.deltaY);
var c = $(e.deltaTime, e.deltaX, e.deltaY);
e.overallVelocityX = c.x, e.overallVelocityY = c.y, e.overallVelocity = gt(c.x) > gt(c.y) ? c.x : c.y, e.scale = a ? O(a.pointers, n) : 1, e.rotation = a ? I(a.pointers, n) : 0, e.maxPointers = i.prevInput ? e.pointers.length > i.prevInput.maxPointers ? e.pointers.length : i.prevInput.maxPointers : e.pointers.length, D(i, e);
var u = t.element;
p(e.srcEvent.target, u) && (u = e.srcEvent.target), e.target = u
}
function k(t, e) {
var i = e.center,
n = t.offsetDelta || {},
s = t.prevDelta || {},
o = t.prevInput || {};
e.eventType !== Mt && o.eventType !== Nt || (s = t.prevDelta = {
x: o.deltaX || 0,
y: o.deltaY || 0
}, n = t.offsetDelta = {
x: i.x,
y: i.y
}), e.deltaX = s.x + (i.x - n.x), e.deltaY = s.y + (i.y - n.y)
}
function D(t, e) {
var i, n, s, o, a = t.lastInterval || e,
r = e.timeStamp - a.timeStamp;
if (e.eventType != It && (r > $t || void 0 === a.velocity)) {
var l = e.deltaX - a.deltaX,
c = e.deltaY - a.deltaY,
u = $(r, l, c);
n = u.x, s = u.y, i = gt(u.x) > gt(u.y) ? u.x : u.y, o = M(l, c), t.lastInterval = e
} else i = a.velocity, n = a.velocityX, s = a.velocityY, o = a.direction;
e.velocity = i, e.velocityX = n, e.velocityY = s, e.direction = o
}
function F(t) {
for (var e = [], i = 0; i < t.pointers.length;) e[i] = {
clientX: vt(t.pointers[i].clientX),
clientY: vt(t.pointers[i].clientY)
}, i++;
return {
timeStamp: yt(),
pointers: e,
center: A(e),
deltaX: t.deltaX,
deltaY: t.deltaY
}
}
function A(t) {
var e = t.length;
if (1 === e) return {
x: vt(t[0].clientX),
y: vt(t[0].clientY)
};
for (var i = 0, n = 0, s = 0; s < e;) i += t[s].clientX, n += t[s].clientY, s++;
return {
x: vt(i / e),
y: vt(n / e)
}
}
function $(t, e, i) {
return {
x: e / t || 0,
y: i / t || 0
}
}
function M(t, e) {
return t === e ? Ot : gt(t) >= gt(e) ? t < 0 ? Lt : _t : e < 0 ? zt : Rt
}
function P(t, e, i) {
i || (i = Bt);
var n = e[i[0]] - t[i[0]],
s = e[i[1]] - t[i[1]];
return Math.sqrt(n * n + s * s)
}
function N(t, e, i) {
i || (i = Bt);
var n = e[i[0]] - t[i[0]],
s = e[i[1]] - t[i[1]];
return 180 * Math.atan2(s, n) / Math.PI
}
function I(t, e) {
return N(e[1], e[0], Ut) + N(t[1], t[0], Ut)
}
function O(t, e) {
return P(e[0], e[1], Ut) / P(t[0], t[1], Ut)
}
function L() {
this.evEl = Xt, this.evWin = Yt, this.pressed = !1, x.apply(this, arguments)
}
function _() {
this.evEl = Gt, this.evWin = Kt, x.apply(this, arguments), this.store = this.manager.session.pointerEvents = []
}
function z() {
this.evTarget = Qt, this.evWin = te, this.started = !1, x.apply(this, arguments)
}
function R(t, e) {
var i = g(t.touches),
n = g(t.changedTouches);
return e & (Nt | It) && (i = y(i.concat(n), "identifier", !0)), [i, n]
}
function q() {
this.evTarget = ie, this.targetIds = {}, x.apply(this, arguments)
}
function W(t, e) {
var i = g(t.touches),
n = this.targetIds;
if (e & (Mt | Pt) && 1 === i.length) return n[i[0].identifier] = !0, [i, i];
var s, o, a = g(t.changedTouches),
r = [],
l = this.target;
if (o = i.filter(function (t) {
return p(t.target, l)
}), e === Mt)
for (s = 0; s < o.length;) n[o[s].identifier] = !0, s++;
for (s = 0; s < a.length;) n[a[s].identifier] && r.push(a[s]), e & (Nt | It) && delete n[a[s].identifier], s++;
return r.length ? [y(o.concat(r), "identifier", !0), r] : void 0
}
function H() {
x.apply(this, arguments);
var t = l(this.handler, this);
this.touch = new q(this.manager, t), this.mouse = new L(this.manager, t), this.primaryTouch = null, this.lastTouches = []
}
function B(t, e) {
t & Mt ? (this.primaryTouch = e.changedPointers[0].identifier, U.call(this, e)) : t & (Nt | It) && U.call(this, e)
}
function U(t) {
var e = t.changedPointers[0];
if (e.identifier === this.primaryTouch) {
var i = {
x: e.clientX,
y: e.clientY
};
this.lastTouches.push(i);
var n = this.lastTouches,
s = function () {
var t = n.indexOf(i);
t > -1 && n.splice(t, 1)
};
setTimeout(s, ne)
}
}
function V(t) {
for (var e = t.srcEvent.clientX, i = t.srcEvent.clientY, n = 0; n < this.lastTouches.length; n++) {
var s = this.lastTouches[n],
o = Math.abs(e - s.x),
a = Math.abs(i - s.y);
if (o <= se && a <= se) return !0
}
return !1
}
function X(t, e) {
this.manager = t, this.set(e)
}
function Y(t) {
if (m(t, ue)) return ue;
var e = m(t, he),
i = m(t, de);
return e && i ? ue : e || i ? e ? he : de : m(t, ce) ? ce : le
}
function j() {
if (!ae) return !1;
var t = {},
e = window.CSS && window.CSS.supports;
return ["auto", "manipulation", "pan-y", "pan-x", "pan-x pan-y", "none"].forEach(function (i) {
t[i] = !e || window.CSS.supports("touch-action", i)
}), t
}
function Z(t) {
this.options = ut({}, this.defaults, t || {}), this.id = b(), this.manager = null, this.options.enable = u(this.options.enable, !0), this.state = me, this.simultaneous = {}, this.requireFail = []
}
function G(t) {
return t & we ? "cancel" : t & ge ? "end" : t & ve ? "move" : t & fe ? "start" : ""
}
function K(t) {
return t == Rt ? "down" : t == zt ? "up" : t == Lt ? "left" : t == _t ? "right" : ""
}
function J(t, e) {
var i = e.manager;
return i ? i.get(t) : t
}
function Q() {
Z.apply(this, arguments)
}
function tt() {
Q.apply(this, arguments), this.pX = null, this.pY = null
}
function et() {
Q.apply(this, arguments)
}
function it() {
Z.apply(this, arguments), this._timer = null, this._input = null
}
function nt() {
Q.apply(this, arguments)
}
function st() {
Q.apply(this, arguments)
}
function ot() {
Z.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0
}
function at(t, e) {
return e = e || {}, e.recognizers = u(e.recognizers, at.defaults.preset), new rt(t, e)
}
function rt(t, e) {
this.options = ut({}, at.defaults, e || {}), this.options.inputTarget = this.options.inputTarget || t, this.handlers = {}, this.session = {}, this.recognizers = [], this.oldCssProps = {}, this.element = t, this.input = C(this), this.touchAction = new X(this, this.options.touchAction), lt(this, !0), o(this.options.recognizers, function (t) {
var e = this.add(new t[0](t[1]));
t[2] && e.recognizeWith(t[2]), t[3] && e.requireFailure(t[3])
}, this)
}
function lt(t, e) {
var i = t.element;
if (i.style) {
var n;
o(t.options.cssProps, function (s, o) {
n = w(i.style, o), e ? (t.oldCssProps[n] = i.style[n], i.style[n] = s) : i.style[n] = t.oldCssProps[n] || ""
}), e || (t.oldCssProps = {})
}
}
function ct(t, e) {
var i = document.createEvent("Event");
i.initEvent(t, !0, !0), i.gesture = e, e.target.dispatchEvent(i)
}
var ut, ht = i(1),
dt = i(2),
pt = ["", "webkit", "Moz", "MS", "ms", "o"],
mt = document.createElement("div"),
ft = "function",
vt = Math.round,
gt = Math.abs,
yt = Date.now;
ut = "function" != typeof Object.assign ? function (t) {
if (void 0 === t || null === t) throw new TypeError("Cannot convert undefined or null to object");
for (var e = Object(t), i = 1; i < arguments.length; i++) {
var n = arguments[i];
if (void 0 !== n && null !== n)
for (var s in n) n.hasOwnProperty(s) && (e[s] = n[s])
}
return e
} : Object.assign;
var wt = a(function (t, e, i) {
for (var n = Object.keys(e), s = 0; s < n.length;)(!i || i && void 0 === t[n[s]]) && (t[n[s]] = e[n[s]]), s++;
return t
}, "extend", "Use `assign`."),
bt = a(function (t, e) {
return wt(t, e, !0)
}, "merge", "Use `assign`."),
Tt = 1,
xt = /mobile|tablet|ip(ad|hone|od)|android/i,
Ct = "ontouchstart" in window,
Et = void 0 !== w(window, "PointerEvent"),
St = Ct && xt.test(navigator.userAgent),
kt = "touch",
Dt = "pen",
Ft = "mouse",
At = "kinect",
$t = 25,
Mt = 1,
Pt = 2,
Nt = 4,
It = 8,
Ot = 1,
Lt = 2,
_t = 4,
zt = 8,
Rt = 16,
qt = Lt | _t,
Wt = zt | Rt,
Ht = qt | Wt,
Bt = ["x", "y"],
Ut = ["clientX", "clientY"];
x.prototype = {
handler: function () {},
init: function () {
this.evEl && h(this.element, this.evEl, this.domHandler), this.evTarget && h(this.target, this.evTarget, this.domHandler), this.evWin && h(T(this.element), this.evWin, this.domHandler)
},
destroy: function () {
this.evEl && d(this.element, this.evEl, this.domHandler), this.evTarget && d(this.target, this.evTarget, this.domHandler), this.evWin && d(T(this.element), this.evWin, this.domHandler)
}
};
var Vt = {
mousedown: Mt,
mousemove: Pt,
mouseup: Nt
},
Xt = "mousedown",
Yt = "mousemove mouseup";
r(L, x, {
handler: function (t) {
var e = Vt[t.type];
e & Mt && 0 === t.button && (this.pressed = !0), e & Pt && 1 !== t.which && (e = Nt), this.pressed && (e & Nt && (this.pressed = !1), this.callback(this.manager, e, {
pointers: [t],
changedPointers: [t],
pointerType: Ft,
srcEvent: t
}))
}
});
var jt = {
pointerdown: Mt,
pointermove: Pt,
pointerup: Nt,
pointercancel: It,
pointerout: It
},
Zt = {
2: kt,
3: Dt,
4: Ft,
5: At
},
Gt = "pointerdown",
Kt = "pointermove pointerup pointercancel";
window.MSPointerEvent && !window.PointerEvent && (Gt = "MSPointerDown", Kt = "MSPointerMove MSPointerUp MSPointerCancel"), r(_, x, {
handler: function (t) {
var e = this.store,
i = !1,
n = t.type.toLowerCase().replace("ms", ""),
s = jt[n],
o = Zt[t.pointerType] || t.pointerType,
a = o == kt,
r = v(e, t.pointerId, "pointerId");
s & Mt && (0 === t.button || a) ? r < 0 && (e.push(t), r = e.length - 1) : s & (Nt | It) && (i = !0), r < 0 || (e[r] = t, this.callback(this.manager, s, {
pointers: e,
changedPointers: [t],
pointerType: o,
srcEvent: t
}), i && e.splice(r, 1))
}
});
var Jt = {
touchstart: Mt,
touchmove: Pt,
touchend: Nt,
touchcancel: It
},
Qt = "touchstart",
te = "touchstart touchmove touchend touchcancel";
r(z, x, {
handler: function (t) {
var e = Jt[t.type];
if (e === Mt && (this.started = !0), this.started) {
var i = R.call(this, t, e);
e & (Nt | It) && i[0].length - i[1].length === 0 && (this.started = !1), this.callback(this.manager, e, {
pointers: i[0],
changedPointers: i[1],
pointerType: kt,
srcEvent: t
})
}
}
});
var ee = {
touchstart: Mt,
touchmove: Pt,
touchend: Nt,
touchcancel: It
},
ie = "touchstart touchmove touchend touchcancel";
r(q, x, {
handler: function (t) {
var e = ee[t.type],
i = W.call(this, t, e);
i && this.callback(this.manager, e, {
pointers: i[0],
changedPointers: i[1],
pointerType: kt,
srcEvent: t
})
}
});
var ne = 2500,
se = 25;
r(H, x, {
handler: function (t, e, i) {
var n = i.pointerType == kt,
s = i.pointerType == Ft;
if (!(s && i.sourceCapabilities && i.sourceCapabilities.firesTouchEvents)) {
if (n) B.call(this, e, i);
else if (s && V.call(this, i)) return;
this.callback(t, e, i)
}
},
destroy: function () {
this.touch.destroy(), this.mouse.destroy()
}
});
var oe = w(mt.style, "touchAction"),
ae = void 0 !== oe,
re = "compute",
le = "auto",
ce = "manipulation",
ue = "none",
he = "pan-x",
de = "pan-y",
pe = j();
X.prototype = {
set: function (t) {
t == re && (t = this.compute()), ae && this.manager.element.style && pe[t] && (this.manager.element.style[oe] = t), this.actions = t.toLowerCase().trim()
},
update: function () {
this.set(this.manager.options.touchAction)
},
compute: function () {
var t = [];
return o(this.manager.recognizers, function (e) {
c(e.options.enable, [e]) && (t = t.concat(e.getTouchAction()))
}), Y(t.join(" "))
},
preventDefaults: function (t) {
var e = t.srcEvent,
i = t.offsetDirection;
if (this.manager.session.prevented) return void e.preventDefault();
var n = this.actions,
s = m(n, ue) && !pe[ue],
o = m(n, de) && !pe[de],
a = m(n, he) && !pe[he];
if (s) {
var r = 1 === t.pointers.length,
l = t.distance < 2,
c = t.deltaTime < 250;
if (r && l && c) return
}
return a && o ? void 0 : s || o && i & qt || a && i & Wt ? this.preventSrc(e) : void 0
},
preventSrc: function (t) {
this.manager.session.prevented = !0, t.preventDefault()
}
};
var me = 1,
fe = 2,
ve = 4,
ge = 8,
ye = ge,
we = 16,
be = 32;
Z.prototype = {
defaults: {},
set: function (t) {
return ut(this.options, t), this.manager && this.manager.touchAction.update(), this
},
recognizeWith: function (t) {
if (s(t, "recognizeWith", this)) return this;
var e = this.simultaneous;
return t = J(t, this), e[t.id] || (e[t.id] = t, t.recognizeWith(this)), this
},
dropRecognizeWith: function (t) {
return s(t, "dropRecognizeWith", this) ? this : (t = J(t, this), delete this.simultaneous[t.id], this)
},
requireFailure: function (t) {
if (s(t, "requireFailure", this)) return this;
var e = this.requireFail;
return t = J(t, this), v(e, t) === -1 && (e.push(t), t.requireFailure(this)), this
},
dropRequireFailure: function (t) {
if (s(t, "dropRequireFailure", this)) return this;
t = J(t, this);
var e = v(this.requireFail, t);
return e > -1 && this.requireFail.splice(e, 1), this
},
hasRequireFailures: function () {
return this.requireFail.length > 0
},
canRecognizeWith: function (t) {
return !!this.simultaneous[t.id]
},
emit: function (t) {
function e(e) {
i.manager.emit(e, t)
}
var i = this,
n = this.state;
n < ge && e(i.options.event + G(n)), e(i.options.event), t.additionalEvent && e(t.additionalEvent), n >= ge && e(i.options.event + G(n))
},
tryEmit: function (t) {
return this.canEmit() ? this.emit(t) : void(this.state = be)
},
canEmit: function () {
for (var t = 0; t < this.requireFail.length;) {
if (!(this.requireFail[t].state & (be | me))) return !1;
t++
}
return !0
},
recognize: function (t) {
var e = ut({}, t);
return c(this.options.enable, [this, e]) ? (this.state & (ye | we | be) && (this.state = me), this.state = this.process(e), void(this.state & (fe | ve | ge | we) && this.tryEmit(e))) : (this.reset(), void(this.state = be))
},
process: function (t) {},
getTouchAction: function () {},
reset: function () {}
}, r(Q, Z, {
defaults: {
pointers: 1
},
attrTest: function (t) {
var e = this.options.pointers;
return 0 === e || t.pointers.length === e
},
process: function (t) {
var e = this.state,
i = t.eventType,
n = e & (fe | ve),
s = this.attrTest(t);
return n && (i & It || !s) ? e | we : n || s ? i & Nt ? e | ge : e & fe ? e | ve : fe : be
}
}), r(tt, Q, {
defaults: {
event: "pan",
threshold: 10,
pointers: 1,
direction: Ht
},
getTouchAction: function () {
var t = this.options.direction,
e = [];
return t & qt && e.push(de), t & Wt && e.push(he), e
},
directionTest: function (t) {
var e = this.options,
i = !0,
n = t.distance,
s = t.direction,
o = t.deltaX,
a = t.deltaY;
return s & e.direction || (e.direction & qt ? (s = 0 === o ? Ot : o < 0 ? Lt : _t, i = o != this.pX, n = Math.abs(t.deltaX)) : (s = 0 === a ? Ot : a < 0 ? zt : Rt, i = a != this.pY, n = Math.abs(t.deltaY))), t.direction = s, i && n > e.threshold && s & e.direction
},
attrTest: function (t) {
return Q.prototype.attrTest.call(this, t) && (this.state & fe || !(this.state & fe) && this.directionTest(t))
},
emit: function (t) {
this.pX = t.deltaX, this.pY = t.deltaY;
var e = K(t.direction);
e && (t.additionalEvent = this.options.event + e), this._super.emit.call(this, t)
}
}), r(et, Q, {
defaults: {
event: "pinch",
threshold: 0,
pointers: 2
},
getTouchAction: function () {
return [ue]
},
attrTest: function (t) {
return this._super.attrTest.call(this, t) && (Math.abs(t.scale - 1) > this.options.threshold || this.state & fe)
},
emit: function (t) {
if (1 !== t.scale) {
var e = t.scale < 1 ? "in" : "out";
t.additionalEvent = this.options.event + e
}
this._super.emit.call(this, t)
}
}), r(it, Z, {
defaults: {
event: "press",
pointers: 1,
time: 251,
threshold: 9
},
getTouchAction: function () {
return [le]
},
process: function (t) {
var e = this.options,
i = t.pointers.length === e.pointers,
s = t.distance < e.threshold,
o = t.deltaTime > e.time;
if (this._input = t, !s || !i || t.eventType & (Nt | It) && !o) this.reset();
else if (t.eventType & Mt) this.reset(), this._timer = n(function () {
this.state = ye, this.tryEmit()
}, e.time, this);
else if (t.eventType & Nt) return ye;
return be
},
reset: function () {
clearTimeout(this._timer)
},
emit: function (t) {
this.state === ye && (t && t.eventType & Nt ? this.manager.emit(this.options.event + "up", t) : (this._input.timeStamp = yt(), this.manager.emit(this.options.event, this._input)))
}
}), r(nt, Q, {
defaults: {
event: "rotate",
threshold: 0,
pointers: 2
},
getTouchAction: function () {
return [ue]
},
attrTest: function (t) {
return this._super.attrTest.call(this, t) && (Math.abs(t.rotation) > this.options.threshold || this.state & fe)
}
}), r(st, Q, {
defaults: {
event: "swipe",
threshold: 10,
velocity: .3,
direction: qt | Wt,
pointers: 1
},
getTouchAction: function () {
return tt.prototype.getTouchAction.call(this)
},
attrTest: function (t) {
var e, i = this.options.direction;
return i & (qt | Wt) ? e = t.overallVelocity : i & qt ? e = t.overallVelocityX : i & Wt && (e = t.overallVelocityY), this._super.attrTest.call(this, t) && i & t.offsetDirection && t.distance > this.options.threshold && t.maxPointers == this.options.pointers && gt(e) > this.options.velocity && t.eventType & Nt
},
emit: function (t) {
var e = K(t.offsetDirection);
e && this.manager.emit(this.options.event + e, t), this.manager.emit(this.options.event, t)
}
}), r(ot, Z, {
defaults: {
event: "tap",
pointers: 1,
taps: 1,
interval: 300,
time: 250,
threshold: 9,
posThreshold: 10
},
getTouchAction: function () {
return [ce]
},
process: function (t) {
var e = this.options,
i = t.pointers.length === e.pointers,
s = t.distance < e.threshold,
o = t.deltaTime < e.time;
if (this.reset(), t.eventType & Mt && 0 === this.count) return this.failTimeout();
if (s && o && i) {
if (t.eventType != Nt) return this.failTimeout();
var a = !this.pTime || t.timeStamp - this.pTime < e.interval,
r = !this.pCenter || P(this.pCenter, t.center) < e.posThreshold;
this.pTime = t.timeStamp, this.pCenter = t.center, r && a ? this.count += 1 : this.count = 1, this._input = t;
var l = this.count % e.taps;
if (0 === l) return this.hasRequireFailures() ? (this._timer = n(function () {
this.state = ye, this.tryEmit()
}, e.interval, this), fe) : ye
}
return be
},
failTimeout: function () {
return this._timer = n(function () {
this.state = be
}, this.options.interval, this), be
},
reset: function () {
clearTimeout(this._timer)
},
emit: function () {
this.state == ye && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input))
}
}), at.VERSION = "2.0.7", at.defaults = {
domEvents: !1,
touchAction: re,
enable: !0,
inputTarget: null,
inputClass: null,
preset: [
[nt, {
enable: !1
}],
[et, {
enable: !1
},
["rotate"]
],
[st, {
direction: qt
}],
[tt, {
direction: qt
},
["swipe"]
],
[ot],
[ot, {
event: "doubletap",
taps: 2
},
["tap"]
],
[it]
],
cssProps: {
userSelect: "none",
touchSelect: "none",
touchCallout: "none",
contentZooming: "none",
userDrag: "none",
tapHighlightColor: "rgba(0,0,0,0)"
}
};
var Te = 1,
xe = 2;
rt.prototype = {
set: function (t) {
return ut(this.options, t), t.touchAction && this.touchAction.update(), t.inputTarget && (this.input.destroy(), this.input.target = t.inputTarget, this.input.init()), this
},
stop: function (t) {
this.session.stopped = t ? xe : Te
},
recognize: function (t) {
var e = this.session;
if (!e.stopped) {
this.touchAction.preventDefaults(t);
var i, n = this.recognizers,
s = e.curRecognizer;
(!s || s && s.state & ye) && (s = e.curRecognizer = null);
for (var o = 0; o < n.length;) i = n[o], e.stopped === xe || s && i != s && !i.canRecognizeWith(s) ? i.reset() : i.recognize(t), !s && i.state & (fe | ve | ge) && (s = e.curRecognizer = i), o++
}
},
get: function (t) {
if (t instanceof Z) return t;
for (var e = this.recognizers, i = 0; i < e.length; i++)
if (e[i].options.event == t) return e[i];
return null
},
add: function (t) {
if (s(t, "add", this)) return this;
var e = this.get(t.options.event);
return e && this.remove(e), this.recognizers.push(t), t.manager = this, this.touchAction.update(), t
},
remove: function (t) {
if (s(t, "remove", this)) return this;
if (t = this.get(t)) {
var e = this.recognizers,
i = v(e, t);
i !== -1 && (e.splice(i, 1), this.touchAction.update())
}
return this
},
on: function (t, e) {
if (void 0 !== t && void 0 !== e) {
var i = this.handlers;
return o(f(t), function (t) {
i[t] = i[t] || [], i[t].push(e)
}), this
}
},
off: function (t, e) {
if (void 0 !== t) {
var i = this.handlers;
return o(f(t), function (t) {
e ? i[t] && i[t].splice(v(i[t], e), 1) : delete i[t]
}), this
}
},
emit: function (t, e) {
this.options.domEvents && ct(t, e);
var i = this.handlers[t] && this.handlers[t].slice();
if (i && i.length) {
e.type = t, e.preventDefault = function () {
e.srcEvent.preventDefault()
};
for (var n = 0; n < i.length;) i[n](e), n++
}
},
destroy: function () {
this.element && lt(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null
}
}, ut(at, {
INPUT_START: Mt,
INPUT_MOVE: Pt,
INPUT_END: Nt,
INPUT_CANCEL: It,
STATE_POSSIBLE: me,
STATE_BEGAN: fe,
STATE_CHANGED: ve,
STATE_ENDED: ge,
STATE_RECOGNIZED: ye,
STATE_CANCELLED: we,
STATE_FAILED: be,
DIRECTION_NONE: Ot,
DIRECTION_LEFT: Lt,
DIRECTION_RIGHT: _t,
DIRECTION_UP: zt,
DIRECTION_DOWN: Rt,
DIRECTION_HORIZONTAL: qt,
DIRECTION_VERTICAL: Wt,
DIRECTION_ALL: Ht,
Manager: rt,
Input: x,
TouchAction: X,
TouchInput: q,
MouseInput: L,
PointerEventInput: _,
TouchMouseInput: H,
SingleTouchInput: z,
Recognizer: Z,
AttrRecognizer: Q,
Tap: ot,
Pan: tt,
Swipe: st,
Pinch: et,
Rotate: nt,
Press: it,
on: h,
off: d,
each: o,
merge: bt,
extend: wt,
assign: ut,
inherit: r,
bindFn: l,
prefixed: w
}),
function (t, e) {
function i(i, n) {
var s = t(i);
s.data("hammer") || s.data("hammer", new e(s[0], n))
}
t.fn.hammer = function (t) {
return this.each(function () {
i(this, t)
})
}, e.Manager.prototype.emit = function (e) {
return function (i, n) {
e.call(this, i, n), t(this.element).trigger({
type: i,
gesture: n
})
}
}(e.Manager.prototype.emit)
}(ht, at), t.exports = dt.Hammer = at
}, function (t, e, i) {
"use strict";
function n() {
window.removeEventListener("load", n, !1), c = !0
}
function s(t) {
return u = u || new s.Class(t)
}
function o(t, e) {
for (var i in e) t[i] = e[i];
return t
}
function a() {
"#ath" == document.location.hash && history.replaceState("", window.document.title, document.location.href.split("#")[0]), h.test(document.location.href) && history.replaceState("", window.document.title, document.location.href.replace(h, "$1")), d.test(document.location.search) && history.replaceState("", window.document.title, document.location.href.replace(d, "$2"))
}
var r = i(2),
l = "addEventListener" in window,
c = !1;
"complete" === document.readyState ? c = !0 : l && window.addEventListener("load", n, !1);
var u, h = /\/ath(\/)?$/,
d = /([\?&]ath=[^&]*$|&ath=[^&]*(&))/;
s.intl = {
en_us: {
ios: "To add this web app to the home screen: tap %icon and then Add to Home Screen.",
android: 'To add this web app to the home screen open the browser option menu and tap on Add to homescreen. The menu can be accessed by pressing the menu hardware button if your device has one, or by tapping the top right menu icon icon.'
},
zh_cn: {
ios: "\u5982\u8981\u628a\u5e94\u7528\u7a0b\u5f0f\u52a0\u81f3\u4e3b\u5c4f\u5e55,\u8bf7\u70b9\u51fb%icon, \u7136\u540e\u52a0\u81f3\u4e3b\u5c4f\u5e55",
android: 'To add this web app to the home screen open the browser option menu and tap on Add to homescreen. The menu can be accessed by pressing the menu hardware button if your device has one, or by tapping the top right menu icon icon.'
},
zh_tw: {
ios: "\u5982\u8981\u628a\u61c9\u7528\u7a0b\u5f0f\u52a0\u81f3\u4e3b\u5c4f\u5e55, \u8acb\u9ede\u64ca%icon, \u7136\u5f8c\u52a0\u81f3\u4e3b\u5c4f\u5e55.",
android: 'To add this web app to the home screen open the browser option menu and tap on Add to homescreen. The menu can be accessed by pressing the menu hardware button if your device has one, or by tapping the top right menu icon icon.'
}
};
for (var p in s.intl) s.intl[p.substr(0, 2)] = s.intl[p];
s.defaults = {
appID: "org.cubiq.addtohome",
fontSize: 15,
debug: !1,
logging: !1,
modal: !1,
mandatory: !1,
autostart: !0,
skipFirstVisit: !1,
startDelay: 1,
lifespan: 15,
displayPace: 1440,
maxDisplayCount: 0,
icon: !0,
message: "",
validLocation: [],
onInit: null,
onShow: null,
onRemove: null,
onAdd: null,
onPrivate: null,
privateModeOverride: !1,
detectHomescreen: !1
};
var m = window.navigator.userAgent,
f = window.navigator;
o(s, {
hasToken: "#ath" == document.location.hash || h.test(document.location.href) || d.test(document.location.search),
isRetina: window.devicePixelRatio && window.devicePixelRatio > 1,
isIDevice: /iphone|ipod|ipad/i.test(m),
isMobileChrome: m.indexOf("Android") > -1 && /Chrome\/[.0-9]*/.test(m) && m.indexOf("Version") == -1,
isMobileIE: m.indexOf("Windows Phone") > -1,
language: f.language && f.language.toLowerCase().replace("-", "_") || ""
}), s.language = s.language && s.language in s.intl ? s.language : "en_us", s.isMobileSafari = s.isIDevice && m.indexOf("Safari") > -1 && m.indexOf("CriOS") < 0, s.OS = s.isIDevice ? "ios" : s.isMobileChrome ? "android" : s.isMobileIE ? "windows" : "unsupported", s.OSVersion = m.match(/(OS|Android) (\d+[_\.]\d+)/), s.OSVersion = s.OSVersion && s.OSVersion[2] ? +s.OSVersion[2].replace("_", ".") : 0, s.isStandalone = "standalone" in window.navigator && window.navigator.standalone, s.isTablet = s.isMobileSafari && m.indexOf("iPad") > -1 || s.isMobileChrome && m.indexOf("Mobile") < 0, s.isCompatible = s.isMobileSafari && s.OSVersion >= 6 || s.isMobileChrome;
var v = {
lastDisplayTime: 0,
returningVisitor: !1,
displayCount: 0,
optedout: !1,
added: !1
};
s.removeSession = function (t) {
try {
if (!localStorage) throw new Error("localStorage is not defined");
localStorage.removeItem(t || s.defaults.appID)
} catch (e) {}
}, s.doLog = function (t) {
this.options.logging && console.log(t)
}, s.Class = function (t) {
if (this.doLog = s.doLog, this.options = o({}, s.defaults), o(this.options, t), this.options.debug && (this.options.logging = !0), l) {
if (this.options.mandatory = this.options.mandatory && ("standalone" in window.navigator || this.options.debug), this.options.modal = this.options.modal || this.options.mandatory, this.options.mandatory && (this.options.startDelay = -.5), this.options.detectHomescreen = this.options.detectHomescreen === !0 ? "hash" : this.options.detectHomescreen, this.options.debug && (s.isCompatible = !0, s.OS = "string" == typeof this.options.debug ? this.options.debug : "unsupported" == s.OS ? "android" : s.OS, s.OSVersion = "ios" == s.OS ? "8" : "4"), this.container = document.documentElement, this.session = this.getItem(this.options.appID), this.session = this.session ? JSON.parse(this.session) : void 0, !s.hasToken || s.isCompatible && this.session || (s.hasToken = !1, a()), !s.isCompatible) return void this.doLog("Add to homescreen: not displaying callout because device not supported");
this.session = this.session || v;
try {
if (!localStorage) throw new Error("localStorage is not defined");
localStorage.setItem(this.options.appID, JSON.stringify(this.session)), s.hasLocalStorage = !0
} catch (e) {
s.hasLocalStorage = !1, this.options.onPrivate && this.options.onPrivate.call(this)
}
for (var i = !this.options.validLocation.length, n = this.options.validLocation.length; n--;)
if (this.options.validLocation[n].test(document.location.href)) {
i = !0;
break
} if (this.getItem("addToHome") && this.optOut(), this.session.optedout) return void this.doLog("Add to homescreen: not displaying callout because user opted out");
if (this.session.added) return void this.doLog("Add to homescreen: not displaying callout because already added to the homescreen");
if (!i) return void this.doLog("Add to homescreen: not displaying callout because not a valid location");
if (s.isStandalone) return this.session.added || (this.session.added = !0, this.updateSession(), this.options.onAdd && s.hasLocalStorage && this.options.onAdd.call(this)), void this.doLog("Add to homescreen: not displaying callout because in standalone mode");
if (this.options.detectHomescreen) {
if (s.hasToken) return a(), this.session.added || (this.session.added = !0, this.updateSession(), this.options.onAdd && s.hasLocalStorage && this.options.onAdd.call(this)), void this.doLog("Add to homescreen: not displaying callout because URL has token, so we are likely coming from homescreen");
"hash" == this.options.detectHomescreen ? history.replaceState("", window.document.title, document.location.href + "#ath") : "smartURL" == this.options.detectHomescreen ? history.replaceState("", window.document.title, document.location.href.replace(/(\/)?$/, "/ath$1")) : history.replaceState("", window.document.title, document.location.href + (document.location.search ? "&" : "?") + "ath=")
}
if (!this.session.returningVisitor && (this.session.returningVisitor = !0, this.updateSession(), this.options.skipFirstVisit)) return void this.doLog("Add to homescreen: not displaying callout because skipping first visit");
if (!this.options.privateModeOverride && !s.hasLocalStorage) return void this.doLog("Add to homescreen: not displaying callout because browser is in private mode");
this.ready = !0, this.options.onInit && this.options.onInit.call(this), this.options.autostart && (this.doLog("Add to homescreen: autostart displaying callout"), this.show())
}
}, s.Class.prototype = {
events: {
load: "_delayedShow",
error: "_delayedShow",
orientationchange: "resize",
resize: "resize",
scroll: "resize",
click: "remove",
touchmove: "_preventDefault",
transitionend: "_removeElements",
webkitTransitionEnd: "_removeElements",
MSTransitionEnd: "_removeElements"
},
handleEvent: function (t) {
var e = this.events[t.type];
e && this[e](t)
},
show: function (t) {
if (this.options.autostart && !c) return void setTimeout(this.show.bind(this), 50);
if (this.shown) return void this.doLog("Add to homescreen: not displaying callout because already shown on screen");
var e = Date.now(),
i = this.session.lastDisplayTime;
if (t !== !0) {
if (!this.ready) return void this.doLog("Add to homescreen: not displaying callout because not ready");
if (e - i < 6e4 * this.options.displayPace) return void this.doLog("Add to homescreen: not displaying callout because displayed recently");
if (this.options.maxDisplayCount && this.session.displayCount >= this.options.maxDisplayCount) return void this.doLog("Add to homescreen: not displaying callout because displayed too many times already")
}
this.shown = !0, this.session.lastDisplayTime = e, this.session.displayCount++, this.updateSession(), this.applicationIcon || ("ios" == s.OS ? this.applicationIcon = document.querySelector('head link[rel^=apple-touch-icon][sizes="152x152"],head link[rel^=apple-touch-icon][sizes="144x144"],head link[rel^=apple-touch-icon][sizes="120x120"],head link[rel^=apple-touch-icon][sizes="114x114"],head link[rel^=apple-touch-icon]') : this.applicationIcon = document.querySelector('head link[rel^="shortcut icon"][sizes="196x196"],head link[rel^=apple-touch-icon]'));
var n = "";
"object" == typeof this.options.message && s.language in this.options.message ? n = this.options.message[s.language][s.OS] : "object" == typeof this.options.message && s.OS in this.options.message ? n = this.options.message[s.OS] : this.options.message in s.intl ? n = s.intl[this.options.message][s.OS] : "" !== this.options.message ? n = this.options.message : s.OS in s.intl[s.language] && (n = s.intl[s.language][s.OS]), n = "
" + n.replace("%icon", 'icon') + "
", this.viewport = document.createElement("div"), this.viewport.className = "ath-viewport", this.options.modal && (this.viewport.className += " ath-modal"), this.options.mandatory && (this.viewport.className += " ath-mandatory"), this.viewport.style.position = "absolute", this.element = document.createElement("div"), this.element.className = "ath-container ath-" + s.OS + " ath-" + s.OS + (s.OSVersion + "").substr(0, 1) + " ath-" + (s.isTablet ? "tablet" : "phone"), this.element.style.cssText = "-webkit-transition-property:-webkit-transform,opacity;-webkit-transition-duration:0s;-webkit-transition-timing-function:ease-out;transition-property:transform,opacity;transition-duration:0s;transition-timing-function:ease-out;", this.element.style.webkitTransform = "translate3d(0,-" + window.innerHeight + "px,0)", this.element.style.transform = "translate3d(0,-" + window.innerHeight + "px,0)", this.options.icon && this.applicationIcon && (this.element.className += " ath-icon", this.img = document.createElement("img"), this.img.className = "ath-application-icon", this.img.addEventListener("load", this, !1), this.img.addEventListener("error", this, !1), this.img.src = this.applicationIcon.href, this.element.appendChild(this.img)), this.element.innerHTML += n, this.viewport.style.left = "-99999em", this.viewport.appendChild(this.element), this.container.appendChild(this.viewport), this.img ? this.doLog("Add to homescreen: not displaying callout because waiting for img to load") : this._delayedShow()
},
_delayedShow: function (t) {
setTimeout(this._show.bind(this), 1e3 * this.options.startDelay + 500)
},
_show: function () {
var t = this;
this.updateViewport(), window.addEventListener("resize", this, !1), window.addEventListener("scroll", this, !1), window.addEventListener("orientationchange", this, !1), this.options.modal && document.addEventListener("touchmove", this, !0), this.options.mandatory || setTimeout(function () {
t.element.addEventListener("click", t, !0)
}, 1e3), setTimeout(function () {
t.element.style.webkitTransitionDuration = "1.2s", t.element.style.transitionDuration = "1.2s", t.element.style.webkitTransform = "translate3d(0,0,0)", t.element.style.transform = "translate3d(0,0,0)"
}, 0), this.options.lifespan && (this.removeTimer = setTimeout(this.remove.bind(this), 1e3 * this.options.lifespan)), this.options.onShow && this.options.onShow.call(this)
},
remove: function () {
clearTimeout(this.removeTimer), this.img && (this.img.removeEventListener("load", this, !1), this.img.removeEventListener("error", this, !1)), window.removeEventListener("resize", this, !1), window.removeEventListener("scroll", this, !1), window.removeEventListener("orientationchange", this, !1), document.removeEventListener("touchmove", this, !0), this.element.removeEventListener("click", this, !0), this.element.addEventListener("transitionend", this, !1), this.element.addEventListener("webkitTransitionEnd", this, !1), this.element.addEventListener("MSTransitionEnd", this, !1), this.element.style.webkitTransitionDuration = "0.3s", this.element.style.opacity = "0"
},
_removeElements: function () {
this.element.removeEventListener("transitionend", this, !1), this.element.removeEventListener("webkitTransitionEnd", this, !1), this.element.removeEventListener("MSTransitionEnd", this, !1), this.container.removeChild(this.viewport), this.shown = !1, this.options.onRemove && this.options.onRemove.call(this)
},
updateViewport: function () {
if (this.shown) {
this.viewport.style.width = window.innerWidth + "px", this.viewport.style.height = window.innerHeight + "px", this.viewport.style.left = window.scrollX + "px", this.viewport.style.top = window.scrollY + "px";
var t = document.documentElement.clientWidth;
this.orientation = t > document.documentElement.clientHeight ? "landscape" : "portrait";
var e = "ios" == s.OS ? "portrait" == this.orientation ? screen.width : screen.height : screen.width;
this.scale = screen.width > t ? 1 : e / window.innerWidth, this.element.style.fontSize = this.options.fontSize / this.scale + "px"
}
},
resize: function () {
clearTimeout(this.resizeTimer), this.resizeTimer = setTimeout(this.updateViewport.bind(this), 100)
},
updateSession: function () {
s.hasLocalStorage !== !1 && localStorage && localStorage.setItem(this.options.appID, JSON.stringify(this.session))
},
clearSession: function () {
this.session = v, this.updateSession()
},
getItem: function (t) {
try {
if (!localStorage) throw new Error("localStorage is not defined");
return localStorage.getItem(t)
} catch (e) {
s.hasLocalStorage = !1
}
},
optOut: function () {
this.session.optedout = !0, this.updateSession()
},
optIn: function () {
this.session.optedout = !1, this.updateSession()
},
clearDisplayCount: function () {
this.session.displayCount = 0, this.updateSession()
},
_preventDefault: function (t) {
t.preventDefault(), t.stopPropagation()
}
}, s.VERSION = "3.2.2", t.exports = r.addToHomescreen = s
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = function (t, e) {
var i = this;
this.options = n.extend({}, o.DEFAULTS, e), this.$element = n(t), this.$element.addClass("am-fade am-in").on("click.alert.amui", ".am-close", function () {
i.close()
})
};
o.DEFAULTS = {
removeElement: !0
}, o.prototype.close = function () {
function t() {
e.trigger("closed.alert.amui").remove()
}
var e = this.$element;
e.trigger("close.alert.amui").removeClass("am-in"), s.support.transition && e.hasClass("am-fade") ? e.one(s.support.transition.end, t).emulateTransitionEnd(200) : t()
}, s.plugin("alert", o), n(document).on("click.alert.amui.data-api", "[data-am-alert]", function (t) {
var e = n(t.target);
e.is(".am-close") && n(this).alert("close")
}), t.exports = o
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = function (t, e) {
this.$element = n(t), this.options = n.extend({}, o.DEFAULTS, e), this.isLoading = !1, this.hasSpinner = !1
};
o.DEFAULTS = {
loadingText: "loading...",
disabledClassName: "am-disabled",
activeClassName: "am-active",
spinner: void 0
}, o.prototype.setState = function (t, e) {
var i = this.$element,
o = "disabled",
a = i.data(),
r = this.options,
l = i.is("input") ? "val" : "html",
c = "am-btn-" + t + " " + r.disabledClassName;
t += "Text", r.resetText || (r.resetText = i[l]()), s.support.animation && r.spinner && "html" === l && !this.hasSpinner && (r.loadingText = '' + r.loadingText, this.hasSpinner = !0), e = e || (void 0 === a[t] ? r[t] : a[t]), i[l](e), setTimeout(n.proxy(function () {
"loadingText" === t ? (i.addClass(c).attr(o, o), this.isLoading = !0) : this.isLoading && (i.removeClass(c).removeAttr(o), this.isLoading = !1)
}, this), 0)
}, o.prototype.toggle = function () {
var t = !0,
e = this.$element,
i = this.$element.parent('[class*="am-btn-group"]'),
n = o.DEFAULTS.activeClassName;
if (i.length) {
var s = this.$element.find("input");
"radio" == s.prop("type") && (s.prop("checked") && e.hasClass(n) ? t = !1 : i.find("." + n).removeClass(n)), t && s.prop("checked", !e.hasClass(n)).trigger("change")
}
t && (e.toggleClass(n), e.hasClass(n) || e.blur())
}, s.plugin("button", o, {
dataOptions: "data-am-loading",
methodCall: function (t, e) {
"toggle" === t[0] ? e.toggle() : "string" == typeof t[0] && e.setState.apply(e, t)
}
}), n(document).on("click.button.amui.data-api", "[data-am-button]", function (t) {
t.preventDefault();
var e = n(t.target);
e.hasClass("am-btn") || (e = e.closest(".am-btn")), e.button("toggle")
}), s.ready(function (t) {
n("[data-am-loading]", t).button(), n("[data-am-button]", t).find("input:checked").each(function () {
n(this).parent("label").addClass(o.DEFAULTS.activeClassName)
})
}), t.exports = s.button = o
}, function (t, e, i) {
"use strict";
function n(t) {
return this.each(function () {
var e = s(this),
i = e.data("amui.collapse"),
n = s.extend({}, a.DEFAULTS, o.utils.options(e.attr("data-am-collapse")), "object" == typeof t && t);
!i && n.toggle && "open" === t && (t = !t), i || e.data("amui.collapse", i = new a(this, n)), "string" == typeof t && i[t]()
})
}
var s = i(1),
o = i(2),
a = function (t, e) {
this.$element = s(t), this.options = s.extend({}, a.DEFAULTS, e), this.transitioning = null, this.options.parent && (this.$parent = s(this.options.parent)), this.options.toggle && this.toggle()
};
a.DEFAULTS = {
toggle: !0
}, a.prototype.open = function () {
if (!this.transitioning && !this.$element.hasClass("am-in")) {
var t = s.Event("open.collapse.amui");
if (this.$element.trigger(t), !t.isDefaultPrevented()) {
var e = this.$parent && this.$parent.find("> .am-panel > .am-in");
if (e && e.length) {
var i = e.data("amui.collapse");
if (i && i.transitioning) return;
n.call(e, "close"), i || e.data("amui.collapse", null)
}
this.$element.removeClass("am-collapse").addClass("am-collapsing").height(0), this.transitioning = 1;
var a = function () {
this.$element.removeClass("am-collapsing").addClass("am-collapse am-in").height("").trigger("opened.collapse.amui"), this.transitioning = 0
};
if (!o.support.transition) return a.call(this);
var r = this.$element[0].scrollHeight;
this.$element.one(o.support.transition.end, s.proxy(a, this)).emulateTransitionEnd(300).css({
height: r
})
}
}
}, a.prototype.close = function () {
if (!this.transitioning && this.$element.hasClass("am-in")) {
var t = s.Event("close.collapse.amui");
if (this.$element.trigger(t), !t.isDefaultPrevented()) {
this.$element.height(this.$element.height()).redraw(), this.$element.addClass("am-collapsing").removeClass("am-collapse am-in"), this.transitioning = 1;
var e = function () {
this.transitioning = 0, this.$element.trigger("closed.collapse.amui").removeClass("am-collapsing").addClass("am-collapse")
};
return o.support.transition ? void this.$element.height(0).one(o.support.transition.end, s.proxy(e, this)).emulateTransitionEnd(300) : e.call(this)
}
}
}, a.prototype.toggle = function () {
this[this.$element.hasClass("am-in") ? "close" : "open"]()
}, s.fn.collapse = n, s(document).on("click.collapse.amui.data-api", "[data-am-collapse]", function (t) {
var e, i = s(this),
a = o.utils.options(i.attr("data-am-collapse")),
r = a.target || t.preventDefault() || (e = i.attr("href")) && e.replace(/.*(?=#[^\s]+$)/, ""),
l = s(r),
c = l.data("amui.collapse"),
u = c ? "toggle" : a,
h = a.parent,
d = h && s(h);
c && c.transitioning || (d && d.find("[data-am-collapse]").not(i).addClass("am-collapsed"), i[l.hasClass("am-in") ? "addClass" : "removeClass"]("am-collapsed")), n.call(l, u)
}), t.exports = o.collapse = a
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = n(document),
a = function (t, e) {
if (this.$element = n(t), this.options = n.extend({}, a.DEFAULTS, e), this.format = r.parseFormat(this.options.format), this.$element.data("date", this.options.date), this.language = this.getLocale(this.options.locale), this.theme = this.options.theme, this.$picker = n(r.template).appendTo("body").on({
click: n.proxy(this.click, this)
}), this.isInput = this.$element.is("input"), this.component = !!this.$element.is(".am-datepicker-date") && this.$element.find(".am-datepicker-add-on"), this.isInput ? this.$element.on({
"click.datepicker.amui": n.proxy(this.open, this),
"keyup.datepicker.amui": n.proxy(this.update, this)
}) : this.component ? this.component.on("click.datepicker.amui", n.proxy(this.open, this)) : this.$element.on("click.datepicker.amui", n.proxy(this.open, this)), this.minViewMode = this.options.minViewMode, "string" == typeof this.minViewMode) switch (this.minViewMode) {
case "months":
this.minViewMode = 1;
break;
case "years":
this.minViewMode = 2;
break;
default:
this.minViewMode = 0
}
if (this.viewMode = this.options.viewMode, "string" == typeof this.viewMode) switch (this.viewMode) {
case "months":
this.viewMode = 1;
break;
case "years":
this.viewMode = 2;
break;
default:
this.viewMode = 0
}
this.startViewMode = this.viewMode, this.weekStart = (this.options.weekStart || a.locales[this.language].weekStart || 0) % 7, this.weekEnd = (this.weekStart + 6) % 7, this.onRender = this.options.onRender, this.setTheme(), this.fillDow(), this.fillMonths(), this.update(), this.showMode()
};
a.DEFAULTS = {
locale: "zh_CN",
format: "yyyy-mm-dd",
weekStart: void 0,
viewMode: 0,
minViewMode: 0,
date: "",
theme: "",
autoClose: 1,
onRender: function (t) {
return ""
}
}, a.prototype.open = function (t) {
this.$picker.show(), this.height = this.component ? this.component.outerHeight() : this.$element.outerHeight(), this.place(), n(window).on("resize.datepicker.amui", n.proxy(this.place, this)), t && (t.stopPropagation(), t.preventDefault());
var e = this;
o.on("mousedown.datapicker.amui touchstart.datepicker.amui", function (t) {
0 === n(t.target).closest(".am-datepicker").length && e.close()
}), this.$element.trigger({
type: "open.datepicker.amui",
date: this.date
})
}, a.prototype.close = function () {
this.$picker.hide(), n(window).off("resize.datepicker.amui", this.place), this.viewMode = this.startViewMode, this.showMode(), this.isInput || n(document).off("mousedown.datapicker.amui touchstart.datepicker.amui", this.close), this.$element.trigger({
type: "close.datepicker.amui",
date: this.date
})
}, a.prototype.set = function () {
var t, e = r.formatDate(this.date, this.format);
this.isInput ? t = this.$element.attr("value", e) : (this.component && (t = this.$element.find("input").attr("value", e)), this.$element.data("date", e)), t && t.trigger("change")
}, a.prototype.setValue = function (t) {
"string" == typeof t ? this.date = r.parseDate(t, this.format) : this.date = new Date(t), this.set(), this.viewDate = new Date(this.date.getFullYear(), this.date.getMonth(), 1, 0, 0, 0, 0), this.fill()
}, a.prototype.place = function () {
var t = this.component ? this.component.offset() : this.$element.offset(),
e = this.component ? this.component.width() : this.$element.width(),
i = t.top + this.height,
n = t.left,
s = o.width() - t.left - e,
a = this.isOutView();
if (this.$picker.removeClass("am-datepicker-right"), this.$picker.removeClass("am-datepicker-up"), o.width() > 640) {
if (a.outRight) return this.$picker.addClass("am-datepicker-right"), void this.$picker.css({
top: i,
left: "auto",
right: s
});
a.outBottom && (this.$picker.addClass("am-datepicker-up"), i = t.top - this.$picker.outerHeight(!0))
} else n = 0;
this.$picker.css({
top: i,
left: n
})
}, a.prototype.update = function (t) {
this.date = r.parseDate("string" == typeof t ? t : this.isInput ? this.$element.prop("value") : this.$element.data("date"), this.format), this.viewDate = new Date(this.date.getFullYear(), this.date.getMonth(), 1, 0, 0, 0, 0), this.fill()
}, a.prototype.fillDow = function () {
for (var t = this.weekStart, e = "
"; t < this.weekStart + 7;) e += '
' + a.locales[this.language].daysMin[t++ % 7] + "
";
e += "
", this.$picker.find(".am-datepicker-days thead").append(e)
}, a.prototype.fillMonths = function () {
for (var t = "", e = 0; e < 12;) t += '' + a.locales[this.language].monthsShort[e++] + "";
this.$picker.find(".am-datepicker-months td").append(t)
}, a.prototype.fill = function () {
var t = new Date(this.viewDate),
e = t.getFullYear(),
i = t.getMonth(),
n = this.date.valueOf(),
s = new Date(e, i - 1, 28, 0, 0, 0, 0),
o = r.getDaysInMonth(s.getFullYear(), s.getMonth()),
l = this.$picker.find(".am-datepicker-days .am-datepicker-select");
"zh_CN" === this.language ? l.text(e + a.locales[this.language].year[0] + " " + a.locales[this.language].months[i]) : l.text(a.locales[this.language].months[i] + " " + e), s.setDate(o), s.setDate(o - (s.getDay() - this.weekStart + 7) % 7);
var c = new Date(s);
c.setDate(c.getDate() + 42), c = c.valueOf();
for (var u, h, d, p = []; s.valueOf() < c;) s.getDay() === this.weekStart && p.push("
"), u = this.onRender(s, 0), h = s.getFullYear(), d = s.getMonth(), d < i && h === e || h < e ? u += " am-datepicker-old" : (d > i && h === e || h > e) && (u += " am-datepicker-new"), s.valueOf() === n && (u += " am-active"), p.push('
' + s.getDate() + "
"), s.getDay() === this.weekEnd && p.push("
"), s.setDate(s.getDate() + 1);
this.$picker.find(".am-datepicker-days tbody").empty().append(p.join(""));
var m = this.date.getFullYear(),
f = this.$picker.find(".am-datepicker-months").find(".am-datepicker-select").text(e);
f = f.end().find("span").removeClass("am-active").removeClass("am-disabled");
for (var v = 0; v < 12;) this.onRender(t.setFullYear(e, v), 1) && f.eq(v).addClass("am-disabled"), v++;
m === e && f.eq(this.date.getMonth()).removeClass("am-disabled").addClass("am-active"), p = "", e = 10 * parseInt(e / 10, 10);
var g, y = this.$picker.find(".am-datepicker-years").find(".am-datepicker-select").text(e + "-" + (e + 9)).end().find("td"),
w = new Date(this.viewDate);
e -= 1;
for (var b = -1; b < 11; b++) g = this.onRender(w.setFullYear(e), 2), p += '' + e + "", e += 1;
y.html(p)
}, a.prototype.click = function (t) {
t.stopPropagation(), t.preventDefault();
var e, i, s = this.$picker.find(".am-datepicker-days").find(".am-active"),
o = this.$picker.find(".am-datepicker-months"),
a = o.find(".am-active").index(),
l = n(t.target).closest("span, td, th");
if (1 === l.length) switch (l[0].nodeName.toLowerCase()) {
case "th":
switch (l[0].className) {
case "am-datepicker-switch":
this.showMode(1);
break;
case "am-datepicker-prev":
case "am-datepicker-next":
this.viewDate["set" + r.modes[this.viewMode].navFnc].call(this.viewDate, this.viewDate["get" + r.modes[this.viewMode].navFnc].call(this.viewDate) + r.modes[this.viewMode].navStep * ("am-datepicker-prev" === l[0].className ? -1 : 1)), this.fill(), this.set()
}
break;
case "span":
if (l.is(".am-disabled")) return;
l.is(".am-datepicker-month") ? (e = l.parent().find("span").index(l), l.is(".am-active") ? this.viewDate.setMonth(e, s.text()) : this.viewDate.setMonth(e)) : (i = parseInt(l.text(), 10) || 0, l.is(".am-active") ? this.viewDate.setFullYear(i, a, s.text()) : this.viewDate.setFullYear(i)), 0 !== this.viewMode && (this.date = new Date(this.viewDate), this.$element.trigger({
type: "changeDate.datepicker.amui",
date: this.date,
viewMode: r.modes[this.viewMode].clsName
})), this.showMode(-1), this.fill(), this.set();
break;
case "td":
if (l.is(".am-datepicker-day") && !l.is(".am-disabled")) {
var c = parseInt(l.text(), 10) || 1;
e = this.viewDate.getMonth(), l.is(".am-datepicker-old") ? e -= 1 : l.is(".am-datepicker-new") && (e += 1), i = this.viewDate.getFullYear(), this.date = new Date(i, e, c, 0, 0, 0, 0), this.viewDate = new Date(i, e, Math.min(28, c), 0, 0, 0, 0), this.fill(), this.set(), this.$element.trigger({
type: "changeDate.datepicker.amui",
date: this.date,
viewMode: r.modes[this.viewMode].clsName
}), this.options.autoClose && this.close()
}
}
}, a.prototype.mousedown = function (t) {
t.stopPropagation(), t.preventDefault()
}, a.prototype.showMode = function (t) {
t && (this.viewMode = Math.max(this.minViewMode, Math.min(2, this.viewMode + t))), this.$picker.find(">div").hide().filter(".am-datepicker-" + r.modes[this.viewMode].clsName).show()
}, a.prototype.isOutView = function () {
var t = this.component ? this.component.offset() : this.$element.offset(),
e = {
outRight: !1,
outBottom: !1
},
i = this.$picker,
n = t.left + i.outerWidth(!0),
s = t.top + i.outerHeight(!0) + this.$element.innerHeight();
return n > o.width() && (e.outRight = !0), s > o.height() && (e.outBottom = !0), e
}, a.prototype.getLocale = function (t) {
return t || (t = navigator.language && navigator.language.split("-"), t[1] = t[1].toUpperCase(), t = t.join("_")), a.locales[t] || (t = "en_US"), t
}, a.prototype.setTheme = function () {
this.theme && this.$picker.addClass("am-datepicker-" + this.theme)
}, a.locales = {
en_US: {
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
months: ["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"],
weekStart: 0
},
zh_CN: {
days: ["\u661f\u671f\u65e5", "\u661f\u671f\u4e00", "\u661f\u671f\u4e8c", "\u661f\u671f\u4e09", "\u661f\u671f\u56db", "\u661f\u671f\u4e94", "\u661f\u671f\u516d"],
daysShort: ["\u5468\u65e5", "\u5468\u4e00", "\u5468\u4e8c", "\u5468\u4e09", "\u5468\u56db", "\u5468\u4e94", "\u5468\u516d"],
daysMin: ["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d"],
months: ["\u4e00\u6708", "\u4e8c\u6708", "\u4e09\u6708", "\u56db\u6708", "\u4e94\u6708", "\u516d\u6708", "\u4e03\u6708", "\u516b\u6708", "\u4e5d\u6708", "\u5341\u6708", "\u5341\u4e00\u6708", "\u5341\u4e8c\u6708"],
monthsShort: ["\u4e00\u6708", "\u4e8c\u6708", "\u4e09\u6708", "\u56db\u6708", "\u4e94\u6708", "\u516d\u6708", "\u4e03\u6708", "\u516b\u6708", "\u4e5d\u6708", "\u5341\u6708", "\u5341\u4e00\u6708", "\u5341\u4e8c\u6708"],
weekStart: 1,
year: ["\u5e74"]
}
};
var r = {
modes: [{
clsName: "days",
navFnc: "Month",
navStep: 1
}, {
clsName: "months",
navFnc: "FullYear",
navStep: 1
}, {
clsName: "years",
navFnc: "FullYear",
navStep: 10
}],
isLeapYear: function (t) {
return t % 4 === 0 && t % 100 !== 0 || t % 400 === 0
},
getDaysInMonth: function (t, e) {
return [31, r.isLeapYear(t) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][e]
},
parseFormat: function (t) {
var e = t.match(/[.\/\-\s].*?/),
i = t.split(/\W+/);
if (!e || !i || 0 === i.length) throw new Error("Invalid date format.");
return {
separator: e,
parts: i
}
},
parseDate: function (t, e) {
var i, n = t.split(e.separator);
if (t = new Date, t.setHours(0), t.setMinutes(0), t.setSeconds(0), t.setMilliseconds(0), n.length === e.parts.length) {
for (var s = t.getFullYear(), o = t.getDate(), a = t.getMonth(), r = 0, l = e.parts.length; r < l; r++) switch (i = parseInt(n[r], 10) || 1, e.parts[r]) {
case "dd":
case "d":
o = i, t.setDate(i);
break;
case "mm":
case "m":
a = i - 1, t.setMonth(i - 1);
break;
case "yy":
s = 2e3 + i, t.setFullYear(2e3 + i);
break;
case "yyyy":
s = i, t.setFullYear(i)
}
t = new Date(s, a, o, 0, 0, 0)
}
return t
},
formatDate: function (t, e) {
var i = {
d: t.getDate(),
m: t.getMonth() + 1,
yy: t.getFullYear().toString().substring(2),
yyyy: t.getFullYear()
},
n = [];
i.dd = (i.d < 10 ? "0" : "") + i.d, i.mm = (i.m < 10 ? "0" : "") + i.m;
for (var s = 0, o = e.parts.length; s < o; s++) n.push(i[e.parts[s]]);
return n.join(e.separator)
},
headTemplate: '
',
contTemplate: '
'
};
r.template = '
' + r.headTemplate + '
' + r.headTemplate + r.contTemplate + '
' + r.headTemplate + r.contTemplate + "
", s.plugin("datepicker", a), s.ready(function (t) {
n("[data-am-datepicker]").datepicker()
}), t.exports = s.datepicker = a
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = n(document),
a = s.support.transition,
r = function () {
this.id = s.utils.generateGUID("am-dimmer"), this.$element = n(r.DEFAULTS.tpl, {
id: this.id
}), this.inited = !1, this.scrollbarWidth = 0, this.$used = n([])
};
r.DEFAULTS = {
tpl: ''
}, r.prototype.init = function () {
return this.inited || (n(document.body).append(this.$element), this.inited = !0, o.trigger("init.dimmer.amui"), this.$element.on("touchmove.dimmer.amui", function (t) {
t.preventDefault()
})), this
}, r.prototype.open = function (t) {
this.inited || this.init();
var e = this.$element;
return t && (this.$used = this.$used.add(n(t))), this.checkScrollbar().setScrollbar(), e.show().trigger("open.dimmer.amui"), a && e.off(a.end), setTimeout(function () {
e.addClass("am-active")
}, 0), this
}, r.prototype.close = function (t, e) {
function i() {
s.hide(), this.resetScrollbar()
}
if (this.$used = this.$used.not(n(t)), !e && this.$used.length) return this;
var s = this.$element;
return s.removeClass("am-active").trigger("close.dimmer.amui"), i.call(this), this
}, r.prototype.checkScrollbar = function () {
return this.scrollbarWidth = s.utils.measureScrollbar(), this
}, r.prototype.setScrollbar = function () {
var t = n(document.body),
e = parseInt(t.css("padding-right") || 0, 10);
return this.scrollbarWidth && t.css("padding-right", e + this.scrollbarWidth), t.addClass("am-dimmer-active"), this
}, r.prototype.resetScrollbar = function () {
return n(document.body).css("padding-right", "").removeClass("am-dimmer-active"), this
}, t.exports = s.dimmer = new r
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = s.support.animation,
a = function (t, e) {
this.options = n.extend({}, a.DEFAULTS, e), e = this.options, this.$element = n(t), this.$toggle = this.$element.find(e.selector.toggle), this.$dropdown = this.$element.find(e.selector.dropdown), this.$boundary = e.boundary === window ? n(window) : this.$element.closest(e.boundary), this.$justify = e.justify && n(e.justify).length && n(e.justify) || void 0, !this.$boundary.length && (this.$boundary = n(window)), this.active = !!this.$element.hasClass("am-active"), this.animating = null, this.events()
};
a.DEFAULTS = {
animation: "am-animation-slide-top-fixed",
boundary: window,
justify: void 0,
selector: {
dropdown: ".am-dropdown-content",
toggle: ".am-dropdown-toggle"
},
trigger: "click"
}, a.prototype.toggle = function () {
this.clear(), this.animating || this[this.active ? "close" : "open"]()
}, a.prototype.open = function (t) {
var e = this.$toggle,
i = this.$element,
s = this.$dropdown;
if (!e.is(".am-disabled, :disabled") && !this.active) {
i.trigger("open.dropdown.amui").addClass("am-active"), e.trigger("focus"), this.checkDimensions(t);
var a = n.proxy(function () {
i.trigger("opened.dropdown.amui"), this.active = !0, this.animating = 0
}, this);
o ? (this.animating = 1, s.addClass(this.options.animation).on(o.end + ".open.dropdown.amui", n.proxy(function () {
a(), s.removeClass(this.options.animation)
}, this))) : a()
}
}, a.prototype.close = function () {
if (this.active) {
var t = "am-dropdown-animation",
e = this.$element,
i = this.$dropdown;
e.trigger("close.dropdown.amui");
var s = n.proxy(function () {
e.removeClass("am-active").trigger("closed.dropdown.amui"), this.active = !1, this.animating = 0, this.$toggle.blur()
}, this);
o ? (i.removeClass(this.options.animation), i.addClass(t), this.animating = 1, i.one(o.end + ".close.dropdown.amui", function () {
i.removeClass(t), s()
})) : s()
}
}, a.prototype.enable = function () {
this.$toggle.prop("disabled", !1)
}, a.prototype.disable = function () {
this.$toggle.prop("disabled", !0)
}, a.prototype.checkDimensions = function (t) {
if (this.$dropdown.length) {
var e = this.$dropdown;
t && t.offset && e.offset(t.offset);
var i = e.offset(),
s = e.outerWidth(),
o = this.$boundary.width(),
a = n.isWindow(this.boundary) && this.$boundary.offset() ? this.$boundary.offset().left : 0;
this.$justify && e.css({
"min-width": this.$justify.css("width")
}), s + (i.left - a) > o && this.$element.addClass("am-dropdown-flip")
}
}, a.prototype.clear = function () {
n("[data-am-dropdown]").not(this.$element).each(function () {
var t = n(this).data("amui.dropdown");
t && t.close()
})
}, a.prototype.events = function () {
var t = "dropdown.amui",
e = this.$toggle;
e.on("click." + t, n.proxy(function (t) {
t.preventDefault(), this.toggle()
}, this)), n(document).on("keydown.dropdown.amui", n.proxy(function (t) {
27 === t.keyCode && this.active && this.close()
}, this)).on("click.outer.dropdown.amui", n.proxy(function (t) {
!this.active || this.$element[0] !== t.target && this.$element.find(t.target).length || this.close()
}, this))
}, s.plugin("dropdown", a), s.ready(function (t) {
n("[data-am-dropdown]", t).dropdown()
}), n(document).on("click.dropdown.amui.data-api", ".am-dropdown form", function (t) {
t.stopPropagation()
}), t.exports = s.dropdown = a
}, function (t, e, i) {
(function (e) {
var n = i(1),
s = i(2),
o = !0;
n.flexslider = function (t, i) {
var s = n(t);
s.vars = n.extend({}, n.flexslider.defaults, i);
var a, r = s.vars.namespace,
l = window.navigator && window.navigator.msPointerEnabled && window.MSGesture,
c = ("ontouchstart" in window || l || window.DocumentTouch && document instanceof DocumentTouch) && s.vars.touch,
u = "click touchend MSPointerUp keyup",
h = "",
d = "vertical" === s.vars.direction,
p = s.vars.reverse,
m = s.vars.itemWidth > 0,
f = "fade" === s.vars.animation,
v = "" !== s.vars.asNavFor,
g = {};
n.data(t, "flexslider", s), g = {
init: function () {
s.animating = !1, s.currentSlide = parseInt(s.vars.startAt ? s.vars.startAt : 0, 10), isNaN(s.currentSlide) && (s.currentSlide = 0), s.animatingTo = s.currentSlide, s.atEnd = 0 === s.currentSlide || s.currentSlide === s.last, s.containerSelector = s.vars.selector.substr(0, s.vars.selector.search(" ")), s.slides = n(s.vars.selector, s), s.container = n(s.containerSelector, s), s.count = s.slides.length, s.syncExists = n(s.vars.sync).length > 0, "slide" === s.vars.animation && (s.vars.animation = "swing"), s.prop = d ? "top" : "marginLeft", s.args = {}, s.manualPause = !1, s.stopped = !1, s.started = !1, s.startTimeout = null, s.transitions = !s.vars.video && !f && s.vars.useCSS && function () {
var t = document.createElement("div"),
e = ["perspectiveProperty", "WebkitPerspective", "MozPerspective", "OPerspective", "msPerspective"];
for (var i in e)
if (void 0 !== t.style[e[i]]) return s.pfx = e[i].replace("Perspective", "").toLowerCase(), s.prop = "-" + s.pfx + "-transform", !0;
return !1
}(), s.ensureAnimationEnd = "", "" !== s.vars.controlsContainer && (s.controlsContainer = n(s.vars.controlsContainer).length > 0 && n(s.vars.controlsContainer)), "" !== s.vars.manualControls && (s.manualControls = n(s.vars.manualControls).length > 0 && n(s.vars.manualControls)), "" !== s.vars.customDirectionNav && (s.customDirectionNav = 2 === n(s.vars.customDirectionNav).length && n(s.vars.customDirectionNav)), s.vars.randomize && (s.slides.sort(function () {
return Math.round(Math.random()) - .5
}), s.container.empty().append(s.slides)), s.doMath(), s.setup("init"), s.vars.controlNav && g.controlNav.setup(), s.vars.directionNav && g.directionNav.setup(), s.vars.keyboard && (1 === n(s.containerSelector).length || s.vars.multipleKeyboard) && n(document).bind("keyup", function (t) {
var e = t.keyCode;
if (!s.animating && (39 === e || 37 === e)) {
var i = 39 === e ? s.getTarget("next") : 37 === e && s.getTarget("prev");
s.flexAnimate(i, s.vars.pauseOnAction)
}
}), s.vars.mousewheel && s.bind("mousewheel", function (t, e, i, n) {
t.preventDefault();
var o = e < 0 ? s.getTarget("next") : s.getTarget("prev");
s.flexAnimate(o, s.vars.pauseOnAction)
}), s.vars.pausePlay && g.pausePlay.setup(), s.vars.slideshow && s.vars.pauseInvisible && g.pauseInvisible.init(), s.vars.slideshow && (s.vars.pauseOnHover && s.hover(function () {
s.manualPlay || s.manualPause || s.pause()
}, function () {
s.manualPause || s.manualPlay || s.stopped || s.play()
}), s.vars.pauseInvisible && g.pauseInvisible.isHidden() || (s.vars.initDelay > 0 ? s.startTimeout = setTimeout(s.play, s.vars.initDelay) : s.play())), v && g.asNav.setup(), c && s.vars.touch && g.touch(), (!f || f && s.vars.smoothHeight) && n(window).bind("resize orientationchange focus", g.resize), s.find("img").attr("draggable", "false"), setTimeout(function () {
s.vars.start(s)
}, 200)
},
asNav: {
setup: function () {
s.asNav = !0, s.animatingTo = Math.floor(s.currentSlide / s.move), s.currentItem = s.currentSlide, s.slides.removeClass(r + "active-slide").eq(s.currentItem).addClass(r + "active-slide"), l ? (t._slider = s, s.slides.each(function () {
var t = this;
t._gesture = new MSGesture, t._gesture.target = t, t.addEventListener("MSPointerDown", function (t) {
t.preventDefault(), t.currentTarget._gesture && t.currentTarget._gesture.addPointer(t.pointerId)
}, !1), t.addEventListener("MSGestureTap", function (t) {
t.preventDefault();
var e = n(this),
i = e.index();
n(s.vars.asNavFor).data("flexslider").animating || e.hasClass("active") || (s.direction = s.currentItem < i ? "next" : "prev", s.flexAnimate(i, s.vars.pauseOnAction, !1, !0, !0))
})
})) : s.slides.on(u, function (t) {
t.preventDefault();
var e = n(this),
i = e.index(),
o = e.offset().left - n(s).scrollLeft();
o <= 0 && e.hasClass(r + "active-slide") ? s.flexAnimate(s.getTarget("prev"), !0) : n(s.vars.asNavFor).data("flexslider").animating || e.hasClass(r + "active-slide") || (s.direction = s.currentItem < i ? "next" : "prev", s.flexAnimate(i, s.vars.pauseOnAction, !1, !0, !0))
})
}
},
controlNav: {
setup: function () {
s.manualControls ? g.controlNav.setupManual() : g.controlNav.setupPaging()
},
setupPaging: function () {
var t, e, i = "thumbnails" === s.vars.controlNav ? "control-thumbs" : "control-paging",
o = 1;
if (s.controlNavScaffold = n(''), s.pagingCount > 1)
for (var a = 0; a < s.pagingCount; a++) {
e = s.slides.eq(a), void 0 === e.attr("data-thumb-alt") && e.attr("data-thumb-alt", "");
var l = "" !== e.attr("data-thumb-alt") ? l = ' alt="' + e.attr("data-thumb-alt") + '"' : "";
if (t = "thumbnails" === s.vars.controlNav ? '" : '' + o + "", "thumbnails" === s.vars.controlNav && !0 === s.vars.thumbCaptions) {
var c = e.attr("data-thumbcaption");
"" !== c && void 0 !== c && (t += '' + c + "")
}
s.controlNavScaffold.append("
" + t + "
"), o++
}
s.controlsContainer ? n(s.controlsContainer).append(s.controlNavScaffold) : s.append(s.controlNavScaffold), g.controlNav.set(), g.controlNav.active(), s.controlNavScaffold.delegate("a, img", u, function (t) {
if (t.preventDefault(), "" === h || h === t.type) {
var e = n(this),
i = s.controlNav.index(e);
e.hasClass(r + "active") || (s.direction = i > s.currentSlide ? "next" : "prev", s.flexAnimate(i, s.vars.pauseOnAction))
}
"" === h && (h = t.type), g.setToClearWatchedEvent()
})
},
setupManual: function () {
s.controlNav = s.manualControls, g.controlNav.active(), s.controlNav.bind(u, function (t) {
if (t.preventDefault(), "" === h || h === t.type) {
var e = n(this),
i = s.controlNav.index(e);
e.hasClass(r + "active") || (i > s.currentSlide ? s.direction = "next" : s.direction = "prev", s.flexAnimate(i, s.vars.pauseOnAction))
}
"" === h && (h = t.type), g.setToClearWatchedEvent()
})
},
set: function () {
var t = "thumbnails" === s.vars.controlNav ? "img" : "a";
s.controlNav = n("." + r + "control-nav li " + t, s.controlsContainer ? s.controlsContainer : s)
},
active: function () {
s.controlNav.removeClass(r + "active").eq(s.animatingTo).addClass(r + "active")
},
update: function (t, e) {
s.pagingCount > 1 && "add" === t ? s.controlNavScaffold.append(n('
");
s.customDirectionNav ? s.directionNav = s.customDirectionNav : s.controlsContainer ? (n(s.controlsContainer).append(t), s.directionNav = n("." + r + "direction-nav li a", s.controlsContainer)) : (s.append(t), s.directionNav = n("." + r + "direction-nav li a", s)), g.directionNav.update(), s.directionNav.bind(u, function (t) {
t.preventDefault();
var e;
"" !== h && h !== t.type || (e = n(this).hasClass(r + "next") ? s.getTarget("next") : s.getTarget("prev"), s.flexAnimate(e, s.vars.pauseOnAction)), "" === h && (h = t.type), g.setToClearWatchedEvent()
})
},
update: function () {
var t = r + "disabled";
1 === s.pagingCount ? s.directionNav.addClass(t).attr("tabindex", "-1") : s.vars.animationLoop ? s.directionNav.removeClass(t).removeAttr("tabindex") : 0 === s.animatingTo ? s.directionNav.removeClass(t).filter("." + r + "prev").addClass(t).attr("tabindex", "-1") : s.animatingTo === s.last ? s.directionNav.removeClass(t).filter("." + r + "next").addClass(t).attr("tabindex", "-1") : s.directionNav.removeClass(t).removeAttr("tabindex")
}
},
pausePlay: {
setup: function () {
var t = n('
');
s.controlsContainer ? (s.controlsContainer.append(t), s.pausePlay = n("." + r + "pauseplay a", s.controlsContainer)) : (s.append(t), s.pausePlay = n("." + r + "pauseplay a", s)), g.pausePlay.update(s.vars.slideshow ? r + "pause" : r + "play"), s.pausePlay.bind(u, function (t) {
t.preventDefault(), "" !== h && h !== t.type || (n(this).hasClass(r + "pause") ? (s.manualPause = !0, s.manualPlay = !1, s.pause()) : (s.manualPause = !1, s.manualPlay = !0, s.play())), "" === h && (h = t.type), g.setToClearWatchedEvent()
})
},
update: function (t) {
"play" === t ? s.pausePlay.removeClass(r + "pause").addClass(r + "play").html(s.vars.playText) : s.pausePlay.removeClass(r + "play").addClass(r + "pause").html(s.vars.pauseText)
}
},
touch: function () {
function i(e) {
e.stopPropagation(), s.animating ? e.preventDefault() : (s.pause(), t._gesture.addPointer(e.pointerId), C = 0, u = d ? s.h : s.w, v = Number(new Date), c = m && p && s.animatingTo === s.last ? 0 : m && p ? s.limit - (s.itemW + s.vars.itemMargin) * s.move * s.animatingTo : m && s.currentSlide === s.last ? s.limit : m ? (s.itemW + s.vars.itemMargin) * s.move * s.currentSlide : p ? (s.last - s.currentSlide + s.cloneOffset) * u : (s.currentSlide + s.cloneOffset) * u)
}
function n(i) {
i.stopPropagation();
var n = i.target._slider;
if (n) {
var s = -i.translationX,
o = -i.translationY;
return C += d ? o : s, h = C, b = d ? Math.abs(C) < Math.abs(-s) : Math.abs(C) < Math.abs(-o), i.detail === i.MSGESTURE_FLAG_INERTIA ? void e(function () {
t._gesture.stop()
}) : void((!b || Number(new Date) - v > 500) && (i.preventDefault(), !f && n.transitions && (n.vars.animationLoop || (h = C / (0 === n.currentSlide && C < 0 || n.currentSlide === n.last && C > 0 ? Math.abs(C) / u + 2 : 1)), n.setProps(c + h, "setTouch"))))
}
}
function o(t) {
t.stopPropagation();
var e = t.target._slider;
if (e) {
if (e.animatingTo === e.currentSlide && !b && null !== h) {
var i = p ? -h : h,
n = i > 0 ? e.getTarget("next") : e.getTarget("prev");
e.canAdvance(n) && (Number(new Date) - v < 550 && Math.abs(i) > 50 || Math.abs(i) > u / 2) ? e.flexAnimate(n, e.vars.pauseOnAction) : f || e.flexAnimate(e.currentSlide, e.vars.pauseOnAction, !0)
}
a = null, r = null, h = null, c = null, C = 0
}
}
var a, r, c, u, h, v, g, y, w, b = !1,
T = 0,
x = 0,
C = 0;
l ? (t.style.msTouchAction = "none", t._gesture = new MSGesture, t._gesture.target = t, t.addEventListener("MSPointerDown", i, !1), t._slider = s, t.addEventListener("MSGestureChange", n, !1), t.addEventListener("MSGestureEnd", o, !1)) : (g = function (e) {
s.animating ? e.preventDefault() : (window.navigator.msPointerEnabled || 1 === e.touches.length) && (s.pause(), u = d ? s.h : s.w, v = Number(new Date), T = e.touches[0].pageX, x = e.touches[0].pageY, c = m && p && s.animatingTo === s.last ? 0 : m && p ? s.limit - (s.itemW + s.vars.itemMargin) * s.move * s.animatingTo : m && s.currentSlide === s.last ? s.limit : m ? (s.itemW + s.vars.itemMargin) * s.move * s.currentSlide : p ? (s.last - s.currentSlide + s.cloneOffset) * u : (s.currentSlide + s.cloneOffset) * u, a = d ? x : T, r = d ? T : x, t.addEventListener("touchmove", y, !1), t.addEventListener("touchend", w, !1))
}, y = function (t) {
T = t.touches[0].pageX, x = t.touches[0].pageY, h = d ? a - x : a - T, b = d ? Math.abs(h) < Math.abs(T - r) : Math.abs(h) < Math.abs(x - r);
var e = 500;
(!b || Number(new Date) - v > e) && (t.preventDefault(), !f && s.transitions && (s.vars.animationLoop || (h /= 0 === s.currentSlide && h < 0 || s.currentSlide === s.last && h > 0 ? Math.abs(h) / u + 2 : 1), s.setProps(c + h, "setTouch")))
}, w = function (e) {
if (t.removeEventListener("touchmove", y, !1), s.animatingTo === s.currentSlide && !b && null !== h) {
var i = p ? -h : h,
n = i > 0 ? s.getTarget("next") : s.getTarget("prev");
s.canAdvance(n) && (Number(new Date) - v < 550 && Math.abs(i) > 50 || Math.abs(i) > u / 2) ? s.flexAnimate(n, s.vars.pauseOnAction) : f || s.flexAnimate(s.currentSlide, s.vars.pauseOnAction, !0)
}
t.removeEventListener("touchend", w, !1), a = null, r = null, h = null, c = null
}, t.addEventListener("touchstart", g, !1))
},
resize: function () {
!s.animating && s.is(":visible") && (m || s.doMath(), f ? g.smoothHeight() : m ? (s.slides.width(s.computedW), s.update(s.pagingCount), s.setProps()) : d ? (s.viewport.height(s.h), s.setProps(s.h, "setTotal")) : (s.vars.smoothHeight && g.smoothHeight(), s.newSlides.width(s.computedW), s.setProps(s.computedW, "setTotal")))
},
smoothHeight: function (t) {
if (!d || f) {
var e = f ? s : s.viewport;
t ? e.animate({
height: s.slides.eq(s.animatingTo).innerHeight()
}, t) : e.innerHeight(s.slides.eq(s.animatingTo).innerHeight())
}
},
sync: function (t) {
var e = n(s.vars.sync).data("flexslider"),
i = s.animatingTo;
switch (t) {
case "animate":
e.flexAnimate(i, s.vars.pauseOnAction, !1, !0);
break;
case "play":
e.playing || e.asNav || e.play();
break;
case "pause":
e.pause()
}
},
uniqueID: function (t) {
return t.filter("[id]").add(t.find("[id]")).each(function () {
var t = n(this);
t.attr("id", t.attr("id") + "_clone")
}), t
},
pauseInvisible: {
visProp: null,
init: function () {
var t = g.pauseInvisible.getHiddenProp();
if (t) {
var e = t.replace(/[H|h]idden/, "") + "visibilitychange";
document.addEventListener(e, function () {
g.pauseInvisible.isHidden() ? s.startTimeout ? clearTimeout(s.startTimeout) : s.pause() : s.started ? s.play() : s.vars.initDelay > 0 ? setTimeout(s.play, s.vars.initDelay) : s.play()
})
}
},
isHidden: function () {
var t = g.pauseInvisible.getHiddenProp();
return !!t && document[t]
},
getHiddenProp: function () {
var t = ["webkit", "moz", "ms", "o"];
if ("hidden" in document) return "hidden";
for (var e = 0; e < t.length; e++)
if (t[e] + "Hidden" in document) return t[e] + "Hidden";
return null
}
},
setToClearWatchedEvent: function () {
clearTimeout(a), a = setTimeout(function () {
h = ""
}, 3e3)
}
}, s.flexAnimate = function (t, e, i, o, a) {
if (s.vars.animationLoop || t === s.currentSlide || (s.direction = t > s.currentSlide ? "next" : "prev"), v && 1 === s.pagingCount && (s.direction = s.currentItem < t ? "next" : "prev"), !s.animating && (s.canAdvance(t, a) || i) && s.is(":visible")) {
if (v && o) {
var l = n(s.vars.asNavFor).data("flexslider");
if (s.atEnd = 0 === t || t === s.count - 1, l.flexAnimate(t, !0, !1, !0, a), s.direction = s.currentItem < t ? "next" : "prev", l.direction = s.direction, Math.ceil((t + 1) / s.visible) - 1 === s.currentSlide || 0 === t) return s.currentItem = t, s.slides.removeClass(r + "active-slide").eq(t).addClass(r + "active-slide"), !1;
s.currentItem = t, s.slides.removeClass(r + "active-slide").eq(t).addClass(r + "active-slide"), t = Math.floor(t / s.visible)
}
if (s.animating = !0, s.animatingTo = t, e && s.pause(), s.vars.before(s), s.syncExists && !a && g.sync("animate"), s.vars.controlNav && g.controlNav.active(), m || s.slides.removeClass(r + "active-slide").eq(t).addClass(r + "active-slide"), s.atEnd = 0 === t || t === s.last, s.vars.directionNav && g.directionNav.update(), t === s.last && (s.vars.end(s), s.vars.animationLoop || s.pause()), f) c ? (s.slides.eq(s.currentSlide).css({
opacity: 0,
zIndex: 1
}), s.slides.eq(t).css({
opacity: 1,
zIndex: 2
}), s.wrapup(w)) : (s.slides.eq(s.currentSlide).css({
zIndex: 1
}).animate({
opacity: 0
}, s.vars.animationSpeed, s.vars.easing), s.slides.eq(t).css({
zIndex: 2
}).animate({
opacity: 1
}, s.vars.animationSpeed, s.vars.easing, s.wrapup));
else {
var u, h, y, w = d ? s.slides.filter(":first").height() : s.computedW;
m ? (u = s.vars.itemMargin, y = (s.itemW + u) * s.move * s.animatingTo, h = y > s.limit && 1 !== s.visible ? s.limit : y) : h = 0 === s.currentSlide && t === s.count - 1 && s.vars.animationLoop && "next" !== s.direction ? p ? (s.count + s.cloneOffset) * w : 0 : s.currentSlide === s.last && 0 === t && s.vars.animationLoop && "prev" !== s.direction ? p ? 0 : (s.count + 1) * w : p ? (s.count - 1 - t + s.cloneOffset) * w : (t + s.cloneOffset) * w, s.setProps(h, "", s.vars.animationSpeed), s.transitions ? (s.vars.animationLoop && s.atEnd || (s.animating = !1, s.currentSlide = s.animatingTo), s.container.unbind("webkitTransitionEnd transitionend"), s.container.bind("webkitTransitionEnd transitionend", function () {
clearTimeout(s.ensureAnimationEnd), s.wrapup(w)
}), clearTimeout(s.ensureAnimationEnd), s.ensureAnimationEnd = setTimeout(function () {
s.wrapup(w)
}, s.vars.animationSpeed + 100)) : s.container.animate(s.args, s.vars.animationSpeed, s.vars.easing, function () {
s.wrapup(w)
})
}
s.vars.smoothHeight && g.smoothHeight(s.vars.animationSpeed)
}
}, s.wrapup = function (t) {
f || m || (0 === s.currentSlide && s.animatingTo === s.last && s.vars.animationLoop ? s.setProps(t, "jumpEnd") : s.currentSlide === s.last && 0 === s.animatingTo && s.vars.animationLoop && s.setProps(t, "jumpStart")), s.animating = !1, s.currentSlide = s.animatingTo, s.vars.after(s)
}, s.animateSlides = function () {
!s.animating && o && s.flexAnimate(s.getTarget("next"))
}, s.pause = function () {
clearInterval(s.animatedSlides), s.animatedSlides = null, s.playing = !1, s.vars.pausePlay && g.pausePlay.update("play"), s.syncExists && g.sync("pause")
}, s.play = function () {
s.playing && clearInterval(s.animatedSlides), s.animatedSlides = s.animatedSlides || setInterval(s.animateSlides, s.vars.slideshowSpeed), s.started = s.playing = !0, s.vars.pausePlay && g.pausePlay.update("pause"), s.syncExists && g.sync("play")
}, s.stop = function () {
s.pause(), s.stopped = !0
}, s.canAdvance = function (t, e) {
var i = v ? s.pagingCount - 1 : s.last;
return !!e || (!(!v || s.currentItem !== s.count - 1 || 0 !== t || "prev" !== s.direction) || (!v || 0 !== s.currentItem || t !== s.pagingCount - 1 || "next" === s.direction) && (!(t === s.currentSlide && !v) && (!!s.vars.animationLoop || (!s.atEnd || 0 !== s.currentSlide || t !== i || "next" === s.direction) && (!s.atEnd || s.currentSlide !== i || 0 !== t || "next" !== s.direction))))
}, s.getTarget = function (t) {
return s.direction = t, "next" === t ? s.currentSlide === s.last ? 0 : s.currentSlide + 1 : 0 === s.currentSlide ? s.last : s.currentSlide - 1
}, s.setProps = function (t, e, i) {
var n = function () {
var i = t ? t : (s.itemW + s.vars.itemMargin) * s.move * s.animatingTo,
n = function () {
if (m) return "setTouch" === e ? t : p && s.animatingTo === s.last ? 0 : p ? s.limit - (s.itemW + s.vars.itemMargin) * s.move * s.animatingTo : s.animatingTo === s.last ? s.limit : i;
switch (e) {
case "setTotal":
return p ? (s.count - 1 - s.currentSlide + s.cloneOffset) * t : (s.currentSlide + s.cloneOffset) * t;
case "setTouch":
return p ? t : t;
case "jumpEnd":
return p ? t : s.count * t;
case "jumpStart":
return p ? s.count * t : t;
default:
return t
}
}();
return n * -1 + "px"
}();
s.transitions && (n = d ? "translate3d(0," + n + ",0)" : "translate3d(" + n + ",0,0)", i = void 0 !== i ? i / 1e3 + "s" : "0s", s.container.css("-" + s.pfx + "-transition-duration", i), s.container.css("transition-duration", i)), s.args[s.prop] = n, (s.transitions || void 0 === i) && s.container.css(s.args), s.container.css("transform", n)
}, s.setup = function (t) {
if (f) s.slides.css({
width: "100%",
"float": "left",
marginRight: "-100%",
position: "relative"
}), "init" === t && (c ? s.slides.css({
opacity: 0,
display: "block",
webkitTransition: "opacity " + s.vars.animationSpeed / 1e3 + "s ease",
zIndex: 1
}).eq(s.currentSlide).css({
opacity: 1,
zIndex: 2
}) : 0 == s.vars.fadeFirstSlide ? s.slides.css({
opacity: 0,
display: "block",
zIndex: 1
}).eq(s.currentSlide).css({
zIndex: 2
}).css({
opacity: 1
}) : s.slides.css({
opacity: 0,
display: "block",
zIndex: 1
}).eq(s.currentSlide).css({
zIndex: 2
}).animate({
opacity: 1
}, s.vars.animationSpeed, s.vars.easing)), s.vars.smoothHeight && g.smoothHeight();
else {
var e, i;
"init" === t && (s.viewport = n('').css({
overflow: "hidden",
position: "relative"
}).appendTo(s).append(s.container), s.cloneCount = 0, s.cloneOffset = 0, p && (i = n.makeArray(s.slides).reverse(), s.slides = n(i), s.container.empty().append(s.slides))), s.vars.animationLoop && !m && (s.cloneCount = 2, s.cloneOffset = 1, "init" !== t && s.container.find(".clone").remove(), s.container.append(g.uniqueID(s.slides.first().clone().addClass("clone")).attr("aria-hidden", "true")).prepend(g.uniqueID(s.slides.last().clone().addClass("clone")).attr("aria-hidden", "true"))), s.newSlides = n(s.vars.selector, s), e = p ? s.count - 1 - s.currentSlide + s.cloneOffset : s.currentSlide + s.cloneOffset, d && !m ? (s.container.height(200 * (s.count + s.cloneCount) + "%").css("position", "absolute").width("100%"), setTimeout(function () {
s.newSlides.css({
display: "block"
}), s.doMath(), s.viewport.height(s.h), s.setProps(e * s.h, "init")
}, "init" === t ? 100 : 0)) : (s.container.width(200 * (s.count + s.cloneCount) + "%"), s.setProps(e * s.computedW, "init"), setTimeout(function () {
s.doMath(), s.newSlides.css({
width: s.computedW,
marginRight: s.computedM,
"float": "left",
display: "block"
}), s.vars.smoothHeight && g.smoothHeight()
}, "init" === t ? 100 : 0))
}
m || s.slides.removeClass(r + "active-slide").eq(s.currentSlide).addClass(r + "active-slide"), s.vars.init(s)
}, s.doMath = function () {
var t = s.slides.first(),
e = s.vars.itemMargin,
i = s.vars.minItems,
n = s.vars.maxItems;
s.w = void 0 === s.viewport ? s.width() : s.viewport.width(), s.h = t.height(), s.boxPadding = t.outerWidth() - t.width(), m ? (s.itemT = s.vars.itemWidth + e, s.itemM = e, s.minW = i ? i * s.itemT : s.w, s.maxW = n ? n * s.itemT - e : s.w, s.itemW = s.minW > s.w ? (s.w - e * (i - 1)) / i : s.maxW < s.w ? (s.w - e * (n - 1)) / n : s.vars.itemWidth > s.w ? s.w : s.vars.itemWidth, s.visible = Math.floor(s.w / s.itemW), s.move = s.vars.move > 0 && s.vars.move < s.visible ? s.vars.move : s.visible, s.pagingCount = Math.ceil((s.count - s.visible) / s.move + 1), s.last = s.pagingCount - 1, s.limit = 1 === s.pagingCount ? 0 : s.vars.itemWidth > s.w ? s.itemW * (s.count - 1) + e * (s.count - 1) : (s.itemW + e) * s.count - s.w - e) : (s.itemW = s.w, s.itemM = e, s.pagingCount = s.count, s.last = s.count - 1), s.computedW = s.itemW - s.boxPadding, s.computedM = s.itemM
}, s.update = function (t, e) {
s.doMath(), m || (t < s.currentSlide ? s.currentSlide += 1 : t <= s.currentSlide && 0 !== t && (s.currentSlide -= 1), s.animatingTo = s.currentSlide), s.vars.controlNav && !s.manualControls && ("add" === e && !m || s.pagingCount > s.controlNav.length ? g.controlNav.update("add") : ("remove" === e && !m || s.pagingCount < s.controlNav.length) && (m && s.currentSlide > s.last && (s.currentSlide -= 1, s.animatingTo -= 1), g.controlNav.update("remove", s.last))), s.vars.directionNav && g.directionNav.update()
}, s.addSlide = function (t, e) {
var i = n(t);
s.count += 1, s.last = s.count - 1, d && p ? void 0 !== e ? s.slides.eq(s.count - e).after(i) : s.container.prepend(i) : void 0 !== e ? s.slides.eq(e).before(i) : s.container.append(i), s.update(e, "add"), s.slides = n(s.vars.selector + ":not(.clone)", s), s.setup(), s.vars.added(s)
}, s.removeSlide = function (t) {
var e = isNaN(t) ? s.slides.index(n(t)) : t;
s.count -= 1, s.last = s.count - 1, isNaN(t) ? n(t, s.slides).remove() : d && p ? s.slides.eq(s.last).remove() : s.slides.eq(t).remove(), s.doMath(), s.update(e, "remove"), s.slides = n(s.vars.selector + ":not(.clone)", s), s.setup(), s.vars.removed(s)
}, g.init()
}, n(window).blur(function (t) {
o = !1
}).focus(function (t) {
o = !0
}), n.flexslider.defaults = {
namespace: "am-",
selector: ".am-slides > li",
animation: "slide",
easing: "swing",
direction: "horizontal",
reverse: !1,
animationLoop: !0,
smoothHeight: !1,
startAt: 0,
slideshow: !0,
slideshowSpeed: 5e3,
animationSpeed: 600,
initDelay: 0,
randomize: !1,
fadeFirstSlide: !0,
thumbCaptions: !1,
pauseOnAction: !0,
pauseOnHover: !1,
pauseInvisible: !0,
useCSS: !0,
touch: !0,
video: !1,
controlNav: !0,
directionNav: !0,
prevText: " ",
nextText: " ",
keyboard: !0,
multipleKeyboard: !1,
mousewheel: !1,
pausePlay: !1,
pauseText: "Pause",
playText: "Play",
controlsContainer: "",
manualControls: "",
customDirectionNav: "",
sync: "",
asNavFor: "",
itemWidth: 0,
itemMargin: 0,
minItems: 1,
maxItems: 0,
move: 0,
allowOneSlide: !0,
start: function () {},
before: function () {},
after: function () {},
end: function () {},
added: function () {},
removed: function () {},
init: function () {}
}, n.fn.flexslider = function (t) {
var e = Array.prototype.slice.call(arguments, 1);
if (void 0 === t && (t = {}), "object" == typeof t) return this.each(function () {
var e = n(this),
i = t.selector ? t.selector : ".am-slides > li",
s = e.find(i);
1 === s.length && t.allowOneSlide === !1 || 0 === s.length ? (s.fadeIn(400), t.start && t.start(e)) : void 0 === e.data("flexslider") && new n.flexslider(this, t)
});
var i, s = n(this).data("flexslider");
switch (t) {
case "next":
s.flexAnimate(s.getTarget("next"), !0);
break;
case "prev":
case "previous":
s.flexAnimate(s.getTarget("prev"), !0);
break;
default:
"number" == typeof t ? s.flexAnimate(t, !0) : "string" == typeof t && (i = "function" == typeof s[t] ? s[t].apply(s, e) : s[t])
}
return void 0 === i ? this : i
}, s.ready(function (t) {
n("[data-am-flexslider]", t).each(function (t, e) {
var i = n(e),
o = s.utils.parseOptions(i.data("amFlexslider"));
o.before = function (t) {
t._pausedTimer && (window.clearTimeout(t._pausedTimer), t._pausedTimer = null)
}, o.after = function (t) {
var e = t.vars.playAfterPaused;
!e || isNaN(e) || t.playing || t.manualPause || t.manualPlay || t.stopped || (t._pausedTimer = window.setTimeout(function () {
t.play()
}, e))
}, i.flexslider(o)
})
}), t.exports = n.flexslider
}).call(e, i(12).setImmediate)
}, function (t, e, i) {
(function (t, n) {
function s(t, e) {
this._id = t, this._clearFn = e
}
var o = i(13).nextTick,
a = Function.prototype.apply,
r = Array.prototype.slice,
l = {},
c = 0;
e.setTimeout = function () {
return new s(a.call(setTimeout, window, arguments), clearTimeout)
}, e.setInterval = function () {
return new s(a.call(setInterval, window, arguments), clearInterval)
}, e.clearTimeout = e.clearInterval = function (t) {
t.close()
}, s.prototype.unref = s.prototype.ref = function () {}, s.prototype.close = function () {
this._clearFn.call(window, this._id)
}, e.enroll = function (t, e) {
clearTimeout(t._idleTimeoutId), t._idleTimeout = e
}, e.unenroll = function (t) {
clearTimeout(t._idleTimeoutId), t._idleTimeout = -1
}, e._unrefActive = e.active = function (t) {
clearTimeout(t._idleTimeoutId);
var e = t._idleTimeout;
e >= 0 && (t._idleTimeoutId = setTimeout(function () {
t._onTimeout && t._onTimeout()
}, e))
}, e.setImmediate = "function" == typeof t ? t : function (t) {
var i = c++,
n = !(arguments.length < 2) && r.call(arguments, 1);
return l[i] = !0, o(function () {
l[i] && (n ? t.apply(null, n) : t.call(null), e.clearImmediate(i))
}), i
}, e.clearImmediate = "function" == typeof n ? n : function (t) {
delete l[t]
}
}).call(e, i(12).setImmediate, i(12).clearImmediate)
}, function (t, e) {
function i(t) {
if (l === setTimeout) return setTimeout(t, 0);
try {
return l(t, 0)
} catch (e) {
try {
return l.call(null, t, 0)
} catch (e) {
return l.call(this, t, 0)
}
}
}
function n(t) {
if (c === clearTimeout) return clearTimeout(t);
try {
return c(t)
} catch (e) {
try {
return c.call(null, t)
} catch (e) {
return c.call(this, t)
}
}
}
function s() {
p && h && (p = !1, h.length ? d = h.concat(d) : m = -1, d.length && o())
}
function o() {
if (!p) {
var t = i(s);
p = !0;
for (var e = d.length; e;) {
for (h = d, d = []; ++m < e;) h && h[m].run();
m = -1, e = d.length
}
h = null, p = !1, n(t)
}
}
function a(t, e) {
this.fun = t, this.array = e
}
function r() {}
var l, c, u = t.exports = {};
! function () {
try {
l = setTimeout
} catch (t) {
l = function () {
throw new Error("setTimeout is not defined")
}
}
try {
c = clearTimeout
} catch (t) {
c = function () {
throw new Error("clearTimeout is not defined")
}
}
}();
var h, d = [],
p = !1,
m = -1;
u.nextTick = function (t) {
var e = new Array(arguments.length - 1);
if (arguments.length > 1)
for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
d.push(new a(t, e)), 1 !== d.length || p || i(o)
}, a.prototype.run = function () {
this.fun.apply(null, this.array)
}, u.title = "browser", u.browser = !0, u.env = {}, u.argv = [], u.version = "", u.versions = {}, u.on = r, u.addListener = r, u.once = r, u.off = r, u.removeListener = r, u.removeAllListeners = r, u.emit = r, u.binding = function (t) {
throw new Error("process.binding is not supported")
}, u.cwd = function () {
return "/"
}, u.chdir = function (t) {
throw new Error("process.chdir is not supported")
}, u.umask = function () {
return 0
}
}, function (t, e, i) {
"use strict";
function n(t, e) {
this.wrapper = "string" == typeof t ? document.querySelector(t) : t, this.scroller = this.wrapper.children[0], this.scrollerStyle = this.scroller.style, this.options = {
disablePointer: !a.hasPointer,
disableTouch: a.hasPointer || !a.hasTouch,
disableMouse: a.hasPointer || a.hasTouch,
startX: 0,
startY: 0,
scrollY: !0,
directionLockThreshold: 5,
momentum: !0,
bounce: !0,
bounceTime: 600,
bounceEasing: "",
preventDefault: !0,
preventDefaultException: {
tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/
},
HWCompositing: !0,
useTransition: !0,
useTransform: !0,
bindToWrapper: "undefined" == typeof window.onmousedown
};
for (var i in e) this.options[i] = e[i];
this.translateZ = this.options.HWCompositing && a.hasPerspective ? " translateZ(0)" : "", this.options.useTransition = a.hasTransition && this.options.useTransition, this.options.useTransform = a.hasTransform && this.options.useTransform, this.options.eventPassthrough = this.options.eventPassthrough === !0 ? "vertical" : this.options.eventPassthrough, this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault, this.options.scrollY = "vertical" != this.options.eventPassthrough && this.options.scrollY, this.options.scrollX = "horizontal" != this.options.eventPassthrough && this.options.scrollX, this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough, this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold, this.options.bounceEasing = "string" == typeof this.options.bounceEasing ? a.ease[this.options.bounceEasing] || a.ease.circular : this.options.bounceEasing, this.options.resizePolling = void 0 === this.options.resizePolling ? 60 : this.options.resizePolling, this.options.tap === !0 && (this.options.tap = "tap"), this.options.useTransition || this.options.useTransform || /relative|absolute/i.test(this.scrollerStyle.position) || (this.scrollerStyle.position = "relative"), this.x = 0, this.y = 0, this.directionX = 0, this.directionY = 0, this._events = {}, this._init(), this.refresh(), this.scrollTo(this.options.startX, this.options.startY), this.enable()
}
var s = i(2),
o = s.utils.rAF,
a = function () {
function t(t) {
return n !== !1 && ("" === n ? t : n + t.charAt(0).toUpperCase() + t.substr(1))
}
var e = {},
i = document.createElement("div").style,
n = function () {
for (var t, e = ["t", "webkitT", "MozT", "msT", "OT"], n = 0, s = e.length; n < s; n++)
if (t = e[n] + "ransform", t in i) return e[n].substr(0, e[n].length - 1);
return !1
}();
e.getTime = Date.now || function () {
return (new Date).getTime()
}, e.extend = function (t, e) {
for (var i in e) t[i] = e[i]
}, e.addEvent = function (t, e, i, n) {
t.addEventListener(e, i, !!n)
}, e.removeEvent = function (t, e, i, n) {
t.removeEventListener(e, i, !!n)
}, e.prefixPointerEvent = function (t) {
return window.MSPointerEvent ? "MSPointer" + t.charAt(7).toUpperCase() + t.substr(8) : t
}, e.momentum = function (t, e, i, n, s, o) {
var a, r, l = t - e,
c = Math.abs(l) / i;
return o = void 0 === o ? 6e-4 : o, a = t + c * c / (2 * o) * (l < 0 ? -1 : 1), r = c / o, a < n ? (a = s ? n - s / 2.5 * (c / 8) : n, l = Math.abs(a - t), r = l / c) : a > 0 && (a = s ? s / 2.5 * (c / 8) : 0, l = Math.abs(t) + a, r = l / c), {
destination: Math.round(a),
duration: r
}
};
var s = t("transform");
return e.extend(e, {
hasTransform: s !== !1,
hasPerspective: t("perspective") in i,
hasTouch: "ontouchstart" in window,
hasPointer: !(!window.PointerEvent && !window.MSPointerEvent),
hasTransition: t("transition") in i
}), e.isBadAndroid = function () {
var t = window.navigator.appVersion;
if (/Android/.test(t) && !/Chrome\/\d/.test(t)) {
var e = t.match(/Safari\/(\d+.\d)/);
return !(e && "object" == typeof e && e.length >= 2) || parseFloat(e[1]) < 535.19
}
return !1
}(), e.extend(e.style = {}, {
transform: s,
transitionTimingFunction: t("transitionTimingFunction"),
transitionDuration: t("transitionDuration"),
transitionDelay: t("transitionDelay"),
transformOrigin: t("transformOrigin")
}), e.hasClass = function (t, e) {
var i = new RegExp("(^|\\s)" + e + "(\\s|$)");
return i.test(t.className)
}, e.addClass = function (t, i) {
if (!e.hasClass(t, i)) {
var n = t.className.split(" ");
n.push(i), t.className = n.join(" ")
}
}, e.removeClass = function (t, i) {
if (e.hasClass(t, i)) {
var n = new RegExp("(^|\\s)" + i + "(\\s|$)", "g");
t.className = t.className.replace(n, " ")
}
}, e.offset = function (t) {
for (var e = -t.offsetLeft, i = -t.offsetTop; t = t.offsetParent;) e -= t.offsetLeft, i -= t.offsetTop;
return {
left: e,
top: i
}
}, e.preventDefaultException = function (t, e) {
for (var i in e)
if (e[i].test(t[i])) return !0;
return !1
}, e.extend(e.eventType = {}, {
touchstart: 1,
touchmove: 1,
touchend: 1,
mousedown: 2,
mousemove: 2,
mouseup: 2,
pointerdown: 3,
pointermove: 3,
pointerup: 3,
MSPointerDown: 3,
MSPointerMove: 3,
MSPointerUp: 3
}), e.extend(e.ease = {}, {
quadratic: {
style: "cubic-bezier(0.25, 0.46, 0.45, 0.94)",
fn: function (t) {
return t * (2 - t)
}
},
circular: {
style: "cubic-bezier(0.1, 0.57, 0.1, 1)",
fn: function (t) {
return Math.sqrt(1 - --t * t)
}
},
back: {
style: "cubic-bezier(0.175, 0.885, 0.32, 1.275)",
fn: function (t) {
var e = 4;
return (t -= 1) * t * ((e + 1) * t + e) + 1
}
},
bounce: {
style: "",
fn: function (t) {
return (t /= 1) < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375
}
},
elastic: {
style: "",
fn: function (t) {
var e = .22,
i = .4;
return 0 === t ? 0 : 1 == t ? 1 : i * Math.pow(2, -10 * t) * Math.sin((t - e / 4) * (2 * Math.PI) / e) + 1
}
}
}), e.tap = function (t, e) {
var i = document.createEvent("Event");
i.initEvent(e, !0, !0), i.pageX = t.pageX, i.pageY = t.pageY, t.target.dispatchEvent(i)
}, e.click = function (t) {
var e, i = t.target;
/(SELECT|INPUT|TEXTAREA)/i.test(i.tagName) || (e = document.createEvent(window.MouseEvent ? "MouseEvents" : "Event"), e.initEvent("click", !0, !0), e.view = t.view || window, e.detail = 1, e.screenX = i.screenX || 0, e.screenY = i.screenY || 0, e.clientX = i.clientX || 0, e.clientY = i.clientY || 0, e.ctrlKey = !!t.ctrlKey, e.altKey = !!t.altKey, e.shiftKey = !!t.shiftKey, e.metaKey = !!t.metaKey, e.button = 0, e.relatedTarget = null, e._constructed = !0, i.dispatchEvent(e))
}, e
}();
n.prototype = {
version: "5.2.0",
_init: function () {
this._initEvents()
},
destroy: function () {
this._initEvents(!0), clearTimeout(this.resizeTimeout), this.resizeTimeout = null, this._execEvent("destroy")
},
_transitionEnd: function (t) {
t.target == this.scroller && this.isInTransition && (this._transitionTime(), this.resetPosition(this.options.bounceTime) || (this.isInTransition = !1, this._execEvent("scrollEnd")))
},
_start: function (t) {
if (1 != a.eventType[t.type]) {
var e;
if (e = t.which ? t.button : t.button < 2 ? 0 : 4 == t.button ? 1 : 2, 0 !== e) return
}
if (this.enabled && (!this.initiated || a.eventType[t.type] === this.initiated)) {
!this.options.preventDefault || a.isBadAndroid || a.preventDefaultException(t.target, this.options.preventDefaultException) || t.preventDefault();
var i, n = t.touches ? t.touches[0] : t;
this.initiated = a.eventType[t.type], this.moved = !1, this.distX = 0, this.distY = 0, this.directionX = 0, this.directionY = 0, this.directionLocked = 0, this.startTime = a.getTime(), this.options.useTransition && this.isInTransition ? (this._transitionTime(), this.isInTransition = !1, i = this.getComputedPosition(), this._translate(Math.round(i.x), Math.round(i.y)), this._execEvent("scrollEnd")) : !this.options.useTransition && this.isAnimating && (this.isAnimating = !1,
this._execEvent("scrollEnd")), this.startX = this.x, this.startY = this.y, this.absStartX = this.x, this.absStartY = this.y, this.pointX = n.pageX, this.pointY = n.pageY, this._execEvent("beforeScrollStart")
}
},
_move: function (t) {
if (this.enabled && a.eventType[t.type] === this.initiated) {
this.options.preventDefault && t.preventDefault();
var e, i, n, s, o = t.touches ? t.touches[0] : t,
r = o.pageX - this.pointX,
l = o.pageY - this.pointY,
c = a.getTime();
if (this.pointX = o.pageX, this.pointY = o.pageY, this.distX += r, this.distY += l, n = Math.abs(this.distX), s = Math.abs(this.distY), !(c - this.endTime > 300 && n < 10 && s < 10)) {
if (this.directionLocked || this.options.freeScroll || (n > s + this.options.directionLockThreshold ? this.directionLocked = "h" : s >= n + this.options.directionLockThreshold ? this.directionLocked = "v" : this.directionLocked = "n"), "h" == this.directionLocked) {
if ("vertical" == this.options.eventPassthrough) t.preventDefault();
else if ("horizontal" == this.options.eventPassthrough) return void(this.initiated = !1);
l = 0
} else if ("v" == this.directionLocked) {
if ("horizontal" == this.options.eventPassthrough) t.preventDefault();
else if ("vertical" == this.options.eventPassthrough) return void(this.initiated = !1);
r = 0
}
r = this.hasHorizontalScroll ? r : 0, l = this.hasVerticalScroll ? l : 0, e = this.x + r, i = this.y + l, (e > 0 || e < this.maxScrollX) && (e = this.options.bounce ? this.x + r / 3 : e > 0 ? 0 : this.maxScrollX), (i > 0 || i < this.maxScrollY) && (i = this.options.bounce ? this.y + l / 3 : i > 0 ? 0 : this.maxScrollY), this.directionX = r > 0 ? -1 : r < 0 ? 1 : 0, this.directionY = l > 0 ? -1 : l < 0 ? 1 : 0, this.moved || this._execEvent("scrollStart"), this.moved = !0, this._translate(e, i), c - this.startTime > 300 && (this.startTime = c, this.startX = this.x, this.startY = this.y)
}
}
},
_end: function (t) {
if (this.enabled && a.eventType[t.type] === this.initiated) {
this.options.preventDefault && !a.preventDefaultException(t.target, this.options.preventDefaultException) && t.preventDefault();
var e, i, n = (t.changedTouches ? t.changedTouches[0] : t, a.getTime() - this.startTime),
s = Math.round(this.x),
o = Math.round(this.y),
r = Math.abs(s - this.startX),
l = Math.abs(o - this.startY),
c = 0,
u = "";
if (this.isInTransition = 0, this.initiated = 0, this.endTime = a.getTime(), !this.resetPosition(this.options.bounceTime)) return this.scrollTo(s, o), this.moved ? this._events.flick && n < 200 && r < 100 && l < 100 ? void this._execEvent("flick") : (this.options.momentum && n < 300 && (e = this.hasHorizontalScroll ? a.momentum(this.x, this.startX, n, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : {
destination: s,
duration: 0
}, i = this.hasVerticalScroll ? a.momentum(this.y, this.startY, n, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : {
destination: o,
duration: 0
}, s = e.destination, o = i.destination, c = Math.max(e.duration, i.duration), this.isInTransition = 1), s != this.x || o != this.y ? ((s > 0 || s < this.maxScrollX || o > 0 || o < this.maxScrollY) && (u = a.ease.quadratic), void this.scrollTo(s, o, c, u)) : void this._execEvent("scrollEnd")) : (this.options.tap && a.tap(t, this.options.tap), this.options.click && a.click(t), void this._execEvent("scrollCancel"))
}
},
_resize: function () {
var t = this;
clearTimeout(this.resizeTimeout), this.resizeTimeout = setTimeout(function () {
t.refresh()
}, this.options.resizePolling)
},
resetPosition: function (t) {
var e = this.x,
i = this.y;
return t = t || 0, !this.hasHorizontalScroll || this.x > 0 ? e = 0 : this.x < this.maxScrollX && (e = this.maxScrollX), !this.hasVerticalScroll || this.y > 0 ? i = 0 : this.y < this.maxScrollY && (i = this.maxScrollY), (e != this.x || i != this.y) && (this.scrollTo(e, i, t, this.options.bounceEasing), !0)
},
disable: function () {
this.enabled = !1
},
enable: function () {
this.enabled = !0
},
refresh: function () {
this.wrapper.offsetHeight;
this.wrapperWidth = this.wrapper.clientWidth, this.wrapperHeight = this.wrapper.clientHeight, this.scrollerWidth = this.scroller.offsetWidth, this.scrollerHeight = this.scroller.offsetHeight, this.maxScrollX = this.wrapperWidth - this.scrollerWidth, this.maxScrollY = this.wrapperHeight - this.scrollerHeight, this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0, this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0, this.hasHorizontalScroll || (this.maxScrollX = 0, this.scrollerWidth = this.wrapperWidth), this.hasVerticalScroll || (this.maxScrollY = 0, this.scrollerHeight = this.wrapperHeight), this.endTime = 0, this.directionX = 0, this.directionY = 0, this.wrapperOffset = a.offset(this.wrapper), this._execEvent("refresh"), this.resetPosition()
},
on: function (t, e) {
this._events[t] || (this._events[t] = []), this._events[t].push(e)
},
off: function (t, e) {
if (this._events[t]) {
var i = this._events[t].indexOf(e);
i > -1 && this._events[t].splice(i, 1)
}
},
_execEvent: function (t) {
if (this._events[t]) {
var e = 0,
i = this._events[t].length;
if (i)
for (; e < i; e++) this._events[t][e].apply(this, [].slice.call(arguments, 1))
}
},
scrollBy: function (t, e, i, n) {
t = this.x + t, e = this.y + e, i = i || 0, this.scrollTo(t, e, i, n)
},
scrollTo: function (t, e, i, n) {
n = n || a.ease.circular, this.isInTransition = this.options.useTransition && i > 0;
var s = this.options.useTransition && n.style;
!i || s ? (s && (this._transitionTimingFunction(n.style), this._transitionTime(i)), this._translate(t, e)) : this._animate(t, e, i, n.fn)
},
scrollToElement: function (t, e, i, n, s) {
if (t = t.nodeType ? t : this.scroller.querySelector(t)) {
var o = a.offset(t);
o.left -= this.wrapperOffset.left, o.top -= this.wrapperOffset.top, i === !0 && (i = Math.round(t.offsetWidth / 2 - this.wrapper.offsetWidth / 2)), n === !0 && (n = Math.round(t.offsetHeight / 2 - this.wrapper.offsetHeight / 2)), o.left -= i || 0, o.top -= n || 0, o.left = o.left > 0 ? 0 : o.left < this.maxScrollX ? this.maxScrollX : o.left, o.top = o.top > 0 ? 0 : o.top < this.maxScrollY ? this.maxScrollY : o.top, e = void 0 === e || null === e || "auto" === e ? Math.max(Math.abs(this.x - o.left), Math.abs(this.y - o.top)) : e, this.scrollTo(o.left, o.top, e, s)
}
},
_transitionTime: function (t) {
if (this.options.useTransition) {
t = t || 0;
var e = a.style.transitionDuration;
if (e && (this.scrollerStyle[e] = t + "ms", !t && a.isBadAndroid)) {
this.scrollerStyle[e] = "0.0001ms";
var i = this;
o(function () {
"0.0001ms" === i.scrollerStyle[e] && (i.scrollerStyle[e] = "0s")
})
}
}
},
_transitionTimingFunction: function (t) {
this.scrollerStyle[a.style.transitionTimingFunction] = t
},
_translate: function (t, e) {
this.options.useTransform ? this.scrollerStyle[a.style.transform] = "translate(" + t + "px," + e + "px)" + this.translateZ : (t = Math.round(t), e = Math.round(e), this.scrollerStyle.left = t + "px", this.scrollerStyle.top = e + "px"), this.x = t, this.y = e
},
_initEvents: function (t) {
var e = t ? a.removeEvent : a.addEvent,
i = this.options.bindToWrapper ? this.wrapper : window;
e(window, "orientationchange", this), e(window, "resize", this), this.options.click && e(this.wrapper, "click", this, !0), this.options.disableMouse || (e(this.wrapper, "mousedown", this), e(i, "mousemove", this), e(i, "mousecancel", this), e(i, "mouseup", this)), a.hasPointer && !this.options.disablePointer && (e(this.wrapper, a.prefixPointerEvent("pointerdown"), this), e(i, a.prefixPointerEvent("pointermove"), this), e(i, a.prefixPointerEvent("pointercancel"), this), e(i, a.prefixPointerEvent("pointerup"), this)), a.hasTouch && !this.options.disableTouch && (e(this.wrapper, "touchstart", this), e(i, "touchmove", this), e(i, "touchcancel", this), e(i, "touchend", this)), e(this.scroller, "transitionend", this), e(this.scroller, "webkitTransitionEnd", this), e(this.scroller, "oTransitionEnd", this), e(this.scroller, "MSTransitionEnd", this)
},
getComputedPosition: function () {
var t, e, i = window.getComputedStyle(this.scroller, null);
return this.options.useTransform ? (i = i[a.style.transform].split(")")[0].split(", "), t = +(i[12] || i[4]), e = +(i[13] || i[5])) : (t = +i.left.replace(/[^-\d.]/g, ""), e = +i.top.replace(/[^-\d.]/g, "")), {
x: t,
y: e
}
},
_animate: function (t, e, i, n) {
function s() {
var d, p, m, f = a.getTime();
return f >= h ? (r.isAnimating = !1, r._translate(t, e), void(r.resetPosition(r.options.bounceTime) || r._execEvent("scrollEnd"))) : (f = (f - u) / i, m = n(f), d = (t - l) * m + l, p = (e - c) * m + c, r._translate(d, p), void(r.isAnimating && o(s)))
}
var r = this,
l = this.x,
c = this.y,
u = a.getTime(),
h = u + i;
this.isAnimating = !0, s()
},
handleEvent: function (t) {
switch (t.type) {
case "touchstart":
case "pointerdown":
case "MSPointerDown":
case "mousedown":
this._start(t);
break;
case "touchmove":
case "pointermove":
case "MSPointerMove":
case "mousemove":
this._move(t);
break;
case "touchend":
case "pointerup":
case "MSPointerUp":
case "mouseup":
case "touchcancel":
case "pointercancel":
case "MSPointerCancel":
case "mousecancel":
this._end(t);
break;
case "orientationchange":
case "resize":
this._resize();
break;
case "transitionend":
case "webkitTransitionEnd":
case "oTransitionEnd":
case "MSTransitionEnd":
this._transitionEnd(t);
break;
case "wheel":
case "DOMMouseScroll":
case "mousewheel":
this._wheel(t);
break;
case "keydown":
this._key(t);
break;
case "click":
this.enabled && !t._constructed && (t.preventDefault(), t.stopPropagation())
}
}
}, n.utils = a, t.exports = s.iScroll = n
}, function (t, e, i) {
"use strict";
function n(t, e) {
return this.each(function () {
var i = s(this),
n = i.data("amui.modal"),
o = "object" == typeof t && t;
n || i.data("amui.modal", n = new c(this, o)), "string" == typeof t ? n[t] && n[t](e) : n.toggle(t && t.relatedTarget || void 0)
})
}
var s = i(1),
o = i(2),
a = i(9),
r = s(document),
l = o.support.transition,
c = function (t, e) {
this.options = s.extend({}, c.DEFAULTS, e || {}), this.$element = s(t), this.$dialog = this.$element.find(".am-modal-dialog"), this.$element.attr("id") || this.$element.attr("id", o.utils.generateGUID("am-modal")), this.isPopup = this.$element.hasClass("am-popup"), this.isActions = this.$element.hasClass("am-modal-actions"), this.isPrompt = this.$element.hasClass("am-modal-prompt"), this.isLoading = this.$element.hasClass("am-modal-loading"), this.active = this.transitioning = this.relatedTarget = null, this.dimmer = this.options.dimmer ? a : {
open: function () {},
close: function () {}
}, this.events()
};
c.DEFAULTS = {
className: {
active: "am-modal-active",
out: "am-modal-out"
},
selector: {
modal: ".am-modal",
active: ".am-modal-active"
},
closeViaDimmer: !0,
cancelable: !0,
onConfirm: function () {},
onCancel: function () {},
closeOnCancel: !0,
closeOnConfirm: !0,
dimmer: !0,
height: void 0,
width: void 0,
duration: 300,
transitionEnd: l && l.end + ".modal.amui"
}, c.prototype.toggle = function (t) {
return this.active ? this.close() : this.open(t)
}, c.prototype.open = function (t) {
var e = this.$element,
i = this.options,
n = this.isPopup,
o = i.width,
a = i.height,
r = {};
if (!this.active && this.$element.length) {
t && (this.relatedTarget = t), this.transitioning && (clearTimeout(e.transitionEndTimmer), e.transitionEndTimmer = null, e.trigger(i.transitionEnd).off(i.transitionEnd)), n && this.$element.show(), this.active = !0, e.trigger(s.Event("open.modal.amui", {
relatedTarget: t
})), this.dimmer.open(e), e.show().redraw(), n || this.isActions || (o && (r.width = parseInt(o, 10) + "px"), a && (r.height = parseInt(a, 10) + "px"), this.$dialog.css(r)), e.removeClass(i.className.out).addClass(i.className.active), this.transitioning = 1;
var c = function () {
e.trigger(s.Event("opened.modal.amui", {
relatedTarget: t
})), this.transitioning = 0, this.isPrompt && this.$dialog.find("input").eq(0).focus()
};
return l ? void e.one(i.transitionEnd, s.proxy(c, this)).emulateTransitionEnd(i.duration) : c.call(this)
}
}, c.prototype.close = function (t) {
if (this.active) {
var e = this.$element,
i = this.options,
n = this.isPopup;
this.transitioning && (clearTimeout(e.transitionEndTimmer), e.transitionEndTimmer = null, e.trigger(i.transitionEnd).off(i.transitionEnd), this.dimmer.close(e, !0)), this.$element.trigger(s.Event("close.modal.amui", {
relatedTarget: t
})), this.transitioning = 1;
var o = function () {
e.trigger("closed.modal.amui"), n && e.removeClass(i.className.out), e.hide(), this.transitioning = 0, this.dimmer.close(e, !1), this.active = !1
};
return e.removeClass(i.className.active).addClass(i.className.out), l ? void e.one(i.transitionEnd, s.proxy(o, this)).emulateTransitionEnd(i.duration) : o.call(this)
}
}, c.prototype.events = function () {
var t = this,
e = this.options,
i = this.$element,
n = this.dimmer.$element,
o = i.find(".am-modal-prompt-input"),
a = i.find("[data-am-modal-confirm]"),
r = i.find("[data-am-modal-cancel]"),
l = function () {
var t = [];
return o.each(function () {
t.push(s(this).val())
}), 0 === t.length ? void 0 : 1 === t.length ? t[0] : t
};
this.options.cancelable && i.on("keyup.modal.amui", function (e) {
t.active && 27 === e.which && (i.trigger("cancel.modal.amui"), t.close())
}), this.options.dimmer && this.options.closeViaDimmer && !this.isLoading && n.on("click.dimmer.modal.amui", function () {
t.close()
}), i.on("click.close.modal.amui", "[data-am-modal-close], .am-modal-btn", function (i) {
i.preventDefault();
var n = s(this);
n.is(a) ? e.closeOnConfirm && t.close() : n.is(r) ? e.closeOnCancel && t.close() : t.close()
}).on("click", function (t) {
s(t.target).is(i) && n.trigger("click.dimmer.modal.amui")
}), a.on("click.confirm.modal.amui", function () {
i.trigger(s.Event("confirm.modal.amui", {
trigger: this
}))
}), r.on("click.cancel.modal.amui", function () {
i.trigger(s.Event("cancel.modal.amui", {
trigger: this
}))
}), i.on("confirm.modal.amui", function (e) {
e.data = l(), t.options.onConfirm.call(t, e)
}).on("cancel.modal.amui", function (e) {
e.data = l(), t.options.onCancel.call(t, e)
})
}, s.fn.modal = n, r.on("click.modal.amui.data-api", "[data-am-modal]", function () {
var t = s(this),
e = o.utils.parseOptions(t.attr("data-am-modal")),
i = s(e.target || this.href && this.href.replace(/.*(?=#[^\s]+$)/, "")),
a = i.data("amui.modal") ? "toggle" : e;
n.call(i, a, this)
}), t.exports = o.modal = c
}, function (t, e, i) {
"use strict";
function n(t, e) {
var i = Array.prototype.slice.call(arguments, 1);
return this.each(function () {
var n = s(this),
o = n.data("amui.offcanvas"),
a = s.extend({}, "object" == typeof t && t);
o || (n.data("amui.offcanvas", o = new c(this, a)), (!t || "object" == typeof t) && o.open(e)), "string" == typeof t && o[t] && o[t].apply(o, i)
})
}
var s = i(1),
o = i(2);
i(3);
var a, r = s(window),
l = s(document),
c = function (t, e) {
this.$element = s(t), this.options = s.extend({}, c.DEFAULTS, e), this.active = null, this.bindEvents()
};
c.DEFAULTS = {
duration: 300,
effect: "overlay"
}, c.prototype.open = function (t) {
var e = this,
i = this.$element;
if (i.length && !i.hasClass("am-active")) {
var n = this.options.effect,
o = s("html"),
l = s("body"),
c = i.find(".am-offcanvas-bar").first(),
u = c.hasClass("am-offcanvas-bar-flip") ? -1 : 1;
c.addClass("am-offcanvas-bar-" + n), a = {
x: window.scrollX,
y: window.scrollY
}, i.addClass("am-active"), l.css({
width: window.innerWidth,
height: r.height()
}).addClass("am-offcanvas-page"), "overlay" !== n && l.css({
"margin-left": c.outerWidth() * u
}).width(), o.css("margin-top", a.y * -1), setTimeout(function () {
c.addClass("am-offcanvas-bar-active").width()
}, 0), i.trigger("open.offcanvas.amui"), this.active = 1, i.on("click.offcanvas.amui", function (t) {
var i = s(t.target);
i.hasClass("am-offcanvas-bar") || i.parents(".am-offcanvas-bar").first().length || (t.stopImmediatePropagation(), e.close())
}), o.on("keydown.offcanvas.amui", function (t) {
27 === t.keyCode && e.close()
})
}
}, c.prototype.close = function (t) {
function e() {
r.removeClass("am-offcanvas-page").css({
width: "",
height: "",
"margin-left": "",
"margin-right": ""
}), l.removeClass("am-active"), c.removeClass("am-offcanvas-bar-active"), n.css("margin-top", ""), window.scrollTo(a.x, a.y), l.trigger("closed.offcanvas.amui"), i.active = 0
}
var i = this,
n = s("html"),
r = s("body"),
l = this.$element,
c = l.find(".am-offcanvas-bar").first();
l.length && this.active && l.hasClass("am-active") && (l.trigger("close.offcanvas.amui"), o.support.transition ? (setTimeout(function () {
c.removeClass("am-offcanvas-bar-active")
}, 0), r.css("margin-left", "").one(o.support.transition.end, function () {
e()
}).emulateTransitionEnd(this.options.duration)) : e(), l.off("click.offcanvas.amui"), n.off(".offcanvas.amui"))
}, c.prototype.bindEvents = function () {
var t = this;
return l.on("click.offcanvas.amui", '[data-am-dismiss="offcanvas"]', function (e) {
e.preventDefault(), t.close()
}), r.on("resize.offcanvas.amui orientationchange.offcanvas.amui", function () {
t.active && t.close()
}), this.$element.hammer().on("swipeleft swipeleft", function (e) {
e.preventDefault(), t.close()
}), this
}, s.fn.offCanvas = n, l.on("click.offcanvas.amui", "[data-am-offcanvas]", function (t) {
t.preventDefault();
var e = s(this),
i = o.utils.parseOptions(e.data("amOffcanvas")),
a = s(i.target || this.href && this.href.replace(/.*(?=#[^\s]+$)/, "")),
r = a.data("amui.offcanvas") ? "open" : i;
n.call(a, r, this)
}), t.exports = o.offcanvas = c
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = s.utils.rAF,
a = function (t) {
var e = function (e, i) {
this.el = t(e), this.zoomFactor = 1, this.lastScale = 1, this.offset = {
x: 0,
y: 0
}, this.options = t.extend({}, this.defaults, i), this.setupMarkup(), this.bindEvents(), this.update(), this.enable()
},
i = function (t, e) {
return t + e
},
n = function (t, e) {
return t > e - .01 && t < e + .01
};
e.prototype = {
defaults: {
tapZoomFactor: 2,
zoomOutFactor: 1.3,
animationDuration: 300,
maxZoom: 4,
minZoom: .5,
lockDragAxis: !1,
use2d: !0,
zoomStartEventName: "pz_zoomstart",
zoomEndEventName: "pz_zoomend",
dragStartEventName: "pz_dragstart",
dragEndEventName: "pz_dragend",
doubleTapEventName: "pz_doubletap"
},
handleDragStart: function (t) {
this.el.trigger(this.options.dragStartEventName), this.stopAnimation(), this.lastDragPosition = !1, this.hasInteraction = !0, this.handleDrag(t)
},
handleDrag: function (t) {
if (this.zoomFactor > 1) {
var e = this.getTouches(t)[0];
this.drag(e, this.lastDragPosition), this.offset = this.sanitizeOffset(this.offset), this.lastDragPosition = e
}
},
handleDragEnd: function () {
this.el.trigger(this.options.dragEndEventName), this.end()
},
handleZoomStart: function (t) {
this.el.trigger(this.options.zoomStartEventName), this.stopAnimation(), this.lastScale = 1, this.nthZoom = 0, this.lastZoomCenter = !1, this.hasInteraction = !0
},
handleZoom: function (t, e) {
var i = this.getTouchCenter(this.getTouches(t)),
n = e / this.lastScale;
this.lastScale = e, this.nthZoom += 1, this.nthZoom > 3 && (this.scale(n, i), this.drag(i, this.lastZoomCenter)), this.lastZoomCenter = i
},
handleZoomEnd: function () {
this.el.trigger(this.options.zoomEndEventName), this.end()
},
handleDoubleTap: function (t) {
var e = this.getTouches(t)[0],
i = this.zoomFactor > 1 ? 1 : this.options.tapZoomFactor,
n = this.zoomFactor,
s = function (t) {
this.scaleTo(n + t * (i - n), e)
}.bind(this);
this.hasInteraction || (n > i && (e = this.getCurrentZoomCenter()), this.animate(this.options.animationDuration, s, this.swing), this.el.trigger(this.options.doubleTapEventName))
},
sanitizeOffset: function (t) {
var e = (this.zoomFactor - 1) * this.getContainerX(),
i = (this.zoomFactor - 1) * this.getContainerY(),
n = Math.max(e, 0),
s = Math.max(i, 0),
o = Math.min(e, 0),
a = Math.min(i, 0);
return {
x: Math.min(Math.max(t.x, o), n),
y: Math.min(Math.max(t.y, a), s)
}
},
scaleTo: function (t, e) {
this.scale(t / this.zoomFactor, e)
},
scale: function (t, e) {
t = this.scaleZoomFactor(t), this.addOffset({
x: (t - 1) * (e.x + this.offset.x),
y: (t - 1) * (e.y + this.offset.y)
})
},
scaleZoomFactor: function (t) {
var e = this.zoomFactor;
return this.zoomFactor *= t, this.zoomFactor = Math.min(this.options.maxZoom, Math.max(this.zoomFactor, this.options.minZoom)), this.zoomFactor / e
},
drag: function (t, e) {
e && (this.options.lockDragAxis ? Math.abs(t.x - e.x) > Math.abs(t.y - e.y) ? this.addOffset({
x: -(t.x - e.x),
y: 0
}) : this.addOffset({
y: -(t.y - e.y),
x: 0
}) : this.addOffset({
y: -(t.y - e.y),
x: -(t.x - e.x)
}))
},
getTouchCenter: function (t) {
return this.getVectorAvg(t)
},
getVectorAvg: function (t) {
return {
x: t.map(function (t) {
return t.x
}).reduce(i) / t.length,
y: t.map(function (t) {
return t.y
}).reduce(i) / t.length
}
},
addOffset: function (t) {
this.offset = {
x: this.offset.x + t.x,
y: this.offset.y + t.y
}
},
sanitize: function () {
this.zoomFactor < this.options.zoomOutFactor ? this.zoomOutAnimation() : this.isInsaneOffset(this.offset) && this.sanitizeOffsetAnimation()
},
isInsaneOffset: function (t) {
var e = this.sanitizeOffset(t);
return e.x !== t.x || e.y !== t.y
},
sanitizeOffsetAnimation: function () {
var t = this.sanitizeOffset(this.offset),
e = {
x: this.offset.x,
y: this.offset.y
},
i = function (i) {
this.offset.x = e.x + i * (t.x - e.x), this.offset.y = e.y + i * (t.y - e.y), this.update()
}.bind(this);
this.animate(this.options.animationDuration, i, this.swing)
},
zoomOutAnimation: function () {
var t = this.zoomFactor,
e = 1,
i = this.getCurrentZoomCenter(),
n = function (n) {
this.scaleTo(t + n * (e - t), i)
}.bind(this);
this.animate(this.options.animationDuration, n, this.swing)
},
updateAspectRatio: function () {
this.setContainerY(this.getContainerX() / this.getAspectRatio())
},
getInitialZoomFactor: function () {
return this.container[0].offsetWidth / this.el[0].offsetWidth
},
getAspectRatio: function () {
return this.el[0].offsetWidth / this.el[0].offsetHeight
},
getCurrentZoomCenter: function () {
var t = this.container[0].offsetWidth * this.zoomFactor,
e = this.offset.x,
i = t - e - this.container[0].offsetWidth,
n = e / i,
s = n * this.container[0].offsetWidth / (n + 1),
o = this.container[0].offsetHeight * this.zoomFactor,
a = this.offset.y,
r = o - a - this.container[0].offsetHeight,
l = a / r,
c = l * this.container[0].offsetHeight / (l + 1);
return 0 === i && (s = this.container[0].offsetWidth), 0 === r && (c = this.container[0].offsetHeight), {
x: s,
y: c
}
},
canDrag: function () {
return !n(this.zoomFactor, 1)
},
getTouches: function (t) {
var e = this.container.offset();
return Array.prototype.slice.call(t.touches).map(function (t) {
return {
x: t.pageX - e.left,
y: t.pageY - e.top
}
})
},
animate: function (t, e, i, n) {
var s = (new Date).getTime(),
a = function () {
if (this.inAnimation) {
var r = (new Date).getTime() - s,
l = r / t;
r >= t ? (e(1), n && n(), this.update(), this.stopAnimation(), this.update()) : (i && (l = i(l)), e(l), this.update(), o(a))
}
}.bind(this);
this.inAnimation = !0, o(a)
},
stopAnimation: function () {
this.inAnimation = !1
},
swing: function (t) {
return -Math.cos(t * Math.PI) / 2 + .5
},
getContainerX: function () {
return this.container[0].offsetWidth
},
getContainerY: function () {
return this.container[0].offsetHeight
},
setContainerY: function (t) {
return this.container.height(t)
},
setupMarkup: function () {
this.container = t(''), this.el.before(this.container), this.container.append(this.el), this.container.css({
overflow: "hidden",
position: "relative"
}), this.el.css({
"-webkit-transform-origin": "0% 0%",
"-moz-transform-origin": "0% 0%",
"-ms-transform-origin": "0% 0%",
"-o-transform-origin": "0% 0%",
"transform-origin": "0% 0%",
position: "absolute"
})
},
end: function () {
this.hasInteraction = !1, this.sanitize(), this.update()
},
bindEvents: function () {
s(this.container.get(0), this), t(window).on("resize", this.update.bind(this)), t(this.el).find("img").on("load", this.update.bind(this))
},
update: function () {
this.updatePlaned || (this.updatePlaned = !0, setTimeout(function () {
this.updatePlaned = !1, this.updateAspectRatio();
var t = this.getInitialZoomFactor() * this.zoomFactor,
e = -this.offset.x / t,
i = -this.offset.y / t,
n = "scale3d(" + t + ", " + t + ",1) translate3d(" + e + "px," + i + "px,0px)",
s = "scale(" + t + ", " + t + ") translate(" + e + "px," + i + "px)",
o = function () {
this.clone && (this.clone.remove(), delete this.clone)
}.bind(this);
!this.options.use2d || this.hasInteraction || this.inAnimation ? (this.is3d = !0, o(), this.el.css({
"-webkit-transform": n,
"-o-transform": s,
"-ms-transform": s,
"-moz-transform": s,
transform: n
})) : (this.is3d && (this.clone = this.el.clone(), this.clone.css("pointer-events", "none"), this.clone.appendTo(this.container), setTimeout(o, 200)), this.el.css({
"-webkit-transform": s,
"-o-transform": s,
"-ms-transform": s,
"-moz-transform": s,
transform: s
}), this.is3d = !1)
}.bind(this), 0))
},
enable: function () {
this.enabled = !0
},
disable: function () {
this.enabled = !1
}
};
var s = function (t, e) {
var i = null,
n = 0,
s = null,
o = null,
a = function (t, n) {
if (i !== t) {
if (i && !t) switch (i) {
case "zoom":
e.handleZoomEnd(n);
break;
case "drag":
e.handleDragEnd(n)
}
switch (t) {
case "zoom":
e.handleZoomStart(n);
break;
case "drag":
e.handleDragStart(n)
}
}
i = t
},
r = function (t) {
2 === n ? a("zoom") : 1 === n && e.canDrag() ? a("drag", t) : a(null, t)
},
l = function (t) {
return Array.prototype.slice.call(t).map(function (t) {
return {
x: t.pageX,
y: t.pageY
}
})
},
c = function (t, e) {
var i, n;
return i = t.x - e.x, n = t.y - e.y, Math.sqrt(i * i + n * n)
},
u = function (t, e) {
var i = c(t[0], t[1]),
n = c(e[0], e[1]);
return n / i
},
h = function (t) {
t.stopPropagation(), t.preventDefault()
},
d = function (t) {
var o = (new Date).getTime();
if (n > 1 && (s = null), o - s < 300) switch (h(t), e.handleDoubleTap(t), i) {
case "zoom":
e.handleZoomEnd(t);
break;
case "drag":
e.handleDragEnd(t)
}
1 === n && (s = o)
},
p = !0;
t.addEventListener("touchstart", function (t) {
e.enabled && (p = !0, n = t.touches.length, d(t))
}), t.addEventListener("touchmove", function (t) {
if (e.enabled) {
if (p) r(t), i && h(t), o = l(t.touches);
else {
switch (i) {
case "zoom":
e.handleZoom(t, u(o, l(t.touches)));
break;
case "drag":
e.handleDrag(t)
}
i && (h(t), e.update())
}
p = !1
}
}), t.addEventListener("touchend", function (t) {
e.enabled && (n = t.touches.length, r(t))
})
};
return e
};
t.exports = s.pichzoom = a(n)
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = n(window),
a = function (t, e) {
this.options = n.extend({}, a.DEFAULTS, e), this.$element = n(t), this.active = null, this.$popover = this.options.target && n(this.options.target) || null, this.init(), this._bindEvents()
};
a.DEFAULTS = {
theme: null,
trigger: "click",
content: "",
open: !1,
target: null,
tpl: '
'
}, a.prototype.init = function () {
function t() {
i.sizePopover()
}
var e, i = this,
o = this.$element;
this.options.target || (this.$popover = this.getPopover(), this.setContent()), e = this.$popover, e.appendTo(n("body")), this.sizePopover(), o.on("open.popover.amui", function () {
n(window).on("resize.popover.amui", s.utils.debounce(t, 50))
}), o.on("close.popover.amui", function () {
n(window).off("resize.popover.amui", t)
}), this.options.open && this.open()
}, a.prototype.sizePopover = function () {
var t = this.$element,
e = this.$popover;
if (e && e.length) {
var i = e.outerWidth(),
n = e.outerHeight(),
s = e.find(".am-popover-caret"),
a = s.outerWidth() / 2 || 8,
r = n + 8,
l = t.outerWidth(),
c = t.outerHeight(),
u = t.offset(),
h = t[0].getBoundingClientRect(),
d = o.height(),
p = o.width(),
m = 0,
f = 0,
v = 0,
g = 2,
y = "top";
e.css({
left: "",
top: ""
}).removeClass("am-popover-left am-popover-right am-popover-top am-popover-bottom"), r - g < h.top + g ? m = u.top - r - g : r < d - h.top - h.height ? (y = "bottom", m = u.top + c + a + g) : (y = "middle", m = c / 2 + u.top - n / 2), "top" === y || "bottom" === y ? (f = l / 2 + u.left - i / 2, v = f, f < 5 && (f = 5), f + i > p && (f = p - i - 20), "top" === y && e.addClass("am-popover-top"), "bottom" === y && e.addClass("am-popover-bottom"), v -= f) : "middle" === y && (f = u.left - i - a, e.addClass("am-popover-left"), f < 5 && (f = u.left + l + a, e.removeClass("am-popover-left").addClass("am-popover-right")), f + i > p && (f = p - i - 5, e.removeClass("am-popover-left").addClass("am-popover-right"))), e.css({
top: m + "px",
left: f + "px"
})
}
}, a.prototype.toggle = function () {
return this[this.active ? "close" : "open"]()
}, a.prototype.open = function () {
var t = this.$popover;
this.$element.trigger("open.popover.amui"), this.sizePopover(), t.show().addClass("am-active"), this.active = !0
}, a.prototype.close = function () {
var t = this.$popover;
this.$element.trigger("close.popover.amui"), t.removeClass("am-active").trigger("closed.popover.amui").hide(), this.active = !1
}, a.prototype.getPopover = function () {
var t = s.utils.generateGUID("am-popover"),
e = [];
return this.options.theme && n.each(this.options.theme.split(" "), function (t, i) {
e.push("am-popover-" + n.trim(i))
}), n(this.options.tpl).attr("id", t).addClass(e.join(" "))
}, a.prototype.setContent = function (t) {
t = t || this.options.content, this.$popover && this.$popover.find(".am-popover-inner").empty().html(t)
}, a.prototype._bindEvents = function () {
for (var t = "popover.amui", e = this.options.trigger.split(" "), i = e.length; i--;) {
var s = e[i];
if ("click" === s) this.$element.on("click." + t, n.proxy(this.toggle, this));
else {
var o = "hover" == s ? "mouseenter" : "focusin",
a = "hover" == s ? "mouseleave" : "focusout";
this.$element.on(o + "." + t, n.proxy(this.open, this)), this.$element.on(a + "." + t, n.proxy(this.close, this))
}
}
}, a.prototype.destroy = function () {
this.$element.off(".popover.amui").removeData("amui.popover"), this.$popover.remove()
}, s.plugin("popover", a), s.ready(function (t) {
n("[data-am-popover]", t).popover()
}), t.exports = a
}, function (t, e, i) {
"use strict";
var n = i(2),
s = function () {
function t(t, e, i) {
return t < e ? e : t > i ? i : t
}
function e(t) {
return 100 * (-1 + t)
}
function i(t, i, n) {
var s;
return s = "translate3d" === c.positionUsing ? {
transform: "translate3d(" + e(t) + "%,0,0)"
} : "translate" === c.positionUsing ? {
transform: "translate(" + e(t) + "%,0)"
} : {
"margin-left": e(t) + "%"
}, s.transition = "all " + i + "ms " + n, s
}
function n(t, e) {
var i = "string" == typeof t ? t : a(t);
return i.indexOf(" " + e + " ") >= 0
}
function s(t, e) {
var i = a(t),
s = i + e;
n(i, e) || (t.className = s.substring(1))
}
function o(t, e) {
var i, s = a(t);
n(t, e) && (i = s.replace(" " + e + " ", " "), t.className = i.substring(1, i.length - 1))
}
function a(t) {
return (" " + (t.className || "") + " ").replace(/\s+/gi, " ")
}
function r(t) {
t && t.parentNode && t.parentNode.removeChild(t)
}
var l = {};
l.version = "0.2.0";
var c = l.settings = {
minimum: .08,
easing: "ease",
positionUsing: "",
speed: 200,
trickle: !0,
trickleRate: .02,
trickleSpeed: 800,
showSpinner: !0,
parent: "body",
barSelector: '[role="nprogress-bar"]',
spinnerSelector: '[role="nprogress-spinner"]',
template: '
'
};
l.configure = function (t) {
var e, i;
for (e in t) i = t[e], void 0 !== i && t.hasOwnProperty(e) && (c[e] = i);
return this
}, l.status = null, l.set = function (e) {
var n = l.isStarted();
e = t(e, c.minimum, 1), l.status = 1 === e ? null : e;
var s = l.render(!n),
o = s.querySelector(c.barSelector),
a = c.speed,
r = c.easing;
return s.offsetWidth, u(function (t) {
"" === c.positionUsing && (c.positionUsing = l.getPositioningCSS()), h(o, i(e, a, r)), 1 === e ? (h(s, {
transition: "none",
opacity: 1
}), s.offsetWidth, setTimeout(function () {
h(s, {
transition: "all " + a + "ms linear",
opacity: 0
}), setTimeout(function () {
l.remove(), t()
}, a)
}, a)) : setTimeout(t, a)
}), this
}, l.isStarted = function () {
return "number" == typeof l.status
}, l.start = function () {
l.status || l.set(0);
var t = function () {
setTimeout(function () {
l.status && (l.trickle(), t())
}, c.trickleSpeed)
};
return c.trickle && t(), this
}, l.done = function (t) {
return t || l.status ? l.inc(.3 + .5 * Math.random()).set(1) : this
}, l.inc = function (e) {
var i = l.status;
return i ? ("number" != typeof e && (e = (1 - i) * t(Math.random() * i, .1, .95)), i = t(i + e, 0, .994), l.set(i)) : l.start()
}, l.trickle = function () {
return l.inc(Math.random() * c.trickleRate)
},
function () {
var t = 0,
e = 0;
l.promise = function (i) {
return i && "resolved" !== i.state() ? (0 === e && l.start(), t++, e++, i.always(function () {
e--, 0 === e ? (t = 0, l.done()) : l.set((t - e) / t)
}), this) : this
}
}(), l.render = function (t) {
if (l.isRendered()) return document.getElementById("nprogress");
s(document.documentElement, "nprogress-busy");
var i = document.createElement("div");
i.id = "nprogress", i.innerHTML = c.template;
var n, o = i.querySelector(c.barSelector),
a = t ? "-100" : e(l.status || 0),
u = document.querySelector(c.parent);
return h(o, {
transition: "all 0 linear",
transform: "translate3d(" + a + "%,0,0)"
}), c.showSpinner || (n = i.querySelector(c.spinnerSelector), n && r(n)), u != document.body && s(u, "nprogress-custom-parent"), u.appendChild(i), i
}, l.remove = function () {
o(document.documentElement, "nprogress-busy"), o(document.querySelector(c.parent), "nprogress-custom-parent");
var t = document.getElementById("nprogress");
t && r(t)
}, l.isRendered = function () {
return !!document.getElementById("nprogress")
}, l.getPositioningCSS = function () {
var t = document.body.style,
e = "WebkitTransform" in t ? "Webkit" : "MozTransform" in t ? "Moz" : "msTransform" in t ? "ms" : "OTransform" in t ? "O" : "";
return e + "Perspective" in t ? "translate3d" : e + "Transform" in t ? "translate" : "margin"
};
var u = function () {
function t() {
var i = e.shift();
i && i(t)
}
var e = [];
return function (i) {
e.push(i), 1 == e.length && t()
}
}(),
h = function () {
function t(t) {
return t.replace(/^-ms-/, "ms-").replace(/-([\da-z])/gi, function (t, e) {
return e.toUpperCase()
})
}
function e(t) {
var e = document.body.style;
if (t in e) return t;
for (var i, n = s.length, o = t.charAt(0).toUpperCase() + t.slice(1); n--;)
if (i = s[n] + o, i in e) return i;
return t
}
function i(i) {
return i = t(i), o[i] || (o[i] = e(i))
}
function n(t, e, n) {
e = i(e), t.style[e] = n
}
var s = ["Webkit", "O", "Moz", "ms"],
o = {};
return function (t, e) {
var i, s, o = arguments;
if (2 == o.length)
for (i in e) s = e[i], void 0 !== s && e.hasOwnProperty(i) && n(t, i, s);
else n(t, o[1], o[2])
}
}();
return l
}();
t.exports = n.progress = s
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = i(17),
a = i(3),
r = s.support.animation,
l = s.support.transition,
c = function (t, e) {
this.$element = n(t), this.$body = n(document.body), this.options = n.extend({}, c.DEFAULTS, e), this.$pureview = n(this.options.tpl).attr("id", s.utils.generateGUID("am-pureview")), this.$slides = null, this.transitioning = null, this.scrollbarWidth = 0, this.init()
};
c.DEFAULTS = {
tpl: '
/
',
className: {
prevSlide: "am-pureview-slide-prev",
nextSlide: "am-pureview-slide-next",
onlyOne: "am-pureview-only",
active: "am-active",
barActive: "am-pureview-bar-active",
activeBody: "am-pureview-active"
},
selector: {
slider: ".am-pureview-slider",
close: '[data-am-close="pureview"]',
total: ".am-pureview-total",
current: ".am-pureview-current",
title: ".am-pureview-title",
actions: ".am-pureview-actions",
bar: ".am-pureview-bar",
pinchZoom: ".am-pinch-zoom",
nav: ".am-pureview-nav"
},
shareBtn: !1,
toggleToolbar: !0,
target: "img",
weChatImagePreview: !0
}, c.prototype.init = function () {
var t = this,
e = this.options,
i = this.$element,
s = this.$pureview;
this.refreshSlides(), n("body").append(s), this.$title = s.find(e.selector.title), this.$current = s.find(e.selector.current), this.$bar = s.find(e.selector.bar), this.$actions = s.find(e.selector.actions), e.shareBtn && this.$actions.append(''), this.$element.on("click.pureview.amui", e.target, function (i) {
i.preventDefault();
var n = t.$images.index(this);
e.weChatImagePreview && window.WeixinJSBridge ? window.WeixinJSBridge.invoke("imagePreview", {
current: t.imgUrls[n],
urls: t.imgUrls
}) : t.open(n)
}), s.find(".am-pureview-direction").on("click.direction.pureview.amui", "li", function (e) {
e.preventDefault(), n(this).is(".am-pureview-prev") ? t.prevSlide() : t.nextSlide()
}), s.find(e.selector.nav).on("click.nav.pureview.amui", "li", function () {
var e = t.$navItems.index(n(this));
t.activate(t.$slides.eq(e))
}), s.find(e.selector.close).on("click.close.pureview.amui", function (e) {
e.preventDefault(), t.close()
}), this.$slider.hammer().on("swipeleft.pureview.amui", function (e) {
e.preventDefault(), t.nextSlide()
}).on("swiperight.pureview.amui", function (e) {
e.preventDefault(), t.prevSlide()
}).on("press.pureview.amui", function (i) {
i.preventDefault(), e.toggleToolbar && t.toggleToolBar()
}), this.$slider.data("hammer").get("swipe").set({
direction: a.DIRECTION_HORIZONTAL,
velocity: .35
}), i.DOMObserve({
childList: !0,
subtree: !0
}, function (t, e) {}), i.on("changed.dom.amui", function (e) {
e.stopPropagation(), t.refreshSlides()
}), n(document).on("keydown.pureview.amui", n.proxy(function (t) {
var e = t.keyCode;
37 == e ? this.prevSlide() : 39 == e ? this.nextSlide() : 27 == e && this.close()
}, this))
}, c.prototype.refreshSlides = function () {
this.$images = this.$element.find(this.options.target);
var t = this,
e = this.options,
i = this.$pureview,
o = n([]),
a = n([]),
r = this.$images,
l = r.length;
this.$slider = i.find(e.selector.slider), this.$nav = i.find(e.selector.nav);
var c = "data-am-pureviewed";
this.imgUrls = this.imgUrls || [], l && (1 === l && i.addClass(e.className.onlyOne), r.not("[" + c + "]").each(function (e, i) {
var r, l;
"A" === i.nodeName ? (r = i.href, l = i.title || "") : (r = n(i).data("rel") || i.src, r = s.utils.getAbsoluteUrl(r), l = n(i).attr("alt") || ""), i.setAttribute(c, "1"), t.imgUrls.push(r), o = o.add(n('')), a = a.add(n("
" + (e + 1) + "
"))
}), i.find(e.selector.total).text(l), this.$slider.append(o), this.$nav.append(a), this.$navItems = this.$nav.find("li"), this.$slides = this.$slider.find("li"))
}, c.prototype.loadImage = function (t, e) {
var i = "image-appended";
if (!t.data(i)) {
var s = n("", {
src: t.data("src"),
alt: t.data("title")
});
t.html(s).wrapInner('').redraw();
var a = t.find(this.options.selector.pinchZoom);
a.data("amui.pinchzoom", new o(a[0], {})), t.data("image-appended", !0)
}
e && e.call(this)
}, c.prototype.activate = function (t) {
var e = this.options,
i = this.$slides,
o = i.index(t),
a = t.data("title") || "",
r = e.className.active;
i.find("." + r).is(t) || this.transitioning || (this.loadImage(t, function () {
s.utils.imageLoader(t.find("img"), function (e) {
t.find(".am-pinch-zoom").addClass("am-pureview-loaded"), n(e).addClass("am-img-loaded")
})
}), this.transitioning = 1, this.$title.text(a), this.$current.text(o + 1), i.removeClass(), t.addClass(r), i.eq(o - 1).addClass(e.className.prevSlide), i.eq(o + 1).addClass(e.className.nextSlide), this.$navItems.removeClass().eq(o).addClass(e.className.active), l ? t.one(l.end, n.proxy(function () {
this.transitioning = 0
}, this)).emulateTransitionEnd(300) : this.transitioning = 0)
}, c.prototype.nextSlide = function () {
if (1 !== this.$slides.length) {
var t = this.$slides,
e = t.filter(".am-active"),
i = t.index(e),
n = "am-animation-right-spring";
i + 1 >= t.length ? r && e.addClass(n).on(r.end, function () {
e.removeClass(n)
}) : this.activate(t.eq(i + 1))
}
}, c.prototype.prevSlide = function () {
if (1 !== this.$slides.length) {
var t = this.$slides,
e = t.filter(".am-active"),
i = this.$slides.index(e),
n = "am-animation-left-spring";
0 === i ? r && e.addClass(n).on(r.end, function () {
e.removeClass(n)
}) : this.activate(t.eq(i - 1))
}
}, c.prototype.toggleToolBar = function () {
this.$pureview.toggleClass(this.options.className.barActive)
}, c.prototype.open = function (t) {
var e = t || 0;
this.checkScrollbar(), this.setScrollbar(), this.activate(this.$slides.eq(e)), this.$pureview.show().redraw().addClass(this.options.className.active), this.$body.addClass(this.options.className.activeBody)
}, c.prototype.close = function () {
function t() {
this.$pureview.hide(), this.$body.removeClass(e.className.activeBody), this.resetScrollbar()
}
var e = this.options;
this.$pureview.removeClass(e.className.active), this.$slides.removeClass(), l ? this.$pureview.one(l.end, n.proxy(t, this)).emulateTransitionEnd(300) : t.call(this)
}, c.prototype.checkScrollbar = function () {
this.scrollbarWidth = s.utils.measureScrollbar()
}, c.prototype.setScrollbar = function () {
var t = parseInt(this.$body.css("padding-right") || 0, 10);
this.scrollbarWidth && this.$body.css("padding-right", t + this.scrollbarWidth)
}, c.prototype.resetScrollbar = function () {
this.$body.css("padding-right", "")
}, s.plugin("pureview", c), s.ready(function (t) {
n("[data-am-pureview]", t).pureview()
}), t.exports = c
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = function (t, e) {
if (s.support.animation) {
this.options = n.extend({}, o.DEFAULTS, e), this.$element = n(t);
var i = function () {
s.utils.rAF.call(window, n.proxy(this.checkView, this))
}.bind(this);
this.$window = n(window).on("scroll.scrollspy.amui", i).on("resize.scrollspy.amui orientationchange.scrollspy.amui", s.utils.debounce(i, 50)), this.timer = this.inViewState = this.initInView = null, i()
}
};
o.DEFAULTS = {
animation: "fade",
className: {
inView: "am-scrollspy-inview",
init: "am-scrollspy-init"
},
repeat: !0,
delay: 0,
topOffset: 0,
leftOffset: 0
}, o.prototype.checkView = function () {
var t = this.$element,
e = this.options,
i = s.utils.isInView(t, e),
n = e.animation ? " am-animation-" + e.animation : "";
i && !this.inViewState && (this.timer && clearTimeout(this.timer), this.initInView || (t.addClass(e.className.init), this.offset = t.offset(), this.initInView = !0, t.trigger("init.scrollspy.amui")), this.timer = setTimeout(function () {
i && t.addClass(e.className.inView + n).width()
}, e.delay), this.inViewState = !0, t.trigger("inview.scrollspy.amui")), !i && this.inViewState && e.repeat && (t.removeClass(e.className.inView + n), this.inViewState = !1, t.trigger("outview.scrollspy.amui"))
}, o.prototype.check = function () {
s.utils.rAF.call(window, n.proxy(this.checkView, this))
}, s.plugin("scrollspy", o), s.ready(function (t) {
n("[data-am-scrollspy]", t).scrollspy()
}), t.exports = o
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2);
i(23);
var o = function (t, e) {
this.options = n.extend({}, o.DEFAULTS, e), this.$element = n(t), this.anchors = [], this.$links = this.$element.find('a[href^="#"]').each(function (t, e) {
this.anchors.push(n(e).attr("href"))
}.bind(this)), this.$targets = n(this.anchors.join(", "));
var i = function () {
s.utils.rAF.call(window, n.proxy(this.process, this))
}.bind(this);
this.$window = n(window).on("scroll.scrollspynav.amui", i).on("resize.scrollspynav.amui orientationchange.scrollspynav.amui", s.utils.debounce(i, 50)), i(), this.scrollProcess()
};
o.DEFAULTS = {
className: {
active: "am-active"
},
closest: !1,
smooth: !0,
offsetTop: 0
}, o.prototype.process = function () {
var t = this.$window.scrollTop(),
e = this.options,
i = [],
o = this.$links,
a = this.$targets;
if (a.each(function (t, n) {
s.utils.isInView(n, e) && i.push(n)
}), i.length) {
var r;
if (n.each(i, function (e, i) {
if (n(i).offset().top >= t) return r = n(i), !1
}), !r) return;
e.closest ? (o.closest(e.closest).removeClass(e.className.active), o.filter('a[href="#' + r.attr("id") + '"]').closest(e.closest).addClass(e.className.active)) : o.removeClass(e.className.active).filter('a[href="#' + r.attr("id") + '"]').addClass(e.className.active)
}
}, o.prototype.scrollProcess = function () {
var t = this.$links,
e = this.options;
e.smooth && n.fn.smoothScroll && t.on("click", function (t) {
t.preventDefault();
var i = n(this),
s = n(i.attr("href"));
if (s) {
var o = e.offsetTop && !isNaN(parseInt(e.offsetTop)) && parseInt(e.offsetTop) || 0;
n(window).smoothScroll({
position: s.offset().top - o
})
}
})
}, s.plugin("scrollspynav", o), s.ready(function (t) {
n("[data-am-scrollspynav]", t).scrollspynav()
}), t.exports = o
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = s.utils.rAF,
a = s.utils.cancelAF,
r = !1,
l = function (t, e) {
function i(t) {
return (t /= .5) < 1 ? .5 * Math.pow(t, 5) : .5 * (Math.pow(t - 2, 5) + 2)
}
function s() {
p.off("touchstart.smoothscroll.amui", w), r = !1
}
function c(t) {
r && (u || (u = t), h = Math.min(1, Math.max((t - u) / y, 0)), d = Math.round(f + g * i(h)), g > 0 && d > m && (d = m), g < 0 && d < m && (d = m), v != d && p.scrollTop(d), v = d, d !== m ? (a(b), b = o(c)) : (a(b), s()))
}
e = e || {};
var u, h, d, p = n(t),
m = parseInt(e.position) || l.DEFAULTS.position,
f = p.scrollTop(),
v = f,
g = m - f,
y = e.speed || Math.min(750, Math.min(1500, Math.abs(f - m))),
w = function () {
s()
};
if (!r && 0 !== g) {
p.on("touchstart.smoothscroll.amui", w), r = !0;
var b = o(c)
}
};
l.DEFAULTS = {
position: 0
}, n.fn.smoothScroll = function (t) {
return this.each(function () {
new l(this, t)
})
}, n(document).on("click.smoothScroll.amui.data-api", "[data-am-smooth-scroll]", function (t) {
t.preventDefault();
var e = s.utils.parseOptions(n(this).data("amSmoothScroll"));
n(window).smoothScroll(e)
}), t.exports = l
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2);
n.expr[":"].containsNC = function (t, e, i, n) {
return (t.textContent || t.innerText || "").toLowerCase().indexOf((i[3] || "").toLowerCase()) >= 0
};
var o = function (t, e) {
this.$element = n(t), this.options = n.extend({}, o.DEFAULTS, {
placeholder: t.getAttribute("placeholder") || o.DEFAULTS.placeholder
}, e), this.$originalOptions = this.$element.find("option"), this.multiple = t.multiple, this.$selector = null, this.initialized = !1, this.init()
};
o.DEFAULTS = {
btnWidth: null,
btnSize: null,
btnStyle: "default",
dropUp: 0,
maxHeight: null,
maxChecked: null,
placeholder: "\u70b9\u51fb\u9009\u62e9...",
selectedClass: "am-checked",
disabledClass: "am-disabled",
searchBox: !1,
tpl: '
\u8fd4\u56de
<% if (searchBox) { %>
<% } %>
<% for (var i = 0; i < options.length; i++) { %> <% var option = options[i] %> <% if (option.header) { %>
<%= option.text %>
<% } else { %>
<%= option.text %>
<% } %> <% } %>
',
listTpl: '<% for (var i = 0; i < options.length; i++) { %> <% var option = options[i] %> <% if (option.header) { %>
<%= option.text %>
<% } else { %>
<%= option.text %>
<% } %> <% } %>'
}, o.prototype.init = function () {
var t = this,
e = this.$element,
i = this.options;
e.hide();
var o = {
id: s.utils.generateGUID("am-selected"),
multiple: this.multiple,
options: [],
searchBox: i.searchBox,
dropUp: i.dropUp,
placeholder: i.placeholder
};
this.$selector = n(s.template(this.options.tpl, o)), this.$selector.css({
width: this.options.btnWidth
}), this.$list = this.$selector.find(".am-selected-list"), this.$searchField = this.$selector.find(".am-selected-search input"), this.$hint = this.$selector.find(".am-selected-hint");
var a = this.$selector.find(".am-selected-btn"),
r = [];
i.btnSize && r.push("am-btn-" + i.btnSize), i.btnStyle && r.push("am-btn-" + i.btnStyle), a.addClass(r.join(" ")), this.$selector.dropdown({
justify: a
}), e[0].disabled && this.disable(), i.maxHeight && this.$selector.find(".am-selected-list").css({
"max-height": i.maxHeight,
"overflow-y": "scroll"
});
var l = [],
c = e.attr("minchecked"),
u = e.attr("maxchecked") || i.maxChecked;
this.maxChecked = u || 1 / 0, e[0].required && l.push("\u5fc5\u9009"), (c || u) && (c && l.push("\u81f3\u5c11\u9009\u62e9 " + c + " \u9879"), u && l.push("\u81f3\u591a\u9009\u62e9 " + u + " \u9879")), this.$hint.text(l.join("\uff0c")), this.renderOptions(), this.$element.after(this.$selector), this.dropdown = this.$selector.data("amui.dropdown"), this.$status = this.$selector.find(".am-selected-status"), setTimeout(function () {
t.syncData(), t.initialized = !0
}, 0), this.bindEvents()
}, o.prototype.renderOptions = function () {
function t(t, e, s) {
if ("" === e.value) return !0;
var o = "";
e.disabled && (o += i.disabledClass), !e.disabled && e.selected && (o += i.selectedClass), n.push({
group: s,
index: t,
classNames: o,
text: e.text,
value: e.value
})
}
var e = this.$element,
i = this.options,
n = [],
o = e.find("optgroup");
this.$originalOptions = this.$element.find("option"), this.multiple || null !== e.val() || this.$originalOptions.length && (this.$originalOptions.get(0).selected = !0), o.length ? o.each(function (e) {
n.push({
header: !0,
group: e + 1,
text: this.label
}), o.eq(e).find("option").each(function (i, n) {
t(i, n, e)
})
}) : this.$originalOptions.each(function (e, i) {
t(e, i, null)
}), this.$list.html(s.template(i.listTpl, {
options: n
})), this.$shadowOptions = this.$list.find("> li").not(".am-selected-list-header")
}, o.prototype.setChecked = function (t) {
var e = this.options,
i = n(t),
s = i.hasClass(e.selectedClass);
if (this.multiple) {
var o = this.$list.find("." + e.selectedClass).length;
if (!s && this.maxChecked <= o) return this.$element.trigger("checkedOverflow.selected.amui", {
selected: this
}), !1
} else {
if (this.dropdown.close(), s) return !1;
this.$shadowOptions.not(i).removeClass(e.selectedClass)
}
i.toggleClass(e.selectedClass), this.syncData(t)
}, o.prototype.syncData = function (t) {
var e = this,
i = this.options,
s = [],
o = n([]);
if (this.$shadowOptions.filter("." + i.selectedClass).each(function () {
var i = n(this);
s.push(i.find(".am-selected-text").text()), t || (o = o.add(e.$originalOptions.filter('[value="' + i.data("value") + '"]').prop("selected", !0)))
}), t) {
var a = n(t);
this.$originalOptions.filter('[value="' + a.data("value") + '"]').prop("selected", a.hasClass(i.selectedClass))
} else this.$originalOptions.not(o).prop("selected", !1);
this.$element.val() || (s = [i.placeholder]), this.$status.text(s.join(", ")), this.initialized && this.$element.trigger("change")
}, o.prototype.bindEvents = function () {
var t = this,
e = "am-selected-list-header",
i = s.utils.debounce(function (i) {
t.$shadowOptions.not("." + e).hide().filter(':containsNC("' + i.target.value + '")').show()
}, 100);
this.$list.on("click", "> li", function (i) {
var s = n(this);
!s.hasClass(t.options.disabledClass) && !s.hasClass(e) && t.setChecked(this)
}), this.$searchField.on("keyup.selected.amui", i), this.$selector.on("closed.dropdown.amui", function () {
t.$searchField.val(""), t.$shadowOptions.css({
display: ""
})
}), this.$element.on("validated.field.validator.amui", function (e) {
if (e.validity) {
var i = e.validity.valid,
n = "am-invalid";
t.$selector[(i ? "remove" : "add") + "Class"](n)
}
}), s.support.mutationobserver && (this.observer = new s.support.mutationobserver(function () {
t.$element.trigger("changed.selected.amui")
}), this.observer.observe(this.$element[0], {
childList: !0,
subtree: !0,
characterData: !0
})), this.$element.on("changed.selected.amui", function () {
t.renderOptions(), t.syncData()
})
}, o.prototype.select = function (t) {
var e;
e = "number" == typeof t ? this.$list.find("> li").not(".am-selected-list-header").eq(t) : "string" == typeof t ? this.$list.find(t) : n(t), e.trigger("click")
}, o.prototype.enable = function () {
this.$element.prop("disable", !1), this.$selector.dropdown("enable")
}, o.prototype.disable = function () {
this.$element.prop("disable", !0), this.$selector.dropdown("disable")
}, o.prototype.destroy = function () {
this.$element.removeData("amui.selected").show(), this.$selector.remove()
}, s.plugin("selected", o), s.ready(function (t) {
n("[data-am-selected]", t).selected()
}), t.exports = o
}, function (t, e, i) {
"use strict";
i(15);
var n = i(1),
s = i(2),
o = i(26),
a = document,
r = n(a),
l = function (t) {
this.options = n.extend({}, l.DEFAULTS, t || {}), this.$element = null, this.$wechatQr = null, this.pics = null, this.inited = !1, this.active = !1
};
l.DEFAULTS = {
sns: ["weibo", "qq", "qzone", "tqq", "wechat", "renren"],
title: "\u5206\u4eab\u5230",
cancel: "\u53d6\u6d88",
closeOnShare: !0,
id: s.utils.generateGUID("am-share"),
desc: "Hi\uff0c\u5b64\u591c\u89c2\u5929\u8c61\uff0c\u53d1\u73b0\u4e00\u4e2a\u4e0d\u9519\u7684\u897f\u897f\uff0c\u5206\u4eab\u4e00\u4e0b\u4e0b ;-)",
via: "Amaze UI",
tpl: '
');
e.attr("id", t);
var i = new o({
render: "canvas",
correctLevel: 0,
text: a.location.href,
width: 180,
height: 180,
background: "#fff",
foreground: "#000"
});
e.find(".am-share-wx-qr").html(i), e.appendTo(n("body")), this.$wechatQr = n("#" + t)
}
this.$wechatQr.modal("open")
};
var c = new l;
r.on("click.share.amui.data-api", '[data-am-toggle="share"]', function (t) {
t.preventDefault(), c.toggle()
}), t.exports = s.share = c
}, function (t, e, i) {
function n(t) {
return t < 128 ? [t] : t < 2048 ? (c0 = 192 + (t >> 6), c1 = 128 + (63 & t), [c0, c1]) : (c0 = 224 + (t >> 12), c1 = 128 + (t >> 6 & 63), c2 = 128 + (63 & t), [c0, c1, c2])
}
function s(t) {
for (var e = [], i = 0; i < t.length; i++)
for (var s = t.charCodeAt(i), o = n(s), a = 0; a < o.length; a++) e.push(o[a]);
return e
}
function o(t, e) {
this.typeNumber = -1, this.errorCorrectLevel = e, this.modules = null, this.moduleCount = 0, this.dataCache = null, this.rsBlocks = null, this.totalDataCount = -1, this.data = t, this.utf8bytes = s(t), this.make()
}
function a(t, e) {
if (void 0 == t.length) throw new Error(t.length + "/" + e);
for (var i = 0; i < t.length && 0 == t[i];) i++;
this.num = new Array(t.length - i + e);
for (var n = 0; n < t.length - i; n++) this.num[n] = t[n + i]
}
function r() {
this.buffer = new Array, this.length = 0
}
function n(t) {
return t < 128 ? [t] : t < 2048 ? (c0 = 192 + (t >> 6), c1 = 128 + (63 & t), [c0, c1]) : (c0 = 224 + (t >> 12), c1 = 128 + (t >> 6 & 63), c2 = 128 + (63 & t), [c0, c1, c2])
}
function s(t) {
for (var e = [], i = 0; i < t.length; i++)
for (var s = t.charCodeAt(i), o = n(s), a = 0; a < o.length; a++) e.push(o[a]);
return e
}
function o(t, e) {
this.typeNumber = -1, this.errorCorrectLevel = e, this.modules = null, this.moduleCount = 0, this.dataCache = null, this.rsBlocks = null, this.totalDataCount = -1, this.data = t, this.utf8bytes = s(t), this.make()
}
function a(t, e) {
if (void 0 == t.length) throw new Error(t.length + "/" + e);
for (var i = 0; i < t.length && 0 == t[i];) i++;
this.num = new Array(t.length - i + e);
for (var n = 0; n < t.length - i; n++) this.num[n] = t[n + i]
}
function r() {
this.buffer = new Array, this.length = 0
}
var c = i(1),
u = i(2),
h = [],
d = function (t) {
"string" == typeof t && (t = {
text: t
}), this.options = c.extend({}, {
text: "",
render: "",
width: 256,
height: 256,
correctLevel: 3,
background: "#ffffff",
foreground: "#000000"
}, t);
for (var e = null, i = 0, n = h.length; i < n; i++)
if (h[i].text == this.options.text && h[i].text.correctLevel == this.options.correctLevel) {
e = h[i].obj;
break
} if (i == n && (e = new o(this.options.text, this.options.correctLevel), h.push({
text: this.options.text,
correctLevel: this.options.correctLevel,
obj: e
})), this.options.render) switch (this.options.render) {
case "canvas":
return this.createCanvas(e);
case "table":
return this.createTable(e);
case "svg":
return this.createSVG(e);
default:
return this.createDefault(e)
}
return this.createDefault(e)
};
d.prototype.createDefault = function (t) {
var e = document.createElement("canvas");
return e.getContext ? this.createCanvas(t) : document.createElementNS && document.createElementNS(SVG_NS, "svg").createSVGRect ? this.createSVG(t) : this.createTable(t)
}, d.prototype.createCanvas = function (t) {
var e = document.createElement("canvas");
e.width = this.options.width, e.height = this.options.height;
for (var i = e.getContext("2d"), n = (this.options.width / t.getModuleCount()).toPrecision(4), s = this.options.height / t.getModuleCount().toPrecision(4), o = 0; o < t.getModuleCount(); o++)
for (var a = 0; a < t.getModuleCount(); a++) {
i.fillStyle = t.modules[o][a] ? this.options.foreground : this.options.background;
var r = Math.ceil((a + 1) * n) - Math.floor(a * n),
l = Math.ceil((o + 1) * n) - Math.floor(o * n);
i.fillRect(Math.round(a * n), Math.round(o * s), r, l)
}
return e
}, d.prototype.createTable = function (t) {
var e = [];
e.push('
');
var i = -1,
n = -1,
s = -1,
o = -1;
i = s = Math.floor(this.options.width / t.getModuleCount()), n = o = Math.floor(this.options.height / t.getModuleCount()), s <= 0 && (i = t.getModuleCount() < 80 ? 2 : 1), o <= 0 && (n = t.getModuleCount() < 80 ? 2 : 1), foreTd = '
', backTd = '
', l = t.getModuleCount();
for (var a = 0; a < l; a++) {
e.push('
');
for (var r = 0; r < l; r++) e.push(t.modules[a][r] ? foreTd : backTd);
e.push("
")
}
e.push("
");
var c = document.createElement("span");
return c.innerHTML = e.join(""), c.firstChild
}, d.prototype.createSVG = function (t) {
for (var e, i, n, s, o = t.getModuleCount(), a = this.options.height / this.options.width, r = '", c(r)[0]
}, o.prototype = {
constructor: o,
getModuleCount: function () {
return this.moduleCount
},
make: function () {
this.getRightType(), this.dataCache = this.createData(), this.createQrcode()
},
makeImpl: function (t) {
this.moduleCount = 4 * this.typeNumber + 17, this.modules = new Array(this.moduleCount);
for (var e = 0; e < this.moduleCount; e++) this.modules[e] = new Array(this.moduleCount);
this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this.setupTimingPattern(), this.setupTypeInfo(!0, t), this.typeNumber >= 7 && this.setupTypeNumber(!0), this.mapData(this.dataCache, t)
},
setupPositionProbePattern: function (t, e) {
for (var i = -1; i <= 7; i++)
if (!(t + i <= -1 || this.moduleCount <= t + i))
for (var n = -1; n <= 7; n++) e + n <= -1 || this.moduleCount <= e + n || (0 <= i && i <= 6 && (0 == n || 6 == n) || 0 <= n && n <= 6 && (0 == i || 6 == i) || 2 <= i && i <= 4 && 2 <= n && n <= 4 ? this.modules[t + i][e + n] = !0 : this.modules[t + i][e + n] = !1)
},
createQrcode: function () {
for (var t = 0, e = 0, i = null, n = 0; n < 8; n++) {
this.makeImpl(n);
var s = f.getLostPoint(this);
(0 == n || t > s) && (t = s, e = n, i = this.modules)
}
this.modules = i, this.setupTypeInfo(!1, e), this.typeNumber >= 7 && this.setupTypeNumber(!1)
},
setupTimingPattern: function () {
for (var t = 8; t < this.moduleCount - 8; t++) null == this.modules[t][6] && (this.modules[t][6] = t % 2 == 0, null == this.modules[6][t] && (this.modules[6][t] = t % 2 == 0))
},
setupPositionAdjustPattern: function () {
for (var t = f.getPatternPosition(this.typeNumber), e = 0; e < t.length; e++)
for (var i = 0; i < t.length; i++) {
var n = t[e],
s = t[i];
if (null == this.modules[n][s])
for (var o = -2; o <= 2; o++)
for (var a = -2; a <= 2; a++) o == -2 || 2 == o || a == -2 || 2 == a || 0 == o && 0 == a ? this.modules[n + o][s + a] = !0 : this.modules[n + o][s + a] = !1
}
},
setupTypeNumber: function (t) {
for (var e = f.getBCHTypeNumber(this.typeNumber), i = 0; i < 18; i++) {
var n = !t && 1 == (e >> i & 1);
this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = n, this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = n
}
},
setupTypeInfo: function (t, e) {
for (var i = p[this.errorCorrectLevel] << 3 | e, n = f.getBCHTypeInfo(i), s = 0; s < 15; s++) {
var o = !t && 1 == (n >> s & 1);
s < 6 ? this.modules[s][8] = o : s < 8 ? this.modules[s + 1][8] = o : this.modules[this.moduleCount - 15 + s][8] = o;
var o = !t && 1 == (n >> s & 1);
s < 8 ? this.modules[8][this.moduleCount - s - 1] = o : s < 9 ? this.modules[8][15 - s - 1 + 1] = o : this.modules[8][15 - s - 1] = o
}
this.modules[this.moduleCount - 8][8] = !t
},
createData: function () {
var t = new r,
e = this.typeNumber > 9 ? 16 : 8;
t.put(4, 4), t.put(this.utf8bytes.length, e);
for (var i = 0, n = this.utf8bytes.length; i < n; i++) t.put(this.utf8bytes[i], 8);
for (t.length + 4 <= 8 * this.totalDataCount && t.put(0, 4); t.length % 8 != 0;) t.putBit(!1);
for (;;) {
if (t.length >= 8 * this.totalDataCount) break;
if (t.put(o.PAD0, 8), t.length >= 8 * this.totalDataCount) break;
t.put(o.PAD1, 8)
}
return this.createBytes(t)
},
createBytes: function (t) {
for (var e = 0, i = 0, n = 0, s = this.rsBlock.length / 3, o = new Array, r = 0; r < s; r++)
for (var l = this.rsBlock[3 * r + 0], c = this.rsBlock[3 * r + 1], u = this.rsBlock[3 * r + 2], h = 0; h < l; h++) o.push([u, c]);
for (var d = new Array(o.length), p = new Array(o.length), m = 0; m < o.length; m++) {
var v = o[m][0],
g = o[m][1] - v;
i = Math.max(i, v), n = Math.max(n, g), d[m] = new Array(v);
for (var r = 0; r < d[m].length; r++) d[m][r] = 255 & t.buffer[r + e];
e += v;
var y = f.getErrorCorrectPolynomial(g),
w = new a(d[m], y.getLength() - 1),
b = w.mod(y);
p[m] = new Array(y.getLength() - 1);
for (var r = 0; r < p[m].length; r++) {
var T = r + b.getLength() - p[m].length;
p[m][r] = T >= 0 ? b.get(T) : 0
}
}
for (var x = new Array(this.totalDataCount), C = 0, r = 0; r < i; r++)
for (var m = 0; m < o.length; m++) r < d[m].length && (x[C++] = d[m][r]);
for (var r = 0; r < n; r++)
for (var m = 0; m < o.length; m++) r < p[m].length && (x[C++] = p[m][r]);
return x
},
mapData: function (t, e) {
for (var i = -1, n = this.moduleCount - 1, s = 7, o = 0, a = this.moduleCount - 1; a > 0; a -= 2)
for (6 == a && a--;;) {
for (var r = 0; r < 2; r++)
if (null == this.modules[n][a - r]) {
var l = !1;
o < t.length && (l = 1 == (t[o] >>> s & 1));
var c = f.getMask(e, n, a - r);
c && (l = !l), this.modules[n][a - r] = l, s--, s == -1 && (o++, s = 7)
} if (n += i, n < 0 || this.moduleCount <= n) {
n -= i, i = -i;
break
}
}
}
}, o.PAD0 = 236, o.PAD1 = 17;
for (var p = [1, 0, 3, 2], m = {
PATTERN000: 0,
PATTERN001: 1,
PATTERN010: 2,
PATTERN011: 3,
PATTERN100: 4,
PATTERN101: 5,
PATTERN110: 6,
PATTERN111: 7
}, f = {
PATTERN_POSITION_TABLE: [
[],
[6, 18],
[6, 22],
[6, 26],
[6, 30],
[6, 34],
[6, 22, 38],
[6, 24, 42],
[6, 26, 46],
[6, 28, 50],
[6, 30, 54],
[6, 32, 58],
[6, 34, 62],
[6, 26, 46, 66],
[6, 26, 48, 70],
[6, 26, 50, 74],
[6, 30, 54, 78],
[6, 30, 56, 82],
[6, 30, 58, 86],
[6, 34, 62, 90],
[6, 28, 50, 72, 94],
[6, 26, 50, 74, 98],
[6, 30, 54, 78, 102],
[6, 28, 54, 80, 106],
[6, 32, 58, 84, 110],
[6, 30, 58, 86, 114],
[6, 34, 62, 90, 118],
[6, 26, 50, 74, 98, 122],
[6, 30, 54, 78, 102, 126],
[6, 26, 52, 78, 104, 130],
[6, 30, 56, 82, 108, 134],
[6, 34, 60, 86, 112, 138],
[6, 30, 58, 86, 114, 142],
[6, 34, 62, 90, 118, 146],
[6, 30, 54, 78, 102, 126, 150],
[6, 24, 50, 76, 102, 128, 154],
[6, 28, 54, 80, 106, 132, 158],
[6, 32, 58, 84, 110, 136, 162],
[6, 26, 54, 82, 110, 138, 166],
[6, 30, 58, 86, 114, 142, 170]
],
G15: 1335,
G18: 7973,
G15_MASK: 21522,
getBCHTypeInfo: function (t) {
for (var e = t << 10; f.getBCHDigit(e) - f.getBCHDigit(f.G15) >= 0;) e ^= f.G15 << f.getBCHDigit(e) - f.getBCHDigit(f.G15);
return (t << 10 | e) ^ f.G15_MASK
},
getBCHTypeNumber: function (t) {
for (var e = t << 12; f.getBCHDigit(e) - f.getBCHDigit(f.G18) >= 0;) e ^= f.G18 << f.getBCHDigit(e) - f.getBCHDigit(f.G18);
return t << 12 | e
},
getBCHDigit: function (t) {
for (var e = 0; 0 != t;) e++, t >>>= 1;
return e
},
getPatternPosition: function (t) {
return f.PATTERN_POSITION_TABLE[t - 1]
},
getMask: function (t, e, i) {
switch (t) {
case m.PATTERN000:
return (e + i) % 2 == 0;
case m.PATTERN001:
return e % 2 == 0;
case m.PATTERN010:
return i % 3 == 0;
case m.PATTERN011:
return (e + i) % 3 == 0;
case m.PATTERN100:
return (Math.floor(e / 2) + Math.floor(i / 3)) % 2 == 0;
case m.PATTERN101:
return e * i % 2 + e * i % 3 == 0;
case m.PATTERN110:
return (e * i % 2 + e * i % 3) % 2 == 0;
case m.PATTERN111:
return (e * i % 3 + (e + i) % 2) % 2 == 0;
default:
throw new Error("bad maskPattern:" + t)
}
},
getErrorCorrectPolynomial: function (t) {
for (var e = new a([1], 0), i = 0; i < t; i++) e = e.multiply(new a([1, v.gexp(i)], 0));
return e
},
getLostPoint: function (t) {
for (var e = t.getModuleCount(), i = 0, n = 0, s = 0; s < e; s++)
for (var o = 0, a = t.modules[s][0], r = 0; r < e; r++) {
var l = t.modules[s][r];
if (r < e - 6 && l && !t.modules[s][r + 1] && t.modules[s][r + 2] && t.modules[s][r + 3] && t.modules[s][r + 4] && !t.modules[s][r + 5] && t.modules[s][r + 6] && (r < e - 10 ? t.modules[s][r + 7] && t.modules[s][r + 8] && t.modules[s][r + 9] && t.modules[s][r + 10] && (i += 40) : r > 3 && t.modules[s][r - 1] && t.modules[s][r - 2] && t.modules[s][r - 3] && t.modules[s][r - 4] && (i += 40)), s < e - 1 && r < e - 1) {
var c = 0;
l && c++, t.modules[s + 1][r] && c++, t.modules[s][r + 1] && c++, t.modules[s + 1][r + 1] && c++, 0 != c && 4 != c || (i += 3)
}
a ^ l ? o++ : (a = l, o >= 5 && (i += 3 + o - 5), o = 1), l && n++
}
for (var r = 0; r < e; r++)
for (var o = 0, a = t.modules[0][r], s = 0; s < e; s++) {
var l = t.modules[s][r];
s < e - 6 && l && !t.modules[s + 1][r] && t.modules[s + 2][r] && t.modules[s + 3][r] && t.modules[s + 4][r] && !t.modules[s + 5][r] && t.modules[s + 6][r] && (s < e - 10 ? t.modules[s + 7][r] && t.modules[s + 8][r] && t.modules[s + 9][r] && t.modules[s + 10][r] && (i += 40) : s > 3 && t.modules[s - 1][r] && t.modules[s - 2][r] && t.modules[s - 3][r] && t.modules[s - 4][r] && (i += 40)),
a ^ l ? o++ : (a = l, o >= 5 && (i += 3 + o - 5), o = 1)
}
var u = Math.abs(100 * n / e / e - 50) / 5;
return i += 10 * u
}
}, v = {
glog: function (t) {
if (t < 1) throw new Error("glog(" + t + ")");
return v.LOG_TABLE[t]
},
gexp: function (t) {
for (; t < 0;) t += 255;
for (; t >= 256;) t -= 255;
return v.EXP_TABLE[t]
},
EXP_TABLE: new Array(256),
LOG_TABLE: new Array(256)
}, g = 0; g < 8; g++) v.EXP_TABLE[g] = 1 << g;
for (var g = 8; g < 256; g++) v.EXP_TABLE[g] = v.EXP_TABLE[g - 4] ^ v.EXP_TABLE[g - 5] ^ v.EXP_TABLE[g - 6] ^ v.EXP_TABLE[g - 8];
for (var g = 0; g < 255; g++) v.LOG_TABLE[v.EXP_TABLE[g]] = g;
a.prototype = {
get: function (t) {
return this.num[t]
},
getLength: function () {
return this.num.length
},
multiply: function (t) {
for (var e = new Array(this.getLength() + t.getLength() - 1), i = 0; i < this.getLength(); i++)
for (var n = 0; n < t.getLength(); n++) e[i + n] ^= v.gexp(v.glog(this.get(i)) + v.glog(t.get(n)));
return new a(e, 0)
},
mod: function (t) {
var e = this.getLength(),
i = t.getLength();
if (e - i < 0) return this;
for (var n = new Array(e), s = 0; s < e; s++) n[s] = this.get(s);
for (; n.length >= i;) {
for (var o = v.glog(n[0]) - v.glog(t.get(0)), s = 0; s < t.getLength(); s++) n[s] ^= v.gexp(v.glog(t.get(s)) + o);
for (; 0 == n[0];) n.shift()
}
return new a(n, 0)
}
};
var y = [
[1, 26, 19],
[1, 26, 16],
[1, 26, 13],
[1, 26, 9],
[1, 44, 34],
[1, 44, 28],
[1, 44, 22],
[1, 44, 16],
[1, 70, 55],
[1, 70, 44],
[2, 35, 17],
[2, 35, 13],
[1, 100, 80],
[2, 50, 32],
[2, 50, 24],
[4, 25, 9],
[1, 134, 108],
[2, 67, 43],
[2, 33, 15, 2, 34, 16],
[2, 33, 11, 2, 34, 12],
[2, 86, 68],
[4, 43, 27],
[4, 43, 19],
[4, 43, 15],
[2, 98, 78],
[4, 49, 31],
[2, 32, 14, 4, 33, 15],
[4, 39, 13, 1, 40, 14],
[2, 121, 97],
[2, 60, 38, 2, 61, 39],
[4, 40, 18, 2, 41, 19],
[4, 40, 14, 2, 41, 15],
[2, 146, 116],
[3, 58, 36, 2, 59, 37],
[4, 36, 16, 4, 37, 17],
[4, 36, 12, 4, 37, 13],
[2, 86, 68, 2, 87, 69],
[4, 69, 43, 1, 70, 44],
[6, 43, 19, 2, 44, 20],
[6, 43, 15, 2, 44, 16],
[4, 101, 81],
[1, 80, 50, 4, 81, 51],
[4, 50, 22, 4, 51, 23],
[3, 36, 12, 8, 37, 13],
[2, 116, 92, 2, 117, 93],
[6, 58, 36, 2, 59, 37],
[4, 46, 20, 6, 47, 21],
[7, 42, 14, 4, 43, 15],
[4, 133, 107],
[8, 59, 37, 1, 60, 38],
[8, 44, 20, 4, 45, 21],
[12, 33, 11, 4, 34, 12],
[3, 145, 115, 1, 146, 116],
[4, 64, 40, 5, 65, 41],
[11, 36, 16, 5, 37, 17],
[11, 36, 12, 5, 37, 13],
[5, 109, 87, 1, 110, 88],
[5, 65, 41, 5, 66, 42],
[5, 54, 24, 7, 55, 25],
[11, 36, 12],
[5, 122, 98, 1, 123, 99],
[7, 73, 45, 3, 74, 46],
[15, 43, 19, 2, 44, 20],
[3, 45, 15, 13, 46, 16],
[1, 135, 107, 5, 136, 108],
[10, 74, 46, 1, 75, 47],
[1, 50, 22, 15, 51, 23],
[2, 42, 14, 17, 43, 15],
[5, 150, 120, 1, 151, 121],
[9, 69, 43, 4, 70, 44],
[17, 50, 22, 1, 51, 23],
[2, 42, 14, 19, 43, 15],
[3, 141, 113, 4, 142, 114],
[3, 70, 44, 11, 71, 45],
[17, 47, 21, 4, 48, 22],
[9, 39, 13, 16, 40, 14],
[3, 135, 107, 5, 136, 108],
[3, 67, 41, 13, 68, 42],
[15, 54, 24, 5, 55, 25],
[15, 43, 15, 10, 44, 16],
[4, 144, 116, 4, 145, 117],
[17, 68, 42],
[17, 50, 22, 6, 51, 23],
[19, 46, 16, 6, 47, 17],
[2, 139, 111, 7, 140, 112],
[17, 74, 46],
[7, 54, 24, 16, 55, 25],
[34, 37, 13],
[4, 151, 121, 5, 152, 122],
[4, 75, 47, 14, 76, 48],
[11, 54, 24, 14, 55, 25],
[16, 45, 15, 14, 46, 16],
[6, 147, 117, 4, 148, 118],
[6, 73, 45, 14, 74, 46],
[11, 54, 24, 16, 55, 25],
[30, 46, 16, 2, 47, 17],
[8, 132, 106, 4, 133, 107],
[8, 75, 47, 13, 76, 48],
[7, 54, 24, 22, 55, 25],
[22, 45, 15, 13, 46, 16],
[10, 142, 114, 2, 143, 115],
[19, 74, 46, 4, 75, 47],
[28, 50, 22, 6, 51, 23],
[33, 46, 16, 4, 47, 17],
[8, 152, 122, 4, 153, 123],
[22, 73, 45, 3, 74, 46],
[8, 53, 23, 26, 54, 24],
[12, 45, 15, 28, 46, 16],
[3, 147, 117, 10, 148, 118],
[3, 73, 45, 23, 74, 46],
[4, 54, 24, 31, 55, 25],
[11, 45, 15, 31, 46, 16],
[7, 146, 116, 7, 147, 117],
[21, 73, 45, 7, 74, 46],
[1, 53, 23, 37, 54, 24],
[19, 45, 15, 26, 46, 16],
[5, 145, 115, 10, 146, 116],
[19, 75, 47, 10, 76, 48],
[15, 54, 24, 25, 55, 25],
[23, 45, 15, 25, 46, 16],
[13, 145, 115, 3, 146, 116],
[2, 74, 46, 29, 75, 47],
[42, 54, 24, 1, 55, 25],
[23, 45, 15, 28, 46, 16],
[17, 145, 115],
[10, 74, 46, 23, 75, 47],
[10, 54, 24, 35, 55, 25],
[19, 45, 15, 35, 46, 16],
[17, 145, 115, 1, 146, 116],
[14, 74, 46, 21, 75, 47],
[29, 54, 24, 19, 55, 25],
[11, 45, 15, 46, 46, 16],
[13, 145, 115, 6, 146, 116],
[14, 74, 46, 23, 75, 47],
[44, 54, 24, 7, 55, 25],
[59, 46, 16, 1, 47, 17],
[12, 151, 121, 7, 152, 122],
[12, 75, 47, 26, 76, 48],
[39, 54, 24, 14, 55, 25],
[22, 45, 15, 41, 46, 16],
[6, 151, 121, 14, 152, 122],
[6, 75, 47, 34, 76, 48],
[46, 54, 24, 10, 55, 25],
[2, 45, 15, 64, 46, 16],
[17, 152, 122, 4, 153, 123],
[29, 74, 46, 14, 75, 47],
[49, 54, 24, 10, 55, 25],
[24, 45, 15, 46, 46, 16],
[4, 152, 122, 18, 153, 123],
[13, 74, 46, 32, 75, 47],
[48, 54, 24, 14, 55, 25],
[42, 45, 15, 32, 46, 16],
[20, 147, 117, 4, 148, 118],
[40, 75, 47, 7, 76, 48],
[43, 54, 24, 22, 55, 25],
[10, 45, 15, 67, 46, 16],
[19, 148, 118, 6, 149, 119],
[18, 75, 47, 31, 76, 48],
[34, 54, 24, 34, 55, 25],
[20, 45, 15, 61, 46, 16]
];
o.prototype.getRightType = function () {
for (var t = 1; t < 41; t++) {
var e = y[4 * (t - 1) + this.errorCorrectLevel];
if (void 0 == e) throw new Error("bad rs block @ typeNumber:" + t + "/errorCorrectLevel:" + this.errorCorrectLevel);
for (var i = e.length / 3, n = 0, s = 0; s < i; s++) {
var o = e[3 * s + 0],
a = e[3 * s + 2];
n += a * o
}
var r = t > 9 ? 2 : 1;
if (this.utf8bytes.length + r < n || 40 == t) {
this.typeNumber = t, this.rsBlock = e, this.totalDataCount = n;
break
}
}
}, r.prototype = {
get: function (t) {
var e = Math.floor(t / 8);
return this.buffer[e] >>> 7 - t % 8 & 1
},
put: function (t, e) {
for (var i = 0; i < e; i++) this.putBit(t >>> e - i - 1 & 1)
},
putBit: function (t) {
var e = Math.floor(this.length / 8);
this.buffer.length <= e && this.buffer.push(0), t && (this.buffer[e] |= 128 >>> this.length % 8), this.length++
}
}, o.prototype = {
constructor: o,
getModuleCount: function () {
return this.moduleCount
},
make: function () {
this.getRightType(), this.dataCache = this.createData(), this.createQrcode()
},
makeImpl: function (t) {
this.moduleCount = 4 * this.typeNumber + 17, this.modules = new Array(this.moduleCount);
for (var e = 0; e < this.moduleCount; e++) this.modules[e] = new Array(this.moduleCount);
this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this.setupTimingPattern(), this.setupTypeInfo(!0, t), this.typeNumber >= 7 && this.setupTypeNumber(!0), this.mapData(this.dataCache, t)
},
setupPositionProbePattern: function (t, e) {
for (var i = -1; i <= 7; i++)
if (!(t + i <= -1 || this.moduleCount <= t + i))
for (var n = -1; n <= 7; n++) e + n <= -1 || this.moduleCount <= e + n || (0 <= i && i <= 6 && (0 == n || 6 == n) || 0 <= n && n <= 6 && (0 == i || 6 == i) || 2 <= i && i <= 4 && 2 <= n && n <= 4 ? this.modules[t + i][e + n] = !0 : this.modules[t + i][e + n] = !1)
},
createQrcode: function () {
for (var t = 0, e = 0, i = null, n = 0; n < 8; n++) {
this.makeImpl(n);
var s = f.getLostPoint(this);
(0 == n || t > s) && (t = s, e = n, i = this.modules)
}
this.modules = i, this.setupTypeInfo(!1, e), this.typeNumber >= 7 && this.setupTypeNumber(!1)
},
setupTimingPattern: function () {
for (var t = 8; t < this.moduleCount - 8; t++) null == this.modules[t][6] && (this.modules[t][6] = t % 2 == 0, null == this.modules[6][t] && (this.modules[6][t] = t % 2 == 0))
},
setupPositionAdjustPattern: function () {
for (var t = f.getPatternPosition(this.typeNumber), e = 0; e < t.length; e++)
for (var i = 0; i < t.length; i++) {
var n = t[e],
s = t[i];
if (null == this.modules[n][s])
for (var o = -2; o <= 2; o++)
for (var a = -2; a <= 2; a++) o == -2 || 2 == o || a == -2 || 2 == a || 0 == o && 0 == a ? this.modules[n + o][s + a] = !0 : this.modules[n + o][s + a] = !1
}
},
setupTypeNumber: function (t) {
for (var e = f.getBCHTypeNumber(this.typeNumber), i = 0; i < 18; i++) {
var n = !t && 1 == (e >> i & 1);
this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = n, this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = n
}
},
setupTypeInfo: function (t, e) {
for (var i = p[this.errorCorrectLevel] << 3 | e, n = f.getBCHTypeInfo(i), s = 0; s < 15; s++) {
var o = !t && 1 == (n >> s & 1);
s < 6 ? this.modules[s][8] = o : s < 8 ? this.modules[s + 1][8] = o : this.modules[this.moduleCount - 15 + s][8] = o;
var o = !t && 1 == (n >> s & 1);
s < 8 ? this.modules[8][this.moduleCount - s - 1] = o : s < 9 ? this.modules[8][15 - s - 1 + 1] = o : this.modules[8][15 - s - 1] = o
}
this.modules[this.moduleCount - 8][8] = !t
},
createData: function () {
var t = new r,
e = this.typeNumber > 9 ? 16 : 8;
t.put(4, 4), t.put(this.utf8bytes.length, e);
for (var i = 0, n = this.utf8bytes.length; i < n; i++) t.put(this.utf8bytes[i], 8);
for (t.length + 4 <= 8 * this.totalDataCount && t.put(0, 4); t.length % 8 != 0;) t.putBit(!1);
for (;;) {
if (t.length >= 8 * this.totalDataCount) break;
if (t.put(o.PAD0, 8), t.length >= 8 * this.totalDataCount) break;
t.put(o.PAD1, 8)
}
return this.createBytes(t)
},
createBytes: function (t) {
for (var e = 0, i = 0, n = 0, s = this.rsBlock.length / 3, o = new Array, r = 0; r < s; r++)
for (var l = this.rsBlock[3 * r + 0], c = this.rsBlock[3 * r + 1], u = this.rsBlock[3 * r + 2], h = 0; h < l; h++) o.push([u, c]);
for (var d = new Array(o.length), p = new Array(o.length), m = 0; m < o.length; m++) {
var v = o[m][0],
g = o[m][1] - v;
i = Math.max(i, v), n = Math.max(n, g), d[m] = new Array(v);
for (var r = 0; r < d[m].length; r++) d[m][r] = 255 & t.buffer[r + e];
e += v;
var y = f.getErrorCorrectPolynomial(g),
w = new a(d[m], y.getLength() - 1),
b = w.mod(y);
p[m] = new Array(y.getLength() - 1);
for (var r = 0; r < p[m].length; r++) {
var T = r + b.getLength() - p[m].length;
p[m][r] = T >= 0 ? b.get(T) : 0
}
}
for (var x = new Array(this.totalDataCount), C = 0, r = 0; r < i; r++)
for (var m = 0; m < o.length; m++) r < d[m].length && (x[C++] = d[m][r]);
for (var r = 0; r < n; r++)
for (var m = 0; m < o.length; m++) r < p[m].length && (x[C++] = p[m][r]);
return x
},
mapData: function (t, e) {
for (var i = -1, n = this.moduleCount - 1, s = 7, o = 0, a = this.moduleCount - 1; a > 0; a -= 2)
for (6 == a && a--;;) {
for (var r = 0; r < 2; r++)
if (null == this.modules[n][a - r]) {
var l = !1;
o < t.length && (l = 1 == (t[o] >>> s & 1));
var c = f.getMask(e, n, a - r);
c && (l = !l), this.modules[n][a - r] = l, s--, s == -1 && (o++, s = 7)
} if (n += i, n < 0 || this.moduleCount <= n) {
n -= i, i = -i;
break
}
}
}
}, o.PAD0 = 236, o.PAD1 = 17;
for (var p = [1, 0, 3, 2], m = {
PATTERN000: 0,
PATTERN001: 1,
PATTERN010: 2,
PATTERN011: 3,
PATTERN100: 4,
PATTERN101: 5,
PATTERN110: 6,
PATTERN111: 7
}, f = {
PATTERN_POSITION_TABLE: [
[],
[6, 18],
[6, 22],
[6, 26],
[6, 30],
[6, 34],
[6, 22, 38],
[6, 24, 42],
[6, 26, 46],
[6, 28, 50],
[6, 30, 54],
[6, 32, 58],
[6, 34, 62],
[6, 26, 46, 66],
[6, 26, 48, 70],
[6, 26, 50, 74],
[6, 30, 54, 78],
[6, 30, 56, 82],
[6, 30, 58, 86],
[6, 34, 62, 90],
[6, 28, 50, 72, 94],
[6, 26, 50, 74, 98],
[6, 30, 54, 78, 102],
[6, 28, 54, 80, 106],
[6, 32, 58, 84, 110],
[6, 30, 58, 86, 114],
[6, 34, 62, 90, 118],
[6, 26, 50, 74, 98, 122],
[6, 30, 54, 78, 102, 126],
[6, 26, 52, 78, 104, 130],
[6, 30, 56, 82, 108, 134],
[6, 34, 60, 86, 112, 138],
[6, 30, 58, 86, 114, 142],
[6, 34, 62, 90, 118, 146],
[6, 30, 54, 78, 102, 126, 150],
[6, 24, 50, 76, 102, 128, 154],
[6, 28, 54, 80, 106, 132, 158],
[6, 32, 58, 84, 110, 136, 162],
[6, 26, 54, 82, 110, 138, 166],
[6, 30, 58, 86, 114, 142, 170]
],
G15: 1335,
G18: 7973,
G15_MASK: 21522,
getBCHTypeInfo: function (t) {
for (var e = t << 10; f.getBCHDigit(e) - f.getBCHDigit(f.G15) >= 0;) e ^= f.G15 << f.getBCHDigit(e) - f.getBCHDigit(f.G15);
return (t << 10 | e) ^ f.G15_MASK
},
getBCHTypeNumber: function (t) {
for (var e = t << 12; f.getBCHDigit(e) - f.getBCHDigit(f.G18) >= 0;) e ^= f.G18 << f.getBCHDigit(e) - f.getBCHDigit(f.G18);
return t << 12 | e
},
getBCHDigit: function (t) {
for (var e = 0; 0 != t;) e++, t >>>= 1;
return e
},
getPatternPosition: function (t) {
return f.PATTERN_POSITION_TABLE[t - 1]
},
getMask: function (t, e, i) {
switch (t) {
case m.PATTERN000:
return (e + i) % 2 == 0;
case m.PATTERN001:
return e % 2 == 0;
case m.PATTERN010:
return i % 3 == 0;
case m.PATTERN011:
return (e + i) % 3 == 0;
case m.PATTERN100:
return (Math.floor(e / 2) + Math.floor(i / 3)) % 2 == 0;
case m.PATTERN101:
return e * i % 2 + e * i % 3 == 0;
case m.PATTERN110:
return (e * i % 2 + e * i % 3) % 2 == 0;
case m.PATTERN111:
return (e * i % 3 + (e + i) % 2) % 2 == 0;
default:
throw new Error("bad maskPattern:" + t)
}
},
getErrorCorrectPolynomial: function (t) {
for (var e = new a([1], 0), i = 0; i < t; i++) e = e.multiply(new a([1, v.gexp(i)], 0));
return e
},
getLostPoint: function (t) {
for (var e = t.getModuleCount(), i = 0, n = 0, s = 0; s < e; s++)
for (var o = 0, a = t.modules[s][0], r = 0; r < e; r++) {
var l = t.modules[s][r];
if (r < e - 6 && l && !t.modules[s][r + 1] && t.modules[s][r + 2] && t.modules[s][r + 3] && t.modules[s][r + 4] && !t.modules[s][r + 5] && t.modules[s][r + 6] && (r < e - 10 ? t.modules[s][r + 7] && t.modules[s][r + 8] && t.modules[s][r + 9] && t.modules[s][r + 10] && (i += 40) : r > 3 && t.modules[s][r - 1] && t.modules[s][r - 2] && t.modules[s][r - 3] && t.modules[s][r - 4] && (i += 40)), s < e - 1 && r < e - 1) {
var c = 0;
l && c++, t.modules[s + 1][r] && c++, t.modules[s][r + 1] && c++, t.modules[s + 1][r + 1] && c++, 0 != c && 4 != c || (i += 3)
}
a ^ l ? o++ : (a = l, o >= 5 && (i += 3 + o - 5), o = 1), l && n++
}
for (var r = 0; r < e; r++)
for (var o = 0, a = t.modules[0][r], s = 0; s < e; s++) {
var l = t.modules[s][r];
s < e - 6 && l && !t.modules[s + 1][r] && t.modules[s + 2][r] && t.modules[s + 3][r] && t.modules[s + 4][r] && !t.modules[s + 5][r] && t.modules[s + 6][r] && (s < e - 10 ? t.modules[s + 7][r] && t.modules[s + 8][r] && t.modules[s + 9][r] && t.modules[s + 10][r] && (i += 40) : s > 3 && t.modules[s - 1][r] && t.modules[s - 2][r] && t.modules[s - 3][r] && t.modules[s - 4][r] && (i += 40)), a ^ l ? o++ : (a = l, o >= 5 && (i += 3 + o - 5), o = 1)
}
var u = Math.abs(100 * n / e / e - 50) / 5;
return i += 10 * u
}
}, v = {
glog: function (t) {
if (t < 1) throw new Error("glog(" + t + ")");
return v.LOG_TABLE[t]
},
gexp: function (t) {
for (; t < 0;) t += 255;
for (; t >= 256;) t -= 255;
return v.EXP_TABLE[t]
},
EXP_TABLE: new Array(256),
LOG_TABLE: new Array(256)
}, g = 0; g < 8; g++) v.EXP_TABLE[g] = 1 << g;
for (var g = 8; g < 256; g++) v.EXP_TABLE[g] = v.EXP_TABLE[g - 4] ^ v.EXP_TABLE[g - 5] ^ v.EXP_TABLE[g - 6] ^ v.EXP_TABLE[g - 8];
for (var g = 0; g < 255; g++) v.LOG_TABLE[v.EXP_TABLE[g]] = g;
a.prototype = {
get: function (t) {
return this.num[t]
},
getLength: function () {
return this.num.length
},
multiply: function (t) {
for (var e = new Array(this.getLength() + t.getLength() - 1), i = 0; i < this.getLength(); i++)
for (var n = 0; n < t.getLength(); n++) e[i + n] ^= v.gexp(v.glog(this.get(i)) + v.glog(t.get(n)));
return new a(e, 0)
},
mod: function (t) {
var e = this.getLength(),
i = t.getLength();
if (e - i < 0) return this;
for (var n = new Array(e), s = 0; s < e; s++) n[s] = this.get(s);
for (; n.length >= i;) {
for (var o = v.glog(n[0]) - v.glog(t.get(0)), s = 0; s < t.getLength(); s++) n[s] ^= v.gexp(v.glog(t.get(s)) + o);
for (; 0 == n[0];) n.shift()
}
return new a(n, 0)
}
}, y = [
[1, 26, 19],
[1, 26, 16],
[1, 26, 13],
[1, 26, 9],
[1, 44, 34],
[1, 44, 28],
[1, 44, 22],
[1, 44, 16],
[1, 70, 55],
[1, 70, 44],
[2, 35, 17],
[2, 35, 13],
[1, 100, 80],
[2, 50, 32],
[2, 50, 24],
[4, 25, 9],
[1, 134, 108],
[2, 67, 43],
[2, 33, 15, 2, 34, 16],
[2, 33, 11, 2, 34, 12],
[2, 86, 68],
[4, 43, 27],
[4, 43, 19],
[4, 43, 15],
[2, 98, 78],
[4, 49, 31],
[2, 32, 14, 4, 33, 15],
[4, 39, 13, 1, 40, 14],
[2, 121, 97],
[2, 60, 38, 2, 61, 39],
[4, 40, 18, 2, 41, 19],
[4, 40, 14, 2, 41, 15],
[2, 146, 116],
[3, 58, 36, 2, 59, 37],
[4, 36, 16, 4, 37, 17],
[4, 36, 12, 4, 37, 13],
[2, 86, 68, 2, 87, 69],
[4, 69, 43, 1, 70, 44],
[6, 43, 19, 2, 44, 20],
[6, 43, 15, 2, 44, 16],
[4, 101, 81],
[1, 80, 50, 4, 81, 51],
[4, 50, 22, 4, 51, 23],
[3, 36, 12, 8, 37, 13],
[2, 116, 92, 2, 117, 93],
[6, 58, 36, 2, 59, 37],
[4, 46, 20, 6, 47, 21],
[7, 42, 14, 4, 43, 15],
[4, 133, 107],
[8, 59, 37, 1, 60, 38],
[8, 44, 20, 4, 45, 21],
[12, 33, 11, 4, 34, 12],
[3, 145, 115, 1, 146, 116],
[4, 64, 40, 5, 65, 41],
[11, 36, 16, 5, 37, 17],
[11, 36, 12, 5, 37, 13],
[5, 109, 87, 1, 110, 88],
[5, 65, 41, 5, 66, 42],
[5, 54, 24, 7, 55, 25],
[11, 36, 12],
[5, 122, 98, 1, 123, 99],
[7, 73, 45, 3, 74, 46],
[15, 43, 19, 2, 44, 20],
[3, 45, 15, 13, 46, 16],
[1, 135, 107, 5, 136, 108],
[10, 74, 46, 1, 75, 47],
[1, 50, 22, 15, 51, 23],
[2, 42, 14, 17, 43, 15],
[5, 150, 120, 1, 151, 121],
[9, 69, 43, 4, 70, 44],
[17, 50, 22, 1, 51, 23],
[2, 42, 14, 19, 43, 15],
[3, 141, 113, 4, 142, 114],
[3, 70, 44, 11, 71, 45],
[17, 47, 21, 4, 48, 22],
[9, 39, 13, 16, 40, 14],
[3, 135, 107, 5, 136, 108],
[3, 67, 41, 13, 68, 42],
[15, 54, 24, 5, 55, 25],
[15, 43, 15, 10, 44, 16],
[4, 144, 116, 4, 145, 117],
[17, 68, 42],
[17, 50, 22, 6, 51, 23],
[19, 46, 16, 6, 47, 17],
[2, 139, 111, 7, 140, 112],
[17, 74, 46],
[7, 54, 24, 16, 55, 25],
[34, 37, 13],
[4, 151, 121, 5, 152, 122],
[4, 75, 47, 14, 76, 48],
[11, 54, 24, 14, 55, 25],
[16, 45, 15, 14, 46, 16],
[6, 147, 117, 4, 148, 118],
[6, 73, 45, 14, 74, 46],
[11, 54, 24, 16, 55, 25],
[30, 46, 16, 2, 47, 17],
[8, 132, 106, 4, 133, 107],
[8, 75, 47, 13, 76, 48],
[7, 54, 24, 22, 55, 25],
[22, 45, 15, 13, 46, 16],
[10, 142, 114, 2, 143, 115],
[19, 74, 46, 4, 75, 47],
[28, 50, 22, 6, 51, 23],
[33, 46, 16, 4, 47, 17],
[8, 152, 122, 4, 153, 123],
[22, 73, 45, 3, 74, 46],
[8, 53, 23, 26, 54, 24],
[12, 45, 15, 28, 46, 16],
[3, 147, 117, 10, 148, 118],
[3, 73, 45, 23, 74, 46],
[4, 54, 24, 31, 55, 25],
[11, 45, 15, 31, 46, 16],
[7, 146, 116, 7, 147, 117],
[21, 73, 45, 7, 74, 46],
[1, 53, 23, 37, 54, 24],
[19, 45, 15, 26, 46, 16],
[5, 145, 115, 10, 146, 116],
[19, 75, 47, 10, 76, 48],
[15, 54, 24, 25, 55, 25],
[23, 45, 15, 25, 46, 16],
[13, 145, 115, 3, 146, 116],
[2, 74, 46, 29, 75, 47],
[42, 54, 24, 1, 55, 25],
[23, 45, 15, 28, 46, 16],
[17, 145, 115],
[10, 74, 46, 23, 75, 47],
[10, 54, 24, 35, 55, 25],
[19, 45, 15, 35, 46, 16],
[17, 145, 115, 1, 146, 116],
[14, 74, 46, 21, 75, 47],
[29, 54, 24, 19, 55, 25],
[11, 45, 15, 46, 46, 16],
[13, 145, 115, 6, 146, 116],
[14, 74, 46, 23, 75, 47],
[44, 54, 24, 7, 55, 25],
[59, 46, 16, 1, 47, 17],
[12, 151, 121, 7, 152, 122],
[12, 75, 47, 26, 76, 48],
[39, 54, 24, 14, 55, 25],
[22, 45, 15, 41, 46, 16],
[6, 151, 121, 14, 152, 122],
[6, 75, 47, 34, 76, 48],
[46, 54, 24, 10, 55, 25],
[2, 45, 15, 64, 46, 16],
[17, 152, 122, 4, 153, 123],
[29, 74, 46, 14, 75, 47],
[49, 54, 24, 10, 55, 25],
[24, 45, 15, 46, 46, 16],
[4, 152, 122, 18, 153, 123],
[13, 74, 46, 32, 75, 47],
[48, 54, 24, 14, 55, 25],
[42, 45, 15, 32, 46, 16],
[20, 147, 117, 4, 148, 118],
[40, 75, 47, 7, 76, 48],
[43, 54, 24, 22, 55, 25],
[10, 45, 15, 67, 46, 16],
[19, 148, 118, 6, 149, 119],
[18, 75, 47, 31, 76, 48],
[34, 54, 24, 34, 55, 25],
[20, 45, 15, 61, 46, 16]
], o.prototype.getRightType = function () {
for (var t = 1; t < 41; t++) {
var e = y[4 * (t - 1) + this.errorCorrectLevel];
if (void 0 == e) throw new Error("bad rs block @ typeNumber:" + t + "/errorCorrectLevel:" + this.errorCorrectLevel);
for (var i = e.length / 3, n = 0, s = 0; s < i; s++) {
var o = e[3 * s + 0],
a = e[3 * s + 2];
n += a * o
}
var r = t > 9 ? 2 : 1;
if (this.utf8bytes.length + r < n || 40 == t) {
this.typeNumber = t, this.rsBlock = e, this.totalDataCount = n;
break
}
}
}, r.prototype = {
get: function (t) {
var e = Math.floor(t / 8);
return this.buffer[e] >>> 7 - t % 8 & 1
},
put: function (t, e) {
for (var i = 0; i < e; i++) this.putBit(t >>> e - i - 1 & 1)
},
putBit: function (t) {
var e = Math.floor(this.length / 8);
this.buffer.length <= e && this.buffer.push(0), t && (this.buffer[e] |= 128 >>> this.length % 8), this.length++
}
}, c.fn.qrcode = function (t) {
return this.each(function () {
c(this).append(new d(t))
})
}, t.exports = u.qrcode = d
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = function (t, e) {
var i = this;
this.options = n.extend({}, o.DEFAULTS, e), this.$element = n(t), this.sticked = null, this.inited = null, this.$holder = void 0, this.$window = n(window).on("scroll.sticky.amui", s.utils.debounce(n.proxy(this.checkPosition, this), 10)).on("resize.sticky.amui orientationchange.sticky.amui", s.utils.debounce(function () {
i.reset(!0, function () {
i.checkPosition()
})
}, 50)).on("load.sticky.amui", n.proxy(this.checkPosition, this)), this.offset = this.$element.offset(), this.init()
};
o.DEFAULTS = {
top: 0,
bottom: 0,
animation: "",
className: {
sticky: "am-sticky",
resetting: "am-sticky-resetting",
stickyBtm: "am-sticky-bottom",
animationRev: "am-animation-reverse"
}
}, o.prototype.init = function () {
var t = this.check();
if (!t) return !1;
var e = this.$element,
i = "";
n.each(e.css(["marginTop", "marginRight", "marginBottom", "marginLeft"]), function (t, e) {
return i += " " + e
});
var s = n('').css({
height: "absolute" !== e.css("position") ? e.outerHeight() : "",
"float": "none" != e.css("float") ? e.css("float") : "",
margin: i
});
return this.$holder = e.css("margin", 0).wrap(s).parent(), this.inited = 1, !0
}, o.prototype.reset = function (t, e) {
var i = this.options,
n = this.$element,
o = i.animation ? " am-animation-" + i.animation : "",
a = function () {
n.css({
position: "",
top: "",
width: "",
left: "",
margin: 0
}), n.removeClass([o, i.className.animationRev, i.className.sticky, i.className.resetting].join(" ")), this.animating = !1, this.sticked = !1, this.offset = n.offset(), e && e()
}.bind(this);
n.addClass(i.className.resetting), !t && i.animation && s.support.animation ? (this.animating = !0, n.removeClass(o).one(s.support.animation.end, function () {
a()
}).width(), n.addClass(o + " " + i.className.animationRev)) : a()
}, o.prototype.check = function () {
if (!this.$element.is(":visible")) return !1;
var t = this.options.media;
if (t) switch (typeof t) {
case "number":
if (window.innerWidth < t) return !1;
break;
case "string":
if (window.matchMedia && !window.matchMedia(t).matches) return !1
}
return !0
}, o.prototype.checkPosition = function () {
if (!this.inited) {
var t = this.init();
if (!t) return
}
var e = this.options,
i = this.$window.scrollTop(),
n = e.top,
s = e.bottom,
o = this.$element,
a = e.animation ? " am-animation-" + e.animation : "",
r = [e.className.sticky, a].join(" ");
"function" == typeof s && (s = s(this.$element));
var l = i > this.$holder.offset().top;
!this.sticked && l ? o.addClass(r) : this.sticked && !l && this.reset(), this.$holder.css({
height: o.is(":visible") && "absolute" !== o.css("position") ? o.outerHeight() : ""
}), l && o.css({
top: n,
left: this.$holder.offset().left,
width: this.$holder.width()
}), this.sticked = l
}, s.plugin("sticky", o), n(window).on("load", function () {
n("[data-am-sticky]").sticky()
}), t.exports = o
}, function (t, e, i) {
"use strict";
function n(t) {
var e, i = Array.prototype.slice.call(arguments, 1);
return this.each(function () {
var n = s(this),
a = n.is(".am-tabs") && n || n.closest(".am-tabs"),
r = a.data("amui.tabs"),
l = s.extend({}, o.utils.parseOptions(n.data("amTabs")), s.isPlainObject(t) && t);
r || a.data("amui.tabs", r = new c(a[0], l)), "string" == typeof t && ("open" === t && n.is(".am-tabs-nav a") ? r.open(n) : e = "function" == typeof r[t] ? r[t].apply(r, i) : r[t])
}), void 0 === e ? this : e
}
var s = i(1),
o = i(2),
a = i(3),
r = o.support.transition,
l = o.support.animation,
c = function (t, e) {
this.$element = s(t), this.options = s.extend({}, c.DEFAULTS, e || {}), this.transitioning = this.activeIndex = null, this.refresh(), this.init()
};
c.DEFAULTS = {
selector: {
nav: "> .am-tabs-nav",
content: "> .am-tabs-bd",
panel: "> .am-tab-panel"
},
activeClass: "am-active"
}, c.prototype.refresh = function () {
var t = this.options.selector;
this.$tabNav = this.$element.find(t.nav), this.$navs = this.$tabNav.find("a"), this.$content = this.$element.find(t.content), this.$tabPanels = this.$content.find(t.panel);
var e = this.$tabNav.find("> ." + this.options.activeClass);
1 !== e.length ? this.open(0) : this.activeIndex = this.$navs.index(e.children("a"))
}, c.prototype.init = function () {
var t = this,
e = this.options;
if (this.$element.on("click.tabs.amui", e.selector.nav + " a", function (e) {
e.preventDefault(), t.open(s(this))
}), !e.noSwipe) {
if (!this.$content.length) return this;
var i = new a.Manager(this.$content[0]),
n = new a.Swipe({
direction: a.DIRECTION_HORIZONTAL
});
i.add(n), i.on("swipeleft", o.utils.debounce(function (e) {
e.preventDefault(), t.goTo("next")
}, 100)), i.on("swiperight", o.utils.debounce(function (e) {
e.preventDefault(), t.goTo("prev")
}, 100)), this._hammer = i
}
}, c.prototype.open = function (t) {
var e = this.options.activeClass,
i = "number" == typeof t ? t : this.$navs.index(s(t));
if (t = "number" == typeof t ? this.$navs.eq(i) : s(t), t && t.length && !this.transitioning && !t.parent("li").hasClass(e)) {
var n = this.$tabNav,
o = t.attr("href"),
a = /^#.+$/,
r = a.test(o) && this.$content.find(o) || this.$tabPanels.eq(i),
l = n.find("." + e + " a")[0],
c = s.Event("open.tabs.amui", {
relatedTarget: l
});
t.trigger(c), c.isDefaultPrevented() || (this.activate(t.closest("li"), n), this.activate(r, this.$content, function () {
t.trigger({
type: "opened.tabs.amui",
relatedTarget: l
})
}), this.activeIndex = i)
}
}, c.prototype.activate = function (t, e, i) {
this.transitioning = !0;
var n = this.options.activeClass,
o = e.find("> ." + n),
a = i && r && !!o.length;
o.removeClass(n + " am-in"), t.addClass(n), a ? (t.redraw(), t.addClass("am-in")) : t.removeClass("am-fade");
var l = s.proxy(function () {
i && i(), this.transitioning = !1
}, this);
a && !this.$content.is(".am-tabs-bd-ofv") ? o.one(r.end, l) : l()
}, c.prototype.goTo = function (t) {
var e = this.activeIndex,
i = "next" === t,
n = i ? "am-animation-right-spring" : "am-animation-left-spring";
if (i && e + 1 >= this.$navs.length || !i && 0 === e) {
var s = this.$tabPanels.eq(e);
l && s.addClass(n).on(l.end, function () {
s.removeClass(n)
})
} else this.open(i ? e + 1 : e - 1)
}, c.prototype.destroy = function () {
this.$element.off(".tabs.amui"), a.off(this.$content[0], "swipeleft swiperight"), this._hammer && this._hammer.destroy(), s.removeData(this.$element, "amui.tabs")
}, s.fn.tabs = n, o.ready(function (t) {
s("[data-am-tabs]", t).tabs()
}), s(document).on("click.tabs.amui.data-api", "[data-am-tabs] .am-tabs-nav a", function (t) {
t.preventDefault(), n.call(s(this), "open")
}), t.exports = o.tabs = c
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = function (t, e) {
this.options = n.extend({}, o.DEFAULTS, e), this.$element = n(t), this.init()
};
o.DEFAULTS = {
checkboxClass: "am-ucheck-checkbox",
radioClass: "am-ucheck-radio",
checkboxTpl: '',
radioTpl: ''
}, o.prototype.init = function () {
var t = this.$element,
e = t[0],
i = this.options;
"checkbox" === e.type ? t.addClass(i.checkboxClass).after(i.checkboxTpl) : "radio" === e.type && t.addClass(i.radioClass).after(i.radioTpl)
}, o.prototype.check = function () {
this.$element.prop("checked", !0).trigger("change.ucheck.amui").trigger("checked.ucheck.amui")
}, o.prototype.uncheck = function () {
this.$element.prop("checked", !1).trigger("change").trigger("unchecked.ucheck.amui")
}, o.prototype.toggle = function () {
this.$element.prop("checked", function (t, e) {
return !e
}).trigger("change.ucheck.amui").trigger("toggled.ucheck.amui")
}, o.prototype.disable = function () {
this.$element.prop("disabled", !0).trigger("change.ucheck.amui").trigger("disabled.ucheck.amui")
}, o.prototype.enable = function () {
this.$element.prop("disabled", !1), this.$element.trigger("change.ucheck.amui").trigger("enabled.ucheck.amui")
}, o.prototype.destroy = function () {
this.$element.removeData("amui.ucheck").removeClass(this.options.checkboxClass + " " + this.options.radioClass).next(".am-ucheck-icons").remove().end().trigger("destroyed.ucheck.amui")
}, s.plugin("uCheck", o, {
after: function () {
s.support.touch && this.parent().hover(function () {
n(this).addClass("am-nohover")
}, function () {
n(this).removeClass("am-nohover")
})
}
}), s.ready(function (t) {
n("[data-am-ucheck]", t).uCheck()
}), t.exports = o
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2),
o = function (t, e) {
this.options = n.extend({}, o.DEFAULTS, e), this.options.patterns = n.extend({}, o.patterns, this.options.patterns);
var i = this.options.locales;
!o.validationMessages[i] && (this.options.locales = "zh_CN"), this.$element = n(t), this.init()
};
o.DEFAULTS = {
debug: !1,
locales: "zh_CN",
H5validation: !1,
H5inputType: ["email", "url", "number"],
patterns: {},
patternClassPrefix: "js-pattern-",
activeClass: "am-active",
inValidClass: "am-field-error",
validClass: "am-field-valid",
validateOnSubmit: !0,
alwaysRevalidate: !1,
allFields: ":input:not(:submit, :button, :disabled, .am-novalidate)",
ignore: ":hidden:not([data-am-selected], .am-validate)",
customEvents: "validate",
keyboardFields: ":input:not(:submit, :button, :disabled, .am-novalidate)",
keyboardEvents: "focusout, change",
activeKeyup: !1,
textareaMaxlenthKeyup: !0,
pointerFields: 'input[type="range"]:not(:disabled, .am-novalidate), input[type="radio"]:not(:disabled, .am-novalidate), input[type="checkbox"]:not(:disabled, .am-novalidate), select:not(:disabled, .am-novalidate), option:not(:disabled, .am-novalidate)',
pointerEvents: "click",
onValid: function (t) {},
onInValid: function (t) {},
markValid: function (t) {
var e = this.options,
i = n(t.field),
s = i.closest(".am-form-group");
i.addClass(e.validClass).removeClass(e.inValidClass), s.addClass("am-form-success").removeClass("am-form-error"), e.onValid.call(this, t)
},
markInValid: function (t) {
var e = this.options,
i = n(t.field),
s = i.closest(".am-form-group");
i.addClass(e.inValidClass + " " + e.activeClass).removeClass(e.validClass), s.addClass("am-form-error").removeClass("am-form-success"), e.onInValid.call(this, t)
},
validate: function (t) {},
submit: null
}, o.VERSION = "2.7.2", o.patterns = {
email: /^((([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/,
url: /^(https?|ftp):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/,
number: /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/,
dateISO: /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
integer: /^-?\d+$/
}, o.validationMessages = {
zh_CN: {
valueMissing: "\u8bf7\u586b\u5199\uff08\u9009\u62e9\uff09\u6b64\u5b57\u6bb5",
customError: {
tooShort: "\u81f3\u5c11\u586b\u5199 %s \u4e2a\u5b57\u7b26",
checkedOverflow: "\u81f3\u591a\u9009\u62e9 %s \u9879",
checkedUnderflow: "\u81f3\u5c11\u9009\u62e9 %s \u9879"
},
patternMismatch: "\u8bf7\u6309\u7167\u8981\u6c42\u7684\u683c\u5f0f\u586b\u5199",
rangeOverflow: "\u8bf7\u586b\u5199\u5c0f\u4e8e\u7b49\u4e8e %s \u7684\u503c",
rangeUnderflow: "\u8bf7\u586b\u5199\u5927\u4e8e\u7b49\u4e8e %s \u7684\u503c",
stepMismatch: "",
tooLong: "\u81f3\u591a\u586b\u5199 %s \u4e2a\u5b57\u7b26",
typeMismatch: "\u8bf7\u6309\u7167\u8981\u6c42\u7684\u7c7b\u578b\u586b\u5199"
}
}, o.ERROR_MAP = {
tooShort: "minlength",
checkedOverflow: "maxchecked",
checkedUnderflow: "minchecked",
rangeOverflow: "max",
rangeUnderflow: "min",
tooLong: "maxlength"
}, o.prototype.init = function () {
function t(t) {
var e = t.toString();
return e.substring(1, e.length - 1)
}
function e(t, e, a) {
var r = e.split(","),
l = function (t) {
i.validate(this)
};
a && (l = s.utils.debounce(l, a)), n.each(r, function (e, i) {
o.on(i + ".validator.amui", t, l)
})
}
var i = this,
o = this.$element,
a = this.options;
return (!a.H5validation || !s.support.formValidation) && (o.attr("novalidate", "novalidate"), n.each(a.H5inputType, function (e, i) {
var n = o.find("input[type=" + i + "]");
n.attr("pattern") || n.is("[class*=" + a.patternClassPrefix + "]") || n.attr("pattern", t(a.patterns[i]))
}), n.each(a.patterns, function (e, i) {
var n = o.find("." + a.patternClassPrefix + e);
!n.attr("pattern") && n.attr("pattern", t(i))
}), o.on("submit.validator.amui", function (t) {
if ("function" == typeof a.submit) return a.submit.call(i, t);
if (a.validateOnSubmit) {
var e = i.isFormValid();
return "boolean" === n.type(e) ? e : !!o.data("amui.checked") || (n.when(e).then(function () {
o.data("amui.checked", !0).submit()
}, function () {
o.data("amui.checked", !1).find("." + a.inValidClass).eq(0).focus()
}), !1)
}
}), e(":input", a.customEvents), e(a.keyboardFields, a.keyboardEvents), e(a.pointerFields, a.pointerEvents), a.textareaMaxlenthKeyup && e("textarea[maxlength]", "keyup", 50), void(a.activeKeyup && e(".am-active", "keyup", 50)))
}, o.prototype.isValid = function (t) {
var e = n(t),
i = this.options;
return (void 0 === e.data("validity") || i.alwaysRevalidate) && this.validate(t), e.data("validity") && e.data("validity").valid
}, o.prototype.validate = function (t) {
var e = this,
i = this.$element,
s = this.options,
o = n(t),
a = o.data("equalTo");
a && o.attr("pattern", "^" + i.find(a).val() + "$");
var r = o.attr("pattern") || !1,
l = new RegExp(r),
c = null,
u = null,
h = o.is("[type=checkbox]") ? (u = i.find('input[name="' + t.name + '"]')).filter(":checked").length : o.is("[type=radio]") ? (c = this.$element.find('input[name="' + t.name + '"]')).filter(":checked").length > 0 : o.val();
o = u && u.length ? u.first() : o;
var d = void 0 !== o.attr("required") && "false" !== o.attr("required"),
p = parseInt(o.attr("maxlength"), 10),
m = parseInt(o.attr("minlength"), 10),
f = Number(o.attr("min")),
v = Number(o.attr("max")),
g = this.createValidity({
field: o[0],
valid: !0
});
if (s.debug && window.console && (console.log("Validate: value -> [" + h + ", regex -> [" + l + "], required -> " + d), console.log("Regex test: " + l.test(h) + ", Pattern: " + r)), !isNaN(p) && h.length > p && (g.valid = !1, g.tooLong = !0), !isNaN(m) && h.length < m && (g.valid = !1, g.customError = "tooShort"), !isNaN(f) && Number(h) < f && (g.valid = !1, g.rangeUnderflow = !0), !isNaN(v) && Number(h) > v && (g.valid = !1, g.rangeOverflow = !0), d && !h) g.valid = !1, g.valueMissing = !0;
else if ((u || o.is('select[multiple="multiple"]')) && h) {
h = u ? h : h.length;
var y = parseInt(o.attr("minchecked"), 10),
w = parseInt(o.attr("maxchecked"), 10);
!isNaN(y) && h < y && (g.valid = !1, g.customError = "checkedUnderflow"), !isNaN(w) && h > w && (g.valid = !1, g.customError = "checkedOverflow")
} else r && !l.test(h) && h && (g.valid = !1, g.patternMismatch = !0);
var b, T = function (t) {
this.markField(t);
var i = n.Event("validated.field.validator.amui");
i.validity = t, o.trigger(i).data("validity", t);
var s = c || u;
return s && s.not(o).data("validity", t).each(function () {
t.field = this, e.markField(t)
}), t
};
if ("function" == typeof s.validate && (b = s.validate.call(this, g)), b) {
var x = new n.Deferred;
return o.data("amui.dfdValidity", x.promise()), n.when(b).always(function (t) {
x[t.valid ? "resolve" : "reject"](t), T.call(e, t)
})
}
T.call(this, g)
}, o.prototype.markField = function (t) {
var e = this.options,
i = "mark" + (t.valid ? "" : "In") + "Valid";
e[i] && e[i].call(this, t)
}, o.prototype.validateForm = function () {
var t = this,
e = this.$element,
i = this.options,
s = e.find(i.allFields).not(i.ignore),
o = [],
a = !0,
r = [],
l = n([]),
c = [],
u = !1;
e.trigger("validate.form.validator.amui");
var h = s.filter(function (t) {
var e;
if ("INPUT" === this.tagName && "radio" === this.type) {
if (e = this.name, o[e] === !0) return !1;
o[e] = !0;
}
return !0
});
h.each(function () {
var i = n(this),
s = t.isValid(this),
o = i.data("validity");
a = !!s && a, r.push(o), s || (l = l.add(n(this), e));
var h = i.data("amui.dfdValidity");
if (h) c.push(h), u = !0;
else {
var d = new n.Deferred;
c.push(d.promise()), d[s ? "resolve" : "reject"](o)
}
});
var d = {
valid: a,
$invalidFields: l,
validity: r,
promises: c,
async: u
};
return e.trigger("validated.form.validator.amui", d), d
}, o.prototype.isFormValid = function () {
var t = this,
e = this.validateForm(),
i = function (e) {
t.$element.trigger(e + ".validator.amui")
};
if (e.async) {
var s = new n.Deferred;
return n.when.apply(null, e.promises).then(function () {
s.resolve(), i("valid")
}, function () {
s.reject(), i("invalid")
}), s.promise()
}
if (!e.valid) {
var o = e.$invalidFields.first();
return o.is("[data-am-selected]") && (o = o.next(".am-selected").find(".am-selected-btn")), o.focus(), i("invalid"), !1
}
return i("valid"), !0
}, o.prototype.createValidity = function (t) {
return n.extend({
customError: t.customError || !1,
patternMismatch: t.patternMismatch || !1,
rangeOverflow: t.rangeOverflow || !1,
rangeUnderflow: t.rangeUnderflow || !1,
stepMismatch: t.stepMismatch || !1,
tooLong: t.tooLong || !1,
typeMismatch: t.typeMismatch || !1,
valid: t.valid || !0,
valueMissing: t.valueMissing || !1
}, t)
}, o.prototype.getValidationMessage = function (t) {
var e, i, s = o.validationMessages[this.options.locales],
a = "%s",
r = n(t.field);
return (r.is('[type="checkbox"]') || r.is('[type="radio"]')) && (r = this.$element.find("[name=" + r.attr("name") + "]").first()), n.each(t, function (t, i) {
return "field" === t || "valid" === t ? t : "customError" === t && i ? (e = i, s = s.customError, !1) : i === !0 ? (e = t, !1) : void 0
}), i = s[e] || void 0, i && o.ERROR_MAP[e] && (i = i.replace(a, r.attr(o.ERROR_MAP[e]) || "\u89c4\u5b9a\u7684")), i
}, o.prototype.removeMark = function () {
this.$element.find(".am-form-success, .am-form-error, ." + this.options.inValidClass + ", ." + this.options.validClass).removeClass(["am-form-success", "am-form-error", this.options.inValidClass, this.options.validClass].join(" "))
}, o.prototype.destroy = function () {
this.removeMark(), this.$element.removeData("amui.validator amui.checked").off(".validator.amui").find(this.options.allFields).removeData("validity amui.dfdValidity")
}, s.plugin("validator", o), s.ready(function (t) {
n("[data-am-validator]", t).validator()
}), t.exports = o
}, function (t, e, i) {
"use strict";
var n = i(2),
s = {
get: function (t) {
var e, i = encodeURIComponent(t) + "=",
n = document.cookie.indexOf(i),
s = null;
return n > -1 && (e = document.cookie.indexOf(";", n), e == -1 && (e = document.cookie.length), s = decodeURIComponent(document.cookie.substring(n + i.length, e))), s
},
set: function (t, e, i, n, s, o) {
var a = encodeURIComponent(t) + "=" + encodeURIComponent(e);
i instanceof Date && (a += "; expires=" + i.toUTCString()), n && (a += "; path=" + n), s && (a += "; domain=" + s), o && (a += "; secure"), document.cookie = a
},
unset: function (t, e, i, n) {
this.set(t, "", new Date(0), e, i, n)
}
};
n.utils = n.utils || {}, t.exports = n.utils.cookie = s
}, function (t, e, i) {
"use strict";
var n = i(2),
s = function () {
var t = "undefined" != typeof Element && "ALLOW_KEYBOARD_INPUT" in Element,
e = function () {
for (var t, e, i = [
["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"],
["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"],
["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"],
["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"],
["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]
], n = 0, s = i.length, o = {}; n < s; n++)
if (t = i[n], t && t[1] in document) {
for (n = 0, e = t.length; n < e; n++) o[i[0][n]] = t[n];
return o
} return !1
}(),
i = {
request: function (i) {
var n = e.requestFullscreen;
i = i || document.documentElement, /5\.1[\.\d]* Safari/.test(navigator.userAgent) ? i[n]() : i[n](t && Element.ALLOW_KEYBOARD_INPUT)
},
exit: function () {
document[e.exitFullscreen]()
},
toggle: function (t) {
this.isFullscreen ? this.exit() : this.request(t)
},
raw: e
};
return !!e && (Object.defineProperties(i, {
isFullscreen: {
get: function () {
return !!document[e.fullscreenElement]
}
},
element: {
enumerable: !0,
get: function () {
return document[e.fullscreenElement]
}
},
enabled: {
enumerable: !0,
get: function () {
return !!document[e.fullscreenEnabled]
}
}
}), i.VERSION = "3.0.0", i)
}();
t.exports = n.fullscreen = s
}, function (t, e, i) {
"use strict";
var n = i(1),
s = i(2);
s.support.geolocation = window.navigator && window.navigator.geolocation;
var o = s.support.geolocation,
a = function (t) {
this.options = t || {}
};
a.MESSAGES = {
unsupportedBrowser: "Browser does not support location services",
permissionDenied: "You have rejected access to your location",
positionUnavailable: "Unable to determine your location",
timeout: "Service timeout has been reached"
}, a.ERROR_CODE = {
0: "unsupportedBrowser",
1: "permissionDenied",
2: "positionUnavailable",
3: "timeout"
}, a.prototype.get = function (t) {
var e = this;
t = n.extend({}, this.options, t);
var i = new n.Deferred;
return o ? this.watchID = o.getCurrentPosition(function (t) {
i.resolve.call(e, t)
}, function (t) {
i.reject(a.MESSAGES[a.ERROR_CODE[t.code]])
}, t) : i.reject(a.MESSAGES.unsupportedBrowser), i.promise()
}, a.prototype.watch = function (t) {
if (o && (t = n.extend({}, this.options, t), n.isFunction(t.done))) {
this.clearWatch();
var e = n.isFunction(t.fail) ? t.fail : null;
return this.watchID = o.watchPosition(t.done, e, t), this.watchID
}
}, a.prototype.clearWatch = function () {
o && this.watchID && (o.clearWatch(this.watchID), this.watchID = null)
}, t.exports = s.Geolocation = a
}, function (t, e, i) {
(function (e) {
"use strict";
function n() {
try {
return l in r && r[l]
} catch (t) {
return !1
}
}
var s, o = i(2),
a = {},
r = "undefined" != typeof window ? window : e,
l = "localStorage";
a.disabled = !1, a.version = "1.3.20", a.set = function (t, e) {}, a.get = function (t, e) {}, a.has = function (t) {
return void 0 !== a.get(t)
}, a.remove = function (t) {}, a.clear = function () {}, a.transact = function (t, e, i) {
null == i && (i = e, e = null), null == e && (e = {});
var n = a.get(t, e);
i(n), a.set(t, n)
}, a.getAll = function () {}, a.forEach = function () {}, a.serialize = function (t) {
return JSON.stringify(t)
}, a.deserialize = function (t) {
if ("string" == typeof t) try {
return JSON.parse(t)
} catch (e) {
return t || void 0
}
}, n() && (s = r[l], a.set = function (t, e) {
return void 0 === e ? a.remove(t) : (s.setItem(t, a.serialize(e)), e)
}, a.get = function (t, e) {
var i = a.deserialize(s.getItem(t));
return void 0 === i ? e : i
}, a.remove = function (t) {
s.removeItem(t)
}, a.clear = function () {
s.clear()
}, a.getAll = function () {
var t = {};
return a.forEach(function (e, i) {
t[e] = i
}), t
}, a.forEach = function (t) {
for (var e = 0; e < s.length; e++) {
var i = s.key(e);
t(i, a.get(i))
}
});
try {
var c = "__storejs__";
a.set(c, c), a.get(c) != c && (a.disabled = !0), a.remove(c)
} catch (u) {
a.disabled = !0
}
a.enabled = !a.disabled, t.exports = o.store = a
}).call(e, function () {
return this
}())
}, function (t, e, i) {
"use strict";
function n() {
var t = s('[data-am-widget="accordion"]'),
e = {
item: ".am-accordion-item",
title: ".am-accordion-title",
body: ".am-accordion-bd",
disabled: ".am-disabled"
};
t.each(function (t, i) {
var n = o.utils.parseOptions(s(i).attr("data-am-accordion")),
a = s(i).find(e.title);
a.on("click.accordion.amui", function () {
var t = s(this).next(e.body),
o = s(this).parent(e.item),
a = t.data("amui.collapse");
o.is(e.disabled) || (o.toggleClass("am-active"), a ? t.collapse("toggle") : t.collapse(), !n.multiple && s(i).children(".am-active").not(o).not(e.disabled).removeClass("am-active").find(e.body + ".am-in").collapse("close"))
})
})
}
var s = i(1),
o = i(2);
i(7), s(n), t.exports = o.accordion = {
VERSION: "2.1.0",
init: n
}
}, function (t, e) {
"use strict";
t.exports = {
VERSION: "2.0.1"
}
}, function (t, e, i) {
"use strict";
function n() {
var t = s(".ds-thread"),
e = t.parent('[data-am-widget="duoshuo"]').attr("data-ds-short-name"),
i = ("https:" == document.location.protocol ? "https:" : "http:") + "//static.duoshuo.com/embed.js";
if (t.length && e && (window.duoshuoQuery = {
short_name: e
}, !s('script[src="' + i + '"]').length)) {
var n = s("