! function(e, t) {
"object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define &&
define.amd ? define([], t) : "object" == typeof exports ? exports.AOS = t() : e.AOS = t()
}(this, function() {
return n = [function(e, t, o) {
"use strict";
function n(e) {
return e && e.__esModule ? e : {
default: e
}
}
function i() {
p = (0, m.default)(), y()
}
var a = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var o, n = arguments[t];
for (o in n) Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o])
}
return e
},
r = (n(o(1)), o(6)),
c = n(r),
u = n(o(7)),
s = n(o(8)),
d = n(o(9)),
f = n(o(10)),
l = n(o(11)),
m = n(o(14)),
p = [],
b = !1,
v = {
offset: 120,
delay: 0,
easing: "ease",
duration: 400,
disable: !1,
once: !1,
startEvent: "DOMContentLoaded",
throttleDelay: 99,
debounceDelay: 50,
disableMutationObserver: !1
},
y = function() {
if (b = 0 < arguments.length && void 0 !== arguments[0] && arguments[0] ? !0 : b) return p =
(0, l.default)(p, v), (0, f.default)(p, v.once), p
};
e.exports = {
init: function(e) {
v = a(v, e), p = (0, m.default)();
var t, e = document.all && !window.atob;
return !0 === (t = v.disable) || "mobile" === t && d.default.mobile() || "phone" ===
t && d.default.phone() || "tablet" === t && d.default.tablet() || "function" ==
typeof t && !0 === t() || e ? void p.forEach(function(e, t) {
e.node.removeAttribute("data-aos"), e.node.removeAttribute(
"data-aos-easing"), e.node.removeAttribute("data-aos-duration"),
e.node.removeAttribute("data-aos-delay")
}) : (document.querySelector("body").setAttribute("data-aos-easing", v.easing),
document.querySelector("body").setAttribute("data-aos-duration", v
.duration), document.querySelector("body").setAttribute("data-aos-delay", v
.delay), "DOMContentLoaded" === v.startEvent && -1 < ["complete",
"interactive"
].indexOf(document.readyState) ? y(!0) : ("load" === v.startEvent ? window :
document).addEventListener(v.startEvent, function() {
y(!0)
}), window.addEventListener("resize", (0, u.default)(y, v.debounceDelay, !
0)), window.addEventListener("orientationchange", (0, u.default)(y, v
.debounceDelay, !0)), window.addEventListener("scroll", (0, c.default)(
function() {
(0, f.default)(p, v.once)
}, v.throttleDelay)), v.disableMutationObserver || (0, s.default)(
"[data-aos]", i), p)
},
refresh: y,
refreshHard: i
}
}, function(e, t) {}, , , , , function(m, e) {
! function(e) {
"use strict";
function a(n, o, e) {
function i(e) {
var t = u,
o = s;
return u = s = void 0, p = e, f = n.apply(o, t)
}
function a(e) {
var t = e - m;
return void 0 === m || o <= t || t < 0 || v && d <= e - p
}
function r() {
var e, t = j();
return a(t) ? c(t) : void(l = setTimeout(r, (e = o - ((t = t) - m), v ? x(e, d - (t -
p)) : e)))
}
function c(e) {
return l = void 0, y && u ? i(e) : (u = s = void 0, f)
}
function t() {
var e = j(),
t = a(e);
if (u = arguments, s = this, m = e, t) {
if (void 0 === l) return p = e = m, l = setTimeout(r, o), b ? i(e) : f;
if (v) return l = setTimeout(r, o), i(m)
}
return void 0 === l && (l = setTimeout(r, o)), f
}
var u, s, d, f, l, m, p = 0,
b = !1,
v = !1,
y = !0;
if ("function" != typeof n) throw new TypeError(w);
return o = h(o) || 0, g(e) && (b = !!e.leading, v = "maxWait" in e, d = v ? k(h(e
.maxWait) || 0, o) : d, y = "trailing" in e ? !!e.trailing : y), t.cancel =
function() {
void 0 !== l && clearTimeout(l), u = m = s = l = void(p = 0)
}, t.flush = function() {
return void 0 === l ? f : c(j())
}, t
}
function g(e) {
var t = void 0 === e ? "undefined" : n(e);
return e && ("object" == t || "function" == t)
}
function o(e) {
return "symbol" == (void 0 === e ? "undefined" : n(e)) || !!(t = e) && "object" == (
void 0 === t ? "undefined" : n(t)) && "[object Symbol]" == l.call(e);
var t
}
function h(e) {
if ("number" == typeof e) return e;
if (o(e)) return i;
if ("string" != typeof(e = g(e) ? g(t = "function" == typeof e.valueOf ? e.valueOf() : e) ?
t + "" : t : e)) return 0 === e ? e : +e;
e = e.replace(r, "");
var t = u.test(e);
return t || s.test(e) ? d(e.slice(2), t ? 2 : 8) : c.test(e) ? i : +e
}
var n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol
.prototype ? "symbol" : typeof e
},
w = "Expected a function",
i = NaN,
r = /^\s+|\s+$/g,
c = /^[-+]0x[0-9a-f]+$/i,
u = /^0b[01]+$/i,
s = /^0o[0-7]+$/i,
d = parseInt,
e = "object" == (void 0 === e ? "undefined" : n(e)) && e && e.Object === Object && e,
t = "object" == ("undefined" == typeof self ? "undefined" : n(self)) && self && self
.Object === Object && self,
f = e || t || Function("return this")(),
l = Object.prototype.toString,
k = Math.max,
x = Math.min,
j = function() {
return f.Date.now()
};
m.exports = function(e, t, o) {
var n = !0,
i = !0;
if ("function" != typeof e) throw new TypeError(w);
return g(o) && (n = "leading" in o ? !!o.leading : n, i = "trailing" in o ? !!o
.trailing : i), a(e, t, {
leading: n,
maxWait: t,
trailing: i
})
}
}.call(e, function() {
return this
}())
}, function(m, e) {
! function(e) {
"use strict";
function g(e) {
var t = void 0 === e ? "undefined" : n(e);
return e && ("object" == t || "function" == t)
}
function o(e) {
return "symbol" == (void 0 === e ? "undefined" : n(e)) || !!(t = e) && "object" == (
void 0 === t ? "undefined" : n(t)) && l.call(e) == a;
var t
}
function h(e) {
if ("number" == typeof e) return e;
if (o(e)) return i;
if ("string" != typeof(e = g(e) ? g(t = "function" == typeof e.valueOf ? e.valueOf() : e) ?
t + "" : t : e)) return 0 === e ? e : +e;
e = e.replace(r, "");
var t = u.test(e);
return t || s.test(e) ? d(e.slice(2), t ? 2 : 8) : c.test(e) ? i : +e
}
function w() {
return f.Date.now()
}
var n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol
.prototype ? "symbol" : typeof e
},
i = NaN,
a = "[object Symbol]",
r = /^\s+|\s+$/g,
c = /^[-+]0x[0-9a-f]+$/i,
u = /^0b[01]+$/i,
s = /^0o[0-7]+$/i,
d = parseInt,
e = "object" == (void 0 === e ? "undefined" : n(e)) && e && e.Object === Object && e,
t = "object" == ("undefined" == typeof self ? "undefined" : n(self)) && self && self
.Object === Object && self,
f = e || t || Function("return this")(),
l = Object.prototype.toString,
k = Math.max,
x = Math.min;
m.exports = function(n, o, e) {
function i(e) {
var t = u,
o = s;
return u = s = void 0, p = e, f = n.apply(o, t)
}
function a(e) {
var t = e - m;
return void 0 === m || o <= t || t < 0 || v && d <= e - p
}
function r() {
var e, t = w();
return a(t) ? c(t) : void(l = setTimeout(r, (e = o - ((t = t) - m), v ? x(e, d - (
t - p)) : e)))
}
function c(e) {
return l = void 0, y && u ? i(e) : (u = s = void 0, f)
}
function t() {
var e = w(),
t = a(e);
if (u = arguments, s = this, m = e, t) {
if (void 0 === l) return p = e = m, l = setTimeout(r, o), b ? i(e) : f;
if (v) return l = setTimeout(r, o), i(m)
}
return void 0 === l && (l = setTimeout(r, o)), f
}
var u, s, d, f, l, m, p = 0,
b = !1,
v = !1,
y = !0;
if ("function" != typeof n) throw new TypeError("Expected a function");
return o = h(o) || 0, g(e) && (b = !!e.leading, v = "maxWait" in e, d = v ? k(h(e
.maxWait) || 0, o) : d, y = "trailing" in e ? !!e.trailing : y), t.cancel =
function() {
void 0 !== l && clearTimeout(l), u = m = s = l = void(p = 0)
}, t.flush = function() {
return void 0 === l ? f : c(w())
}, t
}
}.call(e, function() {
return this
}())
}, function(e, t) {
"use strict";
function i(e) {
e && e.forEach(function(e) {
var t = Array.prototype.slice.call(e.addedNodes),
e = Array.prototype.slice.call(e.removedNodes);
t.concat(e).filter(function(e) {
return e.hasAttribute && e.hasAttribute("data-aos")
}).length && a()
})
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var a = function() {};
t.default = function(e, t) {
var o = window.document,
n = new(window.MutationObserver || window.WebKitMutationObserver || window
.MozMutationObserver)(i);
a = t, n.observe(o.documentElement, {
childList: !0,
subtree: !0,
removedNodes: !0
})
}
}, function(e, t) {
"use strict";
function o() {
return navigator.userAgent || navigator.vendor || window.opera || ""
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var n =
/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,
i =
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,
a =
/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i,
r =
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,
c = (function(e, t, o) {
return t && s(e.prototype, t), o && s(e, o), e
}(u, [{
key: "phone",
value: function() {
var e = o();
return !(!n.test(e) && !i.test(e.substr(0, 4)))
}
}, {
key: "mobile",
value: function() {
var e = o();
return !(!a.test(e) && !r.test(e.substr(0, 4)))
}
}, {
key: "tablet",
value: function() {
return this.mobile() && !this.phone()
}
}]), u);
function u() {
if (!(this instanceof u)) throw new TypeError("Cannot call a class as a function")
}
function s(e, t) {
for (var o = 0; o < t.length; o++) {
var n = t[o];
n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0),
Object.defineProperty(e, n.key, n)
}
}
t.default = new c
}, function(e, t) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
t.default = function(e, a) {
var r = window.pageYOffset,
c = window.innerHeight;
e.forEach(function(e, t) {
var o, n, i;
o = c + r, n = a, i = (e = e).node.getAttribute("data-aos-once"), o > e
.position ? e.node.classList.add("aos-animate") : void 0 === i ||
"false" !== i && (n || "true" === i) || e.node.classList.remove(
"aos-animate")
})
}
}, function(e, t, o) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var o = o(12),
n = (o = o) && o.__esModule ? o : {
default: o
};
t.default = function(e, o) {
return e.forEach(function(e, t) {
e.node.classList.add("aos-init"), e.position = (0, n.default)(e.node, o.offset)
}), e
}
}, function(e, t, o) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var o = o(13),
r = (o = o) && o.__esModule ? o : {
default: o
};
t.default = function(e, t) {
var o = 0,
n = 0,
i = window.innerHeight,
a = {
offset: e.getAttribute("data-aos-offset"),
anchor: e.getAttribute("data-aos-anchor"),
anchorPlacement: e.getAttribute("data-aos-anchor-placement")
};
switch (a.offset && !isNaN(a.offset) && (n = parseInt(a.offset)), a.anchor && document
.querySelectorAll(a.anchor) && (e = document.querySelectorAll(a.anchor)[0]), o = (0, r
.default)(e).top, a.anchorPlacement) {
case "top-bottom":
break;
case "center-bottom":
o += e.offsetHeight / 2;
break;
case "bottom-bottom":
o += e.offsetHeight;
break;
case "top-center":
o += i / 2;
break;
case "bottom-center":
o += i / 2 + e.offsetHeight;
break;
case "center-center":
o += i / 2 + e.offsetHeight / 2;
break;
case "top-top":
o += i;
break;
case "bottom-top":
o += e.offsetHeight + i;
break;
case "center-top":
o += e.offsetHeight / 2 + i
}
return o + (n = a.anchorPlacement || a.offset || isNaN(t) ? n : t)
}
}, function(e, t) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
t.default = function(e) {
for (var t = 0, o = 0; e && !isNaN(e.offsetLeft) && !isNaN(e.offsetTop);) t += e
.offsetLeft - ("BODY" != e.tagName ? e.scrollLeft : 0), o += e.offsetTop - ("BODY" != e
.tagName ? e.scrollTop : 0), e = e.offsetParent;
return {
top: o,
left: t
}
}
}, function(e, t) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
t.default = function(e) {
return e = e || document.querySelectorAll("[data-aos]"), Array.prototype.map.call(e,
function(e) {
return {
node: e
}
})
}
}], i = {}, o.m = n, o.c = i, o.p = "dist/", o(0);
function o(e) {
var t;
return (i[e] || (t = i[e] = {
exports: {},
id: e,
loaded: !1
}, n[e].call(t.exports, t, t.exports, o), t.loaded = !0, t)).exports
}
var n, i
});
! function() {
"use strict";
function e(t) {
if (!t) throw new Error("No options passed to Waypoint constructor");
if (!t.element) throw new Error("No element option passed to Waypoint constructor");
if (!t.handler) throw new Error("No handler option passed to Waypoint constructor");
this.key = "waypoint-" + i, this.options = e.Adapter.extend({}, e.defaults, t), this.element = this.options
.element, this.adapter = new e.Adapter(this.element), this.callback = t.handler, this.axis = this.options
.horizontal ? "horizontal" : "vertical", this.enabled = this.options.enabled, this.triggerPoint = null, this
.group = e.Group.findOrCreate({
name: this.options.group,
axis: this.axis
}), this.context = e.Context.findOrCreateByElement(this.options.context), e.offsetAliases[this.options
.offset] && (this.options.offset = e.offsetAliases[this.options.offset]), this.group.add(this), this
.context.add(this), r[this.key] = this, i += 1
}
var i = 0,
r = {};
e.prototype.queueTrigger = function(t) {
this.group.queueTrigger(this, t)
}, e.prototype.trigger = function(t) {
this.enabled && this.callback && this.callback.apply(this, t)
}, e.prototype.destroy = function() {
this.context.remove(this), this.group.remove(this), delete r[this.key]
}, e.prototype.disable = function() {
return this.enabled = !1, this
}, e.prototype.enable = function() {
return this.context.refresh(), this.enabled = !0, this
}, e.prototype.next = function() {
return this.group.next(this)
}, e.prototype.previous = function() {
return this.group.previous(this)
}, e.invokeAll = function(t) {
var e, i = [];
for (e in r) i.push(r[e]);
for (var o = 0, n = i.length; o < n; o++) i[o][t]()
}, e.destroyAll = function() {
e.invokeAll("destroy")
}, e.disableAll = function() {
e.invokeAll("disable")
}, e.enableAll = function() {
e.invokeAll("enable")
}, e.refreshAll = function() {
e.Context.refreshAll()
}, e.viewportHeight = function() {
return window.innerHeight || document.documentElement.clientHeight
}, e.viewportWidth = function() {
return document.documentElement.clientWidth
}, e.adapters = [], e.defaults = {
context: window,
continuous: !0,
enabled: !0,
group: "default",
horizontal: !1,
offset: 0
}, e.offsetAliases = {
"bottom-in-view": function() {
return this.context.innerHeight() - this.adapter.outerHeight()
},
"right-in-view": function() {
return this.context.innerWidth() - this.adapter.outerWidth()
}
}, window.Waypoint = e
}(),
function() {
"use strict";
function e(t) {
window.setTimeout(t, 1e3 / 60)
}
function i(t) {
this.element = t, this.Adapter = d.Adapter, this.adapter = new this.Adapter(t), this.key = "waypoint-context-" +
o, this.didScroll = !1, this.didResize = !1, this.oldScroll = {
x: this.adapter.scrollLeft(),
y: this.adapter.scrollTop()
}, this.waypoints = {
vertical: {},
horizontal: {}
}, t.waypointContextKey = this.key, n[t.waypointContextKey] = this, o += 1, this
.createThrottledScrollHandler(), this.createThrottledResizeHandler()
}
var o = 0,
n = {},
d = window.Waypoint,
t = window.onload;
i.prototype.add = function(t) {
var e = t.options.horizontal ? "horizontal" : "vertical";
this.waypoints[e][t.key] = t, this.refresh()
}, i.prototype.checkEmpty = function() {
var t = this.Adapter.isEmptyObject(this.waypoints.horizontal),
e = this.Adapter.isEmptyObject(this.waypoints.vertical);
t && e && (this.adapter.off(".waypoints"), delete n[this.key])
}, i.prototype.createThrottledResizeHandler = function() {
function t() {
e.handleResize(), e.didResize = !1
}
var e = this;
this.adapter.on("resize.waypoints", function() {
e.didResize || (e.didResize = !0, d.requestAnimationFrame(t))
})
}, i.prototype.createThrottledScrollHandler = function() {
function t() {
e.handleScroll(), e.didScroll = !1
}
var e = this;
this.adapter.on("scroll.waypoints", function() {
e.didScroll && !d.isTouch || (e.didScroll = !0, d.requestAnimationFrame(t))
})
}, i.prototype.handleResize = function() {
d.Context.refreshAll()
}, i.prototype.handleScroll = function() {
var t, e, i = {},
o = {
horizontal: {
newScroll: this.adapter.scrollLeft(),
oldScroll: this.oldScroll.x,
forward: "right",
backward: "left"
},
vertical: {
newScroll: this.adapter.scrollTop(),
oldScroll: this.oldScroll.y,
forward: "down",
backward: "up"
}
};
for (t in o) {
var n, r = o[t],
s = r.newScroll > r.oldScroll ? r.forward : r.backward;
for (n in this.waypoints[t]) {
var a = this.waypoints[t][n],
l = r.oldScroll < a.triggerPoint,
h = r.newScroll >= a.triggerPoint;
(l && h || !l && !h) && (a.queueTrigger(s), i[a.group.id] = a.group)
}
}
for (e in i) i[e].flushTriggers();
this.oldScroll = {
x: o.horizontal.newScroll,
y: o.vertical.newScroll
}
}, i.prototype.innerHeight = function() {
return this.element == this.element.window ? d.viewportHeight() : this.adapter.innerHeight()
}, i.prototype.remove = function(t) {
delete this.waypoints[t.axis][t.key], this.checkEmpty()
}, i.prototype.innerWidth = function() {
return this.element == this.element.window ? d.viewportWidth() : this.adapter.innerWidth()
}, i.prototype.destroy = function() {
var t, e = [];
for (t in this.waypoints)
for (var i in this.waypoints[t]) e.push(this.waypoints[t][i]);
for (var o = 0, n = e.length; o < n; o++) e[o].destroy()
}, i.prototype.refresh = function() {
var t, e, i = this.element == this.element.window,
o = i ? void 0 : this.adapter.offset(),
n = {};
for (e in this.handleScroll(), t = {
horizontal: {
contextOffset: i ? 0 : o.left,
contextScroll: i ? 0 : this.oldScroll.x,
contextDimension: this.innerWidth(),
oldScroll: this.oldScroll.x,
forward: "right",
backward: "left",
offsetProp: "left"
},
vertical: {
contextOffset: i ? 0 : o.top,
contextScroll: i ? 0 : this.oldScroll.y,
contextDimension: this.innerHeight(),
oldScroll: this.oldScroll.y,
forward: "down",
backward: "up",
offsetProp: "top"
}
}) {
var r, s = t[e];
for (r in this.waypoints[e]) {
var a, l = this.waypoints[e][r],
h = l.options.offset,
p = l.triggerPoint,
c = 0,
u = null == p;
l.element !== l.element.window && (c = l.adapter.offset()[s.offsetProp]), "function" == typeof h ?
h = h.apply(l) : "string" == typeof h && (h = parseFloat(h), -1 < l.options.offset.indexOf(
"%")) && (h = Math.ceil(s.contextDimension * h / 100)), a = s.contextScroll - s.contextOffset, l
.triggerPoint = c + a - h, c = p < s.oldScroll, a = l.triggerPoint >= s.oldScroll, h = !c && !a,
!u && (c && a) ? (l.queueTrigger(s.backward), n[l.group.id] = l.group) : (!u && h || u && s
.oldScroll >= l.triggerPoint) && (l.queueTrigger(s.forward), n[l.group.id] = l.group)
}
}
return d.requestAnimationFrame(function() {
for (var t in n) n[t].flushTriggers()
}), this
}, i.findOrCreateByElement = function(t) {
return i.findByElement(t) || new i(t)
}, i.refreshAll = function() {
for (var t in n) n[t].refresh()
}, i.findByElement = function(t) {
return n[t.waypointContextKey]
}, window.onload = function() {
t && t(), i.refreshAll()
}, d.requestAnimationFrame = function(t) {
(window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || e)
.call(window, t)
}, d.Context = i
}(),
function() {
"use strict";
function r(t, e) {
return t.triggerPoint - e.triggerPoint
}
function s(t, e) {
return e.triggerPoint - t.triggerPoint
}
function e(t) {
this.name = t.name, this.axis = t.axis, this.id = this.name + "-" + this.axis, this.waypoints = [], this
.clearTriggerQueues(), i[this.axis][this.name] = this
}
var i = {
vertical: {},
horizontal: {}
},
o = window.Waypoint;
e.prototype.add = function(t) {
this.waypoints.push(t)
}, e.prototype.clearTriggerQueues = function() {
this.triggerQueues = {
up: [],
down: [],
left: [],
right: []
}
}, e.prototype.flushTriggers = function() {
for (var t in this.triggerQueues) {
var e = this.triggerQueues[t];
e.sort("up" === t || "left" === t ? s : r);
for (var i = 0, o = e.length; i < o; i += 1) {
var n = e[i];
!n.options.continuous && i !== e.length - 1 || n.trigger([t])
}
}
this.clearTriggerQueues()
}, e.prototype.next = function(t) {
this.waypoints.sort(r);
t = o.Adapter.inArray(t, this.waypoints);
return t === this.waypoints.length - 1 ? null : this.waypoints[t + 1]
}, e.prototype.previous = function(t) {
this.waypoints.sort(r);
t = o.Adapter.inArray(t, this.waypoints);
return t ? this.waypoints[t - 1] : null
}, e.prototype.queueTrigger = function(t, e) {
this.triggerQueues[e].push(t)
}, e.prototype.remove = function(t) {
t = o.Adapter.inArray(t, this.waypoints); - 1 < t && this.waypoints.splice(t, 1)
}, e.prototype.first = function() {
return this.waypoints[0]
}, e.prototype.last = function() {
return this.waypoints[this.waypoints.length - 1]
}, e.findOrCreate = function(t) {
return i[t.axis][t.name] || new e(t)
}, o.Group = e
}(),
function() {
"use strict";
function i(t) {
this.$element = o(t)
}
var o = window.jQuery,
t = window.Waypoint;
o.each(["innerHeight", "innerWidth", "off", "offset", "on", "outerHeight", "outerWidth", "scrollLeft", "scrollTop"],
function(t, e) {
i.prototype[e] = function() {
var t = Array.prototype.slice.call(arguments);
return this.$element[e].apply(this.$element, t)
}
}), o.each(["extend", "inArray", "isEmptyObject"], function(t, e) {
i[e] = o[e]
}), t.adapters.push({
name: "jquery",
Adapter: i
}), t.Adapter = i
}(),
function() {
"use strict";
function t(o) {
return function() {
var e = [],
i = arguments[0];
return o.isFunction(arguments[0]) && ((i = o.extend({}, arguments[1])).handler = arguments[0]), this
.each(function() {
var t = o.extend({}, i, {
element: this
});
"string" == typeof t.context && (t.context = o(this).closest(t.context)[0]), e.push(new n(
t))
}), e
}
}
var n = window.Waypoint;
window.jQuery && (window.jQuery.fn.waypoint = t(window.jQuery)), window.Zepto && (window.Zepto.fn.waypoint = t(
window.Zepto))
}();
var __assign = this && this.__assign || function() {
return (__assign = Object.assign || function(t) {
for (var i, n = 1, a = arguments.length; n < a; n++)
for (var s in i = arguments[n]) Object.prototype.hasOwnProperty.call(i, s) && (t[s] = i[s]);
return t
}).apply(this, arguments)
},
CountUp = function() {
function t(t, i, n) {
var r = this;
this.endVal = i, this.options = n, this.version = "2.1.0", this.defaults = {
startVal: 0,
decimalPlaces: 0,
duration: 2,
useEasing: !0,
useGrouping: !0,
smartEasingThreshold: 999,
smartEasingAmount: 333,
separator: ",",
decimal: ".",
prefix: "",
suffix: "",
enableScrollSpy: !1,
scrollSpyDelay: 200
}, this.finalEndVal = null, this.useEasing = !0, this.countDown = !1, this.error = "", this.startVal =
0, this.paused = !0, this.count = function(t) {
r.startTime || (r.startTime = t);
t -= r.startTime;
r.remaining = r.duration - t, r.useEasing ? r.countDown ? r.frameVal = r.startVal - r.easingFn(t, 0,
r.startVal - r.endVal, r.duration) : r.frameVal = r.easingFn(t, r.startVal, r.endVal - r
.startVal, r.duration) : r.countDown ? r.frameVal = r.startVal - (r.startVal - r.endVal) * (
t / r.duration) : r.frameVal = r.startVal + (r.endVal - r.startVal) * (t / r.duration), r
.countDown ? r.frameVal = r.frameVal < r.endVal ? r.endVal : r.frameVal : r.frameVal = r
.frameVal > r.endVal ? r.endVal : r.frameVal, r.frameVal = Number(r.frameVal.toFixed(r.options
.decimalPlaces)), r.printValue(r.frameVal), t < r.duration ? r.rAF = requestAnimationFrame(r
.count) : null !== r.finalEndVal ? r.update(r.finalEndVal) : r.callback && r.callback()
}, this.formatNumber = function(t) {
var i = t < 0 ? "-" : "",
t = Math.abs(t).toFixed(r.options.decimalPlaces),
t = (t += "").split("."),
n = t[0],
t = 1 < t.length ? r.options.decimal + t[1] : "";
if (r.options.useGrouping) {
for (var a = "", s = 0, e = n.length; s < e; ++s) 0 !== s && s % 3 == 0 && (a = r.options
.separator + a), a = n[e - s - 1] + a;
n = a
}
return r.options.numerals && r.options.numerals.length && (n = n.replace(/[0-9]/g, function(t) {
return r.options.numerals[+t]
}), t = t.replace(/[0-9]/g, function(t) {
return r.options.numerals[+t]
})), i + r.options.prefix + n + t + r.options.suffix
}, this.easeOutExpo = function(t, i, n, a) {
return n * (1 - Math.pow(2, -10 * t / a)) * 1024 / 1023 + i
}, this.options = __assign(__assign({}, this.defaults), n), this.formattingFn = this.options
.formattingFn || this.formatNumber, this.easingFn = this.options.easingFn || this.easeOutExpo, this
.startVal = this.validateValue(this.options.startVal), this.frameVal = this.startVal, this.endVal = this
.validateValue(i), this.options.decimalPlaces = Math.max(this.options.decimalPlaces), this
.resetDuration(), this.options.separator = String(this.options.separator), this.useEasing = this.options
.useEasing, "" === this.options.separator && (this.options.useGrouping = !1), this.el = "string" ==
typeof t ? document.getElementById(t) : t, this.el ? this.printValue(this.startVal) : this.error =
"[CountUp] target is null or undefined", void 0 !== window && this.options.enableScrollSpy && (this
.error ? console.error(this.error, t) : (window.onScrollFns = window.onScrollFns || [], window
.onScrollFns.push(function() {
return r.handleScroll(r)
}), window.onscroll = function() {
window.onScrollFns.forEach(function(t) {
return t()
})
}, this.handleScroll(this)))
}
return t.prototype.handleScroll = function(t) {
var i, n;
t && window && (i = window.innerHeight + window.scrollY, (n = t.el.offsetTop + t.el.offsetHeight) < i &&
n > window.scrollY && t.paused ? (t.paused = !1, setTimeout(function() {
return t.start()
}, t.options.scrollSpyDelay)) : window.scrollY > n && !t.paused && t.reset())
}, t.prototype.determineDirectionAndSmartEasing = function() {
var t = this.finalEndVal || this.endVal,
i = (this.countDown = this.startVal > t, t - this.startVal);
Math.abs(i) > this.options.smartEasingThreshold ? (this.finalEndVal = t, i = this.countDown ? 1 : -1,
this.endVal = t + i * this.options.smartEasingAmount, this.duration = this.duration / 2) : (this
.endVal = t, this.finalEndVal = null), this.finalEndVal ? this.useEasing = !1 : this.useEasing =
this.options.useEasing
}, t.prototype.start = function(t) {
this.error || (this.callback = t, 0 < this.duration ? (this.determineDirectionAndSmartEasing(), this
.paused = !1, this.rAF = requestAnimationFrame(this.count)) : this.printValue(this.endVal))
}, t.prototype.pauseResume = function() {
this.paused ? (this.startTime = null, this.duration = this.remaining, this.startVal = this.frameVal,
this.determineDirectionAndSmartEasing(), this.rAF = requestAnimationFrame(this.count)) :
cancelAnimationFrame(this.rAF), this.paused = !this.paused
}, t.prototype.reset = function() {
cancelAnimationFrame(this.rAF), this.paused = !0, this.resetDuration(), this.startVal = this
.validateValue(this.options.startVal), this.frameVal = this.startVal, this.printValue(this.startVal)
}, t.prototype.update = function(t) {
cancelAnimationFrame(this.rAF), this.startTime = null, this.endVal = this.validateValue(t), this
.endVal !== this.frameVal && (this.startVal = this.frameVal, this.finalEndVal || this
.resetDuration(), this.finalEndVal = null, this.determineDirectionAndSmartEasing(), this.rAF =
requestAnimationFrame(this.count))
}, t.prototype.printValue = function(t) {
t = this.formattingFn(t);
"INPUT" === this.el.tagName ? this.el.value = t : "text" === this.el.tagName || "tspan" === this.el
.tagName ? this.el.textContent = t : this.el.innerHTML = t
}, t.prototype.ensureNumber = function(t) {
return "number" == typeof t && !isNaN(t)
}, t.prototype.validateValue = function(t) {
var i = Number(t);
return this.ensureNumber(i) ? i : (this.error = "[CountUp] invalid start or end value: " + t, null)
}, t.prototype.resetDuration = function() {
this.startTime = null, this.duration = 1e3 * Number(this.options.duration), this.remaining = this
.duration
}, t
}();
! function(a) {
a.fn.countup = function(t) {
if ("function" == typeof CountUp) {
var n = {
startVal: 0,
decimalPlaces: 0,
duration: 2
};
if ("number" == typeof t) n.endVal = t;
else {
if ("object" != typeof t) return void console.error(
"countUp-jquery requires its argument to be either an object or number");
a.extend(n, t)
}
return this.each(function(t, i) {
a(this).waypoint(function() {
new CountUp(i, n.endVal, n).start()
}, {
offset: "100%",
triggerOnce: !0
})
}), this
}
console.error("countUp.js is a required dependency of countUp-jquery.js.")
}
}(jQuery);
! function(e) {
"object" == typeof module && module.exports ? module.exports = e(require("jquery")) : "function" == typeof define &&
define.amd ? define(["jquery"], e) : e(jQuery)
}(function(g, c) {
"use strict";
function r(e, t) {
function i() {
s.$el = g(e), s.$el.length ? s._init(s.$el[0], t) : _(e) && (n[e] = t)
}
var s = this;
return s instanceof r ? void(r.pending ? g(window).on("validatorready", i) : i()) : new r(e, t)
}
function o(e, t) {
if (y(e)) {
var i, s = t ? !0 === t ? this : t : o.prototype;
for (i in e) p(i) && (s[i] = d(e[i]))
}
}
function u(e, t) {
if (y(e)) {
var i, s = t ? !0 === t ? this : t : u.prototype;
for (i in e) s[i] = e[i]
}
}
function d(e) {
switch (g.type(e)) {
case "function":
return e;
case "array":
var t = function() {
return e[0].test(this.value) || e[1] || !1
};
return t.msg = e[1], t;
case "regexp":
return function() {
return e.test(this.value)
}
}
}
function a(e) {
var t, i, s;
if (e && e.tagName) {
switch (e.tagName) {
case "INPUT":
case "SELECT":
case "TEXTAREA":
case "BUTTON":
case "FIELDSET":
t = e.form || g(e).closest("." + $);
break;
case "FORM":
t = e;
break;
default:
t = g(e).closest("." + $)
}
for (i in n)
if (g(t).is(i)) {
s = n[i];
break
} return g(t).data(w) || g(t)[w](s).data(w)
}
}
function f(e, t, i) {
var s = t.msg,
t = t._r;
return y(s) && (s = s[t]), s = _(s) ? s : b(e, R + "-" + t) || b(e, R) || (i ? _(i) ? i : i[t] : "")
}
function m(e) {
return "INPUT" === e.tagName && "checkbox" === e.type || "radio" === e.type
}
function h(e) {
return Date.parse(e.replace(/\.|\-/g, "/"))
}
function p(e) {
return /^\w+$/.test(e)
}
function v(e) {
var t = "#" === e.charAt(0);
return e = e.replace(/([:.{(|)}\/\[\]])/g, "\\$1"), t ? e : '[name="' + e + '"]:first'
}
function _(e) {
return "string" == typeof e
}
function y(e) {
return e && "[object Object]" === Object.prototype.toString.call(e)
}
function b(e, t, i) {
return e && e.tagName ? i === c ? e.getAttribute(t) : void(null === i ? e.removeAttribute(t) : e
.setAttribute(t, "" + i)) : null
}
var t, w = "validator",
k = "." + w,
x = ".field",
$ = "nice-" + w,
M = "msg-box",
C = "aria-invalid",
V = "data-rule",
R = "data-msg",
l = "data-tip",
O = "data-timely",
D = "data-target",
F = "novalidate",
E = ":verifiable",
s = /(&)?(!)?\b(\w+)(?:\[\s*(.*?\]?)\s*\]|\(\s*(.*?\)?)\s*\))?\s*(;|\|)?/g,
I = /(\w+)(?:\[\s*(.*?\]?)\s*\]|\(\s*(.*?\)?)\s*\))?/,
H = /(?:([^:;\(\[]*):)?(.*)/,
L = /[^\x00-\xff]/g,
B = /top|right|bottom|left/,
z = /(?:(cors|jsonp):)?(?:(post|get):)?(.+)/i,
P = /[<>'"`\\]|?\d+[A-F]?;?|%3[A-F]/gim,
Q = g.noop,
A = g.proxy,
j = g.trim,
q = g.isFunction,
U = document.documentMode || +(navigator.userAgent.match(/MSIE (\d+)/) && RegExp.$1),
n = {},
S = {
debug: 0,
theme: "default",
ignore: "",
focusInvalid: !0,
focusCleanup: !1,
stopOnError: !1,
beforeSubmit: null,
valid: null,
invalid: null,
validation: null,
formClass: "n-default",
validClass: "n-valid",
invalidClass: "n-invalid",
bindClassTo: null
},
T = {
timely: 1,
display: null,
target: null,
ignoreBlank: !1,
showOk: !0,
dataFilter: function(e) {
if (_(e) || y(e) && ("error" in e || "ok" in e)) return e
},
msgMaker: function(i) {
var s = '' + i.arrow;
return i.result ? g.each(i.result, function(e, t) {
s += '' + i.icon + '' + t.msg +
""
}) : s += i.icon + '' + i.msg + "", s += ""
},
msgWrapper: "span",
msgArrow: "",
msgIcon: '',
msgClass: "n-right",
msgStyle: "",
msgShow: null,
msgHide: null
},
N = {};
g.fn.validator = function(t) {
var e = this,
i = arguments;
return e.is(E) ? e : ((e = (e = e.is("form") ? e : this.find("form")).length ? e : this).each(
function() {
var e = g(this).data(w);
e ? _(t) ? "_" !== t.charAt(0) && e[t].apply(e, [].slice.call(i, 1)) : t && (e._reset(!
0), e._init(this, t)) : new r(this, t)
}), this)
}, g.fn.isValid = function(t, e) {
var i, s = a(this[0]),
n = q(t);
return !s || (s.checkOnly = !!(e = n || e !== c ? e : t), i = s.options, e = s._multiValidate(this.is(
E) ? this : this.find(E),
function(e) {
e || !i.focusInvalid || s.checkOnly || s.$el.find("[" + C + "]:first").focus(), n && (t
.length ? t(e) : e && t()), s.checkOnly = !1
}), n ? this : e)
}, g.extend(g.expr.pseudos || g.expr[":"], {
verifiable: function(e) {
var t = e.nodeName.toLowerCase();
return ("input" === t && !{
submit: 1,
button: 1,
reset: 1,
image: 1
} [e.type] || "select" === t || "textarea" === t || "true" === e.contentEditable) && !e
.disabled
},
filled: function(e) {
return !!j(g(e).val())
}
}), r.prototype = {
_init: function(e, t) {
var i, s, n, a = this;
function l() {
var e, t = this.options;
for (e in t) e in T && (this[e] = t[e]);
g.extend(this, {
_valHook: function() {
return "true" === this.element.contentEditable ? "text" : "val"
},
getValue: function() {
var e = this.element;
return "number" === e.type && e.validity && e.validity.badInput ?
"NaN" : g(e)[this._valHook()]()
},
setValue: function(e) {
g(this.element)[this._valHook()](this.value = e)
},
getRangeMsg: function(e, t, i) {
function s(e, t) {
return o ? t < e : t <= e
}
var n, a, l, r, o, u, d, c, f;
if (t) return l = (a = this).messages[a._r] || "", r = t[0].split("~"),
o = "false" === t[1], t = r[0], u = r[1], d = "rg", c = [""],
f = j(e) && +e == +e, 2 === r.length ? t && u ? (f && s(e, +
t) && s(+u, e) && (n = !0), c = c.concat(r), d = o ?
"gtlt" : "rg") : t && !u ? (f && s(e, +t) && (n = !0), c
.push(t), d = o ? "gt" : "gte") : !t && u && (f && s(+u,
e) && (n = !0), c.push(u), d = o ? "lt" : "lte") : (e === +
t && (n = !0), c.push(t), d = "eq"), l && (i && l[d + i] &&
(d += i), c[0] = l[d]), n || a._rules && (a._rules[a._i]
.msg = a.renderMsg.apply(null, c))
},
renderMsg: function() {
var e = arguments,
t = e[0],
i = e.length;
if (t) {
for (; --i;) t = t.replace("{" + i + "}", e[i]);
return t
}
}
})
}
function r(e, t, i) {
this.key = e, this.validator = n, g.extend(this, i, t)
}
q(t) && (t = {
valid: t
}), t = a._opt = t || {}, s = b(e, "data-" + w + "-option"), s = a._dataOpt = s && "{" === s
.charAt(0) ? new Function("return " + s)() : {}, i = a._themeOpt = N[t.theme || s.theme || S
.theme], i = a.options = g.extend({}, S, T, i, a.options, t, s), a.rules = new o(i
.rules, !0), a.messages = new u(i.messages, !0), a.Field = (n = a, l.prototype = n, r
.prototype = new l, r), a.elements = a.elements || {}, a.deferred = {}, a.errors = {}, a
.fields = {}, a._initFields(i.fields), a.$el.data(w) || (a.$el.data(w, a).addClass($ + " " +
i.formClass).on("form-submit-validate", function(e, t, i, s, n) {
a.vetoed = n.veto = !a.isValid, a.ajaxFormOptions = s
}).on("submit" + k + " validate" + k, A(a, "_submit")).on("reset" + k, A(a, "_reset"))
.on("showmsg" + k, A(a, "_showmsg")).on("hidemsg" + k, A(a, "_hidemsg")).on("focusin" +
k + " click" + k, E, A(a, "_focusin")).on("focusout" + k + " validate" + k, E, A(a,
"_focusout")).on("keyup" + k + " input" + k + " compositionstart compositionend", E,
A(a, "_focusout")).on("click" + k, ":radio,:checkbox", "click", A(a, "_focusout"))
.on("change" + k, 'select,input[type="file"]', "change", A(a, "_focusout")), a
._NOVALIDATE = b(e, F), b(e, F, F)), _(i.target) && a.$el.find(i.target).addClass(
"msg-container")
},
_guessAjax: function(e) {
function t(e, t, i) {
return !!(e && e[t] && g.map(e[t], function(e) {
return ~e.namespace.indexOf(i) ? 1 : null
}).length)
}(this.isAjaxSubmit = !!this.options.valid) || (e = (g._data || g.data)(e, "events"), this
.isAjaxSubmit = t(e, "valid", "form") || t(e, "submit", "form-plugin"))
},
_initFields: function(e) {
function t(e, t) {
var i;
null === t || l ? ((i = a.elements[e]) && a._resetElement(i, !0), delete a.fields[e]) : a
.fields[e] = new a.Field(e, _(t) ? {
rule: t
} : t, a.fields[e])
}
var i, s, n, a = this,
l = null === e;
if (l && (e = a.fields), y(e))
for (i in e)
if (~i.indexOf(","))
for (s = i.split(","), n = s.length; n--;) t(j(s[n]), e[i]);
else t(i, e[i]);
a.$el.find(E).each(function() {
a._parse(this)
})
},
_parse: function(e) {
var t, i = this,
s = e.name,
n = b(e, V);
return n && b(e, V, null), s = (s = e.id && ("#" + e.id in i.fields || !s || null !== n && (t =
i.fields[s]) && n !== t.rule && e.id !== t.key) ? "#" + e.id : s) || "#" + (e.id = "N" +
String(Math.random()).slice(-12)), (t = i.getField(s, !0)).rule = n || t.rule, (n = b(e,
"data-display")) && (t.display = n), t.rule && (null === b(e, "data-must") && !
/\b(?:match|checked)\b/.test(t.rule) || (t.must = !0), /\brequired\b/.test(t.rule) && (t
.required = !0), (n = b(e, O)) ? t.timely = +n : 3 < t.timely && b(e, O, t.timely),
i._parseRule(t), t.old = {}), _(t.target) && b(e, D, t.target), _(t.tip) && b(e, l, t
.tip), i.fields[s] = t
},
_parseRule: function(t) {
var e = H.exec(t.rule);
e && (t._i = 0, e[1] && (t.display = e[1]), e[2]) && (t._rules = [], e[2].replace(s,
function() {
var e = arguments;
e[4] = e[4] || e[5], t._rules.push({
and: "&" === e[1],
not: "!" === e[2],
or: "|" === e[6],
method: e[3],
params: e[4] ? g.map(e[4].split(", "), j) : c
})
}))
},
_multiValidate: function(e, t) {
var i = this,
s = i.options;
return i.hasError = !1, (e = s.ignore ? e.not(s.ignore) : e).each(function() {
if (i._validate(this), i.hasError && s.stopOnError) return !1
}), t && (i.validating = !0, g.when.apply(null, g.map(i.deferred, function(e) {
return e
})).done(function() {
t.call(i, !i.hasError), i.validating = !1
})), g.isEmptyObject(i.deferred) ? !i.hasError : c
},
_submit: function(e) {
var s = this,
n = s.options,
a = e.target,
l = "submit" === e.type && "FORM" === a.tagName && !e.isDefaultPrevented();
e.preventDefault(), (t ? ~(t = !1) : s.submiting) || "validate" === e.type && s.$el[0] !== a ||
q(n.beforeSubmit) && !1 === n.beforeSubmit.call(s, a) || (s.isAjaxSubmit === c && s
._guessAjax(a), s._debug("log", "\n<<< event: " + e.type), s._reset(), s.submiting = !0,
s._multiValidate(s.$el.find(E), function(e) {
var t, i = e || 2 === n.debug ? "valid" : "invalid";
e || (n.focusInvalid && s.$el.find("[" + C + "]:first").focus(), t = g.map(s
.errors,
function(e) {
return e
})), s.submiting = !1, s.isValid = e, q(n[i]) && n[i].call(s, a, t), s
.$el.trigger(i + ".form", [a, t]), s._debug("log", ">>> " + i), e && (s
.vetoed ? g(a).ajaxSubmit(s.ajaxFormOptions) : l && !s.isAjaxSubmit &&
document.createElement("form").submit.call(a))
}))
},
_reset: function(e) {
var t = this;
t.errors = {}, e && (t.reseting = !0, t.$el.find(E).each(function() {
t._resetElement(this)
}), delete t.reseting)
},
_resetElement: function(e, t) {
this._setClass(e, null), this.hideMsg(e)
},
_focusin: function(e) {
var t = this,
i = t.options,
s = e.target;
t.validating || "click" === e.type && document.activeElement === s || (i.focusCleanup &&
"true" === b(s, C) && (t._setClass(s, null), t.hideMsg(s)), (i = b(s, l)) ? t.showMsg(
s, {
type: "tip",
msg: i
}) : (b(s, V) && t._parse(s), !(i = b(s, O)) || 8 !== i && 9 !== i || t._focusout(e)))
},
_focusout: function(e) {
var t, i, s, n, a, l = this,
r = l.options,
o = e.target,
u = e.type,
d = "focusin" === u,
c = "validate" === u,
f = 0;
if ("compositionstart" === u && (l.pauseValidate = !0), "compositionend" === u && (l
.pauseValidate = !1), !l.pauseValidate && (t = o.name && m(o) ? l.$el.find(
'input[name="' + o.name + '"]').get(0) : o, i = l.getField(t)) && i.rule) {
if (t = i._e, i._e = u, a = i.timely, !c) {
if (!a || m(o) && "click" !== u) return;
if (s = i.getValue(), i.ignoreBlank && !s && !d) return void l.hideMsg(o);
if ("focusout" === u) {
if ("change" === t) return;
if (2 === a || 8 === a) {
if (n = i.old, !s || !n) return;
i.isValid && !n.showOk ? l.hideMsg(o) : l._makeMsg(o, i, n)
}
} else {
if (a < 2 && !e.data) return;
if ((n = +new Date) - (o._ts || 0) < 100) return;
if (o._ts = n, "keyup" === u) {
if ("input" === t) return;
if (9 === (n = e.keyCode) && !s) return;
if (n < 48 && !{
8: 1,
9: 1,
16: 1,
32: 1,
46: 1
} [n]) return
}
d || (f = a < 100 ? "click" === u || "SELECT" === o.tagName ? 0 : 400 : a)
}
}
r.ignore && g(o).is(r.ignore) || (clearTimeout(i._t), f ? i._t = setTimeout(function() {
l._validate(o, i)
}, f) : (c && (i.old = {}), l._validate(o, i)))
}
},
_setClass: function(e, t) {
var e = g(e),
i = this.options;
(e = i.bindClassTo ? e.closest(i.bindClassTo) : e).removeClass(i.invalidClass + " " + i
.validClass), null !== t && e.addClass(t ? i.validClass : i.invalidClass)
},
_showmsg: function(e, t, i) {
var s = this,
e = e.target;
s.$el.is(e) ? y(t) ? s.showMsg(t) : "tip" === t && s.$el.find(E + "[" + l + "]", e).each(
function() {
s.showMsg(this, {
type: t,
msg: i
})
}) : s.showMsg(e, {
type: t,
msg: i
})
},
_hidemsg: function(e) {
e = g(e.target);
e.is(E) && this.hideMsg(e)
},
_validatedField: function(e, t, i) {
var s = this,
n = s.options,
a = t.isValid = i.isValid = !!i.isValid,
l = a ? "valid" : "invalid";
i.key = t.key, i.ruleName = t._r, i.id = e.id, i.value = t.value, s.elements[t.key] = i
.element = e, s.isValid = s.$el[0].isValid = a && s.isFormValid(), a ? i.type = "ok" : (s
.submiting && (s.errors[t.key] = i.msg), s.hasError = !0), t.old = i, q(t[l]) && t[l]
.call(s, e, i), q(n.validation) && n.validation.call(s, e, i), g(e).attr(C, !a || null)
.trigger(l + x, [i, s]), s.$el.triggerHandler("validation", [i, s]), s.checkOnly || (s
._setClass(e, i.skip || "tip" === i.type ? null : a), s._makeMsg.apply(s, arguments))
},
_makeMsg: function(e, t, i) {
t.msgMaker && (i = g.extend({}, i), "focusin" === t._e && (i.type = "tip"), this[i.showOk || i
.msg || "tip" === i.type ? "showMsg" : "hideMsg"](e, i, t))
},
_validatedRule: function(i, s, e, t) {
s = s || r.getField(i), t = t || {};
var n, a, l, r = this,
o = s._r,
u = s.timely,
u = 9 === u || 8 === u,
d = !1;
if (null === e) r._validatedField(i, s, {
isValid: !0,
skip: !0
}), s._i = 0;
else {
if (e === c ? a = !0 : !0 === e || "" === e ? d = !0 : _(e) ? n = e : y(e) ? e.error ? n = e
.error : (n = e.ok, d = !0) : d = !!e, (e = s._rules[s._i]).not && (n = c, d =
"required" === o || !d), e.or)
if (d)
for (; s._i < s._rules.length && s._rules[s._i].or;) s._i++;
else a = !0;
else !e.and || s.isValid || (a = !0);
a ? d = !0 : (d && !1 !== s.showOk && (n = null === (l = b(i, "data-ok")) ? _(s.ok) ? s.ok :
n : l, !_(n) && _(s.showOk) && (n = s.showOk), _(n)) && (t.showOk = d), d && !
u || (n = (f(i, s, n || e.msg || r.messages[o]) || r.messages.fallback).replace(
/\{0\|?([^\}]*)\}/,
function(e, t) {
return r._getDisplay(i, s.display) || t || r.messages[0]
})), d || (s.isValid = d), t.msg = n, g(i).trigger((d ? "valid" : "invalid") +
".rule", [o, n])), !u || a && !e.and || (d || s._m || (s._m = n), s._v = s._v ||
[], s._v.push({
type: d ? a ? "tip" : "ok" : "error",
msg: n || e.msg
})), r._debug("log", " " + s._i + ": " + o + " => " + (d || n)), (d || u) && s
._i < s._rules.length - 1 ? (s._i++, r._checkRule(i, s)) : (s._i = 0, u ? (t.isValid = s
.isValid, t.result = s._v, t.msg = s._m || "", s.value || "focusin" !== s._e ||
(t.type = "tip")) : t.isValid = d, r._validatedField(i, s, t), delete s._m,
delete s._v)
}
},
_checkRule: function(n, a) {
var e, t, l = this,
i = a.key,
r = a._rules[a._i],
s = r.method,
o = r.params;
l.submiting && l.deferred[i] || (t = a.old, a._r = s, t && !a.must && !r.must && r.result !==
c && t.ruleName === s && t.id === n.id && a.value && t.value === a.value ? e = r
.result : (e = (t = function(e, t) {
if (e = (e = j(b(e, V + "-" + t))) && new Function("return " + e)())
return d(e)
}(n, s) || l.rules[s] || Q).call(a, n, o, a), t.msg && (r.msg = t.msg)), y(e) && q(e
.then) ? (l.deferred[i] = e, a.isValid = c, l.checkOnly || l.showMsg(n, {
type: "loading",
msg: l.messages.loading
}, a), e.then(function(e, t, i) {
var i = j(i.responseText),
s = a.dataFilter;
/jsonp?/.test(this.dataType) ? i = e : "{" === i.charAt(0) && (i = g
.parseJSON(i)), (e = s.call(this, i, a)) === c && (e = s.call(this,
i.data, a)), r.data = this.data, r.result = a.old ? e : c, l
._validatedRule(n, a, e)
}, function(e, t) {
l._validatedRule(n, a, l.messages[t] || t)
}).always(function() {
delete l.deferred[i]
})) : l._validatedRule(n, a, e))
},
_validate: function(e, t) {
var i = this;
if (!e.disabled && null === b(e, F) && (t = t || i.getField(e)) && (t._rules || i._parse(e), t
._rules)) return i._debug("info", t.key), t.isValid = !0, t.element = e, t.value = t
.getValue(), t.required || t.must || t.value || m(e) ? (i._checkRule(e, t), t.isValid) :
(i._validatedField(e, t, {
isValid: !0
}), !0)
},
_debug: function(e, t) {
window.console && this.options.debug && console[e](t)
},
test: function(e, t) {
var i, s, t = I.exec(t);
return t && (s = t[1]) in this.rules && (t = (t = t[2] || t[3]) ? t.split(", ") : c, (i = this
.getField(e, !0))._r = s, i.value = i.getValue(), i = this.rules[s].call(i, e, t)), !
0 === i || i === c || null === i
},
_getDisplay: function(e, t) {
return _(t) ? t : q(t) ? t.call(this, e) : ""
},
_getMsgOpt: function(e, t) {
var i, s, t = t || this.options;
return g.extend({
type: "error",
pos: (i = t.msgClass, (s = i ? B.exec(i) : s) && s[0]),
target: t.target,
wrapper: t.msgWrapper,
style: t.msgStyle,
cls: t.msgClass,
arrow: t.msgArrow,
icon: t.msgIcon
}, _(e) ? {
msg: e
} : e)
},
_getMsgDOM: function(e, t) {
var i, s, n, a, l = g(e);
return l.is(E) ? ((a = t.target || b(e, D)) && (a = q(a) ? a.call(this, e) : "#" === a.charAt(
0) ? g(a) : this.$el.find(a)).length && (a.is(E) ? e = (l = a).get(0) : a.hasClass(
M) ? i = a : n = a), i || (s = m(e) && e.name || !e.id ? e.name : e.id, i = (n ||
this.$el).find(t.wrapper + "." + M + '[for="' + s + '"]'))) : i = l, t.hide || i
.length || (i = g("<" + t.wrapper + ">").attr({
class: M + (t.cls ? " " + t.cls : ""),
style: t.style || c,
for: s
}), n ? i.appendTo(n) : m(e) ? (a = l.parent(), i.appendTo(a.is("label") ? a.parent() :
a)) : i[t.pos && "right" !== t.pos ? "insertBefore" : "insertAfter"](l)), i
},
showMsg: function(e, t, i) {
var s, n, a, l;
e && (l = (a = this).options, !y(e) || e.jquery || t ? (s = ((i = g(e).is(E) ? i || a.getField(
e) : i) || l).msgMaker) && (t = a._getMsgOpt(t, i), e = (e.name && m(e) ? a.$el
.find('input[name="' + e.name + '"]') : g(e)).get(0), t.msg || "error" === t
.type || null !== (n = b(e, "data-" + t.type)) && (t.msg = n), _(t.msg)) && (n = a
._getMsgDOM(e, t), B.test(n[0].className) || n.addClass(t.cls), 6 === U &&
"bottom" === t.pos && (n[0].style.marginTop = g(e).outerHeight() + "px"), n.html(s
.call(a, t))[0].style.display = "", q(s = i && i.msgShow || l.msgShow)) && s
.call(a, n, t.type) : g.each(e, function(e, t) {
e = a.elements[e] || a.$el.find(v(e))[0];
a.showMsg(e, t)
}))
},
hideMsg: function(e, t, i) {
var s = this,
n = s.options;
e = g(e).get(0), g(e).is(E) && (i = i || s.getField(e)) && (i.isValid || s.reseting) && b(e, C,
null), (t = s._getMsgOpt(t, i)).hide = !0, (e = s._getMsgDOM(e, t)).length && (q(i =
i && i.msgHide || n.msgHide) ? i.call(s, e, t.type) : (e[0].style.display = "none",
e[0].innerHTML = ""))
},
getField: function(e, t) {
var i, s;
if (_(e)) i = e, e = c;
else {
if (b(e, V)) return this._parse(e);
i = e.id && "#" + e.id in this.fields || !e.name ? "#" + e.id : e.name
}
return ((s = this.fields[i]) || t && (s = new this.Field(i))) && (s.element = e), s
},
setField: function(e, t) {
var i = {};
e && (_(e) ? i[e] = t : i = e, this._initFields(i))
},
isFormValid: function() {
var e, t, i = this.fields;
for (e in i)
if (t = i[e], t._rules && (t.required || t.must || t.value) && !t.isValid) return !1;
return !0
},
holdSubmit: function(e) {
this.submiting = e === c || e
},
cleanUp: function() {
this._reset(1)
},
destroy: function() {
this._reset(1), this.$el.off(k).removeData(w), b(this.$el[0], F, this._NOVALIDATE)
}
}, g(window).on("beforeunload", function() {
this.focus()
}), g(document).on("click", ":submit", function() {
var e;
this.form && ((e = this.getAttributeNode("formnovalidate")) && null !== e.nodeValue || null !== b(
this, F)) && (t = !0)
}).on("focusin submit validate", "form,." + $, function(e) {
var t, i;
null === b(this, F) && !(i = g(this)).data(w) && (t = a(this)) && (g.isEmptyObject(t.fields) ? (b(
this, F, F), i.off(k).removeData(w)) : "focusin" === e.type ? t._focusin(e) : t._submit(
e))
}), new u({
fallback: "This field is not valid.",
loading: "Validating..."
}), new o({
required: function(e, t) {
var i, s, n, a = this,
l = j(a.value),
r = !0;
if (t)
if (1 === t.length) {
if (p(t[0])) {
if (a.rules[t[0]]) {
if (!l && !a.test(e, t[0])) return null;
a._r = "required"
}
} else if (!l && !g(t[0], a.$el).length) return null
} else if ("not" === t[0]) g.each(t.slice(1), function() {
return r = l !== j(this)
});
else if ("from" === t[0]) return s = a.$el.find(t[1]), n = "_validated_", (r = s.filter(
function() {
var e = a.getField(this);
return e && !!j(e.getValue())
}).length >= (t[2] || 1)) ? l || (i = null) : i = f(s[0], a) || !1, g(e).data(
n) || s.data(n, 1).each(function() {
e !== this && a._validate(this)
}).removeData(n), i;
return r && !!l
},
integer: function(e, t) {
var i, s = "[1-9]\\d*",
t = t ? t[0] : "*";
switch (t) {
case "+":
i = s;
break;
case "-":
i = "-" + s;
break;
case "+0":
i = "0|" + s;
break;
case "-0":
i = "0|-" + s;
break;
default:
i = "0|-?" + s
}
return i = "^(?:" + i + ")$", new RegExp(i).test(this.value) || this.messages.integer &&
this.messages.integer[t]
},
match: function(e, t) {
if (t) {
var i, s, n, a, l = this,
r = !0,
o = "eq",
u = 1 === t.length ? t[0] : (o = t[0], t[1]),
d = v(u);
if (n = l.$el.find(d)[0]) {
if (a = l.getField(n), i = l.value, s = a.getValue(), l._match || (l.$el.on(
"valid" + x + k, d,
function() {
g(e).trigger("validate")
}), l._match = a._match = 1), !l.required && "" === i && "" === s)
return null;
if ((d = t[2]) && (/^date(time)?$/i.test(d) ? (i = h(i), s = h(s)) : "time" === d &&
(i = +i.replace(/:/g, ""), s = +s.replace(/:/g, ""))), "eq" !== o && !isNaN(
+i) && isNaN(+s)) return !0;
switch (o) {
case "lt":
r = +i < +s;
break;
case "lte":
r = +i <= +s;
break;
case "gte":
r = +s <= +i;
break;
case "gt":
r = +s < +i;
break;
case "neq":
r = i !== s;
break;
default:
r = i === s
}
return r || y(l.messages.match) && l.messages.match[o].replace("{1}", l._getDisplay(
n, a.display || u))
}
}
},
range: function(e, t) {
return this.getRangeMsg(this.value, t)
},
checked: function(e, t) {
var i;
if (m(e)) return e = e.name ? this.$el.find('input[name="' + e.name + '"]').filter(
function() {
return !i && m(this) && (i = this), !this.disabled && this.checked
}).length : (i = e).checked, t ? this.getRangeMsg(e, t) : !!e || f(i, this, "") ||
this.messages.required || !1
},
length: function(e, t) {
var i = this.value,
i = ("true" === t[1] ? i.replace(L, "xx") : i).length;
return this.getRangeMsg(i, t, t[1] ? "_2" : "")
},
remote: function(e, t) {
var i, s, n, a, l, r, o, u;
if (t) return s = this, u = z.exec(t[0]), n = s._rules[s._i], a = {}, l = "", r = u[3], o =
u[2] || "POST", u = (u[1] || "").toLowerCase(), n.must = !0, a[e.name] = s.value, t[
1] && g.map(t.slice(1), function(e) {
var t;
~e.indexOf("=") ? l += "&" + e : (t = e.split(":"), e = j(t[0]), t = j(t[
1]) || e, a[e] = s.$el.find(v(t)).val())
}), a = g.param(a) + l, !s.must && n.data && n.data === a ? n.result : ("cors" !==
u && /^https?:/.test(r) && !~r.indexOf(location.host) && (i = "jsonp"), g.ajax({
url: r,
type: o,
data: a,
dataType: i
}))
},
filter: function(e, t) {
var i = this.value,
t = i.replace(t ? new RegExp("[" + t[0] + "]", "gm") : P, "");
t !== i && this.setValue(t)
}
}), r.config = function(e, t) {
function i(e, t) {
"rules" === e ? new o(t) : "messages" === e ? new u(t) : e in T ? T[e] = t : S[e] = t
}
y(e) ? g.each(e, i) : _(e) && i(e, t)
}, r.setTheme = function(e, t) {
y(e) ? g.extend(!0, N, e) : _(e) && y(t) && (N[e] = g.extend(N[e], t))
}, r.load = function(e) {
var t, i, s, n, a, l;
e && (n = document, a = {}, l = n.scripts[0], e.replace(/([^?=&]+)=([^]*)/g, function(e, t, i) {
a[t] = i
}), t = a.dir || r.dir, r.css || "" === a.css || ((i = n.createElement("link")).rel =
"stylesheet", i.href = r.css = t + "jquery.validator.css", l.parentNode.insertBefore(i, l)),
!r.local) && ~e.indexOf("local") && "" !== a.local && (r.local = (a.local || n.documentElement
.lang || "en").replace("_", "-"), r.pending = 1, (i = n.createElement("script")).src = t +
"local/" + r.local + ".js", s = "onload" in i ? "onload" : "onreadystatechange", i[s] =
function() {
i.readyState && !/loaded|complete/.test(i.readyState) || (i = i[s] = null, delete r.pending,
g(window).triggerHandler("validatorready"))
}, l.parentNode.insertBefore(i, l))
};
for (var e, i, W = document.scripts, X = W.length, J =
/(.*validator(?:\.min)?.js)(\?.*(?:local|css|dir)(?:=[\w\-]*)?)?/; X-- && !i;) i = ((e = W[X])
.hasAttribute ? e.src : e.getAttribute("src", 4) || "").match(J);
return i && (r.dir = i[1].split("/").slice(0, -1).join("/") + "/", r.load(i[2])), g[w] = r
}),
function(e) {
"object" == typeof module && module.exports ? module.exports = e(require("jquery")) : "function" == typeof define &&
define.amd ? define(["jquery"], e) : e(jQuery)
}(function(i) {
i.validator.config({
rules: {
digits: [/^\d+$/, "请填写数字"],
letters: [/^[a-z]+$/i, "请填写字母"],
date: [/^\d{4}-\d{2}-\d{2}$/, "请填写有效的日期,格式:yyyy-mm-dd"],
time: [/^([01]\d|2[0-3])(:[0-5]\d){1,2}$/, "请填写有效的时间,00:00到23:59之间"],
email: [/^[\w\+\-]+(\.[\w\+\-]+)*@[a-z\d\-]+(\.[a-z\d\-]+)*\.([a-z]{2,4})$/i, "请填写有效的邮箱"],
url: [/^(https?|s?ftp):\/\/\S+$/i, "请填写有效的网址"],
qq: [/^[1-9]\d{4,}$/, "请填写有效的QQ号"],
IDcard: [/^\d{6}(19|2\d)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)?$/,
"请填写正确的身份证号码"],
tel: [/^(?:(?:0\d{2,3}[\- ]?[1-9]\d{6,7})|(?:[48]00[\- ]?[1-9]\d{6}))$/, "请填写有效的电话号码"],
mobile: [/^1[3-9]\d{9}$/, "请填写有效的手机号"],
zipcode: [/^\d{6}$/, "请检查邮政编码格式"],
chinese: [/^[\u0391-\uFFE5]+$/, "请填写中文字符"],
username: [/^\w{3,12}$/, "请填写3-12位数字、字母、下划线"],
password: [/^[\S]{6,16}$/, "请填写6-16位字符,不能包含空格"],
accept: function(e, t) {
return !t || (t = t[0], e = i(e).val(), "*" === t) || new RegExp(".(?:" + t + ")$", "i")
.test(e) || this.renderMsg("只接受{1}后缀的文件", t.replace(/\|/g, ","))
}
},
messages: {
0: "此处",
fallback: "{0}格式不正确",
loading: "正在验证...",
error: "网络异常",
timeout: "请求超时",
required: "{0}不能为空",
remote: "{0}已被使用",
integer: {
"*": "请填写整数",
"+": "请填写正整数",
"+0": "请填写正整数或0",
"-": "请填写负整数",
"-0": "请填写负整数或0"
},
match: {
eq: "{0}与{1}不一致",
neq: "{0}与{1}不能相同",
lt: "{0}必须小于{1}",
gt: "{0}必须大于{1}",
lte: "{0}不能大于{1}",
gte: "{0}不能小于{1}"
},
range: {
rg: "请填写{1}到{2}的数",
gte: "请填写不小于{1}的数",
lte: "请填写最大{1}的数",
gtlt: "请填写{1}到{2}之间的数",
gt: "请填写大于{1}的数",
lt: "请填写小于{1}的数"
},
checked: {
eq: "请选择{1}项",
rg: "请选择{1}到{2}项",
gte: "请至少选择{1}项",
lte: "请最多选择{1}项"
},
length: {
eq: "请填写{1}个字符",
rg: "请填写{1}到{2}个字符",
gte: "请至少填写{1}个字符",
lte: "请最多填写{1}个字符",
eq_2: "",
rg_2: "",
gte_2: "",
lte_2: ""
}
}
});
var e = '◆◆';
i.validator.setTheme({
simple_right: {
formClass: "n-simple",
msgClass: "n-right"
},
simple_bottom: {
formClass: "n-simple",
msgClass: "n-bottom"
},
yellow_top: {
formClass: "n-yellow",
msgClass: "n-top",
msgArrow: e
},
yellow_right: {
formClass: "n-yellow",
msgClass: "n-right",
msgArrow: e
},
yellow_right_effect: {
formClass: "n-yellow",
msgClass: "n-right",
msgArrow: e,
msgShow: function(e, t) {
e = e.children();
e.is(":animated") || ("error" === t ? e.css({
left: "20px",
opacity: 0
}).delay(100).show().stop().animate({
left: "-4px",
opacity: 1
}, 150).animate({
left: "3px"
}, 80).animate({
left: 0
}, 80) : e.css({
left: 0,
opacity: 1
}).fadeIn(200))
},
msgHide: function(e, t) {
e.children().stop().delay(100).show().animate({
left: "20px",
opacity: 0
}, 300, function() {
e.hide()
})
}
}
})
});
! function(t, i) {
"function" == typeof define && define.amd ? define(["jquery"], i) : "object" == typeof exports ? module.exports = i(
require("jquery")) : t.lightbox = i(t.jQuery)
}(this, function(d) {
function t(t) {
this.album = [], this.currentImageIndex = void 0, this.init(), this.options = d.extend({}, this.constructor
.defaults), this.option(t)
}
return t.defaults = {
albumLabel: "Image %1 of %2",
alwaysShowNavOnTouchDevices: !1,
fadeDuration: 600,
fitImagesInViewport: !0,
imageFadeDuration: 600,
positionFromTop: 50,
resizeDuration: 700,
showImageNumberLabel: !0,
wrapAround: !1,
disableScrolling: !1,
sanitizeTitle: !1
}, t.prototype.option = function(t) {
d.extend(this.options, t)
}, t.prototype.imageCountLabel = function(t, i) {
return this.options.albumLabel.replace(/%1/g, t).replace(/%2/g, i)
}, t.prototype.init = function() {
var t = this;
d(document).ready(function() {
t.enable(), t.build()
})
}, t.prototype.enable = function() {
var i = this;
d("body").on("click", "a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]",
function(t) {
return i.start(d(t.currentTarget)), !1
})
}, t.prototype.build = function() {
var i;
0 < d("#lightbox").length || (i = this, d(
'
'
).appendTo(d("body")), this.$lightbox = d("#lightbox"), this.$overlay = d(
"#lightboxOverlay"), this.$outerContainer = this.$lightbox.find(".lb-outerContainer"), this
.$container = this.$lightbox.find(".lb-container"), this.$image = this.$lightbox.find(
".lb-image"), this.$nav = this.$lightbox.find(".lb-nav"), this.containerPadding = {
top: parseInt(this.$container.css("padding-top"), 10),
right: parseInt(this.$container.css("padding-right"), 10),
bottom: parseInt(this.$container.css("padding-bottom"), 10),
left: parseInt(this.$container.css("padding-left"), 10)
}, this.imageBorderWidth = {
top: parseInt(this.$image.css("border-top-width"), 10),
right: parseInt(this.$image.css("border-right-width"), 10),
bottom: parseInt(this.$image.css("border-bottom-width"), 10),
left: parseInt(this.$image.css("border-left-width"), 10)
}, this.$overlay.hide().on("click", function() {
return i.end(), !1
}), this.$lightbox.hide().on("click", function(t) {
"lightbox" === d(t.target).attr("id") && i.end()
}), this.$outerContainer.on("click", function(t) {
return "lightbox" === d(t.target).attr("id") && i.end(), !1
}), this.$lightbox.find(".lb-prev").on("click", function() {
return 0 === i.currentImageIndex ? i.changeImage(i.album.length - 1) : i.changeImage(i
.currentImageIndex - 1), !1
}), this.$lightbox.find(".lb-next").on("click", function() {
return i.currentImageIndex === i.album.length - 1 ? i.changeImage(0) : i.changeImage(i
.currentImageIndex + 1), !1
}), this.$nav.on("mousedown", function(t) {
3 === t.which && (i.$nav.css("pointer-events", "none"), i.$lightbox.one("contextmenu",
function() {
setTimeout(function() {
this.$nav.css("pointer-events", "auto")
}.bind(i), 0)
}))
}), this.$lightbox.find(".lb-loader, .lb-close").on("click", function() {
return i.end(), !1
}))
}, t.prototype.start = function(t) {
function i(t) {
e.album.push({
alt: t.attr("data-alt"),
link: t.attr("href"),
title: t.attr("data-title") || t.attr("title")
})
}
var e = this,
n = d(window);
n.on("resize", d.proxy(this.sizeOverlay, this)), this.sizeOverlay(), this.album = [];
var o = 0,
a = t.attr("data-lightbox");
if (a)
for (var s = d(t.prop("tagName") + '[data-lightbox="' + a + '"]'), h = 0; h < s.length; h = ++h) i(
d(s[h])), s[h] === t[0] && (o = h);
else if ("lightbox" === t.attr("rel")) i(t);
else {
s = d(t.prop("tagName") + '[rel="' + t.attr("rel") + '"]');
for (var r = 0; r < s.length; r = ++r) i(d(s[r])), s[r] === t[0] && (o = r)
}
a = n.scrollTop() + this.options.positionFromTop, n = n.scrollLeft();
this.$lightbox.css({
top: a + "px",
left: n + "px"
}).fadeIn(this.options.fadeDuration), this.options.disableScrolling && d("body").addClass(
"lb-disable-scrolling"), this.changeImage(o)
}, t.prototype.changeImage = function(o) {
var a = this,
s = this.album[o].link,
h = s.split(".").slice(-1)[0],
r = this.$lightbox.find(".lb-image"),
l = (this.disableKeyboardNav(), this.$overlay.fadeIn(this.options.fadeDuration), d(".lb-loader")
.fadeIn("slow"), this.$lightbox.find(
".lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption")
.hide(), this.$outerContainer.addClass("animating"), new Image);
l.onload = function() {
var t, i, e, n;
r.attr({
alt: a.album[o].alt,
src: s
}), d(l), r.width(l.width), r.height(l.height), n = d(window).width(), e = d(window)
.height(), n = n - a.containerPadding.left - a.containerPadding.right - a.imageBorderWidth
.left - a.imageBorderWidth.right - 20, e = e - a.containerPadding.top - a.containerPadding
.bottom - a.imageBorderWidth.top - a.imageBorderWidth.bottom - a.options.positionFromTop -
70, "svg" === h && (r.width(n), r.height(e)), a.options.fitImagesInViewport ? (a.options
.maxWidth && a.options.maxWidth < n && (n = a.options.maxWidth), a.options.maxHeight &&
a.options.maxHeight < e && (e = a.options.maxHeight)) : (n = a.options.maxWidth || l
.width || n, e = a.options.maxHeight || l.height || e), (l.width > n || l.height > e) &&
(l.width / n > l.height / e ? (i = n, t = parseInt(l.height / (l.width / i), 10)) : (t = e,
i = parseInt(l.width / (l.height / t), 10)), r.width(i), r.height(t)), a.sizeContainer(r
.width(), r.height())
}, l.src = this.album[o].link, this.currentImageIndex = o
}, t.prototype.sizeOverlay = function() {
var t = this;
setTimeout(function() {
t.$overlay.width(d(document).width()).height(d(document).height())
}, 0)
}, t.prototype.sizeContainer = function(t, i) {
function e() {
n.$lightbox.find(".lb-dataContainer").width(s), n.$lightbox.find(".lb-prevLink").height(h), n
.$lightbox.find(".lb-nextLink").height(h), n.$overlay.focus(), n.showImage()
}
var n = this,
o = this.$outerContainer.outerWidth(),
a = this.$outerContainer.outerHeight(),
s = t + this.containerPadding.left + this.containerPadding.right + this.imageBorderWidth.left + this
.imageBorderWidth.right,
h = i + this.containerPadding.top + this.containerPadding.bottom + this.imageBorderWidth.top + this
.imageBorderWidth.bottom;
o !== s || a !== h ? this.$outerContainer.animate({
width: s,
height: h
}, this.options.resizeDuration, "swing", function() {
e()
}) : e()
}, t.prototype.showImage = function() {
this.$lightbox.find(".lb-loader").stop(!0).hide(), this.$lightbox.find(".lb-image").fadeIn(this.options
.imageFadeDuration), this.updateNav(), this.updateDetails(), this.preloadNeighboringImages(),
this.enableKeyboardNav()
}, t.prototype.updateNav = function() {
var t = !1;
try {
document.createEvent("TouchEvent"), t = !!this.options.alwaysShowNavOnTouchDevices
} catch (t) {}
this.$lightbox.find(".lb-nav").show(), 1 < this.album.length && (this.options.wrapAround ? (t && this
.$lightbox.find(".lb-prev, .lb-next").css("opacity", "1"), this.$lightbox.find(
".lb-prev, .lb-next").show()) : (0 < this.currentImageIndex && (this.$lightbox.find(
".lb-prev").show(), t) && this.$lightbox.find(".lb-prev").css("opacity", "1"), this
.currentImageIndex < this.album.length - 1 && (this.$lightbox.find(".lb-next").show(), t) &&
this.$lightbox.find(".lb-next").css("opacity", "1")))
}, t.prototype.updateDetails = function() {
var t, i = this;
void 0 !== this.album[this.currentImageIndex].title && "" !== this.album[this.currentImageIndex]
.title && (t = this.$lightbox.find(".lb-caption"), this.options.sanitizeTitle ? t.text(this.album[
this.currentImageIndex].title) : t.html(this.album[this.currentImageIndex].title), t.fadeIn(
"fast")), 1 < this.album.length && this.options.showImageNumberLabel ? (t = this
.imageCountLabel(this.currentImageIndex + 1, this.album.length), this.$lightbox.find(
".lb-number").text(t).fadeIn("fast")) : this.$lightbox.find(".lb-number").hide(), this
.$outerContainer.removeClass("animating"), this.$lightbox.find(".lb-dataContainer").fadeIn(this
.options.resizeDuration,
function() {
return i.sizeOverlay()
})
}, t.prototype.preloadNeighboringImages = function() {
this.album.length > this.currentImageIndex + 1 && ((new Image).src = this.album[this.currentImageIndex +
1].link), 0 < this.currentImageIndex && ((new Image).src = this.album[this.currentImageIndex -
1].link)
}, t.prototype.enableKeyboardNav = function() {
this.$lightbox.on("keyup.keyboard", d.proxy(this.keyboardAction, this)), this.$overlay.on(
"keyup.keyboard", d.proxy(this.keyboardAction, this))
}, t.prototype.disableKeyboardNav = function() {
this.$lightbox.off(".keyboard"), this.$overlay.off(".keyboard")
}, t.prototype.keyboardAction = function(t) {
var i = t.keyCode;
27 === i ? (t.stopPropagation(), this.end()) : 37 === i ? 0 !== this.currentImageIndex ? this
.changeImage(this.currentImageIndex - 1) : this.options.wrapAround && 1 < this.album.length && this
.changeImage(this.album.length - 1) : 39 === i && (this.currentImageIndex !== this.album.length -
1 ? this.changeImage(this.currentImageIndex + 1) : this.options.wrapAround && 1 < this.album
.length && this.changeImage(0))
}, t.prototype.end = function() {
this.disableKeyboardNav(), d(window).off("resize", this.sizeOverlay), this.$lightbox.fadeOut(this
.options.fadeDuration), this.$overlay.fadeOut(this.options.fadeDuration), this.options
.disableScrolling && d("body").removeClass("lb-disable-scrolling")
}, new t
});
! function(a) {
"use strict";
function u(t, e, r, n) {
var o = a(r, e),
i = (o.addData(t), o.make(), n = n || 0, o.getModuleCount()),
h = o.getModuleCount() + 2 * n;
this.text = t, this.level = e, this.version = r, this.moduleCount = h, this.isDark = function(t, e) {
return e -= n, !((t -= n) < 0 || i <= t || e < 0 || i <= e) && o.isDark(t, e)
}, this.addBlank = function(a, u, f, c) {
var s = this.isDark,
l = 1 / h;
this.isDark = function(t, e) {
var r = e * l,
n = t * l,
o = r + l,
i = n + l;
return s(t, e) && (o < a || f < r || i < u || c < n)
}
}
}
function L(t, e, r, n, o) {
r = Math.max(1, r || 1), n = Math.min(40, n || 40);
for (var i = r; i <= n; i += 1) try {
return new u(t, e, i, o)
} catch (t) {}
}
function S(t, e, r, n, o, i, a, u) {
t.isDark(a, u) && e.rect(n, o, i, i)
}
function A(t, e, r, n, o, i, a, u) {
var f, c, s, l, h, g, d, t = t.isDark,
p = n + i,
w = o + i,
r = r.radius * i,
i = a - 1,
v = a + 1,
m = u - 1,
y = u + 1,
k = t(a, u),
T = t(i, m),
b = t(i, u),
i = t(i, y),
C = t(a, y),
y = t(v, y),
u = t(v, u),
v = t(v, m),
t = t(a, m);
k ? (a = e, m = n, k = o, f = p, c = w, s = r, h = !b && !C, g = !u && !C, d = !u && !t, (l = !b && !t) ? a
.moveTo(m + s, k) : a.moveTo(m, k), h ? (a.lineTo(f - s, k), a.arcTo(f, k, f, c, s)) : a.lineTo(f, k),
g ? (a.lineTo(f, c - s), a.arcTo(f, c, m, c, s)) : a.lineTo(f, c), d ? (a.lineTo(m + s, c), a.arcTo(m,
c, m, k, s)) : a.lineTo(m, c), l ? (a.lineTo(m, k + s), a.arcTo(m, k, f, k, s)) : a.lineTo(m, k)) :
(h = e, g = n, d = o, c = p, l = w, f = r, s = b && C && i, a = u && C && y, m = u && t && v, b && t && T &&
(h.moveTo(g + f, d), h.lineTo(g, d), h.lineTo(g, d + f), h.arcTo(g, d, g + f, d, f)), s && (h.moveTo(c -
f, d), h.lineTo(c, d), h.lineTo(c, d + f), h.arcTo(c, d, c - f, d, f)), a && (h.moveTo(c - f, l), h
.lineTo(c, l), h.lineTo(c, l - f), h.arcTo(c, l, c - f, l, f)), m && (h.moveTo(g + f, l), h.lineTo(
g, l), h.lineTo(g, l - f), h.arcTo(g, l, g + f, l, f)))
}
function r(t, e) {
var r, n, o, i, a, u, f, c, s, l, h, g, d = L(e.text, e.ecLevel, e.minVersion, e.maxVersion, e.quiet);
if (d) {
var p, w, v, t = x(t).data("qrcode", d),
m = t[0].getContext("2d"),
y = (v = d, r = m, x((n = e).background).is("img") ? r.drawImage(n.background, 0, 0, n.size, n.size) : n
.background && (r.fillStyle = n.background, r.fillRect(n.left, n.top, n.size, n.size)), 1 === (g = n
.mode) || 2 === g ? (o = v, i = r, u = (a = n).size, f = "bold " + a.mSize * u + "px " + a
.fontname, (c = x("")[0].getContext("2d")).font = f, c = c.measureText(a.label).width,
s = a.mSize, l = (1 - (c /= u)) * a.mPosX, h = (1 - s) * a.mPosY, c = l + c, s = h + s, 1 === a
.mode ? o.addBlank(0, h - .01, u, s + .01) : o.addBlank(l - .01, h - .01, .01 + c, s + .01), i
.fillStyle = a.fontcolor, i.font = f, i.fillText(a.label, l * u, h * u + .75 * a.mSize * u)) :
3 !== g && 4 !== g || (o = v, c = r, f = (s = n).size, i = s.image.naturalWidth || 1, l = s.image
.naturalHeight || 1, h = s.mSize, l = (1 - (i = h * i / l)) * s.mPosX, a = (1 - h) * s.mPosY,
u = l + i, g = a + h, 3 === s.mode ? o.addBlank(0, a - .01, f, g + .01) : o.addBlank(l - .01,
a - .01, .01 + u, g + .01), c.drawImage(s.image, l * f, a * f, i * f, h * f)), d),
k = m,
T = e,
b = y.moduleCount,
C = T.size / b,
B = S;
for (E && 0 < T.radius && T.radius <= .5 && (B = A), k.beginPath(), p = 0; p < b; p += 1)
for (w = 0; w < b; w += 1) B(y, k, T, T.left + w * C, T.top + p * C, C, p, w);
return x(T.fill).is("img") ? (k.strokeStyle = "rgba(0,0,0,0.5)", k.lineWidth = 2, k.stroke(), v = k
.globalCompositeOperation, k.globalCompositeOperation = "destination-out", k.fill(), k
.globalCompositeOperation = v, k.clip(), k.drawImage(T.fill, 0, 0, T.size, T.size), k.restore()) : (
k.fillStyle = T.fill, k.fill()), t
}
return null
}
function h(t) {
return r(x("").attr("width", t.size).attr("height", t.size), t)
}
var t, x = jQuery,
g = (t = document.createElement("canvas"), Boolean(t.getContext && t.getContext("2d"))),
E = "[object Opera]" !== Object.prototype.toString.call(window.opera),
n = {
render: "canvas",
minVersion: 1,
maxVersion: 40,
ecLevel: "L",
left: 0,
top: 0,
size: 200,
fill: "#000",
background: null,
text: "no text",
radius: 0,
quiet: 0,
mode: 0,
mSize: .1,
mPosX: .5,
mPosY: .5,
label: "no label",
fontname: "sans",
fontcolor: "#000",
image: null
};
x.fn.qrcode = function(t) {
var e = x.extend({}, n, t);
return this.each(function() {
"canvas" === this.nodeName.toLowerCase() ? r(this, e) : x(this).append(function(t) {
if (g && "canvas" === t.render) return h(t);
if (g && "image" === t.render) return o = t, x("
").attr("src", h(o)[0]
.toDataURL("image/png"));
var e = L((o = t).text, o.ecLevel, o.minVersion, o.maxVersion, o.quiet);
if (!e) return null;
var r, n, o, t = o.size,
i = o.background,
a = Math.floor,
u = e.moduleCount,
f = a(t / u),
c = a(.5 * (t - f * u)),
a = {
position: "relative",
left: 0,
top: 0,
padding: 0,
margin: 0,
width: t,
height: t
},
s = {
position: "absolute",
padding: 0,
margin: 0,
width: f,
height: f,
"background-color": o.fill
},
l = x("").data("qrcode", e).css(a);
for (i && l.css("background-color", i), r = 0; r < u; r += 1)
for (n = 0; n < u; n += 1) e.isDark(r, n) && x("").css(s).css({
left: c + n * f,
top: c + r * f
}).appendTo(l);
return l
}(e))
})
}
}(function() {
o.stringToBytes = function(t) {
for (var e = new Array, r = 0; r < t.length; r += 1) {
var n = t.charCodeAt(r);
e.push(255 & n)
}
return e
}, o.createStringToBytes = function(u, f) {
var o = function() {
function t() {
var t = e.read();
if (-1 == t) throw new Error;
return t
}
for (var e = c(u), r = 0, n = {};;) {
var o = e.read();
if (-1 == o) break;
var i = t(),
a = t() << 8 | t();
n[String.fromCharCode(o << 8 | i)] = a, r += 1
}
if (r != f) throw new Error(r + " != " + f);
return n
}(),
i = "?".charCodeAt(0);
return function(t) {
for (var e = new Array, r = 0; r < t.length; r += 1) {
var n = t.charCodeAt(r);
n < 128 ? e.push(n) : "number" == typeof(n = o[t.charAt(r)]) ? (255 & n) == n ? e.push(n) :
(e.push(n >>> 8), e.push(255 & n)) : e.push(i)
}
return e
}
}, g = {
L: 1,
M: 0,
Q: 3,
H: 2
}, e = [
[],
[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]
], (t = {}).getBCHTypeInfo = function(t) {
for (var e = t << 10; 0 <= i(e) - i(1335);) e ^= 1335 << i(e) - i(1335);
return 21522 ^ (t << 10 | e)
}, t.getBCHTypeNumber = function(t) {
for (var e = t << 12; 0 <= i(e) - i(7973);) e ^= 7973 << i(e) - i(7973);
return t << 12 | e
}, t.getPatternPosition = function(t) {
return e[t - 1]
}, t.getMaskFunction = function(t) {
switch (t) {
case 0:
return function(t, e) {
return (t + e) % 2 == 0
};
case 1:
return function(t, e) {
return t % 2 == 0
};
case 2:
return function(t, e) {
return e % 3 == 0
};
case 3:
return function(t, e) {
return (t + e) % 3 == 0
};
case 4:
return function(t, e) {
return (Math.floor(t / 2) + Math.floor(e / 3)) % 2 == 0
};
case 5:
return function(t, e) {
return t * e % 2 + t * e % 3 == 0
};
case 6:
return function(t, e) {
return (t * e % 2 + t * e % 3) % 2 == 0
};
case 7:
return function(t, e) {
return (t * e % 3 + (t + e) % 2) % 2 == 0
};
default:
throw new Error("bad maskPattern:" + t)
}
}, t.getErrorCorrectPolynomial = function(t) {
for (var e = Q([1], 0), r = 0; r < t; r += 1) e = e.multiply(Q([1, a.gexp(r)], 0));
return e
}, t.getLengthInBits = function(t, e) {
if (1 <= e && e < 10) switch (t) {
case 1:
return 10;
case 2:
return 9;
case 4:
case 8:
return 8;
default:
throw new Error("mode:" + t)
} else if (e < 27) switch (t) {
case 1:
return 12;
case 2:
return 11;
case 4:
return 16;
case 8:
return 10;
default:
throw new Error("mode:" + t)
} else {
if (!(e < 41)) throw new Error("type:" + e);
switch (t) {
case 1:
return 14;
case 2:
return 13;
case 4:
return 16;
case 8:
return 12;
default:
throw new Error("mode:" + t)
}
}
}, t.getLostPoint = function(t) {
for (var e = t.getModuleCount(), r = 0, n = 0; n < e; n += 1)
for (var o = 0; o < e; o += 1) {
for (var i = 0, a = t.isDark(n, o), u = -1; u <= 1; u += 1)
if (!(n + u < 0 || e <= n + u))
for (var f = -1; f <= 1; f += 1) o + f < 0 || e <= o + f || 0 == u && 0 == f || a != t
.isDark(n + u, o + f) || (i += 1);
5 < i && (r += 3 + i - 5)
}
for (n = 0; n < e - 1; n += 1)
for (o = 0; o < e - 1; o += 1) {
var c = 0;
t.isDark(n, o) && (c += 1), t.isDark(n + 1, o) && (c += 1), t.isDark(n, o + 1) && (c += 1), t
.isDark(n + 1, o + 1) && (c += 1), 0 != c && 4 != c || (r += 3)
}
for (n = 0; n < e; n += 1)
for (o = 0; o < e - 6; o += 1) t.isDark(n, o) && !t.isDark(n, o + 1) && t.isDark(n, o + 2) && t
.isDark(n, o + 3) && t.isDark(n, o + 4) && !t.isDark(n, o + 5) && t.isDark(n, o + 6) && (r +=
40);
for (o = 0; o < e; o += 1)
for (n = 0; n < e - 6; n += 1) t.isDark(n, o) && !t.isDark(n + 1, o) && t.isDark(n + 2, o) && t
.isDark(n + 3, o) && t.isDark(n + 4, o) && !t.isDark(n + 5, o) && t.isDark(n + 6, o) && (r +=
40);
for (var s = 0, o = 0; o < e; o += 1)
for (n = 0; n < e; n += 1) t.isDark(n, o) && (s += 1);
return r + Math.abs(100 * s / e / e - 50) / 5 * 10
}, P = t, a = function() {
for (var e = new Array(256), r = new Array(256), t = 0; t < 8; t += 1) e[t] = 1 << t;
for (t = 8; t < 256; t += 1) e[t] = e[t - 4] ^ e[t - 5] ^ e[t - 6] ^ e[t - 8];
for (t = 0; t < 255; t += 1) r[e[t]] = t;
return {
glog: function(t) {
if (t < 1) throw new Error("glog(" + t + ")");
return r[t]
},
gexp: function(t) {
for (; t < 0;) t += 255;
for (; 256 <= t;) t -= 255;
return e[t]
}
}
}(), h = [
[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, 7, 37, 13],
[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]
], (t = {}).getRSBlocks = function(t, e) {
var r, n, o = function(t) {
switch (e) {
case g.L:
return h[4 * (t - 1) + 0];
case g.M:
return h[4 * (t - 1) + 1];
case g.Q:
return h[4 * (t - 1) + 2];
case g.H:
return h[4 * (t - 1) + 3];
default:
return
}
}(t);
if (void 0 === o) throw new Error("bad rs block @ typeNumber:" + t + "/errorCorrectLevel:" + e);
for (var i = o.length / 3, a = new Array, u = 0; u < i; u += 1)
for (var f = o[3 * u + 0], c = o[3 * u + 1], s = o[3 * u + 2], l = 0; l < f; l += 1) a.push((r = s,
n = void 0, (n = {}).totalCount = c, n.dataCount = r, n));
return a
}, U = t, O = function() {
var r = new Array,
n = 0,
o = {
getBuffer: function() {
return r
},
getAt: function(t) {
var e = Math.floor(t / 8);
return 1 == (r[e] >>> 7 - t % 8 & 1)
},
put: function(t, e) {
for (var r = 0; r < e; r += 1) o.putBit(1 == (t >>> e - r - 1 & 1))
},
getLengthInBits: function() {
return n
},
putBit: function(t) {
var e = Math.floor(n / 8);
r.length <= e && r.push(0), t && (r[e] |= 128 >>> n % 8), n += 1
}
};
return o
}, r = function(t) {
var r = o.stringToBytes(t);
return {
getMode: function() {
return 4
},
getLength: function(t) {
return r.length
},
write: function(t) {
for (var e = 0; e < r.length; e += 1) t.put(r[e], 8)
}
}
}, c = function(t) {
var r = t,
n = 0,
o = 0,
i = 0,
a = function(t) {
if (65 <= t && t <= 90) return t - 65;
if (97 <= t && t <= 122) return t - 97 + 26;
if (48 <= t && t <= 57) return t - 48 + 52;
if (43 == t) return 62;
if (47 == t) return 63;
throw new Error("c:" + t)
};
return {
read: function() {
for (; i < 8;) {
if (n >= r.length) {
if (0 == i) return -1;
throw new Error("unexpected end of file./" + i)
}
var t = r.charAt(n);
if (n += 1, "=" == t) return i = 0, -1;
t.match(/^\s$/) || (o = o << 6 | a(t.charCodeAt(0)), i += 6)
}
var e = o >>> i - 8 & 255;
return i -= 8, e
}
}
}, u = function(t, e, r, n) {
for (var o = y(t, e), i = 0; i < e; i += 1)
for (var a = 0; a < t; a += 1) o.setPixel(a, i, r(a, i));
var u = m();
o.write(u);
s = c = f = 0, l = "", h = function(t) {
if (!(t < 0)) {
if (t < 26) return 65 + t;
if (t < 52) return t - 26 + 97;
if (t < 62) return t - 52 + 48;
if (62 == t) return 43;
if (63 == t) return 47
}
throw new Error("n:" + t)
}, (v = {}).writeByte = function(t) {
for (f = f << 8 | 255 & t, c += 8, s += 1; 6 <= c;) w(f >>> c - 6), c -= 6
}, v.flush = function() {
if (0 < c && (w(f << 6 - c), c = f = 0), s % 3 != 0)
for (var t = 3 - s % 3, e = 0; e < t; e += 1) l += "="
}, v.toString = function() {
return l
};
for (var f, c, s, l, h, g = v, d = u.toByteArray(), p = 0; p < d.length; p += 1) g.writeByte(d[p]);
function w(t) {
l += String.fromCharCode(h(63 & t))
}
g.flush();
var v = "",
v = (v = (v = (v = (v = (v += "
"
};
var h, e, t, g, P, a, U, O, r, c, u, n = o;
function Q(n, o) {
if (void 0 === n.length) throw new Error(n.length + "/" + o);
var e = function() {
for (var t = 0; t < n.length && 0 == n[t];) t += 1;
for (var e = new Array(n.length - t + o), r = 0; r < n.length - t; r += 1) e[r] = n[r + t];
return e
}(),
i = {
getAt: function(t) {
return e[t]
},
getLength: function() {
return e.length
},
multiply: function(t) {
for (var e = new Array(i.getLength() + t.getLength() - 1), r = 0; r < i.getLength(); r += 1)
for (var n = 0; n < t.getLength(); n += 1) e[r + n] ^= a.gexp(a.glog(i.getAt(r)) + a
.glog(t.getAt(n)));
return Q(e, 0)
},
mod: function(t) {
if (i.getLength() - t.getLength() < 0) return i;
for (var e = a.glog(i.getAt(0)) - a.glog(t.getAt(0)), r = new Array(i.getLength()), n =
0; n < i.getLength(); n += 1) r[n] = i.getAt(n);
for (n = 0; n < t.getLength(); n += 1) r[n] ^= a.gexp(a.glog(t.getAt(n)) + e);
return Q(r, 0).mod(t)
}
};
return i
}
function o(t, e) {
function o(t, e) {
M = function(t) {
for (var e = new Array(t), r = 0; r < t; r += 1) {
e[r] = new Array(t);
for (var n = 0; n < t; n += 1) e[r][n] = null
}
return e
}(z = 4 * I + 17), E(0, 0), E(z - 7, 0), E(0, z - 7);
for (var r = P.getPatternPosition(I), n = 0; n < r.length; n += 1)
for (var o = 0; o < r.length; o += 1) {
var i = r[n],
a = r[o];
if (null == M[i][a])
for (var u = -2; u <= 2; u += 1)
for (var f = -2; f <= 2; f += 1) M[i + u][a + f] = -2 == u || 2 == u || -2 == f || 2 ==
f || 0 == u && 0 == f
}
for (var c = 8; c < z - 8; c += 1) null == M[c][6] && (M[c][6] = c % 2 == 0);
for (var s = 8; s < z - 8; s += 1) null == M[6][s] && (M[6][s] = s % 2 == 0);
for (var l = t, h = D << 3 | e, g = P.getBCHTypeInfo(h), d = 0; d < 15; d += 1) {
var p = !l && 1 == (g >> d & 1);
d < 6 ? M[d][8] = p : d < 8 ? M[d + 1][8] = p : M[z - 15 + d][8] = p
}
for (d = 0; d < 15; d += 1) p = !l && 1 == (g >> d & 1), d < 8 ? M[8][z - d - 1] = p : d < 9 ? M[8][15 -
d - 1 + 1
] = p : M[8][15 - d - 1] = p;
if (M[z - 8][8] = !l, 7 <= I) {
for (var w = t, v = P.getBCHTypeNumber(I), m = 0; m < 18; m += 1) {
var y = !w && 1 == (v >> m & 1);
M[Math.floor(m / 3)][m % 3 + z - 8 - 3] = y
}
for (m = 0; m < 18; m += 1) y = !w && 1 == (v >> m & 1), M[m % 3 + z - 8 - 3][Math.floor(m / 3)] = y
}
for (var k = q = null == q ? function(t, e, r) {
for (var n = U.getRSBlocks(t, e), o = O(), i = 0; i < r.length; i += 1) {
var a = r[i];
o.put(a.getMode(), 4), o.put(a.getLength(), P.getLengthInBits(a.getMode(), t)), a.write(
o)
}
for (var u = 0, i = 0; i < n.length; i += 1) u += n[i].dataCount;
if (o.getLengthInBits() > 8 * u) throw new Error("code length overflow. (" + o
.getLengthInBits() + ">" + 8 * u + ")");
for (o.getLengthInBits() + 4 <= 8 * u && o.put(0, 4); o.getLengthInBits() % 8 != 0;) o
.putBit(!1);
for (; !(o.getLengthInBits() >= 8 * u) && (o.put(236, 8), !(o.getLengthInBits() >= 8 * u));)
o.put(17, 8);
for (var f = o, c = n, s = 0, l = 0, h = 0, g = new Array(c.length), d = new Array(c
.length), p = 0; p < c.length; p += 1) {
var w = c[p].dataCount,
v = c[p].totalCount - w;
l = Math.max(l, w), h = Math.max(h, v), g[p] = new Array(w);
for (var m = 0; m < g[p].length; m += 1) g[p][m] = 255 & f.getBuffer()[m + s];
s += w;
var y = P.getErrorCorrectPolynomial(v),
k = Q(g[p], y.getLength() - 1).mod(y);
d[p] = new Array(y.getLength() - 1);
for (m = 0; m < d[p].length; m += 1) {
var T = m + k.getLength() - d[p].length;
d[p][m] = 0 <= T ? k.getAt(T) : 0
}
}
var b = 0;
for (m = 0; m < c.length; m += 1) b += c[m].totalCount;
var C = new Array(b),
B = 0;
for (m = 0; m < l; m += 1)
for (p = 0; p < c.length; p += 1) m < g[p].length && (C[B] = g[p][m], B += 1);
for (m = 0; m < h; m += 1)
for (p = 0; p < c.length; p += 1) m < d[p].length && (C[B] = d[p][m], B += 1);
return C
}(I, D, R) : q, h = e, T = -1, b = z - 1, C = 7, B = 0, L = P.getMaskFunction(h), S = z - 1; 0 <
S; S -= 2)
for (6 == S && --S;;) {
for (var A = 0, x; A < 2; A += 1) null == M[b][S - A] && (x = !1, B < k.length && (x = 1 == (k[
B] >>> C & 1)), L(b, S - A) && (x = !x), M[b][S - A] = x, -1 == --C) && (B += 1, C = 7);
if ((b += T) < 0 || z <= b) {
b -= T, T = -T;
break
}
}
}
function E(t, e) {
for (var r = -1; r <= 7; r += 1)
if (!(t + r <= -1 || z <= t + r))
for (var n = -1; n <= 7; n += 1) e + n <= -1 || z <= e + n || (M[t + r][e + n] = 0 <= r && r <=
6 && (0 == n || 6 == n) || 0 <= n && n <= 6 && (0 == r || 6 == r) || 2 <= r && r <= 4 &&
2 <= n && n <= 4)
}
var I = t,
D = g[e],
M = null,
z = 0,
q = null,
R = new Array,
i = {};
return i.addData = function(t) {
t = r(t);
R.push(t), q = null
}, i.isDark = function(t, e) {
if (t < 0 || z <= t || e < 0 || z <= e) throw new Error(t + "," + e);
return M[t][e]
}, i.getModuleCount = function() {
return z
}, i.make = function() {
o(!1, function() {
for (var t = 0, e = 0, r = 0; r < 8; r += 1) {
o(!0, r);
var n = P.getLostPoint(i);
(0 == r || n < t) && (t = n, e = r)
}
return e
}())
}, i.createTableTag = function(t, e) {
t = t || 2;
for (var r = (r = (r = (r = "") + '' + "", n = 0; n < i.getModuleCount(); n += 1) {
r += "";
for (var o = 0; o < i.getModuleCount(); o += 1) r = (r = (r = (r = (r = (r += ' | ';
r += "
"
}
return r + "
"
}, i.createImgTag = function(r, t) {
r = r || 2, t = void 0 === t ? 4 * r : t;
var e = i.getModuleCount() * r + 2 * t,
n = t,
o = e - t;
return u(e, e, function(t, e) {
return n <= t && t < o && n <= e && e < o && (t = Math.floor((t - n) / r), e = Math
.floor((e - n) / r), i.isDark(e, t)) ? 0 : 1
})
}, i
}
function m() {
var r = new Array,
o = {
writeByte: function(t) {
r.push(255 & t)
},
writeShort: function(t) {
o.writeByte(t), o.writeByte(t >>> 8)
},
writeBytes: function(t, e, r) {
e = e || 0, r = r || t.length;
for (var n = 0; n < r; n += 1) o.writeByte(t[n + e])
},
writeString: function(t) {
for (var e = 0; e < t.length; e += 1) o.writeByte(t.charCodeAt(e))
},
toByteArray: function() {
return r
},
toString: function() {
var t = "";
t += "[";
for (var e = 0; e < r.length; e += 1) 0 < e && (t += ","), t += r[e];
return t + "]"
}
};
return o
}
function y(t, e) {
var n = t,
o = e,
g = new Array(t * e),
i = function(t) {
for (var e = 1 << t, r = 1 + (1 << t), n = t + 1, o = d(), i = 0; i < e; i += 1) o.add(String
.fromCharCode(i));
o.add(String.fromCharCode(e)), o.add(String.fromCharCode(r));
var a, u, f, t = m(),
c = (a = t, f = u = 0, {
write: function(t, e) {
if (t >>> e != 0) throw new Error("length over");
for (; 8 <= u + e;) a.writeByte(255 & (t << u | f)), e -= 8 - u, t >>>= 8 - u,
u = f = 0;
f |= t << u, u += e
},
flush: function() {
0 < u && a.writeByte(f)
}
}),
s = (c.write(e, n), 0),
l = String.fromCharCode(g[s]);
for (s += 1; s < g.length;) {
var h = String.fromCharCode(g[s]);
s += 1, o.contains(l + h) ? l += h : (c.write(o.indexOf(l), n), o.size() < 4095 && (o.size() ==
1 << n && (n += 1), o.add(l + h)), l = h)
}
return c.write(o.indexOf(l), n), c.write(r, n), c.flush(), t.toByteArray()
},
d = function() {
var e = {},
r = 0,
n = {
add: function(t) {
if (n.contains(t)) throw new Error("dup key:" + t);
e[t] = r, r += 1
},
size: function() {
return r
},
indexOf: function(t) {
return e[t]
},
contains: function(t) {
return void 0 !== e[t]
}
};
return n
};
return {
setPixel: function(t, e, r) {
g[e * n + t] = r
},
write: function(t) {
t.writeString("GIF87a"), t.writeShort(n), t.writeShort(o), t.writeByte(128), t.writeByte(0), t
.writeByte(0), t.writeByte(0), t.writeByte(0), t.writeByte(0), t.writeByte(255), t
.writeByte(255), t.writeByte(255), t.writeString(","), t.writeShort(0), t.writeShort(0), t
.writeShort(n), t.writeShort(o), t.writeByte(0);
var e = i(2);
t.writeByte(2);
for (var r = 0; 255 < e.length - r;) t.writeByte(255), t.writeBytes(e, r, 255), r += 255;
t.writeByte(e.length - r), t.writeBytes(e, r, e.length - r), t.writeByte(0), t.writeString(";")
}
}
}
function i(t) {
for (var e = 0; 0 != t;) e += 1, t >>>= 1;
return e
}
return t = function() {
return n
}, "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports && (module
.exports = n), n.stringToBytes = function(t) {
for (var e = t, r = [], n = 0; n < e.length; n++) {
var o = e.charCodeAt(n);
o < 128 ? r.push(o) : o < 2048 ? r.push(192 | o >> 6, 128 | 63 & o) : o < 55296 || 57344 <= o ? r
.push(224 | o >> 12, 128 | o >> 6 & 63, 128 | 63 & o) : (n++, o = 65536 + ((1023 & o) << 10 |
1023 & e.charCodeAt(n)), r.push(240 | o >> 18, 128 | o >> 12 & 63, 128 | o >> 6 & 63,
128 | 63 & o))
}
return r
}, n
}()),
function(c) {
c.fn.share = function(t) {
var e = c(document.head),
e = {
url: location.href,
site_url: location.origin,
source: e.find("[name=site], [name=Site]").attr("content") || document.title,
title: e.find("[name=title], [name=Title]").attr("content") || document.title,
description: e.find("[name=description], [name=Description]").attr("content") || "",
image: c("img:first").prop("src") || "",
imageSelector: void 0,
weiboKey: "",
wechatQrcodeTitle: "微信扫一扫:分享",
wechatQrcodeHelper: "微信里点“发现”,扫一下
二维码便可将本文分享至朋友圈。
",
wechatQrcodeSize: 100,
mobileSites: [],
sites: ["weibo", "qq", "wechat", "tencent", "douban", "qzone", "linkedin", "diandian", "facebook",
"twitter", "google"
],
disabled: [],
initialized: !1
},
a = c.extend({}, e, t),
u = {
qzone: "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url={{URL}}&title={{TITLE}}&desc={{DESCRIPTION}}&summary={{SUMMARY}}&site={{SOURCE}}&pics={{IMAGE}}",
qq: "http://connect.qq.com/widget/shareqq/index.html?url={{URL}}&title={{TITLE}}&source={{SOURCE}}&desc={{DESCRIPTION}}&pics={{IMAGE}}",
tencent: "http://share.v.t.qq.com/index.php?c=share&a=index&title={{TITLE}}&url={{URL}}&pic={{IMAGE}}",
weibo: "https://service.weibo.com/share/share.php?url={{URL}}&title={{TITLE}}&pic={{IMAGE}}&appkey={{WEIBOKEY}}",
wechat: "javascript:;",
douban: "http://shuo.douban.com/!service/share?href={{URL}}&name={{TITLE}}&text={{DESCRIPTION}}&image={{IMAGE}}&starid=0&aid=0&style=11",
diandian: "http://www.diandian.com/share?lo={{URL}}&ti={{TITLE}}&type=link",
linkedin: "http://www.linkedin.com/shareArticle?mini=true&ro=true&title={{TITLE}}&url={{URL}}&summary={{SUMMARY}}&source={{SOURCE}}&armin=armin",
facebook: "https://www.facebook.com/sharer/sharer.php?u={{URL}}&title={{TITLE}}&description={{DESCRIPTION}}&caption={{SUBHEAD}}&link={{URL}}&picture={{IMAGE}}",
twitter: "https://twitter.com/intent/tweet?text={{TITLE}}&url={{URL}}&via={{SITE_URL}}",
google: "https://plus.google.com/share?url={{URL}}"
},
f = {
qzone: "QQ空间",
qq: "QQ",
tencent: "腾讯微博",
weibo: "微博",
wechat: "微信",
douban: "豆瓣",
diandian: "点点",
linkedin: "LinkedIn",
facebook: "Facebook",
twitter: "Twitter",
google: "Google"
};
this.each(function() {
if (c(this).data("initialized")) return !0;
var o, i, r, t, e = c.extend({}, a, c(this).data()),
n = (e.imageSelector && (e.image = c(e.imageSelector).map(function() {
return c(this).prop("src")
}).get().join("||")), c(this).addClass("share-component social-share"));
o = n, 0 === (t = i = e).mobileSites.length && t.sites.length && (t.mobileSites = t.sites), r =
(c(window).width() <= 768 ? t.mobileSites : t.sites.length ? t.sites : []).slice(0), t = t
.disabled, "string" == typeof r && (r = r.split(/\s*,\s*/)), "string" == typeof t && (t = t
.split(/\s*,\s*/)), /MicroMessenger/i.test(navigator.userAgent) && t.push("wechat"), t
.length && c.each(t, function(t, e) {
e = c.inArray(e, r); - 1 !== e && r.splice(e, 1)
}), t = r, "prepend" == i.mode && t.reverse(), t.length && c.each(t, function(t, e) {
var r = function(t, e) {
var r, n, o = u[t];
for (r in e.summary = e.description, e) e.hasOwnProperty(r) && (n = t + r
.replace(/^[a-z]/, function(t) {
return t.toUpperCase()
}), n = encodeURIComponent(void 0 === e[n] ? e[r] : e[n]), o = o
.replace(new RegExp("{{" + r.toUpperCase() + "}}", "g"), n));
return o
}(e, i),
n = i.initialized ? o.find(".icon-" + e) : c(
'');
if (!n.length) return !0;
n.prop("aria-label", "分享到 " + f[e]), n.prop("href", r), "wechat" === e ? n.prop(
"tabindex", -1) : n.prop("target", "_blank"), i.initialized || ("prepend" ==
i.mode ? o.prepend(n) : o.append(n))
}), t = e, (e = n.find("a.icon-wechat")).length && (e.append(
'' + t.wechatQrcodeTitle +
'
' + t.wechatQrcodeHelper +
"
"), e.find(".qrcode").qrcode({
render: "image",
size: t.wechatQrcodeSize,
text: t.url
}), e.offset().top < 100) && e.find(".wechat-qrcode").addClass("bottom"), c(this).data(
"initialized", !0)
})
}, c(function() {
c(".share-component,.social-share").share()
})
}(jQuery);
window.scrollTo || (window.scrollTo = function(e, t) {
window.pageXOffset = e, window.pageYOffset = t
}), document.body.scrollTo || (Element.prototype.scrollTo = function(e, t) {
this.scrollLeft = e, this.scrollTop = t
}),
function(e, t) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" ==
typeof define && define.amd ? define(t) : (e = e || self).Swiper = t()
}(this, function() {
"use strict";
function l(e) {
for (var t = 0; t < e.length; t += 1) this[t] = e[t];
return this.length = e.length, this
}
var c = "undefined" == typeof document ? {
body: {},
addEventListener: function() {},
removeEventListener: function() {},
activeElement: {
blur: function() {},
nodeName: ""
},
querySelector: function() {
return null
},
querySelectorAll: function() {
return []
},
getElementById: function() {
return null
},
createEvent: function() {
return {
initEvent: function() {}
}
},
createElement: function() {
return {
children: [],
childNodes: [],
style: {},
setAttribute: function() {},
getElementsByTagName: function() {
return []
}
}
},
location: {
hash: ""
}
} : document,
R = "undefined" == typeof window ? {
document: c,
navigator: {
userAgent: ""
},
location: {},
history: {},
CustomEvent: function() {
return this
},
addEventListener: function() {},
removeEventListener: function() {},
getComputedStyle: function() {
return {
getPropertyValue: function() {
return ""
}
}
},
Image: function() {},
Date: function() {},
screen: {},
setTimeout: function() {},
clearTimeout: function() {}
} : window;
function E(e, t) {
var a = [],
i = 0;
if (e && !t && e instanceof l) return e;
if (e)
if ("string" == typeof e) {
var s, n, r = e.trim();
if (0 <= r.indexOf("<") && 0 <= r.indexOf(">")) {
var o = "div";
for (0 === r.indexOf(":~]/) ? (t || c).querySelectorAll(e.trim()) : [c
.getElementById(e.trim().split("#")[1])
], i = 0; i < s.length; i += 1) s[i] && a.push(s[i])
} else if (e.nodeType || e === R || e === c) a.push(e);
else if (0 < e.length && e[0].nodeType)
for (i = 0; i < e.length; i += 1) a.push(e[i]);
return new l(a)
}
function n(e) {
for (var t = [], a = 0; a < e.length; a += 1) - 1 === t.indexOf(e[a]) && t.push(e[a]);
return t
}
E.fn = l.prototype, E.Class = l, E.Dom7 = l;
var L = {
addClass: function(e) {
if (void 0 !== e)
for (var t = e.split(" "), a = 0; a < t.length; a += 1)
for (var i = 0; i < this.length; i += 1) void 0 !== this[i] && void 0 !== this[i]
.classList && this[i].classList.add(t[a]);
return this
},
removeClass: function(e) {
for (var t = e.split(" "), a = 0; a < t.length; a += 1)
for (var i = 0; i < this.length; i += 1) void 0 !== this[i] && void 0 !== this[i]
.classList && this[i].classList.remove(t[a]);
return this
},
hasClass: function(e) {
return !!this[0] && this[0].classList.contains(e)
},
toggleClass: function(e) {
for (var t = e.split(" "), a = 0; a < t.length; a += 1)
for (var i = 0; i < this.length; i += 1) void 0 !== this[i] && void 0 !== this[i]
.classList && this[i].classList.toggle(t[a]);
return this
},
attr: function(e, t) {
var a = arguments;
if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(
e) : void 0;
for (var i = 0; i < this.length; i += 1)
if (2 === a.length) this[i].setAttribute(e, t);
else
for (var s in e) this[i][s] = e[s], this[i].setAttribute(s, e[s]);
return this
},
removeAttr: function(e) {
for (var t = 0; t < this.length; t += 1) this[t].removeAttribute(e);
return this
},
data: function(e, t) {
var a;
if (void 0 !== t) {
for (var i = 0; i < this.length; i += 1)(a = this[i]).dom7ElementDataStorage || (a
.dom7ElementDataStorage = {}), a.dom7ElementDataStorage[e] = t;
return this
}
if (a = this[0]) return a.dom7ElementDataStorage && e in a.dom7ElementDataStorage ? a
.dom7ElementDataStorage[e] : a.getAttribute("data-" + e) || void 0
},
transform: function(e) {
for (var t = 0; t < this.length; t += 1) {
var a = this[t].style;
a.webkitTransform = e, a.transform = e
}
return this
},
transition: function(e) {
"string" != typeof e && (e += "ms");
for (var t = 0; t < this.length; t += 1) {
var a = this[t].style;
a.webkitTransitionDuration = e, a.transitionDuration = e
}
return this
},
on: function() {
for (var e = [], t = arguments.length; t--;) e[t] = arguments[t];
var a = e[0],
n = e[1],
r = e[2],
i = e[3];
function s(e) {
var t = e.target;
if (t) {
var a = e.target.dom7EventData || [];
if (a.indexOf(e) < 0 && a.unshift(e), E(t).is(n)) r.apply(t, a);
else
for (var i = E(t).parents(), s = 0; s < i.length; s += 1) E(i[s]).is(n) && r
.apply(i[s], a)
}
}
function o(e) {
var t = e && e.target && e.target.dom7EventData || [];
t.indexOf(e) < 0 && t.unshift(e), r.apply(this, t)
}
"function" == typeof e[1] && (a = e[0], r = e[1], i = e[2], n = void 0);
for (var l, i = i || !1, d = a.split(" "), p = 0; p < this.length; p += 1) {
var c = this[p];
if (n)
for (l = 0; l < d.length; l += 1) {
var u = d[l];
c.dom7LiveListeners || (c.dom7LiveListeners = {}), c.dom7LiveListeners[u] || (c
.dom7LiveListeners[u] = []), c.dom7LiveListeners[u].push({
listener: r,
proxyListener: s
}), c.addEventListener(u, s, i)
} else
for (l = 0; l < d.length; l += 1) {
var h = d[l];
c.dom7Listeners || (c.dom7Listeners = {}), c.dom7Listeners[h] || (c
.dom7Listeners[h] = []), c.dom7Listeners[h].push({
listener: r,
proxyListener: o
}), c.addEventListener(h, o, i)
}
}
return this
},
off: function() {
for (var e = [], t = arguments.length; t--;) e[t] = arguments[t];
var a = e[0],
i = e[1],
s = e[2],
n = e[3];
"function" == typeof e[1] && (a = e[0], s = e[1], n = e[2], i = void 0);
for (var n = n || !1, r = a.split(" "), o = 0; o < r.length; o += 1)
for (var l = r[o], d = 0; d < this.length; d += 1) {
var p = this[d],
c = void 0;
if (!i && p.dom7Listeners ? c = p.dom7Listeners[l] : i && p.dom7LiveListeners && (
c = p.dom7LiveListeners[l]), c && c.length)
for (var u = c.length - 1; 0 <= u; --u) {
var h = c[u];
(s && h.listener === s || s && h.listener && h.listener.dom7proxy && h
.listener.dom7proxy === s || !s) && (p.removeEventListener(l, h
.proxyListener, n), c.splice(u, 1))
}
}
return this
},
trigger: function() {
for (var e = [], t = arguments.length; t--;) e[t] = arguments[t];
for (var a = e[0].split(" "), i = e[1], s = 0; s < a.length; s += 1)
for (var n = a[s], r = 0; r < this.length; r += 1) {
var o = this[r],
l = void 0;
try {
l = new R.CustomEvent(n, {
detail: i,
bubbles: !0,
cancelable: !0
})
} catch (e) {
(l = c.createEvent("Event")).initEvent(n, !0, !0), l.detail = i
}
o.dom7EventData = e.filter(function(e, t) {
return 0 < t
}), o.dispatchEvent(l), o.dom7EventData = [], delete o.dom7EventData
}
return this
},
transitionEnd: function(t) {
var a, i = ["webkitTransitionEnd", "transitionend"],
s = this;
function n(e) {
if (e.target === this)
for (t.call(this, e), a = 0; a < i.length; a += 1) s.off(i[a], n)
}
if (t)
for (a = 0; a < i.length; a += 1) s.on(i[a], n);
return this
},
outerWidth: function(e) {
return 0 < this.length ? e ? (e = this.styles(), this[0].offsetWidth + parseFloat(e
.getPropertyValue("margin-right")) + parseFloat(e.getPropertyValue(
"margin-left"))) : this[0].offsetWidth : null
},
outerHeight: function(e) {
return 0 < this.length ? e ? (e = this.styles(), this[0].offsetHeight + parseFloat(e
.getPropertyValue("margin-top")) + parseFloat(e.getPropertyValue(
"margin-bottom"))) : this[0].offsetHeight : null
},
offset: function() {
var e, t, a, i, s;
return 0 < this.length ? (e = (s = this[0]).getBoundingClientRect(), a = c.body, t = s
.clientTop || a.clientTop || 0, a = s.clientLeft || a.clientLeft || 0, i = s === R ?
R.scrollY : s.scrollTop, s = s === R ? R.scrollX : s.scrollLeft, {
top: e.top + i - t,
left: e.left + s - a
}) : null
},
css: function(e, t) {
var a;
if (1 === arguments.length) {
if ("string" != typeof e) {
for (a = 0; a < this.length; a += 1)
for (var i in e) this[a].style[i] = e[i];
return this
}
if (this[0]) return R.getComputedStyle(this[0], null).getPropertyValue(e)
}
if (2 === arguments.length && "string" == typeof e)
for (a = 0; a < this.length; a += 1) this[a].style[e] = t;
return this
},
each: function(e) {
if (e)
for (var t = 0; t < this.length; t += 1)
if (!1 === e.call(this[t], t, this[t])) return this;
return this
},
html: function(e) {
if (void 0 === e) return this[0] ? this[0].innerHTML : void 0;
for (var t = 0; t < this.length; t += 1) this[t].innerHTML = e;
return this
},
text: function(e) {
if (void 0 === e) return this[0] ? this[0].textContent.trim() : null;
for (var t = 0; t < this.length; t += 1) this[t].textContent = e;
return this
},
is: function(e) {
var t, a, i = this[0];
if (i && void 0 !== e)
if ("string" == typeof e) {
if (i.matches) return i.matches(e);
if (i.webkitMatchesSelector) return i.webkitMatchesSelector(e);
if (i.msMatchesSelector) return i.msMatchesSelector(e);
for (t = E(e), a = 0; a < t.length; a += 1)
if (t[a] === i) return !0
} else {
if (e === c) return i === c;
if (e === R) return i === R;
if (e.nodeType || e instanceof l)
for (t = e.nodeType ? [e] : e, a = 0; a < t.length; a += 1)
if (t[a] === i) return !0
} return !1
},
index: function() {
var e, t = this[0];
if (t) {
for (e = 0; null !== (t = t.previousSibling);) 1 === t.nodeType && (e += 1);
return e
}
},
eq: function(e) {
var t;
return void 0 === e ? this : (t = this.length, new l(t - 1 < e ? [] : e < 0 ? (t = t + e) <
0 ? [] : [this[t]] : [this[e]]))
},
append: function() {
for (var e = [], t = arguments.length; t--;) e[t] = arguments[t];
for (var a = 0; a < e.length; a += 1)
for (var i = e[a], s = 0; s < this.length; s += 1)
if ("string" == typeof i) {
var n = c.createElement("div");
for (n.innerHTML = i; n.firstChild;) this[s].appendChild(n.firstChild)
} else if (i instanceof l)
for (var r = 0; r < i.length; r += 1) this[s].appendChild(i[r]);
else this[s].appendChild(i);
return this
},
prepend: function(e) {
for (var t, a = 0; a < this.length; a += 1)
if ("string" == typeof e) {
var i = c.createElement("div");
for (i.innerHTML = e, t = i.childNodes.length - 1; 0 <= t; --t) this[a]
.insertBefore(i.childNodes[t], this[a].childNodes[0])
} else if (e instanceof l)
for (t = 0; t < e.length; t += 1) this[a].insertBefore(e[t], this[a].childNodes[0]);
else this[a].insertBefore(e, this[a].childNodes[0]);
return this
},
next: function(e) {
return 0 < this.length ? e ? this[0].nextElementSibling && E(this[0].nextElementSibling).is(
e) ? new l([this[0].nextElementSibling]) : new l([]) : this[0].nextElementSibling ?
new l([this[0].nextElementSibling]) : new l([]) : new l([])
},
nextAll: function(e) {
var t = [],
a = this[0];
if (!a) return new l([]);
for (; a.nextElementSibling;) {
var i = a.nextElementSibling;
e && !E(i).is(e) || t.push(i), a = i
}
return new l(t)
},
prev: function(e) {
var t;
return 0 < this.length ? (t = this[0], e ? t.previousElementSibling && E(t
.previousElementSibling).is(e) ? new l([t.previousElementSibling]) : new l([]) :
t.previousElementSibling ? new l([t.previousElementSibling]) : new l([])) : new l(
[])
},
prevAll: function(e) {
var t = [],
a = this[0];
if (!a) return new l([]);
for (; a.previousElementSibling;) {
var i = a.previousElementSibling;
e && !E(i).is(e) || t.push(i), a = i
}
return new l(t)
},
parent: function(e) {
for (var t = [], a = 0; a < this.length; a += 1) null === this[a].parentNode || e && !E(
this[a].parentNode).is(e) || t.push(this[a].parentNode);
return E(n(t))
},
parents: function(e) {
for (var t = [], a = 0; a < this.length; a += 1)
for (var i = this[a].parentNode; i;) e && !E(i).is(e) || t.push(i), i = i.parentNode;
return E(n(t))
},
closest: function(e) {
var t = this;
return void 0 === e ? new l([]) : t = t.is(e) ? t : t.parents(e).eq(0)
},
find: function(e) {
for (var t = [], a = 0; a < this.length; a += 1)
for (var i = this[a].querySelectorAll(e), s = 0; s < i.length; s += 1) t.push(i[s]);
return new l(t)
},
children: function(e) {
for (var t = [], a = 0; a < this.length; a += 1)
for (var i = this[a].childNodes, s = 0; s < i.length; s += 1) e ? 1 === i[s].nodeType &&
E(i[s]).is(e) && t.push(i[s]) : 1 === i[s].nodeType && t.push(i[s]);
return new l(n(t))
},
remove: function() {
for (var e = 0; e < this.length; e += 1) this[e].parentNode && this[e].parentNode
.removeChild(this[e]);
return this
},
add: function() {
for (var e, t = [], a = arguments.length; a--;) t[a] = arguments[a];
for (e = 0; e < t.length; e += 1)
for (var i = E(t[e]), s = 0; s < i.length; s += 1) this[this.length] = i[s], this
.length += 1;
return this
},
styles: function() {
return this[0] ? R.getComputedStyle(this[0], null) : {}
}
};
function e(e) {
var t = this;
t.params = e = void 0 === e ? {} : e, t.eventsListeners = {}, t.params && t.params.on && Object.keys(t
.params.on).forEach(function(e) {
t.on(e, t.params.on[e])
})
}
Object.keys(L).forEach(function(e) {
E.fn[e] = E.fn[e] || L[e]
});
var i, q = {
deleteProps: function(e) {
var t = e;
Object.keys(t).forEach(function(e) {
try {
t[e] = null
} catch (e) {}
try {
delete t[e]
} catch (e) {}
})
},
nextTick: function(e, t) {
return void 0 === t && (t = 0), setTimeout(e, t)
},
now: function() {
return Date.now()
},
getTranslate: function(e, t) {
void 0 === t && (t = "x");
var a, i, s, e = R.getComputedStyle(e, null);
return R.WebKitCSSMatrix ? (6 < (i = e.transform || e.webkitTransform).split(",").length &&
(i = i.split(", ").map(function(e) {
return e.replace(",", ".")
}).join(", ")), s = new R.WebKitCSSMatrix("none" === i ? "" : i)) : a = (s = e
.MozTransform || e.OTransform || e.MsTransform || e.msTransform || e.transform || e
.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"))
.toString().split(","), "x" === t && (i = R.WebKitCSSMatrix ? s.m41 : 16 === a.length ?
parseFloat(a[12]) : parseFloat(a[4])), (i = "y" === t ? R.WebKitCSSMatrix ? s.m42 :
16 === a.length ? parseFloat(a[13]) : parseFloat(a[5]) : i) || 0
},
parseUrlQuery: function(e) {
var t, a, i, s, n = {},
e = e || R.location.href;
if ("string" == typeof e && e.length)
for (s = (a = (e = -1 < e.indexOf("?") ? e.replace(/\S*\?/, "") : "").split("&").filter(
function(e) {
return "" !== e
})).length, t = 0; t < s; t += 1) i = a[t].replace(/#\S+/g, "").split("="), n[
decodeURIComponent(i[0])] = void 0 === i[1] ? void 0 : decodeURIComponent(i[
1]) || "";
return n
},
isObject: function(e) {
return "object" == typeof e && null !== e && e.constructor && e.constructor === Object
},
extend: function() {
for (var e = [], t = arguments.length; t--;) e[t] = arguments[t];
for (var a = Object(e[0]), i = 1; i < e.length; i += 1) {
var s = e[i];
if (null != s)
for (var n = Object.keys(Object(s)), r = 0, o = n.length; r < o; r += 1) {
var l = n[r],
d = Object.getOwnPropertyDescriptor(s, l);
void 0 !== d && d.enumerable && (q.isObject(a[l]) && q.isObject(s[l]) ? q
.extend(a[l], s[l]) : !q.isObject(a[l]) && q.isObject(s[l]) ? (a[
l] = {}, q.extend(a[l], s[l])) : a[l] = s[l])
}
}
return a
}
},
W = (i = c.createElement("div"), {
touch: R.Modernizr && !0 === R.Modernizr.touch || !!(0 < R.navigator.maxTouchPoints ||
"ontouchstart" in R || R.DocumentTouch && c instanceof R.DocumentTouch),
pointerEvents: !!(R.navigator.pointerEnabled || R.PointerEvent || "maxTouchPoints" in R
.navigator && 0 < R.navigator.maxTouchPoints),
prefixedPointerEvents: !!R.navigator.msPointerEnabled,
transition: "transition" in (t = i.style) || "webkitTransition" in t || "MozTransition" in t,
transforms3d: R.Modernizr && !0 === R.Modernizr.csstransforms3d || "webkitPerspective" in (t = i
.style) || "MozPerspective" in t || "OPerspective" in t || "MsPerspective" in t ||
"perspective" in t,
flexbox: function() {
for (var e = i.style, t =
"alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient"
.split(" "), a = 0; a < t.length; a += 1)
if (t[a] in e) return !0;
return !1
}(),
observer: "MutationObserver" in R || "WebkitMutationObserver" in R,
passiveListener: function() {
var e = !1;
try {
var t = Object.defineProperty({}, "passive", {
get: function() {
e = !0
}
});
R.addEventListener("testPassiveListener", null, t)
} catch (e) {}
return e
}(),
gestures: "ongesturestart" in R
}),
j = {
isIE: !!R.navigator.userAgent.match(/Trident/g) || !!R.navigator.userAgent.match(/MSIE/g),
isEdge: !!R.navigator.userAgent.match(/Edge/g),
isSafari: 0 <= (t = R.navigator.userAgent.toLowerCase()).indexOf("safari") && t.indexOf("chrome") <
0 && t.indexOf("android") < 0,
isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(R.navigator.userAgent)
},
t = {
components: {
configurable: !0
}
},
t = (e.prototype.on = function(e, t, a) {
var i, s = this;
return "function" == typeof t && (i = a ? "unshift" : "push", e.split(" ").forEach(function(e) {
s.eventsListeners[e] || (s.eventsListeners[e] = []), s.eventsListeners[e][i](t)
})), s
}, e.prototype.once = function(a, i, e) {
var s = this;
return "function" != typeof i ? s : (n.f7proxy = i, s.on(a, n, e));
function n() {
for (var e = [], t = arguments.length; t--;) e[t] = arguments[t];
i.apply(s, e), s.off(a, n), n.f7proxy && delete n.f7proxy
}
}, e.prototype.off = function(e, i) {
var s = this;
return s.eventsListeners && e.split(" ").forEach(function(a) {
void 0 === i ? s.eventsListeners[a] = [] : s.eventsListeners[a] && s
.eventsListeners[a].length && s.eventsListeners[a].forEach(function(e, t) {
(e === i || e.f7proxy && e.f7proxy === i) && s.eventsListeners[a]
.splice(t, 1)
})
}), s
}, e.prototype.emit = function() {
for (var e = [], t = arguments.length; t--;) e[t] = arguments[t];
var a, i, s, n = this;
return n.eventsListeners && (s = "string" == typeof e[0] || Array.isArray(e[0]) ? (a = e[0], i =
e.slice(1, e.length), n) : (a = e[0].events, i = e[0].data, e[0].context || n), (
Array.isArray(a) ? a : a.split(" ")).forEach(function(e) {
var t;
n.eventsListeners && n.eventsListeners[e] && (t = [], n.eventsListeners[e]
.forEach(function(e) {
t.push(e)
}), t.forEach(function(e) {
e.apply(s, i)
}))
})), n
}, e.prototype.useModulesParams = function(t) {
var a = this;
a.modules && Object.keys(a.modules).forEach(function(e) {
e = a.modules[e];
e.params && q.extend(t, e.params)
})
}, e.prototype.useModules = function(t) {
void 0 === t && (t = {});
var i = this;
i.modules && Object.keys(i.modules).forEach(function(e) {
var a = i.modules[e],
e = t[e] || {};
a.instance && Object.keys(a.instance).forEach(function(e) {
var t = a.instance[e];
i[e] = "function" == typeof t ? t.bind(i) : t
}), a.on && i.on && Object.keys(a.on).forEach(function(e) {
i.on(e, a.on[e])
}), a.create && a.create.bind(i)(e)
})
}, t.components.set = function(e) {
this.use && this.use(e)
}, e.installModule = function(t) {
for (var e = [], a = arguments.length - 1; 0 < a--;) e[a] = arguments[a + 1];
var i = this,
s = (i.prototype.modules || (i.prototype.modules = {}), t.name || Object.keys(i.prototype
.modules).length + "_" + q.now());
return (i.prototype.modules[s] = t).proto && Object.keys(t.proto).forEach(function(e) {
i.prototype[e] = t.proto[e]
}), t.static && Object.keys(t.static).forEach(function(e) {
i[e] = t.static[e]
}), t.install && t.install.apply(i, e), i
}, e.use = function(e) {
for (var t = [], a = arguments.length - 1; 0 < a--;) t[a] = arguments[a + 1];
var i = this;
return Array.isArray(e) ? (e.forEach(function(e) {
return i.installModule(e)
}), i) : i.installModule.apply(i, [e].concat(t))
}, Object.defineProperties(e, t), {
updateSize: function() {
var e = this,
t = e.$el,
a = void 0 !== e.params.width ? e.params.width : t[0].clientWidth,
i = void 0 !== e.params.height ? e.params.height : t[0].clientHeight;
0 === a && e.isHorizontal() || 0 === i && e.isVertical() || (a = a - parseInt(t.css(
"padding-left"), 10) - parseInt(t.css("padding-right"), 10), i = i -
parseInt(t.css("padding-top"), 10) - parseInt(t.css("padding-bottom"), 10), q
.extend(e, {
width: a,
height: i,
size: e.isHorizontal() ? a : i
}))
},
updateSlides: function() {
var e, t = this,
a = t.params,
i = t.$wrapperEl,
s = t.size,
n = t.rtlTranslate,
H = t.wrongRTL,
r = t.virtual && a.virtual.enabled,
G = (r ? t.virtual : t).slides.length,
o = i.children("." + t.params.slideClass),
l = (r ? t.virtual.slides : o).length,
d = [],
p = [],
c = [],
r = a.slidesOffsetBefore,
u = ("function" == typeof r && (r = a.slidesOffsetBefore.call(t)), a
.slidesOffsetAfter),
N = ("function" == typeof u && (u = a.slidesOffsetAfter.call(t)), t.snapGrid
.length),
B = t.snapGrid.length,
h = a.spaceBetween,
m = -r,
v = 0,
f = 0;
if (void 0 !== s) {
"string" == typeof h && 0 <= h.indexOf("%") && (h = parseFloat(h.replace("%", "")) /
100 * s), t.virtualSize = -h, n ? o.css({
marginLeft: "",
marginTop: ""
}) : o.css({
marginRight: "",
marginBottom: ""
}), 1 < a.slidesPerColumn && (e = Math.floor(l / a.slidesPerColumn) === l / t
.params.slidesPerColumn ? l : Math.ceil(l / a.slidesPerColumn) * a
.slidesPerColumn, "auto" !== a.slidesPerView) && "row" === a
.slidesPerColumnFill && (e = Math.max(e, a.slidesPerView * a.slidesPerColumn));
for (var g, b, w = a.slidesPerColumn, V = e / w, X = Math.floor(l / a
.slidesPerColumn), y = 0; y < l; y += 1) {
C = 0;
var x, T, E, S, C, M, P, k, z, $, Y, I = o.eq(y);
1 < a.slidesPerColumn && (S = E = T = void 0, "column" === a
.slidesPerColumnFill || "row" === a.slidesPerColumnFill && 1 < a
.slidesPerGroup ? ("column" === a.slidesPerColumnFill ? (S = y - (E =
Math.floor(y / w)) * w, (X < E || E === X && S === w - 1) &&
w <= (S += 1) && (S = 0, E += 1)) : (x = Math.floor(y / a
.slidesPerGroup), E = y - (S = Math.floor(y / a
.slidesPerView) - x * a.slidesPerColumn) * a.slidesPerView -
x * a.slidesPerView), I.css({
"-webkit-box-ordinal-group": T = E + S * e / w,
"-moz-box-ordinal-group": T,
"-ms-flex-order": T,
"-webkit-order": T,
order: T
})) : E = y - (S = Math.floor(y / V)) * V, I.css("margin-" + (t
.isHorizontal() ? "top" : "left"), 0 !== S && a.spaceBetween &&
a.spaceBetween + "px").attr("data-swiper-column", E).attr(
"data-swiper-row", S)), "none" !== I.css("display") && ("auto" === a
.slidesPerView ? (x = R.getComputedStyle(I[0], null), T = I[0].style
.transform, E = I[0].style.webkitTransform, T && (I[0].style
.transform = "none"), E && (I[0].style.webkitTransform =
"none"), C = a.roundLengths ? t.isHorizontal() ? I.outerWidth(!0) :
I.outerHeight(!0) : t.isHorizontal() ? (S = parseFloat(x
.getPropertyValue("width")), P = parseFloat(x
.getPropertyValue("padding-left")), k = parseFloat(x
.getPropertyValue("padding-right")), z = parseFloat(x
.getPropertyValue("margin-left")), $ = parseFloat(x
.getPropertyValue("margin-right")), (M = x.getPropertyValue(
"box-sizing")) && "border-box" === M && !j.isIE ? S + z +
$ : S + P + k + z + $) : (M = parseFloat(x.getPropertyValue(
"height")), P = parseFloat(x.getPropertyValue(
"padding-top")), k = parseFloat(x.getPropertyValue(
"padding-bottom")), z = parseFloat(x.getPropertyValue(
"margin-top")), $ = parseFloat(x.getPropertyValue(
"margin-bottom")), (Y = x.getPropertyValue("box-sizing")) &&
"border-box" === Y && !j.isIE ? M + z + $ : M + P + k + z + $),
T && (I[0].style.transform = T), E && (I[0].style.webkitTransform =
E), a.roundLengths && (C = Math.floor(C))) : (C = (s - (a
.slidesPerView - 1) * h) / a.slidesPerView, a.roundLengths && (
C = Math.floor(C)), o[y] && (t.isHorizontal() ? o[y].style
.width = C + "px" : o[y].style.height = C + "px")), o[y] && (o[y]
.swiperSlideSize = C), c.push(C), a.centeredSlides ? (m = m + C /
2 + v / 2 + h, 0 === v && 0 !== y && (m = m - s / 2 - h), 0 === y &&
(m = m - s / 2 - h), Math.abs(m) < .001 && (m = 0), a
.roundLengths && (m = Math.floor(m)), f % a.slidesPerGroup == 0 && d
.push(m), p.push(m)) : (a.roundLengths && (m = Math.floor(m)), f % a
.slidesPerGroup == 0 && d.push(m), p.push(m), m = m + C + h), t
.virtualSize += C + h, v = C, f += 1)
}
if (t.virtualSize = Math.max(t.virtualSize, s) + u, n && H && ("slide" === a
.effect || "coverflow" === a.effect) && i.css({
width: t.virtualSize + a.spaceBetween + "px"
}), W.flexbox && !a.setWrapperSize || (t.isHorizontal() ? i.css({
width: t.virtualSize + a.spaceBetween + "px"
}) : i.css({
height: t.virtualSize + a.spaceBetween + "px"
})), 1 < a.slidesPerColumn && (t.virtualSize = (C + a.spaceBetween) * e, t
.virtualSize = Math.ceil(t.virtualSize / a.slidesPerColumn) - a
.spaceBetween, t.isHorizontal() ? i.css({
width: t.virtualSize + a.spaceBetween + "px"
}) : i.css({
height: t.virtualSize + a.spaceBetween + "px"
}), a.centeredSlides)) {
for (var L = [], D = 0; D < d.length; D += 1) {
var O = d[D];
a.roundLengths && (O = Math.floor(O)), d[D] < t.virtualSize + d[0] && L
.push(O)
}
d = L
}
if (!a.centeredSlides) {
L = [];
for (var A = 0; A < d.length; A += 1) {
var F = d[A];
a.roundLengths && (F = Math.floor(F)), d[A] <= t.virtualSize - s && L.push(
F)
}
d = L, 1 < Math.floor(t.virtualSize - s) - Math.floor(d[d.length - 1]) && d
.push(t.virtualSize - s)
}
0 === d.length && (d = [0]), 0 !== a.spaceBetween && (t.isHorizontal() ? n ? o.css({
marginLeft: h + "px"
}) : o.css({
marginRight: h + "px"
}) : o.css({
marginBottom: h + "px"
})), a.centerInsufficientSlides && (g = 0, c.forEach(function(e) {
g += e + (a.spaceBetween || 0)
}), (g -= a.spaceBetween) < s) && (b = (s - g) / 2, d.forEach(function(e, t) {
d[t] = e - b
}), p.forEach(function(e, t) {
p[t] = e + b
})), q.extend(t, {
slides: o,
snapGrid: d,
slidesGrid: p,
slidesSizesGrid: c
}), l !== G && t.emit("slidesLengthChange"), d.length !== N && (t.params
.watchOverflow && t.checkOverflow(), t.emit("snapGridLengthChange")), p
.length !== B && t.emit("slidesGridLengthChange"), (a.watchSlidesProgress || a
.watchSlidesVisibility) && t.updateSlidesOffset()
}
},
updateAutoHeight: function(e) {
var t, a, i = this,
s = [],
n = 0;
if ("number" == typeof e ? i.setTransition(e) : !0 === e && i.setTransition(i.params
.speed), "auto" !== i.params.slidesPerView && 1 < i.params.slidesPerView)
for (t = 0; t < Math.ceil(i.params.slidesPerView); t += 1) {
var r = i.activeIndex + t;
if (r > i.slides.length) break;
s.push(i.slides.eq(r)[0])
} else s.push(i.slides.eq(i.activeIndex)[0]);
for (t = 0; t < s.length; t += 1) void 0 !== s[t] && (n = n < (a = s[t].offsetHeight) ?
a : n);
n && i.$wrapperEl.css("height", n + "px")
},
updateSlidesOffset: function() {
for (var e = this.slides, t = 0; t < e.length; t += 1) e[t].swiperSlideOffset = this
.isHorizontal() ? e[t].offsetLeft : e[t].offsetTop
},
updateSlidesProgress: function(e) {
var t = this,
a = t.params,
i = (void 0 === e && (e = t && t.translate || 0), t.slides),
s = t.rtlTranslate;
if (0 !== i.length) {
void 0 === i[0].swiperSlideOffset && t.updateSlidesOffset();
var n = s ? e : -e;
i.removeClass(a.slideVisibleClass), t.visibleSlidesIndexes = [], t
.visibleSlides = [];
for (var r = 0; r < i.length; r += 1) {
var o, l, d = i[r],
p = (n + (a.centeredSlides ? t.minTranslate() : 0) - d.swiperSlideOffset) /
(d.swiperSlideSize + a.spaceBetween);
a.watchSlidesVisibility && (l = (o = -(n - d.swiperSlideOffset)) + t
.slidesSizesGrid[r], 0 <= o && o < t.size - 1 || 1 < l && l <= t.size ||
o <= 0 && l >= t.size) && (t.visibleSlides.push(d), t
.visibleSlidesIndexes.push(r), i.eq(r).addClass(a.slideVisibleClass)), d
.progress = s ? -p : p
}
t.visibleSlides = E(t.visibleSlides)
}
},
updateProgress: function(e) {
var t = this,
a = t.params,
i = (void 0 === e && (i = t.rtlTranslate ? -1 : 1, e = t && t.translate && t
.translate * i || 0), t.maxTranslate() - t.minTranslate()),
s = t.progress,
n = t.isBeginning,
r = n,
o = t.isEnd,
i = 0 == i ? n = !(s = 0) : (n = (s = (e - t.minTranslate()) / i) <= 0, 1 <= s);
q.extend(t, {
progress: s,
isBeginning: n,
isEnd: i
}), (a.watchSlidesProgress || a.watchSlidesVisibility) && t.updateSlidesProgress(e),
n && !r && t.emit("reachBeginning toEdge"), i && !o && t.emit("reachEnd toEdge"), (
r && !n || o && !i) && t.emit("fromEdge"), t.emit("progress", s)
},
updateSlidesClasses: function() {
var e = this,
t = e.slides,
a = e.params,
i = e.$wrapperEl,
s = e.activeIndex,
n = e.realIndex,
r = e.virtual && a.virtual.enabled,
e = (t.removeClass(a.slideActiveClass + " " + a.slideNextClass + " " + a
.slidePrevClass + " " + a.slideDuplicateActiveClass + " " + a
.slideDuplicateNextClass + " " + a.slideDuplicatePrevClass), (r = r ? e
.$wrapperEl.find("." + a.slideClass + '[data-swiper-slide-index="' + s +
'"]') : t.eq(s)).addClass(a.slideActiveClass), a.loop && (r.hasClass(a
.slideDuplicateClass) ? i.children("." + a.slideClass + ":not(." + a
.slideDuplicateClass + ')[data-swiper-slide-index="' + n + '"]') : i
.children("." + a.slideClass + "." + a.slideDuplicateClass +
'[data-swiper-slide-index="' + n + '"]')).addClass(a
.slideDuplicateActiveClass), r.nextAll("." + a.slideClass).eq(0).addClass(a
.slideNextClass)),
s = (a.loop && 0 === e.length && (e = t.eq(0)).addClass(a.slideNextClass), r
.prevAll("." + a.slideClass).eq(0).addClass(a.slidePrevClass));
a.loop && 0 === s.length && (s = t.eq(-1)).addClass(a.slidePrevClass), a.loop && ((e
.hasClass(a.slideDuplicateClass) ? i.children("." + a.slideClass +
":not(." + a.slideDuplicateClass + ')[data-swiper-slide-index="' + e
.attr("data-swiper-slide-index") + '"]') : i.children("." + a
.slideClass + "." + a.slideDuplicateClass +
'[data-swiper-slide-index="' + e.attr("data-swiper-slide-index") + '"]')
).addClass(a.slideDuplicateNextClass), (s.hasClass(a.slideDuplicateClass) ?
i.children("." + a.slideClass + ":not(." + a.slideDuplicateClass +
')[data-swiper-slide-index="' + s.attr("data-swiper-slide-index") + '"]'
) : i.children("." + a.slideClass + "." + a.slideDuplicateClass +
'[data-swiper-slide-index="' + s.attr("data-swiper-slide-index") + '"]')
).addClass(a.slideDuplicatePrevClass))
},
updateActiveIndex: function(e) {
var t = this,
a = t.rtlTranslate ? t.translate : -t.translate,
i = t.slidesGrid,
s = t.snapGrid,
n = t.params,
r = t.activeIndex,
o = t.realIndex,
l = t.snapIndex,
d = e;
if (void 0 === d) {
for (var p = 0; p < i.length; p += 1) void 0 !== i[p + 1] ? a >= i[p] && a < i[p +
1] - (i[p + 1] - i[p]) / 2 ? d = p : a >= i[p] && a < i[p + 1] && (d = p +
1) : a >= i[p] && (d = p);
n.normalizeSlideIndex && (d < 0 || void 0 === d) && (d = 0)
}(e = 0 <= s.indexOf(a) ? s.indexOf(a) : Math.floor(d / n.slidesPerGroup)) >= s
.length && (e = s.length - 1), d !== r ? (n = parseInt(t.slides.eq(d).attr(
"data-swiper-slide-index") || d, 10), q.extend(t, {
snapIndex: e,
realIndex: n,
previousIndex: r,
activeIndex: d
}), t.emit("activeIndexChange"), t.emit("snapIndexChange"), o !== n && t.emit(
"realIndexChange"), (t.initialized || t.runCallbacksOnInit) && t.emit(
"slideChange")) : e !== l && (t.snapIndex = e, t.emit("snapIndexChange"))
},
updateClickedSlide: function(e) {
var t = this,
a = t.params,
i = E(e.target).closest("." + a.slideClass)[0],
s = !1;
if (i)
for (var n = 0; n < t.slides.length; n += 1) t.slides[n] === i && (s = !0);
i && s ? (t.clickedSlide = i, t.virtual && t.params.virtual.enabled ? t.clickedIndex =
parseInt(E(i).attr("data-swiper-slide-index"), 10) : t.clickedIndex = E(i)
.index(), a.slideToClickedSlide && void 0 !== t.clickedIndex && t
.clickedIndex !== t.activeIndex && t.slideToClickedSlide()) : (t.clickedSlide =
void 0, t.clickedIndex = void 0)
}
}),
a = {
getTranslate: function(e) {
void 0 === e && (e = this.isHorizontal() ? "x" : "y");
var t = this.params,
a = this.rtlTranslate,
i = this.translate,
s = this.$wrapperEl;
return t.virtualTranslate ? a ? -i : i : (t = q.getTranslate(s[0], e), (t = a ? -t : t) ||
0)
},
setTranslate: function(e, t) {
var a = this,
i = a.rtlTranslate,
s = a.params,
n = a.$wrapperEl,
r = a.progress,
o = 0,
l = 0,
i = (a.isHorizontal() ? o = i ? -e : e : l = e, s.roundLengths && (o = Math.floor(o),
l = Math.floor(l)), s.virtualTranslate || (W.transforms3d ? n.transform(
"translate3d(" + o + "px, " + l + "px, 0px)") : n.transform("translate(" +
o + "px, " + l + "px)")), a.previousTranslate = a.translate, a.translate = a
.isHorizontal() ? o : l, a.maxTranslate() - a.minTranslate());
(0 == i ? 0 : (e - a.minTranslate()) / i) !== r && a.updateProgress(e), a.emit(
"setTranslate", a.translate, t)
},
minTranslate: function() {
return -this.snapGrid[0]
},
maxTranslate: function() {
return -this.snapGrid[this.snapGrid.length - 1]
}
},
s = {
slideTo: function(e, t, a, i) {
void 0 === t && (t = this.params.speed), void 0 === a && (a = !0);
var s = this,
n = e = void 0 === e ? 0 : e,
e = (n < 0 && (n = 0), s.params),
r = s.snapGrid,
o = s.slidesGrid,
l = s.previousIndex,
d = s.activeIndex,
p = s.rtlTranslate;
if (s.animating && e.preventInteractionOnTransition) return !1;
var c = Math.floor(n / e.slidesPerGroup);
c >= r.length && (c = r.length - 1), (d || e.initialSlide || 0) === (l || 0) && a && s.emit(
"beforeSlideChangeStart");
var u, h = -r[c];
if (s.updateProgress(h), e.normalizeSlideIndex)
for (var m = 0; m < o.length; m += 1) - Math.floor(100 * h) >= Math.floor(100 * o[m]) &&
(n = m);
if (s.initialized && n !== d) {
if (!s.allowSlideNext && h < s.translate && h < s.minTranslate()) return !1;
if (!s.allowSlidePrev && h > s.translate && h > s.maxTranslate() && (d || 0) !== n)
return !1
}
return u = d < n ? "next" : n < d ? "prev" : "reset", p && -h === s.translate || !p && h ===
s.translate ? (s.updateActiveIndex(n), e.autoHeight && s.updateAutoHeight(), s
.updateSlidesClasses(), "slide" !== e.effect && s.setTranslate(h), "reset" != u && (
s.transitionStart(a, u), s.transitionEnd(a, u)), !1) : (0 !== t && W
.transition ? (s.setTransition(t), s.setTranslate(h), s.updateActiveIndex(n), s
.updateSlidesClasses(), s.emit("beforeTransitionStart", t, i), s
.transitionStart(a, u), s.animating || (s.animating = !0, s
.onSlideToWrapperTransitionEnd || (s.onSlideToWrapperTransitionEnd =
function(e) {
s && !s.destroyed && e.target === this && (s.$wrapperEl[0]
.removeEventListener("transitionend", s
.onSlideToWrapperTransitionEnd), s.$wrapperEl[0]
.removeEventListener("webkitTransitionEnd", s
.onSlideToWrapperTransitionEnd), s
.onSlideToWrapperTransitionEnd = null, delete s
.onSlideToWrapperTransitionEnd, s.transitionEnd(a, u))
}), s.$wrapperEl[0].addEventListener("transitionend", s
.onSlideToWrapperTransitionEnd), s.$wrapperEl[0].addEventListener(
"webkitTransitionEnd", s.onSlideToWrapperTransitionEnd))) : (s
.setTransition(0), s.setTranslate(h), s.updateActiveIndex(n), s
.updateSlidesClasses(), s.emit("beforeTransitionStart", t, i), s
.transitionStart(a, u), s.transitionEnd(a, u)), !0)
},
slideToLoop: function(e, t, a, i) {
void 0 === t && (t = this.params.speed);
e = void 0 === e ? 0 : e;
return this.params.loop && (e += this.loopedSlides), this.slideTo(e, t, a = void 0 === a ? !
0 : a, i)
},
slideNext: function(e, t, a) {
void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
var i = this,
s = i.params,
n = i.animating;
return s.loop ? !n && (i.loopFix(), i._clientLeft = i.$wrapperEl[0].clientLeft, i.slideTo(i
.activeIndex + s.slidesPerGroup, e, t, a)) : i.slideTo(i.activeIndex + s
.slidesPerGroup, e, t, a)
},
slidePrev: function(e, t, a) {
void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
var i = this,
s = i.params,
n = i.animating,
r = i.snapGrid,
o = i.slidesGrid,
l = i.rtlTranslate;
if (s.loop) {
if (n) return !1;
i.loopFix(), i._clientLeft = i.$wrapperEl[0].clientLeft
}
function d(e) {
return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e)
}
var p, s = d(l ? i.translate : -i.translate),
n = r.map(d),
l = (o.map(d), r[n.indexOf(s)], r[n.indexOf(s) - 1]);
return void 0 !== l && (p = o.indexOf(l)) < 0 && (p = i.activeIndex - 1), i.slideTo(p, e, t,
a)
},
slideReset: function(e, t, a) {
return void 0 === e && (e = this.params.speed), this.slideTo(this.activeIndex, e, t =
void 0 === t ? !0 : t, a)
},
slideToClosest: function(e, t, a) {
void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
var i, s, n = this,
r = n.activeIndex,
o = Math.floor(r / n.params.slidesPerGroup);
return o < n.snapGrid.length - 1 && (i = n.rtlTranslate ? n.translate : -n.translate, s = n
.snapGrid[o], (n.snapGrid[o + 1] - s) / 2 < i - s) && (r = n.params.slidesPerGroup),
n.slideTo(r, e, t, a)
},
slideToClickedSlide: function() {
var e, t = this,
a = t.params,
i = t.$wrapperEl,
s = "auto" === a.slidesPerView ? t.slidesPerViewDynamic() : a.slidesPerView,
n = t.clickedIndex;
a.loop ? t.animating || (e = parseInt(E(t.clickedSlide).attr("data-swiper-slide-index"),
10), a.centeredSlides ? n < t.loopedSlides - s / 2 || n > t.slides.length - t
.loopedSlides + s / 2 ? (t.loopFix(), n = i.children("." + a.slideClass +
'[data-swiper-slide-index="' + e + '"]:not(.' + a.slideDuplicateClass + ")")
.eq(0).index(), q.nextTick(function() {
t.slideTo(n)
})) : t.slideTo(n) : n > t.slides.length - s ? (t.loopFix(), n = i.children(
"." + a.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + a
.slideDuplicateClass + ")").eq(0).index(), q.nextTick(function() {
t.slideTo(n)
})) : t.slideTo(n)) : t.slideTo(n)
}
},
r = {
loopCreate: function() {
var i = this,
e = i.params,
t = i.$wrapperEl,
s = (t.children("." + e.slideClass + "." + e.slideDuplicateClass).remove(), t.children(
"." + e.slideClass));
if (e.loopFillGroupWithBlank) {
var a = e.slidesPerGroup - s.length % e.slidesPerGroup;
if (a !== e.slidesPerGroup) {
for (var n = 0; n < a; n += 1) {
var r = E(c.createElement("div")).addClass(e.slideClass + " " + e
.slideBlankClass);
t.append(r)
}
s = t.children("." + e.slideClass)
}
}
"auto" !== e.slidesPerView || e.loopedSlides || (e.loopedSlides = s.length), i
.loopedSlides = parseInt(e.loopedSlides || e.slidesPerView, 10), i.loopedSlides += e
.loopAdditionalSlides, i.loopedSlides > s.length && (i.loopedSlides = s.length);
var o = [],
l = [];
s.each(function(e, t) {
var a = E(t);
e < i.loopedSlides && l.push(t), e < s.length && e >= s.length - i
.loopedSlides && o.push(t), a.attr("data-swiper-slide-index", e)
});
for (var d = 0; d < l.length; d += 1) t.append(E(l[d].cloneNode(!0)).addClass(e
.slideDuplicateClass));
for (var p = o.length - 1; 0 <= p; --p) t.prepend(E(o[p].cloneNode(!0)).addClass(e
.slideDuplicateClass))
},
loopFix: function() {
var e, t = this,
a = t.params,
i = t.activeIndex,
s = t.slides,
n = t.loopedSlides,
r = t.allowSlidePrev,
o = t.allowSlideNext,
l = t.snapGrid,
d = t.rtlTranslate,
l = (t.allowSlidePrev = !0, t.allowSlideNext = !0, -l[i] - t.getTranslate());
i < n ? (e = s.length - 3 * n + i, t.slideTo(e += n, 0, !1, !0) && 0 != l && t.setTranslate(
(d ? -t.translate : t.translate) - l)) : ("auto" === a.slidesPerView && 2 * n <=
i || i >= s.length - n) && (e = -s.length + i + n, t.slideTo(e += n, 0, !1, !0)) &&
0 != l && t.setTranslate((d ? -t.translate : t.translate) - l), t.allowSlidePrev = r, t
.allowSlideNext = o
},
loopDestroy: function() {
var e = this.$wrapperEl,
t = this.params,
a = this.slides;
e.children("." + t.slideClass + "." + t.slideDuplicateClass + ",." + t.slideClass + "." + t
.slideBlankClass).remove(), a.removeAttr("data-swiper-slide-index")
}
},
D = {
setGrabCursor: function(e) {
var t;
W.touch || !this.params.simulateTouch || this.params.watchOverflow && this.isLocked || ((t =
this.el).style.cursor = "move", t.style.cursor = e ? "-webkit-grabbing" :
"-webkit-grab", t.style.cursor = e ? "-moz-grabbin" : "-moz-grab", t.style.cursor =
e ? "grabbing" : "grab")
},
unsetGrabCursor: function() {
W.touch || this.params.watchOverflow && this.isLocked || (this.el.style.cursor = "")
}
},
O = {
appendSlide: function(e) {
var t = this,
a = t.$wrapperEl,
i = t.params;
if (i.loop && t.loopDestroy(), "object" == typeof e && "length" in e)
for (var s = 0; s < e.length; s += 1) e[s] && a.append(e[s]);
else a.append(e);
i.loop && t.loopCreate(), i.observer && W.observer || t.update()
},
prependSlide: function(e) {
var t = this,
a = t.params,
i = t.$wrapperEl,
s = t.activeIndex,
n = (a.loop && t.loopDestroy(), s + 1);
if ("object" == typeof e && "length" in e) {
for (var r = 0; r < e.length; r += 1) e[r] && i.prepend(e[r]);
n = s + e.length
} else i.prepend(e);
a.loop && t.loopCreate(), a.observer && W.observer || t.update(), t.slideTo(n, 0, !1)
},
addSlide: function(e, t) {
var a = this,
i = a.$wrapperEl,
s = a.params,
n = a.activeIndex,
r = (s.loop && (n -= a.loopedSlides, a.loopDestroy(), a.slides = i.children("." + s
.slideClass)), a.slides.length);
if (e <= 0) a.prependSlide(t);
else if (r <= e) a.appendSlide(t);
else {
for (var o = e < n ? n + 1 : n, l = [], d = r - 1; e <= d; --d) {
var p = a.slides.eq(d);
p.remove(), l.unshift(p)
}
if ("object" == typeof t && "length" in t) {
for (var c = 0; c < t.length; c += 1) t[c] && i.append(t[c]);
o = e < n ? n + t.length : n
} else i.append(t);
for (var u = 0; u < l.length; u += 1) i.append(l[u]);
s.loop && a.loopCreate(), s.observer && W.observer || a.update(), s.loop ? a.slideTo(o +
a.loopedSlides, 0, !1) : a.slideTo(o, 0, !1)
}
},
removeSlide: function(e) {
var t = this,
a = t.params,
i = t.$wrapperEl,
s = t.activeIndex;
a.loop && (s -= t.loopedSlides, t.loopDestroy(), t.slides = i.children("." + a.slideClass));
var n, r = s;
if ("object" == typeof e && "length" in e)
for (var o = 0; o < e.length; o += 1) n = e[o], t.slides[n] && t.slides.eq(n).remove(),
n < r && --r;
else t.slides[n = e] && t.slides.eq(n).remove(), n < r && --r;
r = Math.max(r, 0), a.loop && t.loopCreate(), a.observer && W.observer || t.update(), a
.loop ? t.slideTo(r + t.loopedSlides, 0, !1) : t.slideTo(r, 0, !1)
},
removeAllSlides: function() {
for (var e = [], t = 0; t < this.slides.length; t += 1) e.push(t);
this.removeSlide(e)
}
},
o = (m = R.navigator.userAgent, x = {
ios: !1,
android: !1,
androidChrome: !1,
desktop: !1,
windows: !1,
iphone: !1,
ipod: !1,
ipad: !1,
cordova: R.cordova || R.phonegap,
phonegap: R.cordova || R.phonegap
}, g = m.match(/(Windows Phone);?[\s\/]+([\d.]+)?/), w = m.match(/(Android);?[\s\/]+([\d.]+)?/), p =
m.match(/(iPad).*OS\s([\d_]+)/), v = m.match(/(iPod)(.*OS\s([\d_]+))?/), f = !p && m.match(
/(iPhone\sOS|iOS)\s([\d_]+)/), g && (x.os = "windows", x.osVersion = g[2], x.windows = !0), w &&
!g && (x.os = "android", x.osVersion = w[2], x.android = !0, x.androidChrome = 0 <= m.toLowerCase()
.indexOf("chrome")), (p || f || v) && (x.os = "ios", x.ios = !0), f && !v && (x.osVersion = f[2]
.replace(/_/g, "."), x.iphone = !0), p && (x.osVersion = p[2].replace(/_/g, "."), x.ipad = !0),
v && (x.osVersion = v[3] ? v[3].replace(/_/g, ".") : null, x.iphone = !0), x.ios && x.osVersion &&
0 <= m.indexOf("Version/") && "10" === x.osVersion.split(".")[0] && (x.osVersion = m.toLowerCase()
.split("version/")[1].split(" ")[0]), x.desktop = !(x.os || x.android || x.webView), x.webView =
(f || p || v) && m.match(/.*AppleWebKit(?!.*Safari)/i), x.os && "ios" === x.os && (g = x.osVersion
.split("."), w = c.querySelector('meta[name="viewport"]'), x.minimalUi = !x.webView && (v ||
f) && (7 == +g[0] ? 1 <= +g[1] : 7 < +g[0]) && w && 0 <= w.getAttribute("content").indexOf(
"minimal-ui")), x.pixelRatio = R.devicePixelRatio || 1, x);
function A() {
var e, t, a, i = this,
s = i.params,
n = i.el;
n && 0 === n.offsetWidth || (s.breakpoints && i.setBreakpoint(), n = i.allowSlideNext, e = i
.allowSlidePrev, t = i.snapGrid, i.allowSlideNext = !0, i.allowSlidePrev = !0, i.updateSize(), i
.updateSlides(), s.freeMode ? (a = Math.min(Math.max(i.translate, i.maxTranslate()), i
.minTranslate()), i.setTranslate(a), i.updateActiveIndex(), i.updateSlidesClasses(), s
.autoHeight && i.updateAutoHeight()) : (i.updateSlidesClasses(), ("auto" === s
.slidesPerView || 1 < s.slidesPerView) && i.isEnd && !i.params.centeredSlides ? i
.slideTo(i.slides.length - 1, 0, !1, !0) : i.slideTo(i.activeIndex, 0, !1, !0)), i
.autoplay && i.autoplay.running && i.autoplay.paused && i.autoplay.run(), i.allowSlidePrev = e,
i.allowSlideNext = n, i.params.watchOverflow && t !== i.snapGrid && i.checkOverflow())
}
var H = !1;
function G() {}
var d, p, N = {
init: !0,
direction: "horizontal",
touchEventsTarget: "container",
initialSlide: 0,
speed: 300,
preventInteractionOnTransition: !1,
edgeSwipeDetection: !1,
edgeSwipeThreshold: 20,
freeMode: !1,
freeModeMomentum: !0,
freeModeMomentumRatio: 1,
freeModeMomentumBounce: !0,
freeModeMomentumBounceRatio: 1,
freeModeMomentumVelocityRatio: 1,
freeModeSticky: !1,
freeModeMinimumVelocity: .02,
autoHeight: !1,
setWrapperSize: !1,
virtualTranslate: !1,
effect: "slide",
breakpoints: void 0,
breakpointsInverse: !1,
spaceBetween: 0,
slidesPerView: 1,
slidesPerColumn: 1,
slidesPerColumnFill: "column",
slidesPerGroup: 1,
centeredSlides: !1,
slidesOffsetBefore: 0,
slidesOffsetAfter: 0,
normalizeSlideIndex: !0,
centerInsufficientSlides: !1,
watchOverflow: !1,
roundLengths: !1,
touchRatio: 1,
touchAngle: 45,
simulateTouch: !0,
shortSwipes: !0,
longSwipes: !0,
longSwipesRatio: .5,
longSwipesMs: 300,
followFinger: !0,
allowTouchMove: !0,
threshold: 0,
touchMoveStopPropagation: !0,
touchStartPreventDefault: !0,
touchStartForcePreventDefault: !1,
touchReleaseOnEdges: !1,
uniqueNavElements: !0,
resistance: !0,
resistanceRatio: .85,
watchSlidesProgress: !1,
watchSlidesVisibility: !1,
grabCursor: !1,
preventClicks: !0,
preventClicksPropagation: !0,
slideToClickedSlide: !1,
preloadImages: !0,
updateOnImagesReady: !0,
loop: !1,
loopAdditionalSlides: 0,
loopedSlides: null,
loopFillGroupWithBlank: !1,
allowSlidePrev: !0,
allowSlideNext: !0,
swipeHandler: null,
noSwiping: !0,
noSwipingClass: "swiper-no-swiping",
noSwipingSelector: null,
passiveListeners: !0,
containerModifierClass: "swiper-container-",
slideClass: "swiper-slide",
slideBlankClass: "swiper-slide-invisible-blank",
slideActiveClass: "swiper-slide-active",
slideDuplicateActiveClass: "swiper-slide-duplicate-active",
slideVisibleClass: "swiper-slide-visible",
slideDuplicateClass: "swiper-slide-duplicate",
slideNextClass: "swiper-slide-next",
slideDuplicateNextClass: "swiper-slide-duplicate-next",
slidePrevClass: "swiper-slide-prev",
slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
wrapperClass: "swiper-wrapper",
runCallbacksOnInit: !0
},
u = {
update: t,
translate: a,
transition: {
setTransition: function(e, t) {
this.$wrapperEl.transition(e), this.emit("setTransition", e, t)
},
transitionStart: function(e, t) {
void 0 === e && (e = !0);
var a = this,
i = a.activeIndex,
s = a.params,
n = a.previousIndex,
s = (s.autoHeight && a.updateAutoHeight(), t || (n < i ? "next" : i < n ? "prev" :
"reset"));
a.emit("transitionStart"), e && i !== n && ("reset" === s ? a.emit(
"slideResetTransitionStart") : (a.emit("slideChangeTransitionStart"),
"next" === s ? a.emit("slideNextTransitionStart") : a.emit(
"slidePrevTransitionStart")))
},
transitionEnd: function(e, t) {
void 0 === e && (e = !0);
var a = this,
i = a.activeIndex,
s = a.previousIndex,
t = (a.animating = !1, a.setTransition(0), t || (s < i ? "next" : i < s ? "prev" :
"reset"));
a.emit("transitionEnd"), e && i !== s && ("reset" === t ? a.emit(
"slideResetTransitionEnd") : (a.emit("slideChangeTransitionEnd"), "next" ===
t ? a.emit("slideNextTransitionEnd") : a.emit("slidePrevTransitionEnd")))
}
},
slide: s,
loop: r,
grabCursor: D,
manipulation: O,
events: {
attachEvents: function() {
var e, t = this,
a = t.params,
i = t.touchEvents,
s = t.el,
n = t.wrapperEl,
s = (t.onTouchStart = function(e) {
var t, a, i, s, n = this,
r = n.touchEventsData,
o = n.params,
l = n.touches;
n.animating && o.preventInteractionOnTransition || ((e = e).originalEvent &&
(e = e.originalEvent), r.isTouchEvent = "touchstart" === e.type, !r
.isTouchEvent && "which" in e && 3 === e.which) || !r
.isTouchEvent && "button" in e && 0 < e.button || r.isTouched && r
.isMoved || (o.noSwiping && E(e.target).closest(o.noSwipingSelector ||
"." + o.noSwipingClass)[0] ? n.allowClick = !0 : o
.swipeHandler && !E(e).closest(o.swipeHandler)[0] || (l.currentX = (
"touchstart" === e.type ? e.targetTouches[0] : e).pageX, l
.currentY = ("touchstart" === e.type ? e.targetTouches[0] : e)
.pageY, t = l.currentX, a = l.currentY, i = o
.edgeSwipeDetection || o.iOSEdgeSwipeDetection, s = o
.edgeSwipeThreshold || o.iOSEdgeSwipeThreshold, i && (t <= s ||
t >= R.screen.width - s)) || (q.extend(r, {
isTouched: !0,
isMoved: !1,
allowTouchCallbacks: !0,
isScrolling: void 0,
startMoving: void 0
}), l.startX = t, l.startY = a, r.touchStartTime = q.now(), n
.allowClick = !0, n.updateSize(), n.swipeDirection = void 0, 0 <
o.threshold && (r.allowThresholdMove = !1), "touchstart" !== e
.type && (i = !0, E(e.target).is(r.formElements) && (i = !1), c
.activeElement && E(c.activeElement).is(r.formElements) && c
.activeElement !== e.target && c.activeElement.blur(), s =
i && n.allowTouchMove && o.touchStartPreventDefault, o
.touchStartForcePreventDefault || s) && e.preventDefault(),
n.emit("touchStart", e)))
}.bind(t), t.onTouchMove = function(e) {
var t = this,
a = t.touchEventsData,
i = t.params,
s = t.touches,
n = t.rtlTranslate;
if (e.originalEvent && (e = e.originalEvent), a.isTouched) {
if (!a.isTouchEvent || "mousemove" !== e.type) {
var r = "touchmove" === e.type && e.targetTouches && (e
.targetTouches[0] || e.changedTouches[0]),
o = ("touchmove" === e.type ? r : e).pageX,
r = ("touchmove" === e.type ? r : e).pageY;
if (e.preventedByNestedSwiper) s.startX = o, s.startY = r;
else if (t.allowTouchMove) {
if (a.isTouchEvent && i.touchReleaseOnEdges && !i.loop)
if (t.isVertical()) {
if (r < s.startY && t.translate <= t.maxTranslate() ||
r > s.startY && t.translate >= t.minTranslate())
return a.isTouched = !1, void(a.isMoved = !1)
} else if (o < s.startX && t.translate <= t
.maxTranslate() || o > s.startX && t.translate >= t
.minTranslate()) return;
if (a.isTouchEvent && c.activeElement && e.target === c
.activeElement && E(e.target).is(a.formElements)) a
.isMoved = !0, t.allowClick = !1;
else if (a.allowTouchCallbacks && t.emit("touchMove", e), !(e
.targetTouches && 1 < e.targetTouches.length)) {
s.currentX = o, s.currentY = r;
var l = s.currentX - s.startX,
d = s.currentY - s.startY;
if (!(t.params.threshold && Math.sqrt(Math.pow(l, 2) + Math
.pow(d, 2)) < t.params.threshold))
if (void 0 === a.isScrolling && (t.isHorizontal() && s
.currentY === s.startY || t.isVertical() && s
.currentX === s.startX ? a.isScrolling = !1 :
25 <= l * l + d * d && (p = 180 * Math.atan2(
Math.abs(d), Math.abs(l)) / Math.PI, a
.isScrolling = t.isHorizontal() ? p > i
.touchAngle : 90 - p > i.touchAngle)), a
.isScrolling && t.emit("touchMoveOpposite", e),
void 0 !== a.startMoving || s.currentX === s
.startX && s.currentY === s.startY || (a
.startMoving = !0), a.isScrolling) a
.isTouched = !1;
else if (a.startMoving) {
t.allowClick = !1, e.preventDefault(), i
.touchMoveStopPropagation && !i.nested && e
.stopPropagation(), a.isMoved || (i.loop && t
.loopFix(), a.startTranslate = t.getTranslate(),
t.setTransition(0), t.animating && t.$wrapperEl
.trigger("webkitTransitionEnd transitionend"), a
.allowMomentumBounce = !1, !i.grabCursor || !
0 !== t.allowSlideNext && !0 !== t
.allowSlidePrev || t.setGrabCursor(!0), t.emit(
"sliderFirstMove", e)), t.emit("sliderMove",
e), a.isMoved = !0;
var p = t.isHorizontal() ? l : d,
l = (s.diff = p, p *= i.touchRatio, t
.swipeDirection = 0 < (p = n ? -p : p) ?
"prev" : "next", a.currentTranslate = p + a
.startTranslate, !0),
d = i.resistanceRatio;
if (i.touchReleaseOnEdges && (d = 0), 0 < p && a
.currentTranslate > t.minTranslate() ? (l = !1, i
.resistance && (a.currentTranslate = t
.minTranslate() - 1 + Math.pow(-t
.minTranslate() + a.startTranslate + p,
d))) : p < 0 && a.currentTranslate < t
.maxTranslate() && (l = !1, i.resistance) && (a
.currentTranslate = t.maxTranslate() + 1 - Math
.pow(t.maxTranslate() - a.startTranslate - p, d)
), l && (e.preventedByNestedSwiper = !0), !t
.allowSlideNext && "next" === t.swipeDirection && a
.currentTranslate < a.startTranslate && (a
.currentTranslate = a.startTranslate), !t
.allowSlidePrev && "prev" === t.swipeDirection && a
.currentTranslate > a.startTranslate && (a
.currentTranslate = a.startTranslate), 0 < i
.threshold) {
if (!(Math.abs(p) > i.threshold || a
.allowThresholdMove)) return void(a
.currentTranslate = a.startTranslate);
if (!a.allowThresholdMove) return a
.allowThresholdMove = !0, s.startX = s
.currentX, s.startY = s.currentY, a
.currentTranslate = a.startTranslate, void(s
.diff = t.isHorizontal() ? s.currentX -
s.startX : s.currentY - s.startY)
}
i.followFinger && ((i.freeMode || i
.watchSlidesProgress || i
.watchSlidesVisibility) && (t
.updateActiveIndex(), t
.updateSlidesClasses()), i.freeMode && (
0 === a.velocities.length && a.velocities
.push({
position: s[t.isHorizontal() ?
"startX" : "startY"],
time: a.touchStartTime
}), a.velocities.push({
position: s[t.isHorizontal() ?
"currentX" : "currentY"],
time: q.now()
})), t.updateProgress(a.currentTranslate), t
.setTranslate(a.currentTranslate))
}
}
} else t.allowClick = !1, a.isTouched && (q.extend(s, {
startX: o,
startY: r,
currentX: o,
currentY: r
}), a.touchStartTime = q.now())
}
} else a.startMoving && a.isScrolling && t.emit("touchMoveOpposite", e)
}.bind(t), t.onTouchEnd = function(e) {
var t = this,
a = t.touchEventsData,
i = t.params,
s = t.touches,
n = t.rtlTranslate,
r = t.$wrapperEl,
o = t.slidesGrid,
l = t.snapGrid,
d = e;
if (d.originalEvent && (d = d.originalEvent), a.allowTouchCallbacks && t
.emit("touchEnd", d), a.allowTouchCallbacks = !1, a.isTouched) {
i.grabCursor && a.isMoved && a.isTouched && (!0 === t.allowSlideNext ||
!0 === t.allowSlidePrev) && t.setGrabCursor(!1);
var p, e = q.now(),
c = e - a.touchStartTime;
if (t.allowClick && (t.updateClickedSlide(d), t.emit("tap", d), c <
300 && 300 < e - a.lastClickTime && (a.clickTimeout &&
clearTimeout(a.clickTimeout), a.clickTimeout = q.nextTick(
function() {
t && !t.destroyed && t.emit("click", d)
}, 300)), c < 300) && e - a.lastClickTime < 300 && (a
.clickTimeout && clearTimeout(a.clickTimeout), t.emit(
"doubleTap", d)), a.lastClickTime = q.now(), q.nextTick(
function() {
t.destroyed || (t.allowClick = !0)
}), a.isTouched && a.isMoved && t.swipeDirection && 0 !== s
.diff && a.currentTranslate !== a.startTranslate)
if (a.isTouched = !1, a.isMoved = !1, a.startMoving = !1, p = i
.followFinger ? n ? t.translate : -t.translate : -a
.currentTranslate, i.freeMode)
if (p < -t.minTranslate()) t.slideTo(t.activeIndex);
else if (p > -t.maxTranslate()) t.slides.length < l.length ? t
.slideTo(l.length - 1) : t.slideTo(t.slides.length - 1);
else {
if (i.freeModeMomentum) {
(!(1 < a.velocities.length) || (e = a.velocities.pop(), s = a
.velocities.pop(), u = e.position - s.position, s = e
.time - s.time, t.velocity = u / s, t.velocity /= 2,
Math.abs(t.velocity) < i.freeModeMinimumVelocity && (t
.velocity = 0), 150 < s) || 300 < q.now() - e.time) && (
t.velocity = 0), t.velocity *= i
.freeModeMomentumVelocityRatio, a.velocities.length = 0;
var u = 1e3 * i.freeModeMomentumRatio,
s = t.velocity * u,
h = t.translate + s;
n && (h = -h);
var m, v, e = !1,
s = 20 * Math.abs(t.velocity) * i
.freeModeMomentumBounceRatio;
if (h < t.maxTranslate()) i.freeModeMomentumBounce ? (h + t
.maxTranslate() < -s && (h = t.maxTranslate() - s), m =
t.maxTranslate(), a.allowMomentumBounce = e = !0) : h =
t.maxTranslate(), i.loop && i.centeredSlides && (v = !0);
else if (h > t.minTranslate()) i.freeModeMomentumBounce ? (h - t
.minTranslate() > s && (h = t.minTranslate() + s), m = t
.minTranslate(), a.allowMomentumBounce = e = !0) : h = t
.minTranslate(), i.loop && i.centeredSlides && (v = !0);
else if (i.freeModeSticky) {
for (var f, g = 0; g < l.length; g += 1)
if (l[g] > -h) {
f = g;
break
} h = -(Math.abs(l[f] - h) < Math.abs(l[f - 1] - h) ||
"next" === t.swipeDirection ? l[f] : l[f - 1])
}
if (v && t.once("transitionEnd", function() {
t.loopFix()
}), 0 !== t.velocity) u = n ? Math.abs((-h - t.translate) /
t.velocity) : Math.abs((h - t.translate) / t.velocity);
else if (i.freeModeSticky) return void t.slideToClosest();
i.freeModeMomentumBounce && e ? (t.updateProgress(m), t
.setTransition(u), t.setTranslate(h), t.transitionStart(
!0, t.swipeDirection), t.animating = !0, r
.transitionEnd(function() {
t && !t.destroyed && a.allowMomentumBounce && (t
.emit("momentumBounce"), t
.setTransition(i.speed), t.setTranslate(
m), r.transitionEnd(function() {
t && !t.destroyed && t
.transitionEnd()
}))
})) : t.velocity ? (t.updateProgress(h), t
.setTransition(u), t.setTranslate(h), t.transitionStart(
!0, t.swipeDirection), t.animating || (t
.animating = !0, r.transitionEnd(function() {
t && !t.destroyed && t.transitionEnd()
}))) : t.updateProgress(h), t.updateActiveIndex(), t
.updateSlidesClasses()
} else if (i.freeModeSticky) return void t.slideToClosest();
(!i.freeModeMomentum || c >= i.longSwipesMs) && (t.updateProgress(),
t.updateActiveIndex(), t.updateSlidesClasses())
} else {
for (var b = 0, w = t.slidesSizesGrid[0], y = 0; y < o.length; y +=
i.slidesPerGroup) void 0 !== o[y + i.slidesPerGroup] ? p >= o[
y] && p < o[y + i.slidesPerGroup] && (w = o[(b = y) + i
.slidesPerGroup] - o[y]) : p >= o[y] && (b = y, w = o[o
.length - 1] - o[o.length - 2]);
s = (p - o[b]) / w;
c > i.longSwipesMs ? i.longSwipes ? ("next" === t.swipeDirection &&
(s >= i.longSwipesRatio ? t.slideTo(b + i.slidesPerGroup) :
t.slideTo(b)), "prev" === t.swipeDirection && (s > 1 - i
.longSwipesRatio ? t.slideTo(b + i.slidesPerGroup) : t
.slideTo(b))) : t.slideTo(t.activeIndex) : i
.shortSwipes ? ("next" === t.swipeDirection && t.slideTo(b + i
.slidesPerGroup), "prev" === t.swipeDirection && t
.slideTo(b)) : t.slideTo(t.activeIndex)
} else a.isTouched = !1, a.isMoved = !1, a.startMoving = !1
} else a.isMoved && i.grabCursor && t.setGrabCursor(!1), a.isMoved = !1, a
.startMoving = !1
}.bind(t), t.onClick = function(e) {
this.allowClick || (this.params.preventClicks && e.preventDefault(), this
.params.preventClicksPropagation && this.animating && (e
.stopPropagation(), e.stopImmediatePropagation()))
}.bind(t), "container" === a.touchEventsTarget ? s : n),
n = !!a.nested;
W.touch || !W.pointerEvents && !W.prefixedPointerEvents ? (W.touch && (e = !(
"touchstart" !== i.start || !W.passiveListener || !a.passiveListeners
) && {
passive: !0,
capture: !1
}, s.addEventListener(i.start, t.onTouchStart, e), s.addEventListener(i
.move, t.onTouchMove, W.passiveListener ? {
passive: !1,
capture: n
} : n), s.addEventListener(i.end, t.onTouchEnd, e), H || (c
.addEventListener("touchstart", G), H = !0)), (a.simulateTouch && !o
.ios && !o.android || a.simulateTouch && !W.touch && o.ios) && (s
.addEventListener("mousedown", t.onTouchStart, !1), c.addEventListener(
"mousemove", t.onTouchMove, n), c.addEventListener("mouseup", t
.onTouchEnd, !1))) : (s.addEventListener(i.start, t.onTouchStart, !1), c
.addEventListener(i.move, t.onTouchMove, n), c.addEventListener(i.end, t
.onTouchEnd, !1)), (a.preventClicks || a.preventClicksPropagation) && s
.addEventListener("click", t.onClick, !0), t.on(o.ios || o.android ?
"resize orientationchange observerUpdate" : "resize observerUpdate", A, !0)
},
detachEvents: function() {
var e, t = this,
a = t.params,
i = t.touchEvents,
s = t.el,
n = t.wrapperEl,
s = "container" === a.touchEventsTarget ? s : n,
n = !!a.nested;
W.touch || !W.pointerEvents && !W.prefixedPointerEvents ? (W.touch && (e = !(
"onTouchStart" !== i.start || !W.passiveListener || !a.passiveListeners
) && {
passive: !0,
capture: !1
}, s.removeEventListener(i.start, t.onTouchStart, e), s.removeEventListener(
i.move, t.onTouchMove, n), s.removeEventListener(i.end, t.onTouchEnd, e)
), (a.simulateTouch && !o.ios && !o.android || a.simulateTouch && !W
.touch && o.ios) && (s.removeEventListener("mousedown", t.onTouchStart, !1),
c.removeEventListener("mousemove", t.onTouchMove, n), c.removeEventListener(
"mouseup", t.onTouchEnd, !1))) : (s.removeEventListener(i.start, t
.onTouchStart, !1), c.removeEventListener(i.move, t.onTouchMove, n), c
.removeEventListener(i.end, t.onTouchEnd, !1)), (a.preventClicks || a
.preventClicksPropagation) && s.removeEventListener("click", t.onClick, !0), t
.off(o.ios || o.android ? "resize orientationchange observerUpdate" :
"resize observerUpdate", A)
}
},
breakpoints: {
setBreakpoint: function() {
var e, a, t, i = this,
s = i.activeIndex,
n = i.initialized,
r = i.loopedSlides,
o = (void 0 === r && (r = 0), i.params),
l = o.breakpoints;
l && 0 !== Object.keys(l).length && (e = i.getBreakpoint(l)) && i.currentBreakpoint !==
e && ((a = e in l ? l[e] : void 0) && ["slidesPerView", "spaceBetween",
"slidesPerGroup"
].forEach(function(e) {
var t = a[e];
void 0 !== t && (a[e] = "slidesPerView" !== e || "AUTO" !== t &&
"auto" !== t ? "slidesPerView" === e ? parseFloat(t) : parseInt(
t, 10) : "auto")
}), t = (l = a || i.originalParams).direction && l.direction !== o.direction,
o = o.loop && (l.slidesPerView !== o.slidesPerView || t), t && n && i
.changeDirection(), q.extend(i.params, l), q.extend(i, {
allowTouchMove: i.params.allowTouchMove,
allowSlideNext: i.params.allowSlideNext,
allowSlidePrev: i.params.allowSlidePrev
}), i.currentBreakpoint = e, o && n && (i.loopDestroy(), i.loopCreate(), i
.updateSlides(), i.slideTo(s - r + i.loopedSlides, 0, !1)), i.emit(
"breakpoint", l))
},
getBreakpoint: function(e) {
if (e) {
var t = !1,
a = [];
Object.keys(e).forEach(function(e) {
a.push(e)
}), a.sort(function(e, t) {
return parseInt(e, 10) - parseInt(t, 10)
});
for (var i = 0; i < a.length; i += 1) {
var s = a[i];
this.params.breakpointsInverse ? s <= R.innerWidth && (t = s) : s >= R
.innerWidth && !t && (t = s)
}
return t || "max"
}
}
},
checkOverflow: {
checkOverflow: function() {
var e = this,
t = e.isLocked;
e.isLocked = 1 === e.snapGrid.length, e.allowSlideNext = !e.isLocked, e
.allowSlidePrev = !e.isLocked, t !== e.isLocked && e.emit(e.isLocked ? "lock" :
"unlock"), t && t !== e.isLocked && (e.isEnd = !1, e.navigation.update())
}
},
classes: {
addClasses: function() {
var t = this.classNames,
a = this.params,
e = this.rtl,
i = this.$el,
s = [];
s.push("initialized"), s.push(a.direction), a.freeMode && s.push("free-mode"), W
.flexbox || s.push("no-flexbox"), a.autoHeight && s.push("autoheight"), e && s.push(
"rtl"), 1 < a.slidesPerColumn && s.push("multirow"), o.android && s.push(
"android"), o.ios && s.push("ios"), (j.isIE || j.isEdge) && (W.pointerEvents ||
W.prefixedPointerEvents) && s.push("wp8-" + a.direction), s.forEach(function(
e) {
t.push(a.containerModifierClass + e)
}), i.addClass(t.join(" "))
},
removeClasses: function() {
var e = this.$el,
t = this.classNames;
e.removeClass(t.join(" "))
}
},
images: {
loadImage: function(e, t, a, i, s, n) {
function r() {
n && n()
}(!e.complete || !s) && t ? ((e = new R.Image).onload = r, e.onerror = r, i && (e
.sizes = i), a && (e.srcset = a), t && (e.src = t)) : r()
},
preloadImages: function() {
var e = this;
function t() {
null != e && e && !e.destroyed && (void 0 !== e.imagesLoaded && (e.imagesLoaded +=
1), e.imagesLoaded === e.imagesToLoad.length) && (e.params
.updateOnImagesReady && e.update(), e.emit("imagesReady"))
}
e.imagesToLoad = e.$el.find("img");
for (var a = 0; a < e.imagesToLoad.length; a += 1) {
var i = e.imagesToLoad[a];
e.loadImage(i, i.currentSrc || i.getAttribute("src"), i.srcset || i.getAttribute(
"srcset"), i.sizes || i.getAttribute("sizes"), !0, t)
}
}
}
},
B = {},
h = ((d = e) && (T.__proto__ = d), p = {
extendedDefaults: {
configurable: !0
},
defaults: {
configurable: !0
},
Class: {
configurable: !0
},
$: {
configurable: !0
}
}, ((T.prototype = Object.create(d && d.prototype)).constructor = T).prototype
.slidesPerViewDynamic = function() {
var e = this,
t = e.params,
a = e.slides,
i = e.slidesGrid,
s = e.size,
n = e.activeIndex,
r = 1;
if (t.centeredSlides) {
for (var o, l = a[n].swiperSlideSize, d = n + 1; d < a.length; d += 1) a[d] && !o && (r +=
1, s < (l += a[d].swiperSlideSize)) && (o = !0);
for (var p = n - 1; 0 <= p; --p) a[p] && !o && (r += 1, s < (l += a[p].swiperSlideSize)) &&
(o = !0)
} else
for (var c = n + 1; c < a.length; c += 1) i[c] - i[n] < s && (r += 1);
return r
}, T.prototype.update = function() {
var e, t, a = this;
function i() {
var e = a.rtlTranslate ? -1 * a.translate : a.translate,
e = Math.min(Math.max(e, a.maxTranslate()), a.minTranslate());
a.setTranslate(e), a.updateActiveIndex(), a.updateSlidesClasses()
}
a && !a.destroyed && (e = a.snapGrid, (t = a.params).breakpoints && a.setBreakpoint(), a
.updateSize(), a.updateSlides(), a.updateProgress(), a.updateSlidesClasses(), a.params
.freeMode ? (i(), a.params.autoHeight && a.updateAutoHeight()) : (("auto" === a.params
.slidesPerView || 1 < a.params.slidesPerView) && a.isEnd && !a.params
.centeredSlides ? a.slideTo(a.slides.length - 1, 0, !1, !0) : a.slideTo(a
.activeIndex, 0, !1, !0)) || i(), t.watchOverflow && e !== a.snapGrid && a
.checkOverflow(), a.emit("update"))
}, T.prototype.changeDirection = function(a, e) {
void 0 === e && (e = !0);
var t = this,
i = t.params.direction;
return (a = a || ("horizontal" === i ? "vertical" : "horizontal")) === i || "horizontal" !==
a && "vertical" !== a || (t.$el.removeClass("" + t.params.containerModifierClass + i +
" wp8-" + i).addClass("" + t.params.containerModifierClass + a), (j.isIE || j
.isEdge) && (W.pointerEvents || W.prefixedPointerEvents) && t.$el.addClass(t.params
.containerModifierClass + "wp8-" + a), t.params.direction = a, t.slides.each(
function(e, t) {
"vertical" === a ? t.style.width = "" : t.style.height = ""
}), t.emit("changeDirection"), e && t.update()), t
}, T.prototype.init = function() {
var e = this;
e.initialized || (e.emit("beforeInit"), e.params.breakpoints && e.setBreakpoint(), e
.addClasses(), e.params.loop && e.loopCreate(), e.updateSize(), e.updateSlides(), e
.params.watchOverflow && e.checkOverflow(), e.params.grabCursor && e.setGrabCursor(), e
.params.preloadImages && e.preloadImages(), e.params.loop ? e.slideTo(e.params
.initialSlide + e.loopedSlides, 0, e.params.runCallbacksOnInit) : e.slideTo(e.params
.initialSlide, 0, e.params.runCallbacksOnInit), e.attachEvents(), e.initialized = !
0, e.emit("init"))
}, T.prototype.destroy = function(e, t) {
void 0 === e && (e = !0), void 0 === t && (t = !0);
var a = this,
i = a.params,
s = a.$el,
n = a.$wrapperEl,
r = a.slides;
return void 0 === a.params || a.destroyed || (a.emit("beforeDestroy"), a.initialized = !1, a
.detachEvents(), i.loop && a.loopDestroy(), t && (a.removeClasses(), s.removeAttr(
"style"), n.removeAttr("style"), r) && r.length && r.removeClass([i
.slideVisibleClass, i.slideActiveClass, i.slideNextClass, i.slidePrevClass
].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index").removeAttr(
"data-swiper-column").removeAttr("data-swiper-row"), a.emit("destroy"), Object.keys(
a.eventsListeners).forEach(function(e) {
a.off(e)
}), !1 !== e && (a.$el[0].swiper = null, a.$el.data("swiper", null), q.deleteProps(a)),
a.destroyed = !0), null
}, T.extendDefaults = function(e) {
q.extend(B, e)
}, p.extendedDefaults.get = function() {
return B
}, p.defaults.get = function() {
return N
}, p.Class.get = function() {
return d
}, p.$.get = function() {
return E
}, Object.defineProperties(T, p), T),
m = {
name: "device",
proto: {
device: o
},
static: {
device: o
}
},
v = {
name: "support",
proto: {
support: W
},
static: {
support: W
}
},
f = {
name: "browser",
proto: {
browser: j
},
static: {
browser: j
}
},
g = {
name: "resize",
create: function() {
var e = this;
q.extend(e, {
resize: {
resizeHandler: function() {
e && !e.destroyed && e.initialized && (e.emit("beforeResize"), e
.emit("resize"))
},
orientationChangeHandler: function() {
e && !e.destroyed && e.initialized && e.emit("orientationchange")
}
}
})
},
on: {
init: function() {
R.addEventListener("resize", this.resize.resizeHandler), R.addEventListener(
"orientationchange", this.resize.orientationChangeHandler)
},
destroy: function() {
R.removeEventListener("resize", this.resize.resizeHandler), R.removeEventListener(
"orientationchange", this.resize.orientationChangeHandler)
}
}
},
b = {
func: R.MutationObserver || R.WebkitMutationObserver,
attach: function(e, t) {
void 0 === t && (t = {});
var a = this,
i = new b.func(function(e) {
var t;
1 !== e.length ? (t = function() {
a.emit("observerUpdate", e[0])
}, R.requestAnimationFrame ? R.requestAnimationFrame(t) : R.setTimeout(
t, 0)) : a.emit("observerUpdate", e[0])
});
i.observe(e, {
attributes: void 0 === t.attributes || t.attributes,
childList: void 0 === t.childList || t.childList,
characterData: void 0 === t.characterData || t.characterData
}), a.observer.observers.push(i)
},
init: function() {
var e = this;
if (W.observer && e.params.observer) {
if (e.params.observeParents)
for (var t = e.$el.parents(), a = 0; a < t.length; a += 1) e.observer.attach(t[a]);
e.observer.attach(e.$el[0], {
childList: e.params.observeSlideChildren
}), e.observer.attach(e.$wrapperEl[0], {
attributes: !1
})
}
},
destroy: function() {
this.observer.observers.forEach(function(e) {
e.disconnect()
}), this.observer.observers = []
}
},
w = {
name: "observer",
params: {
observer: !1,
observeParents: !1,
observeSlideChildren: !1
},
create: function() {
q.extend(this, {
observer: {
init: b.init.bind(this),
attach: b.attach.bind(this),
destroy: b.destroy.bind(this),
observers: []
}
})
},
on: {
init: function() {
this.observer.init()
},
destroy: function() {
this.observer.destroy()
}
}
},
y = {
update: function(e) {
var t = this,
a = t.params,
i = a.slidesPerView,
s = a.slidesPerGroup,
a = a.centeredSlides,
n = t.params.virtual,
r = n.addSlidesBefore,
n = n.addSlidesAfter,
o = t.virtual,
l = o.from,
d = o.to,
p = o.slides,
c = o.slidesGrid,
u = o.renderSlide,
o = o.offset;
t.updateActiveIndex();
var h, m = t.activeIndex || 0,
v = t.rtlTranslate ? "right" : t.isHorizontal() ? "left" : "top",
a = a ? (h = Math.floor(i / 2) + s + r, Math.floor(i / 2) + s + n) : (h = i + (s - 1) +
r, s + n),
f = Math.max((m || 0) - a, 0),
g = Math.min((m || 0) + h, p.length - 1),
i = (t.slidesGrid[f] || 0) - (t.slidesGrid[0] || 0);
function b() {
t.updateSlides(), t.updateProgress(), t.updateSlidesClasses(), t.lazy && t.params.lazy
.enabled && t.lazy.load()
}
if (q.extend(t.virtual, {
from: f,
to: g,
offset: i,
slidesGrid: t.slidesGrid
}), l !== f || d !== g || e) {
if (t.params.virtual.renderExternal) t.params.virtual.renderExternal.call(t, {
offset: i,
from: f,
to: g,
slides: function() {
for (var e = [], t = f; t <= g; t += 1) e.push(p[t]);
return e
}()
});
else {
var w = [],
y = [];
if (e) t.$wrapperEl.find("." + t.params.slideClass).remove();
else
for (var x = l; x <= d; x += 1)(x < f || g < x) && t.$wrapperEl.find("." + t
.params.slideClass + '[data-swiper-slide-index="' + x + '"]').remove();
for (var T = 0; T < p.length; T += 1) f <= T && T <= g && (void 0 === d || e ? y
.push(T) : (d < T && y.push(T), T < l && w.push(T)));
y.forEach(function(e) {
t.$wrapperEl.append(u(p[e], e))
}), w.sort(function(e, t) {
return t - e
}).forEach(function(e) {
t.$wrapperEl.prepend(u(p[e], e))
}), t.$wrapperEl.children(".swiper-slide").css(v, i + "px")
}
b()
} else t.slidesGrid !== c && i !== o && t.slides.css(v, i + "px"), t.updateProgress()
},
renderSlide: function(e, t) {
var a = this,
i = a.params.virtual;
return i.cache && a.virtual.cache[t] ? a.virtual.cache[t] : ((e = i.renderSlide ? E(i
.renderSlide.call(a, e, t)) : E('' + e + "
")).attr(
"data-swiper-slide-index") || e.attr("data-swiper-slide-index", t), i.cache && (
a.virtual.cache[t] = e), e)
},
appendSlide: function(e) {
if ("object" == typeof e && "length" in e)
for (var t = 0; t < e.length; t += 1) e[t] && this.virtual.slides.push(e[t]);
else this.virtual.slides.push(e);
this.virtual.update(!0)
},
prependSlide: function(e) {
var t, a, i = this,
s = i.activeIndex,
n = s + 1,
r = 1;
if (Array.isArray(e)) {
for (var o = 0; o < e.length; o += 1) e[o] && i.virtual.slides.unshift(e[o]);
n = s + e.length, r = e.length
} else i.virtual.slides.unshift(e);
i.params.virtual.cache && (t = i.virtual.cache, a = {}, Object.keys(t).forEach(function(e) {
a[parseInt(e, 10) + r] = t[e]
}), i.virtual.cache = a), i.virtual.update(!0), i.slideTo(n, 0)
},
removeSlide: function(e) {
var t = this;
if (null != e) {
var a = t.activeIndex;
if (Array.isArray(e))
for (var i = e.length - 1; 0 <= i; --i) t.virtual.slides.splice(e[i], 1), t.params
.virtual.cache && delete t.virtual.cache[e[i]], e[i] < a && --a, a = Math.max(a,
0);
else t.virtual.slides.splice(e, 1), t.params.virtual.cache && delete t.virtual.cache[e],
e < a && --a, a = Math.max(a, 0);
t.virtual.update(!0), t.slideTo(a, 0)
}
},
removeAllSlides: function() {
var e = this;
e.virtual.slides = [], e.params.virtual.cache && (e.virtual.cache = {}), e.virtual.update(!
0), e.slideTo(0, 0)
}
},
x = {
name: "virtual",
params: {
virtual: {
enabled: !1,
slides: [],
cache: !0,
renderSlide: null,
renderExternal: null,
addSlidesBefore: 0,
addSlidesAfter: 0
}
},
create: function() {
var e = this;
q.extend(e, {
virtual: {
update: y.update.bind(e),
appendSlide: y.appendSlide.bind(e),
prependSlide: y.prependSlide.bind(e),
removeSlide: y.removeSlide.bind(e),
removeAllSlides: y.removeAllSlides.bind(e),
renderSlide: y.renderSlide.bind(e),
slides: e.params.virtual.slides,
cache: {}
}
})
},
on: {
beforeInit: function() {
var e, t = this;
t.params.virtual.enabled && (t.classNames.push(t.params.containerModifierClass +
"virtual"), q.extend(t.params, e = {
watchSlidesProgress: !0
}), q.extend(t.originalParams, e), t.params.initialSlide || t.virtual.update())
},
setTranslate: function() {
this.params.virtual.enabled && this.virtual.update()
}
}
},
V = {
handle: function(e) {
var t = this,
a = t.rtlTranslate,
i = (e = e.originalEvent ? e.originalEvent : e).keyCode || e.charCode;
if (!t.allowSlideNext && (t.isHorizontal() && 39 === i || t.isVertical() && 40 === i ||
34 === i)) return !1;
if (!t.allowSlidePrev && (t.isHorizontal() && 37 === i || t.isVertical() && 38 === i ||
33 === i)) return !1;
if (!(e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || c.activeElement && c.activeElement
.nodeName && ("input" === c.activeElement.nodeName.toLowerCase() || "textarea" === c
.activeElement.nodeName.toLowerCase()))) {
if (t.params.keyboard.onlyInViewport && (33 === i || 34 === i || 37 === i || 39 === i ||
38 === i || 40 === i)) {
var s = !1;
if (0 < t.$el.parents("." + t.params.slideClass).length && 0 === t.$el.parents("." +
t.params.slideActiveClass).length) return;
var n = R.innerWidth,
r = R.innerHeight,
o = t.$el.offset();
a && (o.left -= t.$el[0].scrollLeft);
for (var l = [
[o.left, o.top],
[o.left + t.width, o.top],
[o.left, o.top + t.height],
[o.left + t.width, o.top + t.height]
], d = 0; d < l.length; d += 1) {
var p = l[d];
0 <= p[0] && p[0] <= n && 0 <= p[1] && p[1] <= r && (s = !0)
}
if (!s) return
}
t.isHorizontal() ? (33 !== i && 34 !== i && 37 !== i && 39 !== i || (e.preventDefault ?
e.preventDefault() : e.returnValue = !1), (34 !== i && 39 !== i || a) && (
33 !== i && 37 !== i || !a) || t.slideNext(), (33 !== i && 37 !== i || a) &&
(34 !== i && 39 !== i || !a) || t.slidePrev()) : (33 !== i && 34 !== i && 38 !==
i && 40 !== i || (e.preventDefault ? e.preventDefault() : e.returnValue = !1),
34 !== i && 40 !== i || t.slideNext(), 33 !== i && 38 !== i || t.slidePrev()), t
.emit("keyPress", i)
}
},
enable: function() {
this.keyboard.enabled || (E(c).on("keydown", this.keyboard.handle), this.keyboard
.enabled = !0)
},
disable: function() {
this.keyboard.enabled && (E(c).off("keydown", this.keyboard.handle), this.keyboard
.enabled = !1)
}
},
t = {
name: "keyboard",
params: {
keyboard: {
enabled: !1,
onlyInViewport: !0
}
},
create: function() {
q.extend(this, {
keyboard: {
enabled: !1,
enable: V.enable.bind(this),
disable: V.disable.bind(this),
handle: V.handle.bind(this)
}
})
},
on: {
init: function() {
this.params.keyboard.enabled && this.keyboard.enable()
},
destroy: function() {
this.keyboard.enabled && this.keyboard.disable()
}
}
};
function T() {
for (var a, e = [], t = arguments.length; t--;) e[t] = arguments[t];
a = (1 === e.length && e[0].constructor && e[0].constructor === Object ? e[0] : (r = e[0], e[1])) || {},
a = q.extend({}, a), r && !a.el && (a.el = r), d.call(this, a), Object.keys(u).forEach(function(t) {
Object.keys(u[t]).forEach(function(e) {
T.prototype[e] || (T.prototype[e] = u[t][e])
})
});
var i, s = this,
n = (void 0 === s.modules && (s.modules = {}), Object.keys(s.modules).forEach(function(e) {
var t, e = s.modules[e];
e.params && (t = Object.keys(e.params)[0], "object" == typeof(e = e.params[t])) &&
null !== e && t in a && "enabled" in e && (!0 === a[t] && (a[t] = {
enabled: !0
}), "object" != typeof a[t] || "enabled" in a[t] || (a[t].enabled = !0), a[t] ||
(a[t] = {
enabled: !1
}))
}), q.extend({}, N)),
n = (s.useModulesParams(n), s.params = q.extend({}, n, B, a), s.originalParams = q.extend({}, s
.params), s.passedParams = q.extend({}, a), (s.$ = E)(s.params.el));
if (r = n[0]) {
if (1 < n.length) return i = [], n.each(function(e, t) {
t = q.extend({}, a, {
el: t
});
i.push(new T(t))
}), i;
r.swiper = s, n.data("swiper", s);
var r, o = n.children("." + s.params.wrapperClass);
return q.extend(s, {
$el: n,
el: r,
$wrapperEl: o,
wrapperEl: o[0],
classNames: [],
slides: E(),
slidesGrid: [],
snapGrid: [],
slidesSizesGrid: [],
isHorizontal: function() {
return "horizontal" === s.params.direction
},
isVertical: function() {
return "vertical" === s.params.direction
},
rtl: "rtl" === r.dir.toLowerCase() || "rtl" === n.css("direction"),
rtlTranslate: "horizontal" === s.params.direction && ("rtl" === r.dir.toLowerCase() ||
"rtl" === n.css("direction")),
wrongRTL: "-webkit-box" === o.css("display"),
activeIndex: 0,
realIndex: 0,
isBeginning: !0,
isEnd: !1,
translate: 0,
previousTranslate: 0,
progress: 0,
velocity: 0,
animating: !1,
allowSlideNext: s.params.allowSlideNext,
allowSlidePrev: s.params.allowSlidePrev,
touchEvents: (r = ["mousedown", "mousemove", "mouseup"], W.pointerEvents ? r = [
"pointerdown", "pointermove", "pointerup"
] : W.prefixedPointerEvents && (r = ["MSPointerDown", "MSPointerMove",
"MSPointerUp"
]), s.touchEventsTouch = {
start: (n = ["touchstart", "touchmove", "touchend"])[0],
move: n[1],
end: n[2]
}, s.touchEventsDesktop = {
start: r[0],
move: r[1],
end: r[2]
}, W.touch || !s.params.simulateTouch ? s.touchEventsTouch : s
.touchEventsDesktop),
touchEventsData: {
isTouched: void 0,
isMoved: void 0,
allowTouchCallbacks: void 0,
touchStartTime: void 0,
isScrolling: void 0,
currentTranslate: void 0,
startTranslate: void 0,
allowThresholdMove: void 0,
formElements: "input, select, option, textarea, button, video",
lastClickTime: q.now(),
clickTimeout: void 0,
velocities: [],
allowMomentumBounce: void 0,
isTouchEvent: void 0,
startMoving: void 0
},
allowClick: !0,
allowTouchMove: s.params.allowTouchMove,
touches: {
startX: 0,
startY: 0,
currentX: 0,
currentY: 0,
diff: 0
},
imagesToLoad: [],
imagesLoaded: 0
}), s.useModules(), s.params.init && s.init(), s
}
}
var S = {
lastScrollTime: q.now(),
event: -1 < R.navigator.userAgent.indexOf("firefox") ? "DOMMouseScroll" : ((s = (a = "onwheel") in
c) || ((r = c.createElement("div")).setAttribute(a, "return;"), s = "function" ==
typeof r[a]), (s = !s && c.implementation && c.implementation.hasFeature && !0 !== c
.implementation.hasFeature("", "") ? c.implementation.hasFeature("Events.wheel",
"3.0") : s) ? "wheel" : "mousewheel"),
normalize: function(e) {
var t = 0,
a = 0,
i = 0,
s = 0;
return "detail" in e && (a = e.detail), "wheelDelta" in e && (a = -e.wheelDelta / 120),
"wheelDeltaY" in e && (a = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e
.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (t = a, a = 0),
i = 10 * t, s = 10 * a, "deltaY" in e && (s = e.deltaY), ((i = "deltaX" in e ? e
.deltaX : i) || s) && e.deltaMode && (1 === e.deltaMode ? (i *= 40, s *= 40) : (i *=
800, s *= 800)), {
spinX: t = i && !t ? i < 1 ? -1 : 1 : t,
spinY: a = s && !a ? s < 1 ? -1 : 1 : a,
pixelX: i,
pixelY: s
}
},
handleMouseEnter: function() {
this.mouseEntered = !0
},
handleMouseLeave: function() {
this.mouseEntered = !1
},
handle: function(e) {
var t = this,
a = t.params.mousewheel;
if (!t.mouseEntered && !a.releaseOnEdges) return !0;
e.originalEvent && (e = e.originalEvent);
var i = 0,
s = t.rtlTranslate ? -1 : 1,
n = S.normalize(e);
if (a.forceToAxis)
if (t.isHorizontal()) {
if (!(Math.abs(n.pixelX) > Math.abs(n.pixelY))) return !0;
i = n.pixelX * s
} else {
if (!(Math.abs(n.pixelY) > Math.abs(n.pixelX))) return !0;
i = n.pixelY
}
else i = Math.abs(n.pixelX) > Math.abs(n.pixelY) ? -n.pixelX * s : -n.pixelY;
if (0 === i) return !0;
if (a.invert && (i = -i), t.params.freeMode) {
t.params.loop && t.loopFix();
var s = t.getTranslate() + i * a.sensitivity,
n = t.isBeginning,
r = t.isEnd;
if ((s = s >= t.minTranslate() ? t.minTranslate() : s) <= t.maxTranslate() && (s = t
.maxTranslate()), t.setTransition(0), t.setTranslate(s), t.updateProgress(), t
.updateActiveIndex(), t.updateSlidesClasses(), (!n && t.isBeginning || !r && t
.isEnd) && t.updateSlidesClasses(), t.params.freeModeSticky && (clearTimeout(t
.mousewheel.timeout), t.mousewheel.timeout = q.nextTick(function() {
t.slideToClosest()
}, 300)), t.emit("scroll", e), t.params.autoplay && t.params
.autoplayDisableOnInteraction && t.autoplay.stop(), s === t.minTranslate() || s ===
t.maxTranslate()) return !0
} else {
if (60 < q.now() - t.mousewheel.lastScrollTime)
if (i < 0)
if (t.isEnd && !t.params.loop || t.animating) {
if (a.releaseOnEdges) return !0
} else t.slideNext(), t.emit("scroll", e);
else if (t.isBeginning && !t.params.loop || t.animating) {
if (a.releaseOnEdges) return !0
} else t.slidePrev(), t.emit("scroll", e);
t.mousewheel.lastScrollTime = (new R.Date).getTime()
}
return e.preventDefault ? e.preventDefault() : e.returnValue = !1, !1
},
enable: function() {
var e, t = this;
return !!S.event && !t.mousewheel.enabled && (e = t.$el, (e = "container" !== t.params
.mousewheel.eventsTarged ? E(t.params.mousewheel.eventsTarged) : e).on(
"mouseenter", t.mousewheel.handleMouseEnter), e.on("mouseleave", t.mousewheel
.handleMouseLeave), e.on(S.event, t.mousewheel.handle), t.mousewheel.enabled = !
0)
},
disable: function() {
var e, t = this;
return !!S.event && !(!t.mousewheel.enabled || (e = t.$el, (e = "container" !== t.params
.mousewheel.eventsTarged ? E(t.params.mousewheel.eventsTarged) : e).off(S
.event, t.mousewheel.handle), t.mousewheel.enabled = !1))
}
},
C = {
update: function() {
var e, t, a = this,
i = a.params.navigation;
a.params.loop || (e = (t = a.navigation).$nextEl, (t = t.$prevEl) && 0 < t.length && (a
.isBeginning ? t.addClass(i.disabledClass) : t.removeClass(i.disabledClass), t[a
.params.watchOverflow && a.isLocked ? "addClass" : "removeClass"](i
.lockClass)), e && 0 < e.length && (a.isEnd ? e.addClass(i.disabledClass) :
e.removeClass(i.disabledClass), e[a.params.watchOverflow && a.isLocked ?
"addClass" : "removeClass"](i.lockClass)))
},
onPrevClick: function(e) {
e.preventDefault(), this.isBeginning && !this.params.loop || this.slidePrev()
},
onNextClick: function(e) {
e.preventDefault(), this.isEnd && !this.params.loop || this.slideNext()
},
init: function() {
var e, t, a = this,
i = a.params.navigation;
(i.nextEl || i.prevEl) && (i.nextEl && (e = E(i.nextEl), a.params.uniqueNavElements) &&
"string" == typeof i.nextEl && 1 < e.length && 1 === a.$el.find(i.nextEl).length && (e =
a.$el.find(i.nextEl)), i.prevEl && (t = E(i.prevEl), a.params.uniqueNavElements) &&
"string" == typeof i.prevEl && 1 < t.length && 1 === a.$el.find(i.prevEl).length && (t =
a.$el.find(i.prevEl)), e && 0 < e.length && e.on("click", a.navigation.onNextClick),
t && 0 < t.length && t.on("click", a.navigation.onPrevClick), q.extend(a.navigation, {
$nextEl: e,
nextEl: e && e[0],
$prevEl: t,
prevEl: t && t[0]
}))
},
destroy: function() {
var e = this,
t = e.navigation,
a = t.$nextEl,
t = t.$prevEl;
a && a.length && (a.off("click", e.navigation.onNextClick), a.removeClass(e.params
.navigation.disabledClass)), t && t.length && (t.off("click", e.navigation
.onPrevClick), t.removeClass(e.params.navigation.disabledClass))
}
},
M = {
update: function() {
var e = this,
t = e.rtl,
i = e.params.pagination;
if (i.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
var s, a = (e.virtual && e.params.virtual.enabled ? e.virtual : e).slides.length,
n = e.pagination.$el,
r = e.params.loop ? Math.ceil((a - 2 * e.loopedSlides) / e.params.slidesPerGroup) :
e.snapGrid.length;
if (e.params.loop ? ((s = Math.ceil((e.activeIndex - e.loopedSlides) / e.params
.slidesPerGroup)) > a - 1 - 2 * e.loopedSlides && (s -= a - 2 * e
.loopedSlides), r - 1 < s && (s -= r), s < 0 && "bullets" !== e.params
.paginationType && (s = r + s)) : s = void 0 !== e.snapIndex ? e.snapIndex : e
.activeIndex || 0, "bullets" === i.type && e.pagination.bullets && 0 < e.pagination
.bullets.length) {
var o, l, d, p = e.pagination.bullets;
if (i.dynamicBullets && (e.pagination.bulletSize = p.eq(0)[e.isHorizontal() ?
"outerWidth" : "outerHeight"](!0), n.css(e.isHorizontal() ? "width" :
"height", e.pagination.bulletSize * (i.dynamicMainBullets + 4) + "px"),
1 < i.dynamicMainBullets && void 0 !== e.previousIndex && (e.pagination
.dynamicBulletIndex += s - e.previousIndex, e.pagination
.dynamicBulletIndex > i.dynamicMainBullets - 1 ? e.pagination
.dynamicBulletIndex = i.dynamicMainBullets - 1 : e.pagination
.dynamicBulletIndex < 0 && (e.pagination.dynamicBulletIndex = 0)), o =
s - e.pagination.dynamicBulletIndex, d = ((l = o + (Math.min(p.length, i
.dynamicMainBullets) - 1)) + o) / 2), p.removeClass(i
.bulletActiveClass + " " + i.bulletActiveClass + "-next " + i
.bulletActiveClass + "-next-next " + i.bulletActiveClass + "-prev " + i
.bulletActiveClass + "-prev-prev " + i.bulletActiveClass + "-main"), 1 < n
.length) p.each(function(e, t) {
var t = E(t),
a = t.index();
a === s && t.addClass(i.bulletActiveClass), i.dynamicBullets && (o <=
a && a <= l && t.addClass(i.bulletActiveClass + "-main"), a ===
o && t.prev().addClass(i.bulletActiveClass + "-prev").prev()
.addClass(i.bulletActiveClass + "-prev-prev"), a === l) && t
.next().addClass(i.bulletActiveClass + "-next").next().addClass(i
.bulletActiveClass + "-next-next")
});
else if (p.eq(s).addClass(i.bulletActiveClass), i.dynamicBullets) {
for (var a = p.eq(o), c = p.eq(l), u = o; u <= l; u += 1) p.eq(u).addClass(i
.bulletActiveClass + "-main");
a.prev().addClass(i.bulletActiveClass + "-prev").prev().addClass(i
.bulletActiveClass + "-prev-prev"), c.next().addClass(i
.bulletActiveClass + "-next").next().addClass(i.bulletActiveClass +
"-next-next")
}
i.dynamicBullets && (a = Math.min(p.length, i.dynamicMainBullets + 4), c = (e
.pagination.bulletSize * a - e.pagination.bulletSize) / 2 - d * e
.pagination.bulletSize, a = t ? "right" : "left", p.css(e.isHorizontal() ?
a : "top", c + "px"))
}
"fraction" === i.type && (n.find("." + i.currentClass).text(i.formatFractionCurrent(s +
1)), n.find("." + i.totalClass).text(i.formatFractionTotal(r))),
"progressbar" === i.type && (d = i.progressbarOpposite ? e.isHorizontal() ?
"vertical" : "horizontal" : e.isHorizontal() ? "horizontal" : "vertical", t = (
s + 1) / r, c = a = 1, "horizontal" == d ? a = t : c = t, n.find("." + i
.progressbarFillClass).transform("translate3d(0,0,0) scaleX(" + a +
") scaleY(" + c + ")").transition(e.params.speed)), "custom" === i.type && i
.renderCustom ? (n.html(i.renderCustom(e, s + 1, r)), e.emit("paginationRender", e,
n[0])) : e.emit("paginationUpdate", e, n[0]), n[e.params.watchOverflow && e
.isLocked ? "addClass" : "removeClass"](i.lockClass)
}
},
render: function() {
var e = this,
t = e.params.pagination;
if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
var a = (e.virtual && e.params.virtual.enabled ? e.virtual : e).slides.length,
i = e.pagination.$el,
s = "";
if ("bullets" === t.type) {
for (var n = e.params.loop ? Math.ceil((a - 2 * e.loopedSlides) / e.params
.slidesPerGroup) : e.snapGrid.length, r = 0; r < n; r += 1) t.renderBullet ?
s += t.renderBullet.call(e, r, t.bulletClass) : s += "<" + t.bulletElement +
' class="' + t.bulletClass + '">' + t.bulletElement + ">";
i.html(s), e.pagination.bullets = i.find("." + t.bulletClass)
}
"fraction" === t.type && (s = t.renderFraction ? t.renderFraction.call(e, t
.currentClass, t.totalClass) : ' / ', i.html(s)),
"progressbar" === t.type && (s = t.renderProgressbar ? t.renderProgressbar.call(e, t
.progressbarFillClass) : '', i.html(s)), "custom" !== t.type && e.emit("paginationRender", e
.pagination.$el[0])
}
},
init: function() {
var e, t = this,
a = t.params.pagination;
a.el && 0 !== (e = E(a.el)).length && (t.params.uniqueNavElements && "string" == typeof a
.el && 1 < e.length && 1 === t.$el.find(a.el).length && (e = t.$el.find(a.el)),
"bullets" === a.type && a.clickable && e.addClass(a.clickableClass), e.addClass(a
.modifierClass + a.type), "bullets" === a.type && a.dynamicBullets && (e
.addClass("" + a.modifierClass + a.type + "-dynamic"), t.pagination
.dynamicBulletIndex = 0, a.dynamicMainBullets < 1) && (a.dynamicMainBullets =
1), "progressbar" === a.type && a.progressbarOpposite && e.addClass(a
.progressbarOppositeClass), a.clickable && e.on("click", "." + a.bulletClass,
function(e) {
e.preventDefault();
e = E(this).index() * t.params.slidesPerGroup;
t.params.loop && (e += t.loopedSlides), t.slideTo(e)
}), q.extend(t.pagination, {
$el: e,
el: e[0]
}))
},
destroy: function() {
var e, t = this,
a = t.params.pagination;
a.el && t.pagination.el && t.pagination.$el && 0 !== t.pagination.$el.length && ((e = t
.pagination.$el).removeClass(a.hiddenClass), e.removeClass(a.modifierClass + a
.type), t.pagination.bullets && t.pagination.bullets.removeClass(a
.bulletActiveClass), a.clickable) && e.off("click", "." + a.bulletClass)
}
},
P = {
setTranslate: function() {
var e, t, a, i, s, n, r, o, l = this;
l.params.scrollbar.el && l.scrollbar.el && (n = l.scrollbar, e = l.rtlTranslate, o = l
.progress, t = n.dragSize, a = n.trackSize, i = n.$dragEl, s = n.$el, n = l.params
.scrollbar, o = (a - (r = t)) * o, e ? 0 < (o = -o) ? (r = t - o, o = 0) : a < -o +
t && (r = a + o) : o < 0 ? (r = t + o, o = 0) : a < o + t && (r = a - o), l
.isHorizontal() ? (W.transforms3d ? i.transform("translate3d(" + o + "px, 0, 0)") :
i.transform("translateX(" + o + "px)"), i[0].style.width = r + "px") : (W
.transforms3d ? i.transform("translate3d(0px, " + o + "px, 0)") : i.transform(
"translateY(" + o + "px)"), i[0].style.height = r + "px"), n.hide) && (
clearTimeout(l.scrollbar.timeout), s[0].style.opacity = 1, l.scrollbar.timeout =
setTimeout(function() {
s[0].style.opacity = 0, s.transition(400)
}, 1e3))
},
setTransition: function(e) {
this.params.scrollbar.el && this.scrollbar.el && this.scrollbar.$dragEl.transition(e)
},
updateSize: function() {
var e, t, a, i, s, n, r, o = this;
o.params.scrollbar.el && o.scrollbar.el && (t = (e = o.scrollbar).$dragEl, a = e.$el, t[0]
.style.width = "", t[0].style.height = "", i = o.isHorizontal() ? a[0].offsetWidth :
a[0].offsetHeight, n = (s = o.size / o.virtualSize) * (i / o.size), r = "auto" === o
.params.scrollbar.dragSize ? i * s : parseInt(o.params.scrollbar.dragSize, 10), o
.isHorizontal() ? t[0].style.width = r + "px" : t[0].style.height = r + "px", a[0]
.style.display = 1 <= s ? "none" : "", o.params.scrollbar.hide && (a[0].style
.opacity = 0), q.extend(e, {
trackSize: i,
divider: s,
moveDivider: n,
dragSize: r
}), e.$el[o.params.watchOverflow && o.isLocked ? "addClass" : "removeClass"](o
.params.scrollbar.lockClass))
},
getPointerPosition: function(e) {
return this.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e
.targetTouches[0].pageX : e.pageX || e.clientX : "touchstart" === e.type ||
"touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY || e.clientY
},
setDragPosition: function(e) {
var t = this,
a = t.scrollbar,
i = t.rtlTranslate,
s = a.$el,
n = a.dragSize,
r = a.trackSize,
o = a.dragStartPos,
a = (a.getPointerPosition(e) - s.offset()[t.isHorizontal() ? "left" : "top"] - (null !==
o ? o : n / 2)) / (r - n),
e = (a = Math.max(Math.min(a, 1), 0), i && (a = 1 - a), t.minTranslate() + (t
.maxTranslate() - t.minTranslate()) * a);
t.updateProgress(e), t.setTranslate(e), t.updateActiveIndex(), t.updateSlidesClasses()
},
onDragStart: function(e) {
var t = this,
a = t.params.scrollbar,
i = t.scrollbar,
s = t.$wrapperEl,
n = i.$el,
r = i.$dragEl;
t.scrollbar.isTouched = !0, t.scrollbar.dragStartPos = e.target === r[0] || e.target === r ?
i.getPointerPosition(e) - e.target.getBoundingClientRect()[t.isHorizontal() ? "left" :
"top"] : null, e.preventDefault(), e.stopPropagation(), s.transition(100), r
.transition(100), i.setDragPosition(e), clearTimeout(t.scrollbar.dragTimeout), n
.transition(0), a.hide && n.css("opacity", 1), t.emit("scrollbarDragStart", e)
},
onDragMove: function(e) {
var t = this.scrollbar,
a = this.$wrapperEl,
i = t.$el,
s = t.$dragEl;
this.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, t
.setDragPosition(e), a.transition(0), i.transition(0), s.transition(0), this.emit(
"scrollbarDragMove", e))
},
onDragEnd: function(e) {
var t = this,
a = t.params.scrollbar,
i = t.scrollbar.$el;
t.scrollbar.isTouched && (t.scrollbar.isTouched = !1, a.hide && (clearTimeout(t.scrollbar
.dragTimeout), t.scrollbar.dragTimeout = q.nextTick(function() {
i.css("opacity", 0), i.transition(400)
}, 1e3)), t.emit("scrollbarDragEnd", e), a.snapOnRelease) && t.slideToClosest()
},
enableDraggable: function() {
var e, t, a, i, s, n = this;
n.params.scrollbar.el && (a = n.scrollbar, e = n.touchEventsTouch, t = n.touchEventsDesktop,
s = n.params, a = a.$el[0], i = !(!W.passiveListener || !s.passiveListeners) && {
passive: !1,
capture: !1
}, s = !(!W.passiveListener || !s.passiveListeners) && {
passive: !0,
capture: !1
}, W.touch ? (a.addEventListener(e.start, n.scrollbar.onDragStart, i), a
.addEventListener(e.move, n.scrollbar.onDragMove, i), a.addEventListener(e.end,
n.scrollbar.onDragEnd, s)) : (a.addEventListener(t.start, n.scrollbar
.onDragStart, i), c.addEventListener(t.move, n.scrollbar.onDragMove, i), c
.addEventListener(t.end, n.scrollbar.onDragEnd, s)))
},
disableDraggable: function() {
var e, t, a, i, s, n = this;
n.params.scrollbar.el && (a = n.scrollbar, e = n.touchEventsTouch, t = n.touchEventsDesktop,
s = n.params, a = a.$el[0], i = !(!W.passiveListener || !s.passiveListeners) && {
passive: !1,
capture: !1
}, s = !(!W.passiveListener || !s.passiveListeners) && {
passive: !0,
capture: !1
}, W.touch ? (a.removeEventListener(e.start, n.scrollbar.onDragStart, i), a
.removeEventListener(e.move, n.scrollbar.onDragMove, i), a.removeEventListener(e
.end, n.scrollbar.onDragEnd, s)) : (a.removeEventListener(t.start, n
.scrollbar.onDragStart, i), c.removeEventListener(t.move, n.scrollbar
.onDragMove, i), c.removeEventListener(t.end, n.scrollbar.onDragEnd, s)))
},
init: function() {
var e, t, a, i, s = this;
s.params.scrollbar.el && (e = s.scrollbar, i = s.$el, a = E((t = s.params.scrollbar).el),
0 === (i = (a = s.params.uniqueNavElements && "string" == typeof t.el && 1 < a
.length && 1 === i.find(t.el).length ? i.find(t.el) : a).find("." + s.params
.scrollbar.dragClass)).length && (i = E(''), a.append(i)), q.extend(e, {
$el: a,
el: a[0],
$dragEl: i,
dragEl: i[0]
}), t.draggable) && e.enableDraggable()
},
destroy: function() {
this.scrollbar.disableDraggable()
}
},
X = {
setTransform: function(e, t) {
var a = this.rtl,
e = E(e),
a = a ? -1 : 1,
i = e.attr("data-swiper-parallax") || "0",
s = e.attr("data-swiper-parallax-x"),
n = e.attr("data-swiper-parallax-y"),
r = e.attr("data-swiper-parallax-scale"),
o = e.attr("data-swiper-parallax-opacity");
s || n ? (s = s || "0", n = n || "0") : this.isHorizontal() ? (s = i, n = "0") : (n = i, s =
"0"), s = 0 <= s.indexOf("%") ? parseInt(s, 10) * t * a + "%" : s * t * a + "px",
n = 0 <= n.indexOf("%") ? parseInt(n, 10) * t + "%" : n * t + "px", null != o && (i =
o - (o - 1) * (1 - Math.abs(t)), e[0].style.opacity = i), null == r ? e.transform(
"translate3d(" + s + ", " + n + ", 0px)") : (a = r - (r - 1) * (1 - Math.abs(t)), e
.transform("translate3d(" + s + ", " + n + ", 0px) scale(" + a + ")"))
},
setTranslate: function() {
var i = this,
e = i.$el,
t = i.slides,
s = i.progress,
n = i.snapGrid;
e.children(
"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]"
).each(function(e, t) {
i.parallax.setTransform(t, s)
}), t.each(function(e, t) {
var a = t.progress;
1 < i.params.slidesPerGroup && "auto" !== i.params.slidesPerView && (a += Math
.ceil(e / 2) - s * (n.length - 1)), a = Math.min(Math.max(a, -1), 1), E(
t).find(
"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]"
).each(function(e, t) {
i.parallax.setTransform(t, a)
})
})
},
setTransition: function(i) {
void 0 === i && (i = this.params.speed), this.$el.find(
"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]"
).each(function(e, t) {
var t = E(t),
a = parseInt(t.attr("data-swiper-parallax-duration"), 10) || i;
0 === i && (a = 0), t.transition(a)
})
}
},
Y = {
getDistanceBetweenTouches: function(e) {
var t, a, i;
return e.targetTouches.length < 2 ? 1 : (t = e.targetTouches[0].pageX, a = e.targetTouches[
0].pageY, i = e.targetTouches[1].pageX, e = e.targetTouches[1].pageY, Math.sqrt(
Math.pow(i - t, 2) + Math.pow(e - a, 2)))
},
onGestureStart: function(e) {
var t = this,
a = t.params.zoom,
i = t.zoom,
s = i.gesture;
if (i.fakeGestureTouched = !1, i.fakeGestureMoved = !1, !W.gestures) {
if ("touchstart" !== e.type || "touchstart" === e.type && e.targetTouches.length < 2)
return;
i.fakeGestureTouched = !0, s.scaleStart = Y.getDistanceBetweenTouches(e)
}
s.$slideEl && s.$slideEl.length || (s.$slideEl = E(e.target).closest(".swiper-slide"), 0 ===
s.$slideEl.length && (s.$slideEl = t.slides.eq(t.activeIndex)), s.$imageEl = s
.$slideEl.find("img, svg, canvas"), s.$imageWrapEl = s.$imageEl.parent("." + a
.containerClass), s.maxRatio = s.$imageWrapEl.attr("data-swiper-zoom") || a
.maxRatio, 0 !== s.$imageWrapEl.length) ? (s.$imageEl.transition(0), t.zoom
.isScaling = !0) : s.$imageEl = void 0
},
onGestureChange: function(e) {
var t = this.params.zoom,
a = this.zoom,
i = a.gesture;
if (!W.gestures) {
if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2)
return;
a.fakeGestureMoved = !0, i.scaleMove = Y.getDistanceBetweenTouches(e)
}
i.$imageEl && 0 !== i.$imageEl.length && (a.scale = W.gestures ? e.scale * a.currentScale :
i.scaleMove / i.scaleStart * a.currentScale, a.scale > i.maxRatio && (a.scale = i
.maxRatio - 1 + Math.pow(a.scale - i.maxRatio + 1, .5)), a.scale < t.minRatio &&
(a.scale = t.minRatio + 1 - Math.pow(t.minRatio - a.scale + 1, .5)), i.$imageEl
.transform("translate3d(0,0,0) scale(" + a.scale + ")"))
},
onGestureEnd: function(e) {
var t = this.params.zoom,
a = this.zoom,
i = a.gesture;
if (!W.gestures) {
if (!a.fakeGestureTouched || !a.fakeGestureMoved) return;
if ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2 && !o
.android) return;
a.fakeGestureTouched = !1, a.fakeGestureMoved = !1
}
i.$imageEl && 0 !== i.$imageEl.length && (a.scale = Math.max(Math.min(a.scale, i.maxRatio),
t.minRatio), i.$imageEl.transition(this.params.speed).transform(
"translate3d(0,0,0) scale(" + a.scale + ")"), a.currentScale = a.scale, a
.isScaling = !1, 1 === a.scale) && (i.$slideEl = void 0)
},
onTouchStart: function(e) {
var t = this.zoom,
a = t.gesture,
t = t.image;
a.$imageEl && 0 !== a.$imageEl.length && !t.isTouched && (o.android && e.preventDefault(), t
.isTouched = !0, t.touchesStart.x = ("touchstart" === e.type ? e.targetTouches[0] :
e).pageX, t.touchesStart.y = ("touchstart" === e.type ? e.targetTouches[0] : e)
.pageY)
},
onTouchMove: function(e) {
var t = this,
a = t.zoom,
i = a.gesture,
s = a.image,
n = a.velocity;
if (i.$imageEl && 0 !== i.$imageEl.length && (t.allowClick = !1, s.isTouched) && i
.$slideEl) {
s.isMoved || (s.width = i.$imageEl[0].offsetWidth, s.height = i.$imageEl[0]
.offsetHeight, s.startX = q.getTranslate(i.$imageWrapEl[0], "x") || 0, s
.startY = q.getTranslate(i.$imageWrapEl[0], "y") || 0, i.slideWidth = i
.$slideEl[0].offsetWidth, i.slideHeight = i.$slideEl[0].offsetHeight, i
.$imageWrapEl.transition(0), t.rtl && (s.startX = -s.startX, s.startY = -s
.startY));
var r = s.width * a.scale,
o = s.height * a.scale;
if (!(r < i.slideWidth && o < i.slideHeight)) {
if (s.minX = Math.min(i.slideWidth / 2 - r / 2, 0), s.maxX = -s.minX, s.minY = Math
.min(i.slideHeight / 2 - o / 2, 0), s.maxY = -s.minY, s.touchesCurrent.x = (
"touchmove" === e.type ? e.targetTouches[0] : e).pageX, s.touchesCurrent.y =
("touchmove" === e.type ? e.targetTouches[0] : e).pageY, !s.isMoved && !a
.isScaling) {
if (t.isHorizontal() && (Math.floor(s.minX) === Math.floor(s.startX) && s
.touchesCurrent.x < s.touchesStart.x || Math.floor(s.maxX) === Math
.floor(s.startX) && s.touchesCurrent.x > s.touchesStart.x)) return void(
s.isTouched = !1);
if (!t.isHorizontal() && (Math.floor(s.minY) === Math.floor(s.startY) && s
.touchesCurrent.y < s.touchesStart.y || Math.floor(s.maxY) === Math
.floor(s.startY) && s.touchesCurrent.y > s.touchesStart.y)) return void(
s.isTouched = !1)
}
e.preventDefault(), e.stopPropagation(), s.isMoved = !0, s.currentX = s
.touchesCurrent.x - s.touchesStart.x + s.startX, s.currentY = s.touchesCurrent
.y - s.touchesStart.y + s.startY, s.currentX < s.minX && (s.currentX = s.minX +
1 - Math.pow(s.minX - s.currentX + 1, .8)), s.currentX > s.maxX && (s
.currentX = s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, .8)), s
.currentY < s.minY && (s.currentY = s.minY + 1 - Math.pow(s.minY - s.currentY +
1, .8)), s.currentY > s.maxY && (s.currentY = s.maxY - 1 + Math.pow(s
.currentY - s.maxY + 1, .8)), n.prevPositionX || (n.prevPositionX = s
.touchesCurrent.x), n.prevPositionY || (n.prevPositionY = s.touchesCurrent
.y), n.prevTime || (n.prevTime = Date.now()), n.x = (s.touchesCurrent.x - n
.prevPositionX) / (Date.now() - n.prevTime) / 2, n.y = (s.touchesCurrent.y -
n.prevPositionY) / (Date.now() - n.prevTime) / 2, Math.abs(s.touchesCurrent
.x - n.prevPositionX) < 2 && (n.x = 0), Math.abs(s.touchesCurrent.y - n
.prevPositionY) < 2 && (n.y = 0), n.prevPositionX = s.touchesCurrent.x, n
.prevPositionY = s.touchesCurrent.y, n.prevTime = Date.now(), i.$imageWrapEl
.transform("translate3d(" + s.currentX + "px, " + s.currentY + "px,0)")
}
}
},
onTouchEnd: function() {
var e, t, a, i, s = this.zoom,
n = s.gesture,
r = s.image,
o = s.velocity;
n.$imageEl && 0 !== n.$imageEl.length && (r.isTouched && r.isMoved ? (r.isTouched = !1, r
.isMoved = !1, e = o.x * (a = 300), e = r.currentX + e, t = o.y * (i = 300), t =
r.currentY + t, 0 !== o.x && (a = Math.abs((e - r.currentX) / o.x)), 0 !== o
.y && (i = Math.abs((t - r.currentY) / o.y)), o = Math.max(a, i), r.currentX =
e, r.currentY = t, a = r.width * s.scale, i = r.height * s.scale, r.minX = Math
.min(n.slideWidth / 2 - a / 2, 0), r.maxX = -r.minX, r.minY = Math.min(n
.slideHeight / 2 - i / 2, 0), r.maxY = -r.minY, r.currentX = Math.max(Math
.min(r.currentX, r.maxX), r.minX), r.currentY = Math.max(Math.min(r
.currentY, r.maxY), r.minY), n.$imageWrapEl.transition(o).transform(
"translate3d(" + r.currentX + "px, " + r.currentY + "px,0)")) : (r
.isTouched = !1, r.isMoved = !1))
},
onTransitionEnd: function() {
var e = this.zoom,
t = e.gesture;
t.$slideEl && this.previousIndex !== this.activeIndex && (t.$imageEl.transform(
"translate3d(0,0,0) scale(1)"), t.$imageWrapEl.transform("translate3d(0,0,0)"),
e.scale = 1, e.currentScale = 1, t.$slideEl = void 0, t.$imageEl = void 0, t
.$imageWrapEl = void 0)
},
toggle: function(e) {
var t = this.zoom;
t.scale && 1 !== t.scale ? t.out() : t.in(e)
},
in: function(e) {
var t, a, i, s, n = this,
r = n.zoom,
o = n.params.zoom,
l = r.gesture,
d = r.image;
l.$slideEl || (l.$slideEl = n.clickedSlide ? E(n.clickedSlide) : n.slides.eq(n.activeIndex),
l.$imageEl = l.$slideEl.find("img, svg, canvas"), l.$imageWrapEl = l.$imageEl
.parent("." + o.containerClass)), l.$imageEl && 0 !== l.$imageEl.length && (l
.$slideEl.addClass("" + o.zoomedSlideClass), n = void 0 === d.touchesStart.x && e ?
(t = ("touchend" === e.type ? e.changedTouches[0] : e).pageX, ("touchend" === e
.type ? e.changedTouches[0] : e).pageY) : (t = d.touchesStart.x, d.touchesStart
.y), r.scale = l.$imageWrapEl.attr("data-swiper-zoom") || o.maxRatio, r
.currentScale = l.$imageWrapEl.attr("data-swiper-zoom") || o.maxRatio, e ? (d = l
.$slideEl[0].offsetWidth, o = l.$slideEl[0].offsetHeight, e = l.$slideEl
.offset().left + d / 2 - t, t = l.$slideEl.offset().top + o / 2 - n, n = l
.$imageEl[0].offsetWidth, s = l.$imageEl[0].offsetHeight, n = n * r.scale, s =
s * r.scale, n = -(d = Math.min(d / 2 - n / 2, 0)), s = -(o = Math.min(o / 2 -
s / 2, 0)), n < (a = (a = e * r.scale) < d ? d : a) && (a = n), s < (i = (
i = t * r.scale) < o ? o : i) && (i = s)) : i = a = 0, l.$imageWrapEl
.transition(300).transform("translate3d(" + a + "px, " + i + "px,0)"), l.$imageEl
.transition(300).transform("translate3d(0,0,0) scale(" + r.scale + ")"))
},
out: function() {
var e = this,
t = e.zoom,
a = e.params.zoom,
i = t.gesture;
i.$slideEl || (i.$slideEl = e.clickedSlide ? E(e.clickedSlide) : e.slides.eq(e.activeIndex),
i.$imageEl = i.$slideEl.find("img, svg, canvas"), i.$imageWrapEl = i.$imageEl
.parent("." + a.containerClass)), i.$imageEl && 0 !== i.$imageEl.length && (t
.scale = 1, t.currentScale = 1, i.$imageWrapEl.transition(300).transform(
"translate3d(0,0,0)"), i.$imageEl.transition(300).transform(
"translate3d(0,0,0) scale(1)"), i.$slideEl.removeClass("" + a.zoomedSlideClass),
i.$slideEl = void 0)
},
enable: function() {
var e, t = this,
a = t.zoom;
a.enabled || (a.enabled = !0, e = !("touchstart" !== t.touchEvents.start || !W
.passiveListener || !t.params.passiveListeners) && {
passive: !0,
capture: !1
}, W.gestures ? (t.$wrapperEl.on("gesturestart", ".swiper-slide", a.onGestureStart,
e), t.$wrapperEl.on("gesturechange", ".swiper-slide", a.onGestureChange, e),
t.$wrapperEl.on("gestureend", ".swiper-slide", a.onGestureEnd, e)) :
"touchstart" === t.touchEvents.start && (t.$wrapperEl.on(t.touchEvents.start,
".swiper-slide", a.onGestureStart, e), t.$wrapperEl.on(t.touchEvents.move,
".swiper-slide", a.onGestureChange, e), t.$wrapperEl.on(t.touchEvents.end,
".swiper-slide", a.onGestureEnd, e)), t.$wrapperEl.on(t.touchEvents.move, "." +
t.params.zoom.containerClass, a.onTouchMove))
},
disable: function() {
var e, t = this,
a = t.zoom;
a.enabled && (t.zoom.enabled = !1, e = !("touchstart" !== t.touchEvents.start || !W
.passiveListener || !t.params.passiveListeners) && {
passive: !0,
capture: !1
}, W.gestures ? (t.$wrapperEl.off("gesturestart", ".swiper-slide", a.onGestureStart,
e), t.$wrapperEl.off("gesturechange", ".swiper-slide", a.onGestureChange,
e), t.$wrapperEl.off("gestureend", ".swiper-slide", a.onGestureEnd, e)) :
"touchstart" === t.touchEvents.start && (t.$wrapperEl.off(t.touchEvents.start,
".swiper-slide", a.onGestureStart, e), t.$wrapperEl.off(t.touchEvents.move,
".swiper-slide", a.onGestureChange, e), t.$wrapperEl.off(t.touchEvents.end,
".swiper-slide", a.onGestureEnd, e)), t.$wrapperEl.off(t.touchEvents.move, "." +
t.params.zoom.containerClass, a.onTouchMove))
}
},
F = {
loadInSlide: function(e, o) {
void 0 === o && (o = !0);
var l, d = this,
p = d.params.lazy;
void 0 !== e && 0 !== d.slides.length && (e = (l = d.virtual && d.params.virtual.enabled ? d
.$wrapperEl.children("." + d.params.slideClass + '[data-swiper-slide-index="' +
e + '"]') : d.slides.eq(e)).find("." + p.elementClass + ":not(." + p
.loadedClass + "):not(." + p.loadingClass + ")"), 0 !== (e = !l.hasClass(p
.elementClass) || l.hasClass(p.loadedClass) || l.hasClass(p.loadingClass) ?
e : e.add(l[0])).length) && e.each(function(e, t) {
var a = E(t),
i = (a.addClass(p.loadingClass), a.attr("data-background")),
s = a.attr("data-src"),
n = a.attr("data-srcset"),
r = a.attr("data-sizes");
d.loadImage(a[0], s || i, n, r, !1, function() {
var e, t;
null == d || !d || d && !d.params || d.destroyed || (i ? (a.css(
"background-image", 'url("' + i + '")'), a
.removeAttr("data-background")) : (n && (a.attr(
"srcset", n), a.removeAttr("data-srcset")), r && (a
.attr("sizes", r), a.removeAttr("data-sizes")), s &&
(a.attr("src", s), a.removeAttr("data-src"))), a
.addClass(p.loadedClass).removeClass(p.loadingClass), l
.find("." + p.preloaderClass).remove(), d.params.loop &&
o && (e = l.attr("data-swiper-slide-index"), l.hasClass(d
.params.slideDuplicateClass) ? (t = d.$wrapperEl
.children('[data-swiper-slide-index="' + e +
'"]:not(.' + d.params.slideDuplicateClass + ")"
), d.lazy.loadInSlide(t.index(), !1)) : (t = d
.$wrapperEl.children("." + d.params
.slideDuplicateClass +
'[data-swiper-slide-index="' + e + '"]'), d.lazy
.loadInSlide(t.index(), !1))), d.emit("lazyImageReady",
l[0], a[0]))
}), d.emit("lazyImageLoad", l[0], a[0])
})
},
load: function() {
var a = this,
t = a.$wrapperEl,
i = a.params,
s = a.slides,
e = a.activeIndex,
n = a.virtual && i.virtual.enabled,
r = i.lazy,
o = i.slidesPerView;
function l(e) {
if (n) {
if (t.children("." + i.slideClass + '[data-swiper-slide-index="' + e + '"]').length)
return 1
} else if (s[e]) return 1
}
function d(e) {
return n ? E(e).attr("data-swiper-slide-index") : E(e).index()
}
if ("auto" === o && (o = 0), a.lazy.initialImageLoaded || (a.lazy.initialImageLoaded = !0),
a.params.watchSlidesVisibility) t.children("." + i.slideVisibleClass).each(function(e,
t) {
t = n ? E(t).attr("data-swiper-slide-index") : E(t).index();
a.lazy.loadInSlide(t)
});
else if (1 < o)
for (var p = e; p < e + o; p += 1) l(p) && a.lazy.loadInSlide(p);
else a.lazy.loadInSlide(e);
if (r.loadPrevNext)
if (1 < o || r.loadPrevNextAmount && 1 < r.loadPrevNextAmount) {
for (var r = r.loadPrevNextAmount, c = o, u = Math.min(e + c + Math.max(r, c), s
.length), c = Math.max(e - Math.max(c, r), 0), h = e + o; h < u; h += 1) l(
h) && a.lazy.loadInSlide(h);
for (var m = c; m < e; m += 1) l(m) && a.lazy.loadInSlide(m)
} else {
r = t.children("." + i.slideNextClass), c = (0 < r.length && a.lazy.loadInSlide(d(
r)), t.children("." + i.slidePrevClass));
0 < c.length && a.lazy.loadInSlide(d(c))
}
}
},
k = {
LinearSpline: function(e, t) {
var a, i, s, n, r;
return this.x = e, this.y = t, this.lastIndex = e.length - 1, this.interpolate = function(
e) {
return e ? (r = function(e, t) {
for (i = -1, a = e.length; 1 < a - i;) e[s = a + i >> 1] <= t ? i = s :
a = s;
return a
}(this.x, e), n = r - 1, (e - this.x[n]) * (this.y[r] - this.y[n]) / (this
.x[r] - this.x[n]) + this.y[n]) : 0
}, this
},
getInterpolateFunction: function(e) {
var t = this;
t.controller.spline || (t.controller.spline = t.params.loop ? new k.LinearSpline(t
.slidesGrid, e.slidesGrid) : new k.LinearSpline(t.snapGrid, e.snapGrid))
},
setTranslate: function(e, t) {
var a, i, s = this,
n = s.controller.control;
function r(e) {
var t = s.rtlTranslate ? -s.translate : s.translate;
"slide" === s.params.controller.by && (s.controller.getInterpolateFunction(e), i = -s
.controller.spline.interpolate(-t)), i && "container" !== s.params.controller
.by || (a = (e.maxTranslate() - e.minTranslate()) / (s.maxTranslate() - s
.minTranslate()), i = (t - s.minTranslate()) * a + e.minTranslate()), s.params
.controller.inverse && (i = e.maxTranslate() - i), e.updateProgress(i), e
.setTranslate(i, s), e.updateActiveIndex(), e.updateSlidesClasses()
}
if (Array.isArray(n))
for (var o = 0; o < n.length; o += 1) n[o] !== t && n[o] instanceof h && r(n[o]);
else n instanceof h && t !== n && r(n)
},
setTransition: function(t, e) {
var a, i = this,
s = i.controller.control;
function n(e) {
e.setTransition(t, i), 0 !== t && (e.transitionStart(), e.params.autoHeight && q
.nextTick(function() {
e.updateAutoHeight()
}), e.$wrapperEl.transitionEnd(function() {
s && (e.params.loop && "slide" === i.params.controller.by && e
.loopFix(), e.transitionEnd())
}))
}
if (Array.isArray(s))
for (a = 0; a < s.length; a += 1) s[a] !== e && s[a] instanceof h && n(s[a]);
else s instanceof h && e !== s && n(s)
}
},
U = {
makeElFocusable: function(e) {
return e.attr("tabIndex", "0"), e
},
addElRole: function(e, t) {
return e.attr("role", t), e
},
addElLabel: function(e, t) {
return e.attr("aria-label", t), e
},
disableEl: function(e) {
return e.attr("aria-disabled", !0), e
},
enableEl: function(e) {
return e.attr("aria-disabled", !1), e
},
onEnterKey: function(e) {
var t = this,
a = t.params.a11y;
13 === e.keyCode && (e = E(e.target), t.navigation && t.navigation.$nextEl && e.is(t
.navigation.$nextEl) && (t.isEnd && !t.params.loop || t.slideNext(), t.isEnd ? t
.a11y.notify(a.lastSlideMessage) : t.a11y.notify(a.nextSlideMessage)), t
.navigation && t.navigation.$prevEl && e.is(t.navigation.$prevEl) && (t
.isBeginning && !t.params.loop || t.slidePrev(), t.isBeginning ? t.a11y.notify(a
.firstSlideMessage) : t.a11y.notify(a.prevSlideMessage)), t.pagination) && e
.is("." + t.params.pagination.bulletClass) && e[0].click()
},
notify: function(e) {
var t = this.a11y.liveRegion;
0 !== t.length && (t.html(""), t.html(e))
},
updateNavigation: function() {
var e, t, a = this;
a.params.loop || (e = (t = a.navigation).$nextEl, (t = t.$prevEl) && 0 < t.length && (a
.isBeginning ? a.a11y.disableEl(t) : a.a11y.enableEl(t)), e && 0 < e.length && (
a.isEnd ? a.a11y.disableEl(e) : a.a11y.enableEl(e)))
},
updatePagination: function() {
var a = this,
i = a.params.a11y;
a.pagination && a.params.pagination.clickable && a.pagination.bullets && a.pagination
.bullets.length && a.pagination.bullets.each(function(e, t) {
t = E(t);
a.a11y.makeElFocusable(t), a.a11y.addElRole(t, "button"), a.a11y.addElLabel(t, i
.paginationBulletMessage.replace(/{{index}}/, t.index() + 1))
})
},
init: function() {
var e = this;
e.$el.append(e.a11y.liveRegion);
var t, a, i = e.params.a11y;
e.navigation && e.navigation.$nextEl && (t = e.navigation.$nextEl), e.navigation && e
.navigation.$prevEl && (a = e.navigation.$prevEl), t && (e.a11y.makeElFocusable(t), e
.a11y.addElRole(t, "button"), e.a11y.addElLabel(t, i.nextSlideMessage), t.on(
"keydown", e.a11y.onEnterKey)), a && (e.a11y.makeElFocusable(a), e.a11y
.addElRole(a, "button"), e.a11y.addElLabel(a, i.prevSlideMessage), a.on("keydown", e
.a11y.onEnterKey)), e.pagination && e.params.pagination.clickable && e
.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.on("keydown",
"." + e.params.pagination.bulletClass, e.a11y.onEnterKey)
},
destroy: function() {
var e, t, a = this;
a.a11y.liveRegion && 0 < a.a11y.liveRegion.length && a.a11y.liveRegion.remove(), a
.navigation && a.navigation.$nextEl && (e = a.navigation.$nextEl), a.navigation && a
.navigation.$prevEl && (t = a.navigation.$prevEl), e && e.off("keydown", a.a11y
.onEnterKey), t && t.off("keydown", a.a11y.onEnterKey), a.pagination && a.params
.pagination.clickable && a.pagination.bullets && a.pagination.bullets.length && a
.pagination.$el.off("keydown", "." + a.params.pagination.bulletClass, a.a11y.onEnterKey)
}
},
z = {
init: function() {
var e, t = this;
t.params.history && (R.history && R.history.pushState ? ((e = t.history).initialized = !0, e
.paths = z.getPathValues(), (e.paths.key || e.paths.value) && (e.scrollToSlide(
0, e.paths.value, t.params.runCallbacksOnInit), t.params.history
.replaceState || R.addEventListener("popstate", t.history
.setHistoryPopState))) : (t.params.history.enabled = !1, t.params
.hashNavigation.enabled = !0))
},
destroy: function() {
this.params.history.replaceState || R.removeEventListener("popstate", this.history
.setHistoryPopState)
},
setHistoryPopState: function() {
this.history.paths = z.getPathValues(), this.history.scrollToSlide(this.params.speed, this
.history.paths.value, !1)
},
getPathValues: function() {
var e = R.location.pathname.slice(1).split("/").filter(function(e) {
return "" !== e
}),
t = e.length;
return {
key: e[t - 2],
value: e[t - 1]
}
},
setHistory: function(e, t) {
this.history.initialized && this.params.history.enabled && (t = this.slides.eq(t), t = z
.slugify(t.attr("data-history")), R.location.pathname.includes(e) || (t = e + "/" +
t), (e = R.history.state) && e.value === t || (this.params.history
.replaceState ? R.history.replaceState({
value: t
}, null, t) : R.history.pushState({
value: t
}, null, t)))
},
slugify: function(e) {
return e.toString().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-")
.replace(/^-+/, "").replace(/-+$/, "")
},
scrollToSlide: function(e, t, a) {
var i = this;
if (t)
for (var s = 0, n = i.slides.length; s < n; s += 1) {
var r = i.slides.eq(s);
z.slugify(r.attr("data-history")) !== t || r.hasClass(i.params
.slideDuplicateClass) || (r = r.index(), i.slideTo(r, e, a))
} else i.slideTo(0, e, a)
}
},
$ = {
onHashCange: function() {
var e = this,
t = c.location.hash.replace("#", "");
t !== e.slides.eq(e.activeIndex).attr("data-hash") && void 0 !== (t = e.$wrapperEl.children(
"." + e.params.slideClass + '[data-hash="' + t + '"]').index()) && e.slideTo(t)
},
setHash: function() {
var e = this;
e.hashNavigation.initialized && e.params.hashNavigation.enabled && (e.params.hashNavigation
.replaceState && R.history && R.history.replaceState ? R.history.replaceState(null,
null, "#" + e.slides.eq(e.activeIndex).attr("data-hash") || "") : (e = (e = e
.slides.eq(e.activeIndex)).attr("data-hash") || e.attr("data-history"), c
.location.hash = e || ""))
},
init: function() {
var e = this;
if (!(!e.params.hashNavigation.enabled || e.params.history && e.params.history.enabled)) {
e.hashNavigation.initialized = !0;
var t = c.location.hash.replace("#", "");
if (t)
for (var a = 0, i = e.slides.length; a < i; a += 1) {
var s = e.slides.eq(a);
(s.attr("data-hash") || s.attr("data-history")) !== t || s.hasClass(e.params
.slideDuplicateClass) || (s = s.index(), e.slideTo(s, 0, e.params
.runCallbacksOnInit, !0))
}
e.params.hashNavigation.watchState && E(R).on("hashchange", e.hashNavigation
.onHashCange)
}
},
destroy: function() {
this.params.hashNavigation.watchState && E(R).off("hashchange", this.hashNavigation
.onHashCange)
}
},
I = {
run: function() {
var e = this,
t = e.slides.eq(e.activeIndex),
a = e.params.autoplay.delay;
t.attr("data-swiper-autoplay") && (a = t.attr("data-swiper-autoplay") || e.params.autoplay
.delay), clearTimeout(e.autoplay.timeout), e.autoplay.timeout = q.nextTick(
function() {
e.params.autoplay.reverseDirection ? e.params.loop ? (e.loopFix(), e.slidePrev(e
.params.speed, !0, !0), e.emit("autoplay")) : e.isBeginning ? e.params
.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(e.slides.length -
1, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slidePrev(e.params
.speed, !0, !0), e.emit("autoplay")) : e.params.loop ? (e.loopFix(), e
.slideNext(e.params.speed, !0, !0), e.emit("autoplay")) : e.isEnd ? e
.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(0, e
.params.speed, !0, !0), e.emit("autoplay")) : (e.slideNext(e.params
.speed, !0, !0), e.emit("autoplay"))
}, a)
},
start: function() {
var e = this;
return void 0 === e.autoplay.timeout && !e.autoplay.running && (e.autoplay.running = !0, e
.emit("autoplayStart"), e.autoplay.run(), !0)
},
stop: function() {
var e = this;
return !!e.autoplay.running && void 0 !== e.autoplay.timeout && (e.autoplay.timeout && (
clearTimeout(e.autoplay.timeout), e.autoplay.timeout = void 0), e.autoplay
.running = !1, e.emit("autoplayStop"), !0)
},
pause: function(e) {
var t = this;
t.autoplay.running && !t.autoplay.paused && (t.autoplay.timeout && clearTimeout(t.autoplay
.timeout), t.autoplay.paused = !0, 0 !== e && t.params.autoplay
.waitForTransition ? (t.$wrapperEl[0].addEventListener("transitionend", t.autoplay
.onTransitionEnd), t.$wrapperEl[0].addEventListener("webkitTransitionEnd", t
.autoplay.onTransitionEnd)) : (t.autoplay.paused = !1, t.autoplay.run()))
}
},
K = {
setTranslate: function() {
for (var e = this, t = e.slides, a = 0; a < t.length; a += 1) {
var i = e.slides.eq(a),
s = -i[0].swiperSlideOffset,
n = (e.params.virtualTranslate || (s -= e.translate), 0),
r = (e.isHorizontal() || (n = s, s = 0), e.params.fadeEffect.crossFade ? Math.max(
1 - Math.abs(i[0].progress), 0) : 1 + Math.min(Math.max(i[0].progress, -1),
0));
i.css({
opacity: r
}).transform("translate3d(" + s + "px, " + n + "px, 0px)")
}
},
setTransition: function(e) {
var a, i = this,
t = i.slides,
s = i.$wrapperEl;
t.transition(e), i.params.virtualTranslate && 0 !== e && (a = !1, t.transitionEnd(
function() {
if (!a && i && !i.destroyed) {
a = !0, i.animating = !1;
for (var e = ["webkitTransitionEnd", "transitionend"], t = 0; t < e
.length; t += 1) s.trigger(e[t])
}
}))
}
},
_ = {
setTranslate: function() {
var e, t = this,
a = t.$el,
i = t.$wrapperEl,
s = t.slides,
n = t.width,
r = t.height,
o = t.rtlTranslate,
l = t.size,
d = t.params.cubeEffect,
p = t.isHorizontal(),
c = t.virtual && t.params.virtual.enabled,
u = 0;
d.shadow && (p ? (0 === (e = i.find(".swiper-cube-shadow")).length && (e = E(
''), i.append(e)), e.css({
height: n + "px"
})) : 0 === (e = a.find(".swiper-cube-shadow")).length && (e = E(
''), a.append(e)));
for (var h, m = 0; m < s.length; m += 1) {
var v = s.eq(m),
f = m,
g = 90 * (f = c ? parseInt(v.attr("data-swiper-slide-index"), 10) : f),
b = Math.floor(g / 360),
w = (o && (g = -g, b = Math.floor(-g / 360)), Math.max(Math.min(v[0].progress, 1), -
1)),
y = 0,
x = 0,
T = 0,
b = (f % 4 == 0 ? (y = 4 * -b * l, T = 0) : (f - 1) % 4 == 0 ? (y = 0, T = 4 * -b *
l) : (f - 2) % 4 == 0 ? (y = l + 4 * b * l, T = l) : (f - 3) % 4 == 0 && (
y = -l, T = 3 * l + 4 * l * b), o && (y = -y), p || (x = y, y = 0),
"rotateX(" + (p ? 0 : -g) + "deg) rotateY(" + (p ? g : 0) +
"deg) translate3d(" + y + "px, " + x + "px, " + T + "px)");
w <= 1 && -1 < w && (u = 90 * f + 90 * w, o) && (u = 90 * -f - 90 * w), v.transform(b),
d.slideShadows && (g = p ? v.find(".swiper-slide-shadow-left") : v.find(
".swiper-slide-shadow-top"), y = p ? v.find(".swiper-slide-shadow-right") :
v.find(".swiper-slide-shadow-bottom"), 0 === g.length && (g = E(
''),
v.append(g)), 0 === y.length && (y = E(''), v.append(y)), g.length && (g[0]
.style.opacity = Math.max(-w, 0)), y.length) && (y[0].style.opacity = Math
.max(w, 0))
}
i.css({
"-webkit-transform-origin": "50% 50% -" + l / 2 + "px",
"-moz-transform-origin": "50% 50% -" + l / 2 + "px",
"-ms-transform-origin": "50% 50% -" + l / 2 + "px",
"transform-origin": "50% 50% -" + l / 2 + "px"
}), d.shadow && (p ? e.transform("translate3d(0px, " + (n / 2 + d.shadowOffset) +
"px, " + -n / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + d.shadowScale +
")") : (a = Math.abs(u) - 90 * Math.floor(Math.abs(u) / 90), n = 1.5 - (Math
.sin(2 * a * Math.PI / 360) / 2 + Math.cos(2 * a * Math.PI / 360) / 2), a =
d.shadowScale, n = d.shadowScale / n, h = d.shadowOffset, e.transform(
"scale3d(" + a + ", 1, " + n + ") translate3d(0px, " + (r / 2 + h) +
"px, " + -r / 2 / n + "px) rotateX(-90deg)"))), i.transform(
"translate3d(0px,0," + (j.isSafari || j.isUiWebView ? -l / 2 : 0) + "px) rotateX(" +
(t.isHorizontal() ? 0 : u) + "deg) rotateY(" + (t.isHorizontal() ? -u : 0) + "deg)")
},
setTransition: function(e) {
var t = this.$el;
this.slides.transition(e).find(
".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
).transition(e), this.params.cubeEffect.shadow && !this.isHorizontal() && t.find(
".swiper-cube-shadow").transition(e)
}
},
Z = {
setTranslate: function() {
for (var e = this, t = e.slides, a = e.rtlTranslate, i = 0; i < t.length; i += 1) {
var s, n, r = t.eq(i),
o = r[0].progress,
l = -180 * (o = e.params.flipEffect.limitRotation ? Math.max(Math.min(r[0].progress,
1), -1) : o),
d = 0,
p = -r[0].swiperSlideOffset,
c = 0;
e.isHorizontal() ? a && (l = -l) : (c = p, d = -l, l = p = 0), r[0].style.zIndex = -Math
.abs(Math.round(o)) + t.length, e.params.flipEffect.slideShadows && (s = e
.isHorizontal() ? r.find(".swiper-slide-shadow-left") : r.find(
".swiper-slide-shadow-top"), n = e.isHorizontal() ? r.find(
".swiper-slide-shadow-right") : r.find(".swiper-slide-shadow-bottom"), 0 ===
s.length && (s = E(''), r.append(s)), 0 === n.length && (n = E(
''), r.append(n)), s.length && (s[0].style.opacity =
Math.max(-o, 0)), n.length) && (n[0].style.opacity = Math.max(o, 0)), r
.transform("translate3d(" + p + "px, " + c + "px, 0px) rotateX(" + d +
"deg) rotateY(" + l + "deg)")
}
},
setTransition: function(e) {
var a, i = this,
t = i.slides,
s = i.activeIndex,
n = i.$wrapperEl;
t.transition(e).find(
".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
).transition(e), i.params.virtualTranslate && 0 !== e && (a = !1, t.eq(s)
.transitionEnd(function() {
if (!a && i && !i.destroyed) {
a = !0, i.animating = !1;
for (var e = ["webkitTransitionEnd", "transitionend"], t = 0; t < e
.length; t += 1) n.trigger(e[t])
}
}))
}
},
Q = {
setTranslate: function() {
for (var e = this, t = e.width, a = e.height, i = e.slides, s = e.$wrapperEl, n = e
.slidesSizesGrid, r = e.params.coverflowEffect, o = e.isHorizontal(), e = e
.translate, l = o ? t / 2 - e : a / 2 - e, d = o ? r.rotate : -r.rotate, p = r
.depth, c = 0, u = i.length; c < u; c += 1) {
var h = i.eq(c),
m = n[c],
m = (l - h[0].swiperSlideOffset - m / 2) / m * r.modifier,
v = o ? d * m : 0,
f = o ? 0 : d * m,
g = -p * Math.abs(m),
b = o ? 0 : r.stretch * m,
w = o ? r.stretch * m : 0,
w = (Math.abs(w) < .001 && (w = 0), Math.abs(b) < .001 && (b = 0), Math.abs(g) <
.001 && (g = 0), Math.abs(v) < .001 && (v = 0), "translate3d(" + w + "px," + b +
"px," + g + "px) rotateX(" + (f = Math.abs(f) < .001 ? 0 : f) +
"deg) rotateY(" + v + "deg)");
h.transform(w), h[0].style.zIndex = 1 - Math.abs(Math.round(m)), r.slideShadows && (b =
o ? h.find(".swiper-slide-shadow-left") : h.find(".swiper-slide-shadow-top"),
g = o ? h.find(".swiper-slide-shadow-right") : h.find(
".swiper-slide-shadow-bottom"), 0 === b.length && (b = E(
''),
h.append(b)), 0 === g.length && (g = E(''), h.append(g)), b.length && (b[0]
.style.opacity = 0 < m ? m : 0), g.length) && (g[0].style.opacity = 0 < -m ?
-m : 0)
}(W.pointerEvents || W.prefixedPointerEvents) && (s[0].style.perspectiveOrigin = l +
"px 50%")
},
setTransition: function(e) {
this.slides.transition(e).find(
".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
).transition(e)
}
},
J = {
init: function() {
var e = this,
t = e.params.thumbs,
a = e.constructor;
t.swiper instanceof a ? (e.thumbs.swiper = t.swiper, q.extend(e.thumbs.swiper
.originalParams, {
watchSlidesProgress: !0,
slideToClickedSlide: !1
}), q.extend(e.thumbs.swiper.params, {
watchSlidesProgress: !0,
slideToClickedSlide: !1
})) : q.isObject(t.swiper) && (e.thumbs.swiper = new a(q.extend({}, t.swiper, {
watchSlidesVisibility: !0,
watchSlidesProgress: !0,
slideToClickedSlide: !1
})), e.thumbs.swiperCreated = !0), e.thumbs.swiper.$el.addClass(e.params.thumbs
.thumbsContainerClass), e.thumbs.swiper.on("tap", e.thumbs.onThumbClick)
},
onThumbClick: function() {
var e, t, a, i = this,
s = i.thumbs.swiper;
s && (e = s.clickedIndex, (a = s.clickedSlide) && E(a).hasClass(i.params.thumbs
.slideThumbActiveClass) || null == e || (a = s.params.loop ? parseInt(E(s
.clickedSlide).attr("data-swiper-slide-index"), 10) : e, i.params.loop && (
s = i.activeIndex, i.slides.eq(s).hasClass(i.params.slideDuplicateClass) &&
(i.loopFix(), i._clientLeft = i.$wrapperEl[0].clientLeft, s = i
.activeIndex), e = i.slides.eq(s).prevAll('[data-swiper-slide-index="' + a +
'"]').eq(0).index(), t = i.slides.eq(s).nextAll(
'[data-swiper-slide-index="' + a + '"]').eq(0).index(), a = void 0 ===
e || void 0 !== t && t - s < s - e ? t : e), i.slideTo(a)))
},
update: function(e) {
var t = this,
a = t.thumbs.swiper;
if (a) {
var i, s, n, r = "auto" === a.params.slidesPerView ? a.slidesPerViewDynamic() : a.params
.slidesPerView,
o = (t.realIndex !== a.realIndex && (i = a.activeIndex, n = a.params.loop ? (a
.slides.eq(i).hasClass(a.params.slideDuplicateClass) && (a.loopFix(), a
._clientLeft = a.$wrapperEl[0].clientLeft, i = a.activeIndex), s = a
.slides.eq(i).prevAll('[data-swiper-slide-index="' + t.realIndex + '"]')
.eq(0).index(), n = a.slides.eq(i).nextAll(
'[data-swiper-slide-index="' + t.realIndex + '"]').eq(0).index(),
void 0 === s ? n : void 0 === n ? s : n - i == i - s ? i : n - i < i -
s ? n : s) : t.realIndex, a.visibleSlidesIndexes) && a.visibleSlidesIndexes
.indexOf(n) < 0 && (a.params.centeredSlides ? n = i < n ? n - Math.floor(r /
2) + 1 : n + Math.floor(r / 2) - 1 : i < n && (n = n - r + 1), a.slideTo(n,
e ? 0 : void 0)), 1),
l = t.params.thumbs.slideThumbActiveClass;
if (1 < t.params.slidesPerView && !t.params.centeredSlides && (o = t.params
.slidesPerView), a.slides.removeClass(l), a.params.loop || a.params.virtual)
for (var d = 0; d < o; d += 1) a.$wrapperEl.children('[data-swiper-slide-index="' +
(t.realIndex + d) + '"]').addClass(l);
else
for (var p = 0; p < o; p += 1) a.slides.eq(t.realIndex + p).addClass(l)
}
}
},
D = [m, v, f, g, w, x, t, {
name: "mousewheel",
params: {
mousewheel: {
enabled: !1,
releaseOnEdges: !1,
invert: !1,
forceToAxis: !1,
sensitivity: 1,
eventsTarged: "container"
}
},
create: function() {
var e = this;
q.extend(e, {
mousewheel: {
enabled: !1,
enable: S.enable.bind(e),
disable: S.disable.bind(e),
handle: S.handle.bind(e),
handleMouseEnter: S.handleMouseEnter.bind(e),
handleMouseLeave: S.handleMouseLeave.bind(e),
lastScrollTime: q.now()
}
})
},
on: {
init: function() {
this.params.mousewheel.enabled && this.mousewheel.enable()
},
destroy: function() {
this.mousewheel.enabled && this.mousewheel.disable()
}
}
}, {
name: "navigation",
params: {
navigation: {
nextEl: null,
prevEl: null,
hideOnClick: !1,
disabledClass: "swiper-button-disabled",
hiddenClass: "swiper-button-hidden",
lockClass: "swiper-button-lock"
}
},
create: function() {
var e = this;
q.extend(e, {
navigation: {
init: C.init.bind(e),
update: C.update.bind(e),
destroy: C.destroy.bind(e),
onNextClick: C.onNextClick.bind(e),
onPrevClick: C.onPrevClick.bind(e)
}
})
},
on: {
init: function() {
this.navigation.init(), this.navigation.update()
},
toEdge: function() {
this.navigation.update()
},
fromEdge: function() {
this.navigation.update()
},
destroy: function() {
this.navigation.destroy()
},
click: function(e) {
var t, a = this,
i = a.navigation,
s = i.$nextEl,
i = i.$prevEl;
!a.params.navigation.hideOnClick || E(e.target).is(i) || E(e.target).is(s) || (s ?
t = s.hasClass(a.params.navigation.hiddenClass) : i && (t = i.hasClass(a
.params.navigation.hiddenClass)), !0 === t ? a.emit("navigationShow",
a) : a.emit("navigationHide", a), s && s.toggleClass(a.params.navigation
.hiddenClass), i && i.toggleClass(a.params.navigation.hiddenClass))
}
}
}, {
name: "pagination",
params: {
pagination: {
el: null,
bulletElement: "span",
clickable: !1,
hideOnClick: !1,
renderBullet: null,
renderProgressbar: null,
renderFraction: null,
renderCustom: null,
progressbarOpposite: !1,
type: "bullets",
dynamicBullets: !1,
dynamicMainBullets: 1,
formatFractionCurrent: function(e) {
return e
},
formatFractionTotal: function(e) {
return e
},
bulletClass: "swiper-pagination-bullet",
bulletActiveClass: "swiper-pagination-bullet-active",
modifierClass: "swiper-pagination-",
currentClass: "swiper-pagination-current",
totalClass: "swiper-pagination-total",
hiddenClass: "swiper-pagination-hidden",
progressbarFillClass: "swiper-pagination-progressbar-fill",
progressbarOppositeClass: "swiper-pagination-progressbar-opposite",
clickableClass: "swiper-pagination-clickable",
lockClass: "swiper-pagination-lock"
}
},
create: function() {
var e = this;
q.extend(e, {
pagination: {
init: M.init.bind(e),
render: M.render.bind(e),
update: M.update.bind(e),
destroy: M.destroy.bind(e),
dynamicBulletIndex: 0
}
})
},
on: {
init: function() {
this.pagination.init(), this.pagination.render(), this.pagination.update()
},
activeIndexChange: function() {
!this.params.loop && void 0 !== this.snapIndex || this.pagination.update()
},
snapIndexChange: function() {
this.params.loop || this.pagination.update()
},
slidesLengthChange: function() {
this.params.loop && (this.pagination.render(), this.pagination.update())
},
snapGridLengthChange: function() {
this.params.loop || (this.pagination.render(), this.pagination.update())
},
destroy: function() {
this.pagination.destroy()
},
click: function(e) {
var t = this;
t.params.pagination.el && t.params.pagination.hideOnClick && 0 < t.pagination.$el
.length && !E(e.target).hasClass(t.params.pagination.bulletClass) && (!0 === t
.pagination.$el.hasClass(t.params.pagination.hiddenClass) ? t.emit(
"paginationShow", t) : t.emit("paginationHide", t), t.pagination.$el
.toggleClass(t.params.pagination.hiddenClass))
}
}
}, {
name: "scrollbar",
params: {
scrollbar: {
el: null,
dragSize: "auto",
hide: !1,
draggable: !1,
snapOnRelease: !0,
lockClass: "swiper-scrollbar-lock",
dragClass: "swiper-scrollbar-drag"
}
},
create: function() {
var e = this;
q.extend(e, {
scrollbar: {
init: P.init.bind(e),
destroy: P.destroy.bind(e),
updateSize: P.updateSize.bind(e),
setTranslate: P.setTranslate.bind(e),
setTransition: P.setTransition.bind(e),
enableDraggable: P.enableDraggable.bind(e),
disableDraggable: P.disableDraggable.bind(e),
setDragPosition: P.setDragPosition.bind(e),
getPointerPosition: P.getPointerPosition.bind(e),
onDragStart: P.onDragStart.bind(e),
onDragMove: P.onDragMove.bind(e),
onDragEnd: P.onDragEnd.bind(e),
isTouched: !1,
timeout: null,
dragTimeout: null
}
})
},
on: {
init: function() {
this.scrollbar.init(), this.scrollbar.updateSize(), this.scrollbar.setTranslate()
},
update: function() {
this.scrollbar.updateSize()
},
resize: function() {
this.scrollbar.updateSize()
},
observerUpdate: function() {
this.scrollbar.updateSize()
},
setTranslate: function() {
this.scrollbar.setTranslate()
},
setTransition: function(e) {
this.scrollbar.setTransition(e)
},
destroy: function() {
this.scrollbar.destroy()
}
}
}, {
name: "parallax",
params: {
parallax: {
enabled: !1
}
},
create: function() {
q.extend(this, {
parallax: {
setTransform: X.setTransform.bind(this),
setTranslate: X.setTranslate.bind(this),
setTransition: X.setTransition.bind(this)
}
})
},
on: {
beforeInit: function() {
this.params.parallax.enabled && (this.params.watchSlidesProgress = !0, this
.originalParams.watchSlidesProgress = !0)
},
init: function() {
this.params.parallax.enabled && this.parallax.setTranslate()
},
setTranslate: function() {
this.params.parallax.enabled && this.parallax.setTranslate()
},
setTransition: function(e) {
this.params.parallax.enabled && this.parallax.setTransition(e)
}
}
}, {
name: "zoom",
params: {
zoom: {
enabled: !1,
maxRatio: 3,
minRatio: 1,
toggle: !0,
containerClass: "swiper-zoom-container",
zoomedSlideClass: "swiper-slide-zoomed"
}
},
create: function() {
var i = this,
t = {
enabled: !1,
scale: 1,
currentScale: 1,
isScaling: !1,
gesture: {
$slideEl: void 0,
slideWidth: void 0,
slideHeight: void 0,
$imageEl: void 0,
$imageWrapEl: void 0,
maxRatio: 3
},
image: {
isTouched: void 0,
isMoved: void 0,
currentX: void 0,
currentY: void 0,
minX: void 0,
minY: void 0,
maxX: void 0,
maxY: void 0,
width: void 0,
height: void 0,
startX: void 0,
startY: void 0,
touchesStart: {},
touchesCurrent: {}
},
velocity: {
x: void 0,
y: void 0,
prevPositionX: void 0,
prevPositionY: void 0,
prevTime: void 0
}
},
s = (
"onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out"
.split(" ").forEach(function(e) {
t[e] = Y[e].bind(i)
}), q.extend(i, {
zoom: t
}), 1);
Object.defineProperty(i.zoom, "scale", {
get: function() {
return s
},
set: function(e) {
var t, a;
s !== e && (t = i.zoom.gesture.$imageEl ? i.zoom.gesture.$imageEl[
0] : void 0, a = i.zoom.gesture.$slideEl ? i.zoom.gesture
.$slideEl[0] : void 0, i.emit("zoomChange", e, t, a)), s = e
}
})
},
on: {
init: function() {
this.params.zoom.enabled && this.zoom.enable()
},
destroy: function() {
this.zoom.disable()
},
touchStart: function(e) {
this.zoom.enabled && this.zoom.onTouchStart(e)
},
touchEnd: function(e) {
this.zoom.enabled && this.zoom.onTouchEnd(e)
},
doubleTap: function(e) {
this.params.zoom.enabled && this.zoom.enabled && this.params.zoom.toggle && this
.zoom.toggle(e)
},
transitionEnd: function() {
this.zoom.enabled && this.params.zoom.enabled && this.zoom.onTransitionEnd()
}
}
}, {
name: "lazy",
params: {
lazy: {
enabled: !1,
loadPrevNext: !1,
loadPrevNextAmount: 1,
loadOnTransitionStart: !1,
elementClass: "swiper-lazy",
loadingClass: "swiper-lazy-loading",
loadedClass: "swiper-lazy-loaded",
preloaderClass: "swiper-lazy-preloader"
}
},
create: function() {
q.extend(this, {
lazy: {
initialImageLoaded: !1,
load: F.load.bind(this),
loadInSlide: F.loadInSlide.bind(this)
}
})
},
on: {
beforeInit: function() {
this.params.lazy.enabled && this.params.preloadImages && (this.params
.preloadImages = !1)
},
init: function() {
this.params.lazy.enabled && !this.params.loop && 0 === this.params.initialSlide &&
this.lazy.load()
},
scroll: function() {
this.params.freeMode && !this.params.freeModeSticky && this.lazy.load()
},
resize: function() {
this.params.lazy.enabled && this.lazy.load()
},
scrollbarDragMove: function() {
this.params.lazy.enabled && this.lazy.load()
},
transitionStart: function() {
var e = this;
e.params.lazy.enabled && (e.params.lazy.loadOnTransitionStart || !e.params.lazy
.loadOnTransitionStart && !e.lazy.initialImageLoaded) && e.lazy.load()
},
transitionEnd: function() {
this.params.lazy.enabled && !this.params.lazy.loadOnTransitionStart && this.lazy
.load()
}
}
}, {
name: "controller",
params: {
controller: {
control: void 0,
inverse: !1,
by: "slide"
}
},
create: function() {
var e = this;
q.extend(e, {
controller: {
control: e.params.controller.control,
getInterpolateFunction: k.getInterpolateFunction.bind(e),
setTranslate: k.setTranslate.bind(e),
setTransition: k.setTransition.bind(e)
}
})
},
on: {
update: function() {
this.controller.control && this.controller.spline && (this.controller.spline =
void 0, delete this.controller.spline)
},
resize: function() {
this.controller.control && this.controller.spline && (this.controller.spline =
void 0, delete this.controller.spline)
},
observerUpdate: function() {
this.controller.control && this.controller.spline && (this.controller.spline =
void 0, delete this.controller.spline)
},
setTranslate: function(e, t) {
this.controller.control && this.controller.setTranslate(e, t)
},
setTransition: function(e, t) {
this.controller.control && this.controller.setTransition(e, t)
}
}
}, {
name: "a11y",
params: {
a11y: {
enabled: !0,
notificationClass: "swiper-notification",
prevSlideMessage: "Previous slide",
nextSlideMessage: "Next slide",
firstSlideMessage: "This is the first slide",
lastSlideMessage: "This is the last slide",
paginationBulletMessage: "Go to slide {{index}}"
}
},
create: function() {
var t = this;
q.extend(t, {
a11y: {
liveRegion: E('')
}
}), Object.keys(U).forEach(function(e) {
t.a11y[e] = U[e].bind(t)
})
},
on: {
init: function() {
this.params.a11y.enabled && (this.a11y.init(), this.a11y.updateNavigation())
},
toEdge: function() {
this.params.a11y.enabled && this.a11y.updateNavigation()
},
fromEdge: function() {
this.params.a11y.enabled && this.a11y.updateNavigation()
},
paginationUpdate: function() {
this.params.a11y.enabled && this.a11y.updatePagination()
},
destroy: function() {
this.params.a11y.enabled && this.a11y.destroy()
}
}
}, {
name: "history",
params: {
history: {
enabled: !1,
replaceState: !1,
key: "slides"
}
},
create: function() {
var e = this;
q.extend(e, {
history: {
init: z.init.bind(e),
setHistory: z.setHistory.bind(e),
setHistoryPopState: z.setHistoryPopState.bind(e),
scrollToSlide: z.scrollToSlide.bind(e),
destroy: z.destroy.bind(e)
}
})
},
on: {
init: function() {
this.params.history.enabled && this.history.init()
},
destroy: function() {
this.params.history.enabled && this.history.destroy()
},
transitionEnd: function() {
this.history.initialized && this.history.setHistory(this.params.history.key, this
.activeIndex)
}
}
}, {
name: "hash-navigation",
params: {
hashNavigation: {
enabled: !1,
replaceState: !1,
watchState: !1
}
},
create: function() {
var e = this;
q.extend(e, {
hashNavigation: {
initialized: !1,
init: $.init.bind(e),
destroy: $.destroy.bind(e),
setHash: $.setHash.bind(e),
onHashCange: $.onHashCange.bind(e)
}
})
},
on: {
init: function() {
this.params.hashNavigation.enabled && this.hashNavigation.init()
},
destroy: function() {
this.params.hashNavigation.enabled && this.hashNavigation.destroy()
},
transitionEnd: function() {
this.hashNavigation.initialized && this.hashNavigation.setHash()
}
}
}, {
name: "autoplay",
params: {
autoplay: {
enabled: !1,
delay: 3e3,
waitForTransition: !0,
disableOnInteraction: !0,
stopOnLastSlide: !1,
reverseDirection: !1
}
},
create: function() {
var t = this;
q.extend(t, {
autoplay: {
running: !1,
paused: !1,
run: I.run.bind(t),
start: I.start.bind(t),
stop: I.stop.bind(t),
pause: I.pause.bind(t),
onTransitionEnd: function(e) {
t && !t.destroyed && t.$wrapperEl && e.target === this && (t
.$wrapperEl[0].removeEventListener("transitionend", t
.autoplay.onTransitionEnd), t.$wrapperEl[0]
.removeEventListener("webkitTransitionEnd", t.autoplay
.onTransitionEnd), t.autoplay.paused = !1, t
.autoplay.running ? t.autoplay.run() : t.autoplay.stop()
)
}
}
})
},
on: {
init: function() {
this.params.autoplay.enabled && this.autoplay.start()
},
beforeTransitionStart: function(e, t) {
this.autoplay.running && (t || !this.params.autoplay.disableOnInteraction ? this
.autoplay.pause(e) : this.autoplay.stop())
},
sliderFirstMove: function() {
this.autoplay.running && (this.params.autoplay.disableOnInteraction ? this.autoplay
.stop() : this.autoplay.pause())
},
destroy: function() {
this.autoplay.running && this.autoplay.stop()
}
}
}, {
name: "effect-fade",
params: {
fadeEffect: {
crossFade: !1
}
},
create: function() {
q.extend(this, {
fadeEffect: {
setTranslate: K.setTranslate.bind(this),
setTransition: K.setTransition.bind(this)
}
})
},
on: {
beforeInit: function() {
var e, t = this;
"fade" === t.params.effect && (t.classNames.push(t.params.containerModifierClass +
"fade"), q.extend(t.params, e = {
slidesPerView: 1,
slidesPerColumn: 1,
slidesPerGroup: 1,
watchSlidesProgress: !0,
spaceBetween: 0,
virtualTranslate: !0
}), q.extend(t.originalParams, e))
},
setTranslate: function() {
"fade" === this.params.effect && this.fadeEffect.setTranslate()
},
setTransition: function(e) {
"fade" === this.params.effect && this.fadeEffect.setTransition(e)
}
}
}, {
name: "effect-cube",
params: {
cubeEffect: {
slideShadows: !0,
shadow: !0,
shadowOffset: 20,
shadowScale: .94
}
},
create: function() {
q.extend(this, {
cubeEffect: {
setTranslate: _.setTranslate.bind(this),
setTransition: _.setTransition.bind(this)
}
})
},
on: {
beforeInit: function() {
var e, t = this;
"cube" === t.params.effect && (t.classNames.push(t.params.containerModifierClass +
"cube"), t.classNames.push(t.params.containerModifierClass + "3d"), q
.extend(t.params, e = {
slidesPerView: 1,
slidesPerColumn: 1,
slidesPerGroup: 1,
watchSlidesProgress: !0,
resistanceRatio: 0,
spaceBetween: 0,
centeredSlides: !1,
virtualTranslate: !0
}), q.extend(t.originalParams, e))
},
setTranslate: function() {
"cube" === this.params.effect && this.cubeEffect.setTranslate()
},
setTransition: function(e) {
"cube" === this.params.effect && this.cubeEffect.setTransition(e)
}
}
}, {
name: "effect-flip",
params: {
flipEffect: {
slideShadows: !0,
limitRotation: !0
}
},
create: function() {
q.extend(this, {
flipEffect: {
setTranslate: Z.setTranslate.bind(this),
setTransition: Z.setTransition.bind(this)
}
})
},
on: {
beforeInit: function() {
var e, t = this;
"flip" === t.params.effect && (t.classNames.push(t.params.containerModifierClass +
"flip"), t.classNames.push(t.params.containerModifierClass + "3d"), q
.extend(t.params, e = {
slidesPerView: 1,
slidesPerColumn: 1,
slidesPerGroup: 1,
watchSlidesProgress: !0,
spaceBetween: 0,
virtualTranslate: !0
}), q.extend(t.originalParams, e))
},
setTranslate: function() {
"flip" === this.params.effect && this.flipEffect.setTranslate()
},
setTransition: function(e) {
"flip" === this.params.effect && this.flipEffect.setTransition(e)
}
}
}, {
name: "effect-coverflow",
params: {
coverflowEffect: {
rotate: 50,
stretch: 0,
depth: 100,
modifier: 1,
slideShadows: !0
}
},
create: function() {
q.extend(this, {
coverflowEffect: {
setTranslate: Q.setTranslate.bind(this),
setTransition: Q.setTransition.bind(this)
}
})
},
on: {
beforeInit: function() {
var e = this;
"coverflow" === e.params.effect && (e.classNames.push(e.params
.containerModifierClass + "coverflow"), e.classNames.push(e.params
.containerModifierClass + "3d"), e.params.watchSlidesProgress = !0, e
.originalParams.watchSlidesProgress = !0)
},
setTranslate: function() {
"coverflow" === this.params.effect && this.coverflowEffect.setTranslate()
},
setTransition: function(e) {
"coverflow" === this.params.effect && this.coverflowEffect.setTransition(e)
}
}
}, {
name: "thumbs",
params: {
thumbs: {
swiper: null,
slideThumbActiveClass: "swiper-slide-thumb-active",
thumbsContainerClass: "swiper-container-thumbs"
}
},
create: function() {
q.extend(this, {
thumbs: {
swiper: null,
init: J.init.bind(this),
update: J.update.bind(this),
onThumbClick: J.onThumbClick.bind(this)
}
})
},
on: {
beforeInit: function() {
var e = this.params.thumbs;
e && e.swiper && (this.thumbs.init(), this.thumbs.update(!0))
},
slideChange: function() {
this.thumbs.swiper && this.thumbs.update()
},
update: function() {
this.thumbs.swiper && this.thumbs.update()
},
resize: function() {
this.thumbs.swiper && this.thumbs.update()
},
observerUpdate: function() {
this.thumbs.swiper && this.thumbs.update()
},
setTransition: function(e) {
var t = this.thumbs.swiper;
t && t.setTransition(e)
},
beforeDestroy: function() {
var e = this.thumbs.swiper;
e && this.thumbs.swiperCreated && e && e.destroy()
}
}
}];
return void 0 === h.use && (h.use = h.Class.use, h.installModule = h.Class.installModule), h.use(D), h
});
var bgBlue = "#EDF2FC",
darkBlue = "#5BC0DE",
darkBlue2 = "#409EFF",
bgGreen = "#F0F9EB",
darkGreen = "#5CB85C",
bgOrange = "#FDF6EC",
darkOrange = "#F0AD4E",
bgRed = "#FEF0F0",
darkRed = "#D9534F",
lightGrey = "#E2E2E2",
Icon = function() {
function n(e, t, n) {
var l = document.createElementNS("http://www.w3.org/2000/svg", "svg");
return l.setAttribute("viewBox", "0 0 1024 1024"), l.setAttribute("width", t), l.setAttribute("height", n),
(t = document.createElementNS("http://www.w3.org/2000/svg", "path")).setAttribute("d", e.path1), t
.setAttribute("fill", e.bgc), l.appendChild(t), (n = document.createElementNS(
"http://www.w3.org/2000/svg", "path")).setAttribute("d", e.path2), n.setAttribute("fill",
"#FFFFFF"), l.appendChild(n), e.path3 && ((t = document.createElementNS("http://www.w3.org/2000/svg",
"path")).setAttribute("d", e.path3), t.setAttribute("fill", "#FFFFFF"), l.appendChild(t)), l.style
.verticalAlign = "middle", l
}
var l = {
path1: "M512 524.8m-416 0a416 416 0 1 0 832 0 416 416 0 1 0-832 0Z",
bgc: darkBlue,
path2: "M512 435.2c-19.2 0-38.4 19.2-38.4 38.4V768c0 19.2 19.2 38.4 38.4 38.4s38.4-19.2 38.4-38.4V473.6c0-19.2-19.2-38.4-38.4-38.4z",
path3: "M512 300.8m-51.2 0a51.2 51.2 0 1 0 102.4 0 51.2 51.2 0 1 0-102.4 0Z"
},
o = {
path1: "M512 512m-403.2 0a403.2 403.2 0 1 0 806.4 0 403.2 403.2 0 1 0-806.4 0Z",
bgc: darkOrange,
path2: "M512 608c-19.2 0-38.4-19.2-38.4-38.4V288c0-19.2 19.2-38.4 38.4-38.4s38.4 19.2 38.4 38.4V576c0 12.8-19.2 32-38.4 32z",
path3: "M512 736m-44.8 0a44.8 44.8 0 1 0 89.6 0 44.8 44.8 0 1 0-89.6 0Z"
},
r = {
path1: "M512 76.8c-236.8 0-435.2 192-435.2 435.2s192 435.2 435.2 435.2 435.2-192 435.2-435.2S748.8 76.8 512 76.8z m249.6 320L480 704c-12.8 12.8-38.4 12.8-51.2 0L288 556.8c-12.8-12.8-12.8-38.4 0-51.2 12.8-12.8 38.4-12.8 51.2 0l115.2 115.2L704 339.2c12.8-12.8 38.4-12.8 51.2 0 25.6 12.8 25.6 38.4 6.4 57.6z",
bgc: darkGreen,
path2: "M710.4 339.2l-256 281.6-115.2-115.2c-12.8-12.8-38.4-12.8-51.2 0-12.8 12.8-12.8 38.4 0 51.2l147.2 140.8c12.8 12.8 38.4 12.8 51.2 0L768 390.4c12.8-12.8 12.8-38.4 0-51.2-19.2-12.8-44.8-12.8-57.6 0z"
},
i = {
path1: "M512 512m-435.2 0a435.2 435.2 0 1 0 870.4 0 435.2 435.2 0 1 0-870.4 0Z",
bgc: darkRed,
path2: "M563.2 512l108.8-108.8c12.8-12.8 12.8-38.4 0-51.2-12.8-12.8-38.4-12.8-51.2 0L512 460.8 403.2 352c-12.8-12.8-38.4-12.8-51.2 0-12.8 12.8-12.8 38.4 0 51.2L460.8 512 352 620.8c-12.8 12.8-12.8 38.4 0 51.2 12.8 12.8 38.4 12.8 51.2 0L512 563.2l108.8 108.8c12.8 12.8 38.4 12.8 51.2 0 12.8-12.8 12.8-38.4 0-51.2L563.2 512z"
};
return {
info: function(e, t) {
return n(l, e, t)
},
warning: function(e, t) {
return n(o, e, t)
},
success: function(e, t) {
return n(r, e, t)
},
error: function(e, t) {
return n(i, e, t)
}
}
},
Button = function(n, l, e, t) {
var o = 0,
r = document.createElement("div"),
t = (r.style.backgroundColor = n, r.style.color = "default" == t ? "#000" : "#fff", r.style.width = 16 + 7 *
getByteLength(e) + "px", r.className = "tgtool tgBtn", r.onmousemove = function() {
r.style.backgroundColor = l
}, r.onmouseout = function() {
0 == o && (r.style.backgroundColor = n)
}, document.onclick = function(e) {
var t = r;
e.target == t || t.contains(e.target) ? (o = 1, r.style.backgroundColor = l) : (o = 0, r.style
.backgroundColor = n)
}, document.createElement("label"));
return t.innerText = e, t.style.verticalAlign = "middle", r.appendChild(t), r
},
TGTool = function() {
function t(e, t) {
var n = 0,
l = Icon()[e.type],
o = (n++, document.createElement("div"));
return o.style.backgroundColor = e.bgc, o.style.color = e.color, o.style.position = " fixed", o.style.left =
"50%", o.style.top = 50 * n - 30 + "px", o.style.marginLeft = "-" + (7 * getByteLength(t) + 70) / 2 +
"px", o.className = "tgAlertDiv animated bounceInDown tgtool", o.appendChild(l(20, 20)), (e = document
.createElement("label")).innerText = t, e.style.verticalAlign = "middle", e.style.marginLeft =
"10px", o.appendChild(e), c.appendChild(o), setTimeout(function() {
o.classList.remove("animated", "bounceInDown"), o.classList.add("remove"), setTimeout(
function() {
c.removeChild(o), n--
}, 4e3)
}, 4e3), !0
}
var c = document.getElementsByTagName("body")[0],
n = {
type: "info",
bgc: bgBlue,
color: darkBlue
},
l = {
type: "warning",
bgc: bgOrange,
color: darkOrange
},
o = {
type: "success",
bgc: bgGreen,
color: darkGreen
},
r = {
type: "error",
bgc: bgRed,
color: darkRed
};
return {
info: function(e) {
return t(n, e)
},
warning: function(e) {
return t(l, e)
},
success: function(e) {
return t(o, e)
},
error: function(e) {
return t(r, e)
},
confirm: function(e, t, n, l) {
var o = document.createElement("div"),
r = (o.style.position = "fixed", o.style.zIndex = 1e6, o.style.top = 0, o.style.bottom = 0, o
.style.left = 0, o.style.right = 0, o.style.backgroundColor = lightGrey, o.style.opacity =
"0.5", c.appendChild(o), document.createElement("div")),
i = (r.style.backgroundColor = "#fff", r.style.color = "#000", r.style.boxShadow =
"0 2px 12px 0 rgba(0,0,0,.1)", r.style.width = "400px", r.style.height = "140px", r.style
.position = " fixed", r.style.zIndex = 9999999, r.style.top = "200px", r.style.left = "50%",
r.style.marginLeft = "-200px", r.style.padding = "0 10px", r.style.borderRadius = "8px", r
.style.fontSize = "14px", r.style.textAlign = "left", document.createElement("div")),
a = (i.style.backgroundColor = bgBlue, i.style.borderRadius = "8px 8px 0 0", i.style.width = r
.width, i.style.height = "40px", i.style.textAlign = "center", i.style.margin = "0 -10px", i
.style.top = "0", document.createElement("label")),
e = (a.innerText = e, a.style.verticalAlign = "middle", a.style.fontSize = "18px", a.style
.lineHeight = "40px", i.appendChild(a), document.createElement("label")),
a = (e.innerText = t, e.style.fontSize = "14px", e.style.lineHeight = "24px", e.style.position =
"absolute", e.style.width = "90%", e.style.top = "60px", e.style.left = "5%", getByteLength(
t) / 54),
t = (r.style.height.replace("px", "") < 24 * a + 116 && (r.style.height = 24 * a + 126 + "px"),
Button(darkBlue, darkBlue2, "确定", "")),
a = (t.style.position = "absolute", t.style.bottom = "10px", t.style.right = "20px", t.onclick =
function() {
c.removeChild(r), c.removeChild(o), n()
}, Button("#fff", bgBlue, "取消", "default"));
a.style.position = "absolute", a.style.bottom = "10px", a.style.right = "116px", a.onclick =
function() {
c.removeChild(r), c.removeChild(o), l && l()
}, r.appendChild(i), r.appendChild(e), r.appendChild(t), r.appendChild(a), c.appendChild(r)
}
}
};
function getByteLength(e) {
return e.replace(/[\u0391-\uFFE5]/g, "aa").length
}
var carouselFn = {
default: function(i, e) {
theme.swiperArr[i.id] && theme.swiperArr[i.id].destroy();
var n = document.querySelector(".lanyun-section-" + i.id + " .swiper-container");
if (n) {
var a, o, t, n = JSON.parse(n.getAttribute("data-carousel")),
s = !1,
r = 0,
l = 0,
c = (n.pagination && (r = -1 < n.pagination.indexOf("arrow") ? 1 : 0, l = -1 < n.pagination
.indexOf("dot") ? 1 : 0), n.autoplay ? 1 : 0),
d = n.speed || 2e3;
const h = function(e) {
s = !1;
var n = e.slides[e.activeIndex];
n && (n = n.querySelector("video"), clearTimeout(o), n ? n.ended && setTimeout(function() {
e.slideNext()
}, 200) : t = setTimeout(function() {
e.slideNext()
}, d))
};
var u, p = {
loop: !0,
pagination: {},
navigation: {},
on: {
slideChangeTransitionStart: function() {
clearTimeout(o)
},
slideChangeTransitionEnd: function() {
var e, n, t;
c && ((e = this).el.removeEventListener("mouseleave", function() {
h(e)
}), n = function() {
s ? a.play() : theme.swiperArr[i.id].slideNext()
}, t = e.slides[e.activeIndex]) && (t.querySelector("video") ? (a && a === t
.querySelector("video") && (a.pause(), a.currentTime = 0, a
.removeEventListener("ended", n)), (a = t.querySelector(
"video")).play(), a.addEventListener("ended", n)) : (a && (a
.pause(), a.currentTime = 0, a.removeEventListener("ended", n),
a = null), o = setTimeout(function() {
s || theme.swiperArr[i.id].slideNext()
}, d)))
}
}
};
if (e)
for (var f in e) p[f] = e[f];
1 == r ? (p.navigation.nextEl = ".lanyun-section-" + i.id + " .swiper-button-next", p.navigation
.prevEl = ".lanyun-section-" + i.id + " .swiper-button-prev") : delete p.navigation, 1 ==
l ? (p.pagination.el = ".lanyun-section-" + i.id + " .swiper-pagination", p.pagination
.clickable = !0) : delete p.pagination, n.effect && (p.effect = n.effect), theme.swiperArr[i
.id] = new Swiper(".lanyun-section-" + i.id + " .swiper-container", p), 1 == c && ((u =
theme.swiperArr[i.id]).el.addEventListener("mouseenter", function() {
clearTimeout(t), s = !0
}), u.el.addEventListener("mouseleave", function() {
h(u)
}))
}
},
fade: function(e) {
carouselFn.default(e)
},
coverflow: function(e) {
carouselFn.default(e, {
speed: 1400
})
},
push: function(e) {
carouselFn.default(e, {
watchSlidesProgress: !0,
speed: 1e3
}), theme.swiperArr[e.id].on("progress", function() {
for (var e = this, n = 0; n < e.slides.length; n++) {
var t = e.slides[n].progress * (.5 * e.width);
e.slides[n].querySelector("a").style.transform = "translate3d(" + t + "px, 0, 0)"
}
}), theme.swiperArr[e.id].on("touchStart", function() {
for (var e = 0; e < this.slides.length; e++) this.slides[e].style.transition = ""
}), theme.swiperArr[e.id].on("setTransition", function(e) {
for (var n = this, t = 0; t < n.slides.length; t++) n.slides[t].style.transition = e + "ms",
n.slides[t].querySelector("a").style.transition = e + "ms"
})
},
slowtransition: function(e) {
carouselFn.default(e, {
allowTouchMove: !1,
speed: 700,
lazy: {
loadPrevNext: !0,
loadPrevNextAmount: 3
},
centeredSlides: !0,
spaceBetween: 50,
slidesOffsetBefore: 40,
slidesPerView: "auto"
}), theme.swiperArr[e.id].on("slideChangeTransitionStart", function() {
this.slides.transition(this.params.speed).transform("translate3d(0, 0, 0)")
}), theme.swiperArr[e.id].on("slideChangeTransitionEnd", function() {
this.slides.transition(this.params.autoplay.delay + this.params.speed).transform(
"translate3d(-60px, 0, 0)")
})
}
};
window.theme = {
captchaKey: "",
swiperArr: [],
init: function() {
for (var e = document.querySelectorAll("[data-id][class*='lanyun-section-']"), n = 0; n < e
.length; n++) {
var t = e[n],
i = t.dataset.section_type,
t = {
id: t.dataset.id
};
this.hasOwnProperty(i) && this[i](t)
}
this.aos(), this.jQToggler(), this.tabs(".tab", ".tab-box", "click"), this.lang(), this.analytics(app
.site_id), this.VariablePolyfill(), this.kefu(), this.affix(), app && app.forbidCopy && this
.forbidCopy(), lightbox.option({
albumLabel: "%1 / %2"
}), document.addEventListener("WeixinJSBridgeReady", function() {
theme.autoplayVideo()
}, !1), document.addEventListener("touchstart", function() {
theme.autoplayVideo()
}), this.animateStyle()
},
autoplayVideo() {
var n = document.querySelectorAll("video[autoplay]");
for (let e = 0; e < n.length; e++) n[e].play()
},
carousel: function(e) {
var n = document.querySelector(".lanyun-section-" + e.id + " .swiper-container");
n && ((n = JSON.parse(n.getAttribute("data-carousel"))).effect ? carouselFn[n.effect](e) : carouselFn
.default(e))
},
swiperFunc: function(e) {
this.swiperArr[e.id] && this.swiperArr[e.id].destroy();
var n, t, i, a, o, s, r, l, c, d = document.querySelector(".lanyun-section-" + e.id +
" .swiper-container");
d && (i = 20, a = 15, o = t = n = 0, r = s = c = 1, (d = JSON.parse(d.getAttribute("data-carousel")))[
"rowCount-desktop"] && (c = d["rowCount-desktop"]), d["rowCount-ipad"] && (s = d[
"rowCount-ipad"]), d["rowCount-mobile"] && (r = d["rowCount-mobile"]), d.pagination && (
n = -1 < d.pagination.indexOf("arrow") ? 1 : 0, t = -1 < d.pagination.indexOf("dot") ? 1 : 0
), d["slidesspace-desktop"] && (i = Number(d["slidesspace-desktop"].replace("px", ""))), d[
"slidesspace-ipad"] && (a = Number(d["slidesspace-ipad"].replace("px", ""))), d[
"slidesspace-mobile"] && (o = Number(d["slidesspace-mobile"].replace("px", ""))), l = d
.autoplay ? 1 : 0, d = d.speed, (c = {
loop: !0,
slidesPerView: c,
spaceBetween: i,
autoplay: {},
pagination: {},
navigation: {}
}).breakpoints = {
1280: {
slidesPerView: s,
spaceBetween: a
},
768: {
slidesPerView: r,
spaceBetween: o
}
}, 1 == n ? (c.navigation.nextEl = ".lanyun-section-" + e.id + " .swiper-button-next", c
.navigation.prevEl = ".lanyun-section-" + e.id + " .swiper-button-prev") : delete c
.navigation, 1 == t ? (c.pagination.el = ".lanyun-section-" + e.id + " .swiper-pagination", c
.pagination.clickable = !0) : delete c.pagination, 1 == l ? (c.autoplay.delay = d || 2e3, c
.autoplay.disableOnInteraction = !1) : delete c.autoplay, this.swiperArr[e.id] = new Swiper(
".lanyun-section-" + e.id + " .swiper-container", c))
},
count: function(n) {
if (!isFullpage) {
var t = document.querySelector(".lanyun-section-" + n.id + " .lanyun-count-wrap");
if (t) {
t = JSON.parse(t.getAttribute("data-count"));
t.separatorStyle && "space" === t.separatorStyle && (t.separatorStyle = " ");
let e = {
useGrouping: t.separator || !1,
separator: t.separatorStyle || "",
duration: t.duration
};
$(".lanyun-section-" + n.id + " .lanyun-count-num").each(function() {
e.endVal = Number($(this).attr("data-number")), $(this).countup(e)
})
}
}
},
gallery: function(e) {
this.swiperFunc(e)
},
category: function(e) {
this.swiperFunc(e);
let n = window.location.href;
$(".lanyun-section-" + e.id + " a").each(function() {
$(this).attr("href") === n && $(this).parents("li").addClass("active")
})
},
"product-row": function(e) {
this.swiperFunc(e)
},
"article-row": function(e) {
this.swiperFunc(e)
},
"related-article": function(e) {
this.swiperFunc(e)
},
"related-product": function(e) {
this.swiperFunc(e)
},
form: function(e) {
var n = e.id,
e = $(".lanyun-section-" + n + " form"),
o = e.attr("action"),
s = (0 < $(".captcha-img-" + n).length && this.getCaptcha(n), this),
r = $('[name="LANG"]').val(),
l = TGTool();
$(".captcha-img-" + n).click(function() {
s.getCaptcha(n)
}), e.validator({
rules: {
phone: /^1[3-9]\d{9}$/
},
target: function(e) {
var e = $(e).closest(".lanyun-form-item"),
n = e.find("span.err-msg");
return n = n.length ? n : $('').appendTo(e)
},
valid: function(n) {
var e = $(n).serializeArray(),
t = $("input[type=radio],input[type=checkbox]", $(n)),
i = {},
a = ($.each(t, function() {
i.hasOwnProperty(this.name) || 0 == $("input[name='" + this.name +
"']:checked").length && (i[this.name] = "", e.push({
name: this.name,
value: ""
}))
}), $(n).find("[type='submit']")),
t = s.formDataFormat(e);
a.attr("disabled", "disabled"), $.ajax({
url: o,
data: t,
headers: {
lang: r
},
type: "POST",
success: function(e) {
l.success(e.message), a.removeAttr("disabled"), $(n).find(
"[type='reset']").click()
},
error: function(e) {
l.error(e.responseJSON.message), a.removeAttr("disabled")
}
})
}
})
},
getCaptcha: function(n) {
var e = "/captcha?key=";
try {
var t = top.location.host,
i = new RegExp("^" + app.site_id);
self != top && i.test(t) && (e = "/web" + e)
} catch (e) {}
this.captchaKey = Math.random().toString(36).slice(-6), $.get(e + this.captchaKey, function(e) {
$(".captcha-img-" + n).attr("src", e.data.img)
})
},
formDataFormat: function(e) {
for (var n, t = {}, i = {}, a = 0; a < e.length; a++) "LANG" !== e[a].name && ("_token" === e[a].name ||
"id" === e[a].name ? t[e[a].name] = e[a].value : i.hasOwnProperty(e[a].name) ? (n = i[e[a]
.name]) instanceof Array ? (n.push(e[a].value), i[e[a].name] = n) : (i[e[a].name] = [], i[e[
a].name].push(n), i[e[a].name].push(e[a].value)) : i[e[a].name] = e[a].value);
return t.data = i, t.key = this.captchaKey, t
},
"product-show": function(e) {
this.socialShare(), this.getAndSetHits(".lanyun-section-" + e.id + " #hits"), $(".lanyun-section-" + e
.id + " .lanyun-product-detail-tab .lanyun-hd li").click(function() {
var e = $(this).index();
$(this).addClass("active").siblings().removeClass("active"), $(
".lanyun-product-detail-tab .lanyun-product-detail-text").eq(e).addClass("active")
.siblings().removeClass("active")
});
var n = document.querySelector("#lanyun-detail-thumbs"),
t = "bottom";
if (n) return t = n.getAttribute("data-direction"), n = new Swiper(".lanyun-section-" + e.id +
" .lanyun-effect-thumbs", {
spaceBetween: 10,
slidesPerView: "auto",
freeMode: !0,
observeParents: !0,
observer: !0,
watchSlidesVisibility: !0,
watchSlidesProgress: !0,
direction: "bottom" === t ? "horizontal" : "vertical"
}), new Swiper(".lanyun-section-" + e.id + " .lanyun-effect-top", {
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
},
thumbs: {
swiper: n
},
observeParents: !0,
observer: !0,
on: {
slideChangeTransitionEnd: function() {
var e = this.slides[this.previousIndex].firstElementChild;
"VIDEO" !== e.nodeName || e.paused || e.pause()
}
}
})
},
"article-show": function(e) {
var n;
if (this.socialShare(), this.getAndSetHits(".lanyun-section-" + e.id + " #hits"), document
.querySelector("#lanyun-detail-thumbs")) return n = document.querySelector(".lanyun-section-" + e
.id + " .swiper-container"), JSON.parse(n.getAttribute("data-swiper")), new Swiper(
".lanyun-section-" + e.id + " .lanyun-effect-top", {
navigation: {
nextEl: ".lanyun-section-" + e.id + " .swiper-button-next",
prevEl: ".lanyun-section-" + e.id + " .swiper-button-prev"
},
pagination: {
el: ".lanyun-section-" + e.id + " .swiper-pagination",
clickable: !0
},
on: {
slideChangeTransitionEnd: function() {
var e = this.slides[this.previousIndex].firstElementChild;
"VIDEO" !== e.nodeName || e.paused || e.pause()
}
}
})
},
dropToggle: function(e) {
e.hasClass("on") ? e.removeClass("on") : e.addClass("on"), e.siblings().removeClass("on")
},
nav: function(e) {
let n = this,
t = window.location.href,
i = (-1 < t.indexOf("?") && (t = t.substring(0, t.indexOf("?"))), new RegExp("^" + t + "?$"));
$(".lanyun-section-" + e.id + " a").each(function() {
i.test($(this).attr("href")) && $(this).parents("li").addClass("active")
});
function a() {
768 < $(window).width() ? ($(".lanyun-section-" + e.id + " .lanyun-dropdown-panel").is(":hidden") &&
$(".lanyun-section-" + e.id + " .lanyun-dropdown-panel").attr("style", ""), $(
".lanyun-section-" + e.id + " .direction-h li").hover(function() {
$(this).addClass("on").siblings("li").removeClass("on")
}, function() {
$(this).removeClass("on")
}), $(".lanyun-section-" + e.id + " .direction-h-full li").hover(function() {
$(this).addClass("on").siblings("li").removeClass("on")
}, function() {
$(this).removeClass("on")
}), $(".lanyun-section-" + e.id + " .direction-v li").hover(function() {
$(this).addClass("on").siblings("li").removeClass("on")
}, function() {
$(this).removeClass("on")
})) : $(".lanyun-section-" + e.id + " .mobile-dropdown").click(function() {
n.dropToggle($(this).parent().parent())
})
}
a(), $(window).resize(function() {
a()
})
},
"bottom-nav": function(e) {
let n = window.location.href,
t = (-1 < n.indexOf("?") && (n = n.substring(0, n.indexOf("?"))), new RegExp("^" + n + "?$"));
$(".lanyun-section-" + e.id + " a").each(function() {
t.test($(this).attr("href")) && $(this).parents("li").addClass("active")
})
},
map: function(e) {
const n = this;
var t, i = $(".lanyun-section-" + e.id + " .lanyun-map-content"),
a = i.attr("data-type");
const o = Number(i.attr("data-zoom")),
s = i.attr("data-content");
"baidu" === a ? (this.addBaiduMapScript(), window.BMap ? this.baiduMapFunc(s, o, e.id) : t =
setInterval(function() {
window.BMap && (n.baiduMapFunc(s, o, e.id), clearInterval(t))
}, 500)) : (this.addGoogleMapScript(), window.google ? n.googleMapFunc(s, o, e.id) : t =
setInterval(function() {
window.google && (n.googleMapFunc(s, o, e.id), clearInterval(t))
}, 500))
},
baiduMapFunc: function(e, n, t) {
var i, a = JSON.parse(e),
e = 0 === a.length ? (i = 116.403963, 39.915119) : (i = a[0].location.lng || 116.403963, a[0]
.location.lat || 39.915119),
o = new BMap.Map("baidu-map-" + t),
t = new BMap.Point(i, e);
o.centerAndZoom(t, n || 15);
for (let i = 0; i < a.length; i++) {
let e, n = (a[i].img && "custom" == a[i].icon && (e = new BMap.Icon(a[i].img, new BMap.Size(25,
25), {
imageSize: new BMap.Size(25, 25)
})), new BMap.Point(a[i].location.lng || 116.403963, a[i].location.lat || 39.915119));
var s = new BMap.Marker(n, {
icon: e || ""
}),
r = a[i].title || "",
l = a[i].desc ? a[i].desc.replace("\n", "") : "",
c = (o.addOverlay(s), o.enableScrollWheelZoom(!0), {
width: 200,
height: 100
});
let t = new BMap.InfoWindow('' + r +
'
' + l + "
", c);
s.addEventListener("click", function() {
o.openInfoWindow(t, n)
})
}
},
googleMapFunc: function(e, n, t) {
var i, a = JSON.parse(e),
e = 0 === a.length ? (i = 116.39770680013461, 39.90451119803565) : (i = a[0].location.lng ||
116.39770680013461, a[0].location.lat || 39.90451119803565),
e = {
lat: e,
lng: i
};
const o = new google.maps.Map(document.getElementById("google-map-" + t), {
center: e,
zoom: n || 15
});
for (var s = 0; s < a.length; s++) {
var r = a[s].title || "",
l = a[s].desc ? a[s].desc.replace("\n", "") : "";
const c = new google.maps.InfoWindow({
content: '' + r +
'
' + l + "
"
});
r = {
position: {
lat: a[s].location.lat || 116.39770680013461,
lng: a[s].location.lng || 39.90451119803565
},
map: o
};
a[s].img && "custom" == a[s].icon && (r.icon = new google.maps.MarkerImage(a[s].img, new google.maps
.Size(30, 30), new google.maps.Point(0, 0), new google.maps.Point(0, 30), new google
.maps.Size(30, 30)));
const d = new google.maps.Marker(r);
d.addListener("click", function() {
c.open(o, d)
})
}
},
addBaiduMapScript: function() {
var e = document.querySelectorAll(".baidu-map-container"),
n = document.querySelector("[src*='S4WiFB8Wj2RudNpljssXvU06KAKivbSO']");
0 < e.length && !n && (window.HOST_TYPE = "2", window.BMap_loadScriptTime = (new Date).getTime(), (e =
document.createElement("script")).src =
"//api.map.baidu.com/getscript?v=2.0&ak=S4WiFB8Wj2RudNpljssXvU06KAKivbSO&services=&t=20210803154751",
(n = document.getElementsByTagName("script")[0]).parentNode.insertBefore(e, n))
},
addGoogleMapScript: function() {
var e = document.querySelectorAll(".google-map-container"),
n = document.querySelector("[src*='AIzaSyCadneYGHrBQfthWliwCxG2sJ5KkadoG4E']");
0 < e.length && !n && ((e = document.createElement("script")).src =
"//maps.googleapis.com/maps/api/js?key=AIzaSyCadneYGHrBQfthWliwCxG2sJ5KkadoG4E&libraries=places",
(n = document.getElementsByTagName("script")[0]).parentNode.insertBefore(e, n))
},
jQToggler: function() {
$(".jq-toggler").click(function() {
var n = $(this).attr("target");
n && 0 !== $(n).length && ($(".jq-toggler").each(function() {
var e;
$(this).is(":visible") && (e = $(this).attr("target")) !== n && $(e).is(
":visible") && ($(this).removeClass("clicked"), $(e).stop(!0)
.slideUp())
}), $(n).is(":visible") ? ($(this).find(".lanyun-mobile-open").show(), $(this).find(
".lanyun-mobile-close").hide(), $(this).removeClass("clicked"), $(n).stop(!
0).slideUp()) : ($(this).addClass("clicked"), $(this).find(
".lanyun-mobile-open").hide(), $(this).find(".lanyun-mobile-close").show(),
$(n).stop(!0).slideDown()))
})
},
tabs: function(e, n, t) {
$(n).hide(), $(n).eq(0).show(), $(e).find("li:eq(0)").addClass("cur"), $(e).find("li").bind(t,
function() {
$(this).addClass("cur").siblings("li").removeClass("cur");
var e = $(this).index();
$(n).eq(e).show().siblings(n).hide()
})
},
socialShare: function() {
var e;
0 !== $(".lanyun-detail-share").length && (e = (e = (e = $('meta[property="og:image"]').prop(
"content")) && 0 !== e.indexOf("http") ? "http:" + e : e) || $("img:first").prop("src") ||
"", $(".lanyun-detail-share").share({
image: e,
sites: ["weibo", "qq", "wechat", "linkedin", "facebook", "twitter"]
}))
},
"product-list": function() {
this.innerSort()
},
"article-list": function() {
this.innerSort()
},
innerSort: function() {
var e = this;
0 != $(".lanyun-inner-sort").length && ($(".lanyun-inner-sort .lanyun-inner-sort-arrow").click(
function() {
e.dropToggle($(this).parent().parent())
}), $(".lanyun-inner-sort .active").parents("li").addClass("on"), $(
".lanyun-inner-sort-mobile i").click(function() {
$(this).parents(".lanyun-inner-sort").addClass("on")
}), $(".lanyun-inner-sort-close").click(function() {
$(this).parents(".lanyun-inner-sort").removeClass("on")
}))
},
"category-tree": function(e) {
var n = this;
0 != $(".lanyun-section-" + e.id + " .lanyun-category-tree").length && ($(".lanyun-section-" + e.id +
" .lanyun-category-tree .lanyun-category-tree-arrow").click(function() {
n.dropToggle($(this).parent().parent())
}), $(".lanyun-section-" + e.id + " .lanyun-category-tree .active").parents("li").addClass(
"on"), $(".lanyun-section-" + e.id + " .lanyun-category-tree-mobile i").click(function() {
$(this).parents(".lanyun-section-" + e.id + " .lanyun-category-tree").addClass("on")
}), $(".lanyun-section-" + e.id + " .lanyun-category-tree-close").click(function() {
$(this).parents(".lanyun-section-" + e.id + " .lanyun-category-tree").removeClass("on")
}))
},
social: function(e) {
$(".lanyun-section-" + e.id + " .lanyun-social-wrap a").hover(function() {
150 < window.document.querySelector(".lanyun-section-" + e.id + " .lanyun-social-wrap a")
.getClientRects()[0].top ? $(this).find(".qrcode").css("top", "-110px") : $(this).find(
".qrcode").css("top", "65px"), $(this).find(".qrcode").show()
}, function() {
$(this).find(".qrcode").hide()
})
},
aos: function() {
AOS && !isFullpage && AOS.init({
offset: 30
})
},
lang: function() {
1230 < $(window).width() ? $(".lang-dropdown").hover(function() {
$(this).addClass("on")
}, function() {
$(this).removeClass("on")
}) : $(".lanyun-lang-dropdown-toggle").click(function() {
$(this).parent().hasClass("on") ? $(this).parent().removeClass("on") : $(this).parent()
.addClass("on")
})
},
analytics: function(e) {
var n;
app.hasOwnProperty("currentMode") && -1 < ["editor", "preview"].indexOf(app.currentMode) || -1 === self
.location.href.indexOf("isEditor") && ((n = document.createElement("script")).src =
"//tj.lanyuncms.com/hm.js?" + e, (e = document.getElementsByTagName("script")[0]).parentNode
.insertBefore(n, e))
},
search: function(e) {
$(".lanyun-section-" + e.id).find(".lanyun-search-full") && ($(".lanyun-section-" + e.id +
" .lanyun-search-btn").click(function() {
$(this).next().hasClass("lanyun-search-full-screen") || $(this).next().addClass(
"lanyun-search-full-screen")
}), $(".lanyun-section-" + e.id + " .close-screen").click(function() {
$(this).parent().hasClass("lanyun-search-full-screen") && $(this).parent().removeClass(
"lanyun-search-full-screen")
})), $(window).width() < 990 && ($(".lanyun-search-mobile-open").click(function() {
$(this).parents("form").addClass("active")
}), $(".lanyun-search-mobile-close").click(function() {
$(this).parents("form").removeClass("active")
}))
},
video: function(e) {
const n = $(".lanyun-section-" + e.id);
if (0 < n.find(".lanyun-video-normal").length && 0 < n.find(".lanyun-video-normal video").length && n
.find(".lanyun-video-normal video")[0].addEventListener("play", function() {
n.find(".lanyun-video-normal .lanyun-video-img").hide()
}), !n.is("[editor]")) {
var t, e = n.find('[data-effect="popup"]');
if (e) {
const i = e.attr("data-effect-type"),
a = e.attr("data-content");
e.find(".lanyun-video-img").click(function() {
t || (t = n.find(".video-popup").clone(), n.find(".video-popup").remove()),
"third" === i ? t.find(".video-popup-content").html(a) : t.find("video source")
.attr("src", a), $("body").append(t), t.addClass("video-popup-open"), t.find(
".video-popup-close").click(function() {
t.remove()
})
})
}
}
},
VariablePolyfill: function() {
var e, n;
window.MSInputMethodContext && document.documentMode && (e = document.getElementsByTagName("script")[0],
(n = document.createElement("script")).defer = !0, n.src =
"https://cdn.fuwucms.com/g/ie11CustomProperties.js", e.parentNode.insertBefore(n, e))
},
kefu: function() {
600 < document.querySelector("html").scrollTop && $(".lanyun-section-kefu .back-top").show(), window
.addEventListener("scroll", function() {
600 < document.querySelector("html").scrollTop ? $(".lanyun-section-kefu .back-top")
.show() : $(".lanyun-section-kefu .back-top").hide()
}), $(window).width() < 990 ? ($(".mobile-kefu-open").click(function() {
$(this).parent().addClass("on"), $("body").addClass("no-scroll")
}), $(".mobile-kefu-box-close").click(function() {
$(this).parents(".mobile-kefu").removeClass("on"), $("body").removeClass("no-scroll")
})) : $(".lanyun-section-kefu .back-top").click(function() {
$("body,html").animate({
scrollTop: 0
}, 500)
})
},
affix: function() {
const t = {},
i = {},
a = {
position: "fixed",
top: 0,
left: 0,
zIndex: 999
},
o = {
position: "",
top: "",
left: "",
zIndex: ""
};
$(".float-fix:not([editor])").each(function() {
var e = $(this).offset().top,
n = $(this).attr("data-id");
t[e] = n
}), $(".is-fix:not([editor])").each(function() {
var e = $(this).offset().top,
n = $(this).attr("data-id");
i[e] = n, 0 < $("fix-place-" + n).length || $(this).after($(''))
});
function n(e) {
for (var n in t) $(".lanyun-section-" + t[n]).css(e > Number(n) ? a : o), e > Number(n) ? $(
".lanyun-section-" + t[n]).addClass("v-float") : $(".lanyun-section-" + t[n]).removeClass(
"v-float");
for (var n in i) $(".fix-place-" + i[n]).css({
height: e > Number(n) ? $(".lanyun-section-" + i[n]).outerHeight() : 0
}), $(".lanyun-section-" + i[n]).css(e > Number(n) ? a : o), e > Number(n) ? $(
".lanyun-section-" + i[n]).addClass("v-float") : $(".lanyun-section-" + i[n]).removeClass(
"v-float")
}
var e;
(!isFullpage || isFullpage && 0 === app.pageSetting.fullpage.mobileSync && document.documentElement
.clientWidth < 900) && (e = $("html").scrollTop(), n(e)), $(window).scroll(function() {
var e;
(!isFullpage || isFullpage && 0 === app.pageSetting.fullpage.mobileSync && document
.documentElement.clientWidth < 900) && (e = $("html").scrollTop(), n(e))
})
},
"tab-box": function(o) {
$(".lanyun-section-" + o.id).find(".lanyun-tab-tag li").eq(0).addClass("on").siblings().removeClass(
"on");
var n = $(".lanyun-section-" + o.id).find(".lanyun-tab-tag li").eq(0).attr("data-tag_id");
let t = null;
var i = window.document.getElementsByClassName("lanyun-section-" + n)[0].parentNode,
a = i.children.length;
for (let e = 0; e < a; e++) i.children[e].dataset.id === n && (t = e);
$(".lanyun-section-" + o.id).find(".lanyun-section-" + n).addClass("on").siblings().removeClass("on"),
$(".lanyun-section-" + o.id + " .lanyun-tab-content").css("transform", "translateX(" + 100 * -t +
"%)"), $(".lanyun-section-" + o.id).find(".lanyun-tab-tag li").click(function(e) {
let n = null;
e.stopPropagation();
var t = $(this).attr("data-tag_id"),
i = window.document.getElementsByClassName("lanyun-section-" + t)[0].parentNode,
a = i.children.length;
for (let e = 0; e < a; e++) i.children[e].dataset.id === t && (n = e);
$(".lanyun-section-" + o.id + " .lanyun-tab-content").css("transform", "translateX(" + 100 *
-n + "%)"), $(this).addClass("on").siblings().removeClass("on"), $(
".lanyun-section-" + o.id).find(".lanyun-section-" + t).addClass("on").siblings()
.removeClass("on")
})
},
getQueryString: function(e) {
e = new RegExp("(^|&)" + e + "=([^&]*)(&|$)"), e = window.location.search.substr(1).match(e);
return null != e && unescape(e[2])
},
getAndSetHits: function(n) {
var e, t, i = $(n).attr("data-hits");
0 !== $(n).length && (this.getQueryString("isEditor") ? $(n).html(i) : (i = $(n).attr("data-page_type"),
e = $(n).attr("data-slug"), t = $(n).attr("data-url"), $.ajax({
url: t + "/" + i + "/" + e,
type: "PUT",
success: function(e) {
$(n).html(e.data)
}
})))
},
forbidCopy: function() {
document.body.oncontextmenu = function(e) {
return e.preventDefault(), !1
}, document.body.onselectstart = function(e) {
return e.preventDefault(), !1
}, document.body.oncopy = function(e) {
return e.preventDefault(), !1
}, document.addEventListener("keydown", function(e) {
if ("F12" === e.key) return e.preventDefault(), !1
})
},
animateStyle: function() {
app && app.currentMode && ("default" === app.currentMode || "preview" === app.currentMode) && $(
".lanyun-section-box > [data-aos]").each(function() {
$(this).attr("data-aos") && "none" !== $(this).attr("data-aos") && $(this).parent().css(
"overflow", "hidden")
})
}
}, window.onload = function() {
theme.init()
};