3728 lines
199 KiB
JavaScript
Executable File
3728 lines
199 KiB
JavaScript
Executable File
/*! jQuery UI - v1.11.4 - 2015-12-02
|
|
* http://jqueryui.com
|
|
* Includes: core.js, widget.js, mouse.js, slider.js
|
|
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
|
|
|
(function(e) {
|
|
"function" == typeof define && define.amd ? define(["jquery"], e) : e(jQuery)
|
|
})(function(e) {
|
|
function t(t, s) {
|
|
var n, a, o, r = t.nodeName.toLowerCase();
|
|
return "area" === r ? (n = t.parentNode, a = n.name, t.href && a && "map" === n.nodeName.toLowerCase() ? (o = e("img[usemap='#" + a + "']")[0], !!o && i(o)) : !1) : (/^(input|select|textarea|button|object)$/.test(r) ? !t.disabled : "a" === r ? t.href || s : s) && i(t)
|
|
}
|
|
|
|
function i(t) {
|
|
return e.expr.filters.visible(t) && !e(t).parents().addBack().filter(function() {
|
|
return "hidden" === e.css(this, "visibility")
|
|
}).length
|
|
}
|
|
e.ui = e.ui || {}, e.extend(e.ui, {
|
|
version: "1.11.4",
|
|
keyCode: {
|
|
BACKSPACE: 8,
|
|
COMMA: 188,
|
|
DELETE: 46,
|
|
DOWN: 40,
|
|
END: 35,
|
|
ENTER: 13,
|
|
ESCAPE: 27,
|
|
HOME: 36,
|
|
LEFT: 37,
|
|
PAGE_DOWN: 34,
|
|
PAGE_UP: 33,
|
|
PERIOD: 190,
|
|
RIGHT: 39,
|
|
SPACE: 32,
|
|
TAB: 9,
|
|
UP: 38
|
|
}
|
|
}), e.fn.extend({
|
|
scrollParent: function(t) {
|
|
var i = this.css("position"),
|
|
s = "absolute" === i,
|
|
n = t ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
|
|
a = this.parents().filter(function() {
|
|
var t = e(this);
|
|
return s && "static" === t.css("position") ? !1 : n.test(t.css("overflow") + t.css("overflow-y") + t.css("overflow-x"))
|
|
}).eq(0);
|
|
return "fixed" !== i && a.length ? a : e(this[0].ownerDocument || document)
|
|
},
|
|
uniqueId: function() {
|
|
var e = 0;
|
|
return function() {
|
|
return this.each(function() {
|
|
this.id || (this.id = "ui-id-" + ++e)
|
|
})
|
|
}
|
|
}(),
|
|
removeUniqueId: function() {
|
|
return this.each(function() {
|
|
/^ui-id-\d+$/.test(this.id) && e(this).removeAttr("id")
|
|
})
|
|
}
|
|
}), e.extend(e.expr[":"], {
|
|
data: e.expr.createPseudo ? e.expr.createPseudo(function(t) {
|
|
return function(i) {
|
|
return !!e.data(i, t)
|
|
}
|
|
}) : function(t, i, s) {
|
|
return !!e.data(t, s[3])
|
|
},
|
|
focusable: function(i) {
|
|
return t(i, !isNaN(e.attr(i, "tabindex")))
|
|
},
|
|
tabbable: function(i) {
|
|
var s = e.attr(i, "tabindex"),
|
|
n = isNaN(s);
|
|
return (n || s >= 0) && t(i, !n)
|
|
}
|
|
}), e("<a>").outerWidth(1).jquery || e.each(["Width", "Height"], function(t, i) {
|
|
function s(t, i, s, a) {
|
|
return e.each(n, function() {
|
|
i -= parseFloat(e.css(t, "padding" + this)) || 0, s && (i -= parseFloat(e.css(t, "border" + this + "Width")) || 0), a && (i -= parseFloat(e.css(t, "margin" + this)) || 0)
|
|
}), i
|
|
}
|
|
var n = "Width" === i ? ["Left", "Right"] : ["Top", "Bottom"],
|
|
a = i.toLowerCase(),
|
|
o = {
|
|
innerWidth: e.fn.innerWidth,
|
|
innerHeight: e.fn.innerHeight,
|
|
outerWidth: e.fn.outerWidth,
|
|
outerHeight: e.fn.outerHeight
|
|
};
|
|
e.fn["inner" + i] = function(t) {
|
|
return void 0 === t ? o["inner" + i].call(this) : this.each(function() {
|
|
e(this).css(a, s(this, t) + "px")
|
|
})
|
|
}, e.fn["outer" + i] = function(t, n) {
|
|
return "number" != typeof t ? o["outer" + i].call(this, t) : this.each(function() {
|
|
e(this).css(a, s(this, t, !0, n) + "px")
|
|
})
|
|
}
|
|
}), e.fn.addBack || (e.fn.addBack = function(e) {
|
|
return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
|
|
}), e("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (e.fn.removeData = function(t) {
|
|
return function(i) {
|
|
return arguments.length ? t.call(this, e.camelCase(i)) : t.call(this)
|
|
}
|
|
}(e.fn.removeData)), e.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()), e.fn.extend({
|
|
focus: function(t) {
|
|
return function(i, s) {
|
|
return "number" == typeof i ? this.each(function() {
|
|
var t = this;
|
|
setTimeout(function() {
|
|
e(t).focus(), s && s.call(t)
|
|
}, i)
|
|
}) : t.apply(this, arguments)
|
|
}
|
|
}(e.fn.focus),
|
|
disableSelection: function() {
|
|
var e = "onselectstart" in document.createElement("div") ? "selectstart" : "mousedown";
|
|
return function() {
|
|
return this.bind(e + ".ui-disableSelection", function(e) {
|
|
e.preventDefault()
|
|
})
|
|
}
|
|
}(),
|
|
enableSelection: function() {
|
|
return this.unbind(".ui-disableSelection")
|
|
},
|
|
zIndex: function(t) {
|
|
if (void 0 !== t) return this.css("zIndex", t);
|
|
if (this.length)
|
|
for (var i, s, n = e(this[0]); n.length && n[0] !== document;) {
|
|
if (i = n.css("position"), ("absolute" === i || "relative" === i || "fixed" === i) && (s = parseInt(n.css("zIndex"), 10), !isNaN(s) && 0 !== s)) return s;
|
|
n = n.parent()
|
|
}
|
|
return 0
|
|
}
|
|
}), e.ui.plugin = {
|
|
add: function(t, i, s) {
|
|
var n, a = e.ui[t].prototype;
|
|
for (n in s) a.plugins[n] = a.plugins[n] || [], a.plugins[n].push([i, s[n]])
|
|
},
|
|
call: function(e, t, i, s) {
|
|
var n, a = e.plugins[t];
|
|
if (a && (s || e.element[0].parentNode && 11 !== e.element[0].parentNode.nodeType))
|
|
for (n = 0; a.length > n; n++) e.options[a[n][0]] && a[n][1].apply(e.element, i)
|
|
}
|
|
};
|
|
var s = 0,
|
|
n = Array.prototype.slice;
|
|
e.cleanData = function(t) {
|
|
return function(i) {
|
|
var s, n, a;
|
|
for (a = 0; null != (n = i[a]); a++) try {
|
|
s = e._data(n, "events"), s && s.remove && e(n).triggerHandler("remove")
|
|
} catch (o) {}
|
|
t(i)
|
|
}
|
|
}(e.cleanData), e.widget = function(t, i, s) {
|
|
var n, a, o, r, h = {},
|
|
l = t.split(".")[0];
|
|
return t = t.split(".")[1], n = l + "-" + t, s || (s = i, i = e.Widget), e.expr[":"][n.toLowerCase()] = function(t) {
|
|
return !!e.data(t, n)
|
|
}, e[l] = e[l] || {}, a = e[l][t], o = e[l][t] = function(e, t) {
|
|
return this._createWidget ? (arguments.length && this._createWidget(e, t), void 0) : new o(e, t)
|
|
}, e.extend(o, a, {
|
|
version: s.version,
|
|
_proto: e.extend({}, s),
|
|
_childConstructors: []
|
|
}), r = new i, r.options = e.widget.extend({}, r.options), e.each(s, function(t, s) {
|
|
return e.isFunction(s) ? (h[t] = function() {
|
|
var e = function() {
|
|
return i.prototype[t].apply(this, arguments)
|
|
},
|
|
n = function(e) {
|
|
return i.prototype[t].apply(this, e)
|
|
};
|
|
return function() {
|
|
var t, i = this._super,
|
|
a = this._superApply;
|
|
return this._super = e, this._superApply = n, t = s.apply(this, arguments), this._super = i, this._superApply = a, t
|
|
}
|
|
}(), void 0) : (h[t] = s, void 0)
|
|
}), o.prototype = e.widget.extend(r, {
|
|
widgetEventPrefix: a ? r.widgetEventPrefix || t : t
|
|
}, h, {
|
|
constructor: o,
|
|
namespace: l,
|
|
widgetName: t,
|
|
widgetFullName: n
|
|
}), a ? (e.each(a._childConstructors, function(t, i) {
|
|
var s = i.prototype;
|
|
e.widget(s.namespace + "." + s.widgetName, o, i._proto)
|
|
}), delete a._childConstructors) : i._childConstructors.push(o), e.widget.bridge(t, o), o
|
|
}, e.widget.extend = function(t) {
|
|
for (var i, s, a = n.call(arguments, 1), o = 0, r = a.length; r > o; o++)
|
|
for (i in a[o]) s = a[o][i], a[o].hasOwnProperty(i) && void 0 !== s && (t[i] = e.isPlainObject(s) ? e.isPlainObject(t[i]) ? e.widget.extend({}, t[i], s) : e.widget.extend({}, s) : s);
|
|
return t
|
|
}, e.widget.bridge = function(t, i) {
|
|
var s = i.prototype.widgetFullName || t;
|
|
e.fn[t] = function(a) {
|
|
var o = "string" == typeof a,
|
|
r = n.call(arguments, 1),
|
|
h = this;
|
|
return o ? this.each(function() {
|
|
var i, n = e.data(this, s);
|
|
return "instance" === a ? (h = n, !1) : n ? e.isFunction(n[a]) && "_" !== a.charAt(0) ? (i = n[a].apply(n, r), i !== n && void 0 !== i ? (h = i && i.jquery ? h.pushStack(i.get()) : i, !1) : void 0) : e.error("no such method '" + a + "' for " + t + " widget instance") : e.error("cannot call methods on " + t + " prior to initialization; " + "attempted to call method '" + a + "'")
|
|
}) : (r.length && (a = e.widget.extend.apply(null, [a].concat(r))), this.each(function() {
|
|
var t = e.data(this, s);
|
|
t ? (t.option(a || {}), t._init && t._init()) : e.data(this, s, new i(a, this))
|
|
})), h
|
|
}
|
|
}, e.Widget = function() {}, e.Widget._childConstructors = [], e.Widget.prototype = {
|
|
widgetName: "widget",
|
|
widgetEventPrefix: "",
|
|
defaultElement: "<div>",
|
|
options: {
|
|
disabled: !1,
|
|
create: null
|
|
},
|
|
_createWidget: function(t, i) {
|
|
i = e(i || this.defaultElement || this)[0], this.element = e(i), this.uuid = s++, this.eventNamespace = "." + this.widgetName + this.uuid, this.bindings = e(), this.hoverable = e(), this.focusable = e(), i !== this && (e.data(i, this.widgetFullName, this), this._on(!0, this.element, {
|
|
remove: function(e) {
|
|
e.target === i && this.destroy()
|
|
}
|
|
}), this.document = e(i.style ? i.ownerDocument : i.document || i), this.window = e(this.document[0].defaultView || this.document[0].parentWindow)), this.options = e.widget.extend({}, this.options, this._getCreateOptions(), t), this._create(), this._trigger("create", null, this._getCreateEventData()), this._init()
|
|
},
|
|
_getCreateOptions: e.noop,
|
|
_getCreateEventData: e.noop,
|
|
_create: e.noop,
|
|
_init: e.noop,
|
|
destroy: function() {
|
|
this._destroy(), this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)), this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled " + "ui-state-disabled"), this.bindings.unbind(this.eventNamespace), this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus")
|
|
},
|
|
_destroy: e.noop,
|
|
widget: function() {
|
|
return this.element
|
|
},
|
|
option: function(t, i) {
|
|
var s, n, a, o = t;
|
|
if (0 === arguments.length) return e.widget.extend({}, this.options);
|
|
if ("string" == typeof t)
|
|
if (o = {}, s = t.split("."), t = s.shift(), s.length) {
|
|
for (n = o[t] = e.widget.extend({}, this.options[t]), a = 0; s.length - 1 > a; a++) n[s[a]] = n[s[a]] || {}, n = n[s[a]];
|
|
if (t = s.pop(), 1 === arguments.length) return void 0 === n[t] ? null : n[t];
|
|
n[t] = i
|
|
} else {
|
|
if (1 === arguments.length) return void 0 === this.options[t] ? null : this.options[t];
|
|
o[t] = i
|
|
}
|
|
return this._setOptions(o), this
|
|
},
|
|
_setOptions: function(e) {
|
|
var t;
|
|
for (t in e) this._setOption(t, e[t]);
|
|
return this
|
|
},
|
|
_setOption: function(e, t) {
|
|
return this.options[e] = t, "disabled" === e && (this.widget().toggleClass(this.widgetFullName + "-disabled", !!t), t && (this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus"))), this
|
|
},
|
|
enable: function() {
|
|
return this._setOptions({
|
|
disabled: !1
|
|
})
|
|
},
|
|
disable: function() {
|
|
return this._setOptions({
|
|
disabled: !0
|
|
})
|
|
},
|
|
_on: function(t, i, s) {
|
|
var n, a = this;
|
|
"boolean" != typeof t && (s = i, i = t, t = !1), s ? (i = n = e(i), this.bindings = this.bindings.add(i)) : (s = i, i = this.element, n = this.widget()), e.each(s, function(s, o) {
|
|
function r() {
|
|
return t || a.options.disabled !== !0 && !e(this).hasClass("ui-state-disabled") ? ("string" == typeof o ? a[o] : o).apply(a, arguments) : void 0
|
|
}
|
|
"string" != typeof o && (r.guid = o.guid = o.guid || r.guid || e.guid++);
|
|
var h = s.match(/^([\w:-]*)\s*(.*)$/),
|
|
l = h[1] + a.eventNamespace,
|
|
u = h[2];
|
|
u ? n.delegate(u, l, r) : i.bind(l, r)
|
|
})
|
|
},
|
|
_off: function(t, i) {
|
|
i = (i || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, t.unbind(i).undelegate(i), this.bindings = e(this.bindings.not(t).get()), this.focusable = e(this.focusable.not(t).get()), this.hoverable = e(this.hoverable.not(t).get())
|
|
},
|
|
_delay: function(e, t) {
|
|
function i() {
|
|
return ("string" == typeof e ? s[e] : e).apply(s, arguments)
|
|
}
|
|
var s = this;
|
|
return setTimeout(i, t || 0)
|
|
},
|
|
_hoverable: function(t) {
|
|
this.hoverable = this.hoverable.add(t), this._on(t, {
|
|
mouseenter: function(t) {
|
|
e(t.currentTarget).addClass("ui-state-hover")
|
|
},
|
|
mouseleave: function(t) {
|
|
e(t.currentTarget).removeClass("ui-state-hover")
|
|
}
|
|
})
|
|
},
|
|
_focusable: function(t) {
|
|
this.focusable = this.focusable.add(t), this._on(t, {
|
|
focusin: function(t) {
|
|
e(t.currentTarget).addClass("ui-state-focus")
|
|
},
|
|
focusout: function(t) {
|
|
e(t.currentTarget).removeClass("ui-state-focus")
|
|
}
|
|
})
|
|
},
|
|
_trigger: function(t, i, s) {
|
|
var n, a, o = this.options[t];
|
|
if (s = s || {}, i = e.Event(i), i.type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(), i.target = this.element[0], a = i.originalEvent)
|
|
for (n in a) n in i || (i[n] = a[n]);
|
|
return this.element.trigger(i, s), !(e.isFunction(o) && o.apply(this.element[0], [i].concat(s)) === !1 || i.isDefaultPrevented())
|
|
}
|
|
}, e.each({
|
|
show: "fadeIn",
|
|
hide: "fadeOut"
|
|
}, function(t, i) {
|
|
e.Widget.prototype["_" + t] = function(s, n, a) {
|
|
"string" == typeof n && (n = {
|
|
effect: n
|
|
});
|
|
var o, r = n ? n === !0 || "number" == typeof n ? i : n.effect || i : t;
|
|
n = n || {}, "number" == typeof n && (n = {
|
|
duration: n
|
|
}), o = !e.isEmptyObject(n), n.complete = a, n.delay && s.delay(n.delay), o && e.effects && e.effects.effect[r] ? s[t](n) : r !== t && s[r] ? s[r](n.duration, n.easing, a) : s.queue(function(i) {
|
|
e(this)[t](), a && a.call(s[0]), i()
|
|
})
|
|
}
|
|
}), e.widget;
|
|
var a = !1;
|
|
e(document).mouseup(function() {
|
|
a = !1
|
|
}), e.widget("ui.mouse", {
|
|
version: "1.11.4",
|
|
options: {
|
|
cancel: "input,textarea,button,select,option",
|
|
distance: 1,
|
|
delay: 0
|
|
},
|
|
_mouseInit: function() {
|
|
var t = this;
|
|
this.element.bind("mousedown." + this.widgetName, function(e) {
|
|
return t._mouseDown(e)
|
|
}).bind("click." + this.widgetName, function(i) {
|
|
return !0 === e.data(i.target, t.widgetName + ".preventClickEvent") ? (e.removeData(i.target, t.widgetName + ".preventClickEvent"), i.stopImmediatePropagation(), !1) : void 0
|
|
}), this.started = !1
|
|
},
|
|
_mouseDestroy: function() {
|
|
this.element.unbind("." + this.widgetName), this._mouseMoveDelegate && this.document.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate)
|
|
},
|
|
_mouseDown: function(t) {
|
|
if (!a) {
|
|
this._mouseMoved = !1, this._mouseStarted && this._mouseUp(t), this._mouseDownEvent = t;
|
|
var i = this,
|
|
s = 1 === t.which,
|
|
n = "string" == typeof this.options.cancel && t.target.nodeName ? e(t.target).closest(this.options.cancel).length : !1;
|
|
return s && !n && this._mouseCapture(t) ? (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
|
|
i.mouseDelayMet = !0
|
|
}, this.options.delay)), this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = this._mouseStart(t) !== !1, !this._mouseStarted) ? (t.preventDefault(), !0) : (!0 === e.data(t.target, this.widgetName + ".preventClickEvent") && e.removeData(t.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function(e) {
|
|
return i._mouseMove(e)
|
|
}, this._mouseUpDelegate = function(e) {
|
|
return i._mouseUp(e)
|
|
}, this.document.bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate), t.preventDefault(), a = !0, !0)) : !0
|
|
}
|
|
},
|
|
_mouseMove: function(t) {
|
|
if (this._mouseMoved) {
|
|
if (e.ui.ie && (!document.documentMode || 9 > document.documentMode) && !t.button) return this._mouseUp(t);
|
|
if (!t.which) return this._mouseUp(t)
|
|
}
|
|
return (t.which || t.button) && (this._mouseMoved = !0), this._mouseStarted ? (this._mouseDrag(t), t.preventDefault()) : (this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, t) !== !1, this._mouseStarted ? this._mouseDrag(t) : this._mouseUp(t)), !this._mouseStarted)
|
|
},
|
|
_mouseUp: function(t) {
|
|
return this.document.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, t.target === this._mouseDownEvent.target && e.data(t.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(t)), a = !1, !1
|
|
},
|
|
_mouseDistanceMet: function(e) {
|
|
return Math.max(Math.abs(this._mouseDownEvent.pageX - e.pageX), Math.abs(this._mouseDownEvent.pageY - e.pageY)) >= this.options.distance
|
|
},
|
|
_mouseDelayMet: function() {
|
|
return this.mouseDelayMet
|
|
},
|
|
_mouseStart: function() {},
|
|
_mouseDrag: function() {},
|
|
_mouseStop: function() {},
|
|
_mouseCapture: function() {
|
|
return !0
|
|
}
|
|
}), e.widget("ui.slider", e.ui.mouse, {
|
|
version: "1.11.4",
|
|
widgetEventPrefix: "slide",
|
|
options: {
|
|
animate: !1,
|
|
distance: 0,
|
|
max: 100,
|
|
min: 0,
|
|
orientation: "horizontal",
|
|
range: !1,
|
|
step: 1,
|
|
value: 0,
|
|
values: null,
|
|
change: null,
|
|
slide: null,
|
|
start: null,
|
|
stop: null
|
|
},
|
|
numPages: 5,
|
|
_create: function() {
|
|
this._keySliding = !1, this._mouseSliding = !1, this._animateOff = !0, this._handleIndex = null, this._detectOrientation(), this._mouseInit(), this._calculateNewMax(), this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget" + " ui-widget-content" + " ui-corner-all"), this._refresh(), this._setOption("disabled", this.options.disabled), this._animateOff = !1
|
|
},
|
|
_refresh: function() {
|
|
this._createRange(), this._createHandles(), this._setupEvents(), this._refreshValue()
|
|
},
|
|
_createHandles: function() {
|
|
var t, i, s = this.options,
|
|
n = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),
|
|
a = "<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",
|
|
o = [];
|
|
for (i = s.values && s.values.length || 1, n.length > i && (n.slice(i).remove(), n = n.slice(0, i)), t = n.length; i > t; t++) o.push(a);
|
|
this.handles = n.add(e(o.join("")).appendTo(this.element)), this.handle = this.handles.eq(0), this.handles.each(function(t) {
|
|
e(this).data("ui-slider-handle-index", t)
|
|
})
|
|
},
|
|
_createRange: function() {
|
|
var t = this.options,
|
|
i = "";
|
|
t.range ? (t.range === !0 && (t.values ? t.values.length && 2 !== t.values.length ? t.values = [t.values[0], t.values[0]] : e.isArray(t.values) && (t.values = t.values.slice(0)) : t.values = [this._valueMin(), this._valueMin()]), this.range && this.range.length ? this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({
|
|
left: "",
|
|
bottom: ""
|
|
}) : (this.range = e("<div></div>").appendTo(this.element), i = "ui-slider-range ui-widget-header ui-corner-all"), this.range.addClass(i + ("min" === t.range || "max" === t.range ? " ui-slider-range-" + t.range : ""))) : (this.range && this.range.remove(), this.range = null)
|
|
},
|
|
_setupEvents: function() {
|
|
this._off(this.handles), this._on(this.handles, this._handleEvents), this._hoverable(this.handles), this._focusable(this.handles)
|
|
},
|
|
_destroy: function() {
|
|
this.handles.remove(), this.range && this.range.remove(), this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"), this._mouseDestroy()
|
|
},
|
|
_mouseCapture: function(t) {
|
|
var i, s, n, a, o, r, h, l, u = this,
|
|
d = this.options;
|
|
return d.disabled ? !1 : (this.elementSize = {
|
|
width: this.element.outerWidth(),
|
|
height: this.element.outerHeight()
|
|
}, this.elementOffset = this.element.offset(), i = {
|
|
x: t.pageX,
|
|
y: t.pageY
|
|
}, s = this._normValueFromMouse(i), n = this._valueMax() - this._valueMin() + 1, this.handles.each(function(t) {
|
|
var i = Math.abs(s - u.values(t));
|
|
(n > i || n === i && (t === u._lastChangedValue || u.values(t) === d.min)) && (n = i, a = e(this), o = t)
|
|
}), r = this._start(t, o), r === !1 ? !1 : (this._mouseSliding = !0, this._handleIndex = o, a.addClass("ui-state-active").focus(), h = a.offset(), l = !e(t.target).parents().addBack().is(".ui-slider-handle"), this._clickOffset = l ? {
|
|
left: 0,
|
|
top: 0
|
|
} : {
|
|
left: t.pageX - h.left - a.width() / 2,
|
|
top: t.pageY - h.top - a.height() / 2 - (parseInt(a.css("borderTopWidth"), 10) || 0) - (parseInt(a.css("borderBottomWidth"), 10) || 0) + (parseInt(a.css("marginTop"), 10) || 0)
|
|
}, this.handles.hasClass("ui-state-hover") || this._slide(t, o, s), this._animateOff = !0, !0))
|
|
},
|
|
_mouseStart: function() {
|
|
return !0
|
|
},
|
|
_mouseDrag: function(e) {
|
|
var t = {
|
|
x: e.pageX,
|
|
y: e.pageY
|
|
},
|
|
i = this._normValueFromMouse(t);
|
|
return this._slide(e, this._handleIndex, i), !1
|
|
},
|
|
_mouseStop: function(e) {
|
|
return this.handles.removeClass("ui-state-active"), this._mouseSliding = !1, this._stop(e, this._handleIndex), this._change(e, this._handleIndex), this._handleIndex = null, this._clickOffset = null, this._animateOff = !1, !1
|
|
},
|
|
_detectOrientation: function() {
|
|
this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal"
|
|
},
|
|
_normValueFromMouse: function(e) {
|
|
var t, i, s, n, a;
|
|
return "horizontal" === this.orientation ? (t = this.elementSize.width, i = e.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (t = this.elementSize.height, i = e.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), s = i / t, s > 1 && (s = 1), 0 > s && (s = 0), "vertical" === this.orientation && (s = 1 - s), n = this._valueMax() - this._valueMin(), a = this._valueMin() + s * n, this._trimAlignValue(a)
|
|
},
|
|
_start: function(e, t) {
|
|
var i = {
|
|
handle: this.handles[t],
|
|
value: this.value()
|
|
};
|
|
return this.options.values && this.options.values.length && (i.value = this.values(t), i.values = this.values()), this._trigger("start", e, i)
|
|
},
|
|
_slide: function(e, t, i) {
|
|
var s, n, a;
|
|
this.options.values && this.options.values.length ? (s = this.values(t ? 0 : 1), 2 === this.options.values.length && this.options.range === !0 && (0 === t && i > s || 1 === t && s > i) && (i = s), i !== this.values(t) && (n = this.values(), n[t] = i, a = this._trigger("slide", e, {
|
|
handle: this.handles[t],
|
|
value: i,
|
|
values: n
|
|
}), s = this.values(t ? 0 : 1), a !== !1 && this.values(t, i))) : i !== this.value() && (a = this._trigger("slide", e, {
|
|
handle: this.handles[t],
|
|
value: i
|
|
}), a !== !1 && this.value(i))
|
|
},
|
|
_stop: function(e, t) {
|
|
var i = {
|
|
handle: this.handles[t],
|
|
value: this.value()
|
|
};
|
|
this.options.values && this.options.values.length && (i.value = this.values(t), i.values = this.values()), this._trigger("stop", e, i)
|
|
},
|
|
_change: function(e, t) {
|
|
if (!this._keySliding && !this._mouseSliding) {
|
|
var i = {
|
|
handle: this.handles[t],
|
|
value: this.value()
|
|
};
|
|
this.options.values && this.options.values.length && (i.value = this.values(t), i.values = this.values()), this._lastChangedValue = t, this._trigger("change", e, i)
|
|
}
|
|
},
|
|
value: function(e) {
|
|
return arguments.length ? (this.options.value = this._trimAlignValue(e), this._refreshValue(), this._change(null, 0), void 0) : this._value()
|
|
},
|
|
values: function(t, i) {
|
|
var s, n, a;
|
|
if (arguments.length > 1) return this.options.values[t] = this._trimAlignValue(i), this._refreshValue(), this._change(null, t), void 0;
|
|
if (!arguments.length) return this._values();
|
|
if (!e.isArray(arguments[0])) return this.options.values && this.options.values.length ? this._values(t) : this.value();
|
|
for (s = this.options.values, n = arguments[0], a = 0; s.length > a; a += 1) s[a] = this._trimAlignValue(n[a]), this._change(null, a);
|
|
this._refreshValue()
|
|
},
|
|
_setOption: function(t, i) {
|
|
var s, n = 0;
|
|
switch ("range" === t && this.options.range === !0 && ("min" === i ? (this.options.value = this._values(0), this.options.values = null) : "max" === i && (this.options.value = this._values(this.options.values.length - 1), this.options.values = null)), e.isArray(this.options.values) && (n = this.options.values.length), "disabled" === t && this.element.toggleClass("ui-state-disabled", !!i), this._super(t, i), t) {
|
|
case "orientation":
|
|
this._detectOrientation(), this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation), this._refreshValue(), this.handles.css("horizontal" === i ? "bottom" : "left", "");
|
|
break;
|
|
case "value":
|
|
this._animateOff = !0, this._refreshValue(), this._change(null, 0), this._animateOff = !1;
|
|
break;
|
|
case "values":
|
|
for (this._animateOff = !0, this._refreshValue(), s = 0; n > s; s += 1) this._change(null, s);
|
|
this._animateOff = !1;
|
|
break;
|
|
case "step":
|
|
case "min":
|
|
case "max":
|
|
this._animateOff = !0, this._calculateNewMax(), this._refreshValue(), this._animateOff = !1;
|
|
break;
|
|
case "range":
|
|
this._animateOff = !0, this._refresh(), this._animateOff = !1
|
|
}
|
|
},
|
|
_value: function() {
|
|
var e = this.options.value;
|
|
return e = this._trimAlignValue(e)
|
|
},
|
|
_values: function(e) {
|
|
var t, i, s;
|
|
if (arguments.length) return t = this.options.values[e], t = this._trimAlignValue(t);
|
|
if (this.options.values && this.options.values.length) {
|
|
for (i = this.options.values.slice(), s = 0; i.length > s; s += 1) i[s] = this._trimAlignValue(i[s]);
|
|
return i
|
|
}
|
|
return []
|
|
},
|
|
_trimAlignValue: function(e) {
|
|
if (this._valueMin() >= e) return this._valueMin();
|
|
if (e >= this._valueMax()) return this._valueMax();
|
|
var t = this.options.step > 0 ? this.options.step : 1,
|
|
i = (e - this._valueMin()) % t,
|
|
s = e - i;
|
|
return 2 * Math.abs(i) >= t && (s += i > 0 ? t : -t), parseFloat(s.toFixed(5))
|
|
},
|
|
_calculateNewMax: function() {
|
|
var e = this.options.max,
|
|
t = this._valueMin(),
|
|
i = this.options.step,
|
|
s = Math.floor(+(e - t).toFixed(this._precision()) / i) * i;
|
|
e = s + t, this.max = parseFloat(e.toFixed(this._precision()))
|
|
},
|
|
_precision: function() {
|
|
var e = this._precisionOf(this.options.step);
|
|
return null !== this.options.min && (e = Math.max(e, this._precisionOf(this.options.min))), e
|
|
},
|
|
_precisionOf: function(e) {
|
|
var t = "" + e,
|
|
i = t.indexOf(".");
|
|
return -1 === i ? 0 : t.length - i - 1
|
|
},
|
|
_valueMin: function() {
|
|
return this.options.min
|
|
},
|
|
_valueMax: function() {
|
|
return this.max
|
|
},
|
|
_refreshValue: function() {
|
|
var t, i, s, n, a, o = this.options.range,
|
|
r = this.options,
|
|
h = this,
|
|
l = this._animateOff ? !1 : r.animate,
|
|
u = {};
|
|
this.options.values && this.options.values.length ? this.handles.each(function(s) {
|
|
i = 100 * ((h.values(s) - h._valueMin()) / (h._valueMax() - h._valueMin())), u["horizontal" === h.orientation ? "left" : "bottom"] = i + "%", e(this).stop(1, 1)[l ? "animate" : "css"](u, r.animate), h.options.range === !0 && ("horizontal" === h.orientation ? (0 === s && h.range.stop(1, 1)[l ? "animate" : "css"]({
|
|
left: i + "%"
|
|
}, r.animate), 1 === s && h.range[l ? "animate" : "css"]({
|
|
width: i - t + "%"
|
|
}, {
|
|
queue: !1,
|
|
duration: r.animate
|
|
})) : (0 === s && h.range.stop(1, 1)[l ? "animate" : "css"]({
|
|
bottom: i + "%"
|
|
}, r.animate), 1 === s && h.range[l ? "animate" : "css"]({
|
|
height: i - t + "%"
|
|
}, {
|
|
queue: !1,
|
|
duration: r.animate
|
|
}))), t = i
|
|
}) : (s = this.value(), n = this._valueMin(), a = this._valueMax(), i = a !== n ? 100 * ((s - n) / (a - n)) : 0, u["horizontal" === this.orientation ? "left" : "bottom"] = i + "%", this.handle.stop(1, 1)[l ? "animate" : "css"](u, r.animate), "min" === o && "horizontal" === this.orientation && this.range.stop(1, 1)[l ? "animate" : "css"]({
|
|
width: i + "%"
|
|
}, r.animate), "max" === o && "horizontal" === this.orientation && this.range[l ? "animate" : "css"]({
|
|
width: 100 - i + "%"
|
|
}, {
|
|
queue: !1,
|
|
duration: r.animate
|
|
}), "min" === o && "vertical" === this.orientation && this.range.stop(1, 1)[l ? "animate" : "css"]({
|
|
height: i + "%"
|
|
}, r.animate), "max" === o && "vertical" === this.orientation && this.range[l ? "animate" : "css"]({
|
|
height: 100 - i + "%"
|
|
}, {
|
|
queue: !1,
|
|
duration: r.animate
|
|
}))
|
|
},
|
|
_handleEvents: {
|
|
keydown: function(t) {
|
|
var i, s, n, a, o = e(t.target).data("ui-slider-handle-index");
|
|
switch (t.keyCode) {
|
|
case e.ui.keyCode.HOME:
|
|
case e.ui.keyCode.END:
|
|
case e.ui.keyCode.PAGE_UP:
|
|
case e.ui.keyCode.PAGE_DOWN:
|
|
case e.ui.keyCode.UP:
|
|
case e.ui.keyCode.RIGHT:
|
|
case e.ui.keyCode.DOWN:
|
|
case e.ui.keyCode.LEFT:
|
|
if (t.preventDefault(), !this._keySliding && (this._keySliding = !0, e(t.target).addClass("ui-state-active"), i = this._start(t, o), i === !1)) return
|
|
}
|
|
switch (a = this.options.step, s = n = this.options.values && this.options.values.length ? this.values(o) : this.value(), t.keyCode) {
|
|
case e.ui.keyCode.HOME:
|
|
n = this._valueMin();
|
|
break;
|
|
case e.ui.keyCode.END:
|
|
n = this._valueMax();
|
|
break;
|
|
case e.ui.keyCode.PAGE_UP:
|
|
n = this._trimAlignValue(s + (this._valueMax() - this._valueMin()) / this.numPages);
|
|
break;
|
|
case e.ui.keyCode.PAGE_DOWN:
|
|
n = this._trimAlignValue(s - (this._valueMax() - this._valueMin()) / this.numPages);
|
|
break;
|
|
case e.ui.keyCode.UP:
|
|
case e.ui.keyCode.RIGHT:
|
|
if (s === this._valueMax()) return;
|
|
n = this._trimAlignValue(s + a);
|
|
break;
|
|
case e.ui.keyCode.DOWN:
|
|
case e.ui.keyCode.LEFT:
|
|
if (s === this._valueMin()) return;
|
|
n = this._trimAlignValue(s - a)
|
|
}
|
|
this._slide(t, o, n)
|
|
},
|
|
keyup: function(t) {
|
|
var i = e(t.target).data("ui-slider-handle-index");
|
|
this._keySliding && (this._keySliding = !1, this._stop(t, i), this._change(t, i), e(t.target).removeClass("ui-state-active"))
|
|
}
|
|
}
|
|
})
|
|
});
|
|
|
|
|
|
/*!
|
|
* jQuery UI Touch Punch 0.2.3
|
|
*
|
|
* Copyright 2011–2014, Dave Furfero
|
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
*
|
|
* Depends:
|
|
* jquery.ui.widget.js
|
|
* jquery.ui.mouse.js
|
|
*/
|
|
! function(a) {
|
|
function f(a, b) {
|
|
if (!(a.originalEvent.touches.length > 1)) {
|
|
a.preventDefault();
|
|
var c = a.originalEvent.changedTouches[0],
|
|
d = document.createEvent("MouseEvents");
|
|
d.initMouseEvent(b, !0, !0, window, 1, c.screenX, c.screenY, c.clientX, c.clientY, !1, !1, !1, !1, 0, null), a.target.dispatchEvent(d)
|
|
}
|
|
}
|
|
if (a.support.touch = "ontouchend" in document, a.support.touch) {
|
|
var e, b = a.ui.mouse.prototype,
|
|
c = b._mouseInit,
|
|
d = b._mouseDestroy;
|
|
b._touchStart = function(a) {
|
|
var b = this;
|
|
!e && b._mouseCapture(a.originalEvent.changedTouches[0]) && (e = !0, b._touchMoved = !1, f(a, "mouseover"), f(a, "mousemove"), f(a, "mousedown"))
|
|
}, b._touchMove = function(a) {
|
|
e && (this._touchMoved = !0, f(a, "mousemove"))
|
|
}, b._touchEnd = function(a) {
|
|
e && (f(a, "mouseup"), f(a, "mouseout"), this._touchMoved || f(a, "click"), e = !1)
|
|
}, b._mouseInit = function() {
|
|
var b = this;
|
|
b.element.bind({
|
|
touchstart: a.proxy(b, "_touchStart"),
|
|
touchmove: a.proxy(b, "_touchMove"),
|
|
touchend: a.proxy(b, "_touchEnd")
|
|
}), c.call(b)
|
|
}, b._mouseDestroy = function() {
|
|
var b = this;
|
|
b.element.unbind({
|
|
touchstart: a.proxy(b, "_touchStart"),
|
|
touchmove: a.proxy(b, "_touchMove"),
|
|
touchend: a.proxy(b, "_touchEnd")
|
|
}), d.call(b)
|
|
}
|
|
}
|
|
}(jQuery);
|
|
|
|
|
|
|
|
/*
|
|
Slick Slider
|
|
Version: 1.8.0
|
|
Author: Ken Wheeler
|
|
Website: http://kenwheeler.github.io
|
|
Docs: http://kenwheeler.github.io/slick
|
|
Repo: http://github.com/kenwheeler/slick
|
|
Issues: http://github.com/kenwheeler/slick/issues
|
|
*/
|
|
! function(i) {
|
|
"use strict";
|
|
"function" == typeof define && define.amd ? define(["jquery"], i) : "undefined" != typeof exports ? module.exports = i(require("jquery")) : i(jQuery)
|
|
}(function(i) {
|
|
"use strict";
|
|
var e = window.Slick || {};
|
|
(e = function() {
|
|
var e = 0;
|
|
return function(t, o) {
|
|
var s, n = this;
|
|
n.defaults = {
|
|
accessibility: !0,
|
|
adaptiveHeight: !1,
|
|
appendArrows: i(t),
|
|
appendDots: i(t),
|
|
arrows: !0,
|
|
asNavFor: null,
|
|
prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',
|
|
nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>',
|
|
autoplay: !1,
|
|
autoplaySpeed: 3e3,
|
|
centerMode: !1,
|
|
centerPadding: "50px",
|
|
cssEase: "ease",
|
|
customPaging: function(e, t) {
|
|
return i('<button type="button" />').text(t + 1)
|
|
},
|
|
dots: !1,
|
|
dotsClass: "slick-dots",
|
|
draggable: !0,
|
|
easing: "linear",
|
|
edgeFriction: .35,
|
|
fade: !1,
|
|
focusOnSelect: !1,
|
|
focusOnChange: !1,
|
|
infinite: !0,
|
|
initialSlide: 0,
|
|
lazyLoad: "ondemand",
|
|
mobileFirst: !1,
|
|
pauseOnHover: !0,
|
|
pauseOnFocus: !0,
|
|
pauseOnDotsHover: !1,
|
|
respondTo: "window",
|
|
responsive: null,
|
|
rows: 1,
|
|
rtl: !1,
|
|
slide: "",
|
|
slidesPerRow: 1,
|
|
slidesToShow: 1,
|
|
slidesToScroll: 1,
|
|
speed: 500,
|
|
swipe: !0,
|
|
swipeToSlide: !1,
|
|
touchMove: !0,
|
|
touchThreshold: 5,
|
|
useCSS: !0,
|
|
useTransform: !0,
|
|
variableWidth: !1,
|
|
vertical: !1,
|
|
verticalSwiping: !1,
|
|
waitForAnimate: !0,
|
|
zIndex: 1e3
|
|
}, n.initials = {
|
|
animating: !1,
|
|
dragging: !1,
|
|
autoPlayTimer: null,
|
|
currentDirection: 0,
|
|
currentLeft: null,
|
|
currentSlide: 0,
|
|
direction: 1,
|
|
$dots: null,
|
|
listWidth: null,
|
|
listHeight: null,
|
|
loadIndex: 0,
|
|
$nextArrow: null,
|
|
$prevArrow: null,
|
|
scrolling: !1,
|
|
slideCount: null,
|
|
slideWidth: null,
|
|
$slideTrack: null,
|
|
$slides: null,
|
|
sliding: !1,
|
|
slideOffset: 0,
|
|
swipeLeft: null,
|
|
swiping: !1,
|
|
$list: null,
|
|
touchObject: {},
|
|
transformsEnabled: !1,
|
|
unslicked: !1
|
|
}, i.extend(n, n.initials), n.activeBreakpoint = null, n.animType = null, n.animProp = null, n.breakpoints = [], n.breakpointSettings = [], n.cssTransitions = !1, n.focussed = !1, n.interrupted = !1, n.hidden = "hidden", n.paused = !0, n.positionProp = null, n.respondTo = null, n.rowCount = 1, n.shouldClick = !0, n.$slider = i(t), n.$slidesCache = null, n.transformType = null, n.transitionType = null, n.visibilityChange = "visibilitychange", n.windowWidth = 0, n.windowTimer = null, s = i(t).data("slick") || {}, n.options = i.extend({}, n.defaults, o, s), n.currentSlide = n.options.initialSlide, n.originalSettings = n.options, void 0 !== document.mozHidden ? (n.hidden = "mozHidden", n.visibilityChange = "mozvisibilitychange") : void 0 !== document.webkitHidden && (n.hidden = "webkitHidden", n.visibilityChange = "webkitvisibilitychange"), n.autoPlay = i.proxy(n.autoPlay, n), n.autoPlayClear = i.proxy(n.autoPlayClear, n), n.autoPlayIterator = i.proxy(n.autoPlayIterator, n), n.changeSlide = i.proxy(n.changeSlide, n), n.clickHandler = i.proxy(n.clickHandler, n), n.selectHandler = i.proxy(n.selectHandler, n), n.setPosition = i.proxy(n.setPosition, n), n.swipeHandler = i.proxy(n.swipeHandler, n), n.dragHandler = i.proxy(n.dragHandler, n), n.keyHandler = i.proxy(n.keyHandler, n), n.instanceUid = e++, n.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/, n.registerBreakpoints(), n.init(!0)
|
|
}
|
|
}()).prototype.activateADA = function() {
|
|
this.$slideTrack.find(".slick-active").attr({
|
|
"aria-hidden": "false"
|
|
}).find("a, input, button, select").attr({
|
|
tabindex: "0"
|
|
})
|
|
}, e.prototype.addSlide = e.prototype.slickAdd = function(e, t, o) {
|
|
var s = this;
|
|
if ("boolean" == typeof t) o = t, t = null;
|
|
else if (t < 0 || t >= s.slideCount) return !1;
|
|
s.unload(), "number" == typeof t ? 0 === t && 0 === s.$slides.length ? i(e).appendTo(s.$slideTrack) : o ? i(e).insertBefore(s.$slides.eq(t)) : i(e).insertAfter(s.$slides.eq(t)) : !0 === o ? i(e).prependTo(s.$slideTrack) : i(e).appendTo(s.$slideTrack), s.$slides = s.$slideTrack.children(this.options.slide), s.$slideTrack.children(this.options.slide).detach(), s.$slideTrack.append(s.$slides), s.$slides.each(function(e, t) {
|
|
i(t).attr("data-slick-index", e)
|
|
}), s.$slidesCache = s.$slides, s.reinit()
|
|
}, e.prototype.animateHeight = function() {
|
|
var i = this;
|
|
if (1 === i.options.slidesToShow && !0 === i.options.adaptiveHeight && !1 === i.options.vertical) {
|
|
var e = i.$slides.eq(i.currentSlide).outerHeight(!0);
|
|
i.$list.animate({
|
|
height: e
|
|
}, i.options.speed)
|
|
}
|
|
}, e.prototype.animateSlide = function(e, t) {
|
|
var o = {},
|
|
s = this;
|
|
s.animateHeight(), !0 === s.options.rtl && !1 === s.options.vertical && (e = -e), !1 === s.transformsEnabled ? !1 === s.options.vertical ? s.$slideTrack.animate({
|
|
left: e
|
|
}, s.options.speed, s.options.easing, t) : s.$slideTrack.animate({
|
|
top: e
|
|
}, s.options.speed, s.options.easing, t) : !1 === s.cssTransitions ? (!0 === s.options.rtl && (s.currentLeft = -s.currentLeft), i({
|
|
animStart: s.currentLeft
|
|
}).animate({
|
|
animStart: e
|
|
}, {
|
|
duration: s.options.speed,
|
|
easing: s.options.easing,
|
|
step: function(i) {
|
|
i = Math.ceil(i), !1 === s.options.vertical ? (o[s.animType] = "translate(" + i + "px, 0px)", s.$slideTrack.css(o)) : (o[s.animType] = "translate(0px," + i + "px)", s.$slideTrack.css(o))
|
|
},
|
|
complete: function() {
|
|
t && t.call()
|
|
}
|
|
})) : (s.applyTransition(), e = Math.ceil(e), !1 === s.options.vertical ? o[s.animType] = "translate3d(" + e + "px, 0px, 0px)" : o[s.animType] = "translate3d(0px," + e + "px, 0px)", s.$slideTrack.css(o), t && setTimeout(function() {
|
|
s.disableTransition(), t.call()
|
|
}, s.options.speed))
|
|
}, e.prototype.getNavTarget = function() {
|
|
var e = this,
|
|
t = e.options.asNavFor;
|
|
return t && null !== t && (t = i(t).not(e.$slider)), t
|
|
}, e.prototype.asNavFor = function(e) {
|
|
var t = this.getNavTarget();
|
|
null !== t && "object" == typeof t && t.each(function() {
|
|
var t = i(this).slick("getSlick");
|
|
t.unslicked || t.slideHandler(e, !0)
|
|
})
|
|
}, e.prototype.applyTransition = function(i) {
|
|
var e = this,
|
|
t = {};
|
|
!1 === e.options.fade ? t[e.transitionType] = e.transformType + " " + e.options.speed + "ms " + e.options.cssEase : t[e.transitionType] = "opacity " + e.options.speed + "ms " + e.options.cssEase, !1 === e.options.fade ? e.$slideTrack.css(t) : e.$slides.eq(i).css(t)
|
|
}, e.prototype.autoPlay = function() {
|
|
var i = this;
|
|
i.autoPlayClear(), i.slideCount > i.options.slidesToShow && (i.autoPlayTimer = setInterval(i.autoPlayIterator, i.options.autoplaySpeed))
|
|
}, e.prototype.autoPlayClear = function() {
|
|
var i = this;
|
|
i.autoPlayTimer && clearInterval(i.autoPlayTimer)
|
|
}, e.prototype.autoPlayIterator = function() {
|
|
var i = this,
|
|
e = i.currentSlide + i.options.slidesToScroll;
|
|
i.paused || i.interrupted || i.focussed || (!1 === i.options.infinite && (1 === i.direction && i.currentSlide + 1 === i.slideCount - 1 ? i.direction = 0 : 0 === i.direction && (e = i.currentSlide - i.options.slidesToScroll, i.currentSlide - 1 == 0 && (i.direction = 1))), i.slideHandler(e))
|
|
}, e.prototype.buildArrows = function() {
|
|
var e = this;
|
|
!0 === e.options.arrows && (e.$prevArrow = i(e.options.prevArrow).addClass("slick-arrow"), e.$nextArrow = i(e.options.nextArrow).addClass("slick-arrow"), e.slideCount > e.options.slidesToShow ? (e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.prependTo(e.options.appendArrows), e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.appendTo(e.options.appendArrows), !0 !== e.options.infinite && e.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")) : e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({
|
|
"aria-disabled": "true",
|
|
tabindex: "-1"
|
|
}))
|
|
}, e.prototype.buildDots = function() {
|
|
var e, t, o = this;
|
|
if (!0 === o.options.dots) {
|
|
for (o.$slider.addClass("slick-dotted"), t = i("<ul />").addClass(o.options.dotsClass), e = 0; e <= o.getDotCount(); e += 1) t.append(i("<li />").append(o.options.customPaging.call(this, o, e)));
|
|
o.$dots = t.appendTo(o.options.appendDots), o.$dots.find("li").first().addClass("slick-active")
|
|
}
|
|
}, e.prototype.buildOut = function() {
|
|
var e = this;
|
|
e.$slides = e.$slider.children(e.options.slide + ":not(.slick-cloned)").addClass("slick-slide"), e.slideCount = e.$slides.length, e.$slides.each(function(e, t) {
|
|
i(t).attr("data-slick-index", e).data("originalStyling", i(t).attr("style") || "")
|
|
}), e.$slider.addClass("slick-slider"), e.$slideTrack = 0 === e.slideCount ? i('<div class="slick-track"/>').appendTo(e.$slider) : e.$slides.wrapAll('<div class="slick-track"/>').parent(), e.$list = e.$slideTrack.wrap('<div class="slick-list"/>').parent(), e.$slideTrack.css("opacity", 0), !0 !== e.options.centerMode && !0 !== e.options.swipeToSlide || (e.options.slidesToScroll = 1), i("img[data-lazy]", e.$slider).not("[src]").addClass("slick-loading"), e.setupInfinite(), e.buildArrows(), e.buildDots(), e.updateDots(), e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0), !0 === e.options.draggable && e.$list.addClass("draggable")
|
|
}, e.prototype.buildRows = function() {
|
|
var i, e, t, o, s, n, r, l = this;
|
|
if (o = document.createDocumentFragment(), n = l.$slider.children(), l.options.rows > 1) {
|
|
for (r = l.options.slidesPerRow * l.options.rows, s = Math.ceil(n.length / r), i = 0; i < s; i++) {
|
|
var d = document.createElement("div");
|
|
for (e = 0; e < l.options.rows; e++) {
|
|
var a = document.createElement("div");
|
|
for (t = 0; t < l.options.slidesPerRow; t++) {
|
|
var c = i * r + (e * l.options.slidesPerRow + t);
|
|
n.get(c) && a.appendChild(n.get(c))
|
|
}
|
|
d.appendChild(a)
|
|
}
|
|
o.appendChild(d)
|
|
}
|
|
l.$slider.empty().append(o), l.$slider.children().children().children().css({
|
|
width: 100 / l.options.slidesPerRow + "%",
|
|
display: "inline-block"
|
|
})
|
|
}
|
|
}, e.prototype.checkResponsive = function(e, t) {
|
|
var o, s, n, r = this,
|
|
l = !1,
|
|
d = r.$slider.width(),
|
|
a = window.innerWidth || i(window).width();
|
|
if ("window" === r.respondTo ? n = a : "slider" === r.respondTo ? n = d : "min" === r.respondTo && (n = Math.min(a, d)), r.options.responsive && r.options.responsive.length && null !== r.options.responsive) {
|
|
s = null;
|
|
for (o in r.breakpoints) r.breakpoints.hasOwnProperty(o) && (!1 === r.originalSettings.mobileFirst ? n < r.breakpoints[o] && (s = r.breakpoints[o]) : n > r.breakpoints[o] && (s = r.breakpoints[o]));
|
|
null !== s ? null !== r.activeBreakpoint ? (s !== r.activeBreakpoint || t) && (r.activeBreakpoint = s, "unslick" === r.breakpointSettings[s] ? r.unslick(s) : (r.options = i.extend({}, r.originalSettings, r.breakpointSettings[s]), !0 === e && (r.currentSlide = r.options.initialSlide), r.refresh(e)), l = s) : (r.activeBreakpoint = s, "unslick" === r.breakpointSettings[s] ? r.unslick(s) : (r.options = i.extend({}, r.originalSettings, r.breakpointSettings[s]), !0 === e && (r.currentSlide = r.options.initialSlide), r.refresh(e)), l = s) : null !== r.activeBreakpoint && (r.activeBreakpoint = null, r.options = r.originalSettings, !0 === e && (r.currentSlide = r.options.initialSlide), r.refresh(e), l = s), e || !1 === l || r.$slider.trigger("breakpoint", [r, l])
|
|
}
|
|
}, e.prototype.changeSlide = function(e, t) {
|
|
var o, s, n, r = this,
|
|
l = i(e.currentTarget);
|
|
switch (l.is("a") && e.preventDefault(), l.is("li") || (l = l.closest("li")), n = r.slideCount % r.options.slidesToScroll != 0, o = n ? 0 : (r.slideCount - r.currentSlide) % r.options.slidesToScroll, e.data.message) {
|
|
case "previous":
|
|
s = 0 === o ? r.options.slidesToScroll : r.options.slidesToShow - o, r.slideCount > r.options.slidesToShow && r.slideHandler(r.currentSlide - s, !1, t);
|
|
break;
|
|
case "next":
|
|
s = 0 === o ? r.options.slidesToScroll : o, r.slideCount > r.options.slidesToShow && r.slideHandler(r.currentSlide + s, !1, t);
|
|
break;
|
|
case "index":
|
|
var d = 0 === e.data.index ? 0 : e.data.index || l.index() * r.options.slidesToScroll;
|
|
r.slideHandler(r.checkNavigable(d), !1, t), l.children().trigger("focus");
|
|
break;
|
|
default:
|
|
return
|
|
}
|
|
}, e.prototype.checkNavigable = function(i) {
|
|
var e, t;
|
|
if (e = this.getNavigableIndexes(), t = 0, i > e[e.length - 1]) i = e[e.length - 1];
|
|
else
|
|
for (var o in e) {
|
|
if (i < e[o]) {
|
|
i = t;
|
|
break
|
|
}
|
|
t = e[o]
|
|
}
|
|
return i
|
|
}, e.prototype.cleanUpEvents = function() {
|
|
var e = this;
|
|
e.options.dots && null !== e.$dots && (i("li", e.$dots).off("click.slick", e.changeSlide).off("mouseenter.slick", i.proxy(e.interrupt, e, !0)).off("mouseleave.slick", i.proxy(e.interrupt, e, !1)), !0 === e.options.accessibility && e.$dots.off("keydown.slick", e.keyHandler)), e.$slider.off("focus.slick blur.slick"), !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow && e.$prevArrow.off("click.slick", e.changeSlide), e.$nextArrow && e.$nextArrow.off("click.slick", e.changeSlide), !0 === e.options.accessibility && (e.$prevArrow && e.$prevArrow.off("keydown.slick", e.keyHandler), e.$nextArrow && e.$nextArrow.off("keydown.slick", e.keyHandler))), e.$list.off("touchstart.slick mousedown.slick", e.swipeHandler), e.$list.off("touchmove.slick mousemove.slick", e.swipeHandler), e.$list.off("touchend.slick mouseup.slick", e.swipeHandler), e.$list.off("touchcancel.slick mouseleave.slick", e.swipeHandler), e.$list.off("click.slick", e.clickHandler), i(document).off(e.visibilityChange, e.visibility), e.cleanUpSlideEvents(), !0 === e.options.accessibility && e.$list.off("keydown.slick", e.keyHandler), !0 === e.options.focusOnSelect && i(e.$slideTrack).children().off("click.slick", e.selectHandler), i(window).off("orientationchange.slick.slick-" + e.instanceUid, e.orientationChange), i(window).off("resize.slick.slick-" + e.instanceUid, e.resize), i("[draggable!=true]", e.$slideTrack).off("dragstart", e.preventDefault), i(window).off("load.slick.slick-" + e.instanceUid, e.setPosition)
|
|
}, e.prototype.cleanUpSlideEvents = function() {
|
|
var e = this;
|
|
e.$list.off("mouseenter.slick", i.proxy(e.interrupt, e, !0)), e.$list.off("mouseleave.slick", i.proxy(e.interrupt, e, !1))
|
|
}, e.prototype.cleanUpRows = function() {
|
|
var i, e = this;
|
|
e.options.rows > 1 && ((i = e.$slides.children().children()).removeAttr("style"), e.$slider.empty().append(i))
|
|
}, e.prototype.clickHandler = function(i) {
|
|
!1 === this.shouldClick && (i.stopImmediatePropagation(), i.stopPropagation(), i.preventDefault())
|
|
}, e.prototype.destroy = function(e) {
|
|
var t = this;
|
|
t.autoPlayClear(), t.touchObject = {}, t.cleanUpEvents(), i(".slick-cloned", t.$slider).detach(), t.$dots && t.$dots.remove(), t.$prevArrow && t.$prevArrow.length && (t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.remove()), t.$nextArrow && t.$nextArrow.length && (t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.remove()), t.$slides && (t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function() {
|
|
i(this).attr("style", i(this).data("originalStyling"))
|
|
}), t.$slideTrack.children(this.options.slide).detach(), t.$slideTrack.detach(), t.$list.detach(), t.$slider.append(t.$slides)), t.cleanUpRows(), t.$slider.removeClass("slick-slider"), t.$slider.removeClass("slick-initialized"), t.$slider.removeClass("slick-dotted"), t.unslicked = !0, e || t.$slider.trigger("destroy", [t])
|
|
}, e.prototype.disableTransition = function(i) {
|
|
var e = this,
|
|
t = {};
|
|
t[e.transitionType] = "", !1 === e.options.fade ? e.$slideTrack.css(t) : e.$slides.eq(i).css(t)
|
|
}, e.prototype.fadeSlide = function(i, e) {
|
|
var t = this;
|
|
!1 === t.cssTransitions ? (t.$slides.eq(i).css({
|
|
zIndex: t.options.zIndex
|
|
}), t.$slides.eq(i).animate({
|
|
opacity: 1
|
|
}, t.options.speed, t.options.easing, e)) : (t.applyTransition(i), t.$slides.eq(i).css({
|
|
opacity: 1,
|
|
zIndex: t.options.zIndex
|
|
}), e && setTimeout(function() {
|
|
t.disableTransition(i), e.call()
|
|
}, t.options.speed))
|
|
}, e.prototype.fadeSlideOut = function(i) {
|
|
var e = this;
|
|
!1 === e.cssTransitions ? e.$slides.eq(i).animate({
|
|
opacity: 0,
|
|
zIndex: e.options.zIndex - 2
|
|
}, e.options.speed, e.options.easing) : (e.applyTransition(i), e.$slides.eq(i).css({
|
|
opacity: 0,
|
|
zIndex: e.options.zIndex - 2
|
|
}))
|
|
}, e.prototype.filterSlides = e.prototype.slickFilter = function(i) {
|
|
var e = this;
|
|
null !== i && (e.$slidesCache = e.$slides, e.unload(), e.$slideTrack.children(this.options.slide).detach(), e.$slidesCache.filter(i).appendTo(e.$slideTrack), e.reinit())
|
|
}, e.prototype.focusHandler = function() {
|
|
var e = this;
|
|
e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick", "*", function(t) {
|
|
t.stopImmediatePropagation();
|
|
var o = i(this);
|
|
setTimeout(function() {
|
|
e.options.pauseOnFocus && (e.focussed = o.is(":focus"), e.autoPlay())
|
|
}, 0)
|
|
})
|
|
}, e.prototype.getCurrent = e.prototype.slickCurrentSlide = function() {
|
|
return this.currentSlide
|
|
}, e.prototype.getDotCount = function() {
|
|
var i = this,
|
|
e = 0,
|
|
t = 0,
|
|
o = 0;
|
|
if (!0 === i.options.infinite)
|
|
if (i.slideCount <= i.options.slidesToShow) ++o;
|
|
else
|
|
for (; e < i.slideCount;) ++o, e = t + i.options.slidesToScroll, t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow;
|
|
else if (!0 === i.options.centerMode) o = i.slideCount;
|
|
else if (i.options.asNavFor)
|
|
for (; e < i.slideCount;) ++o, e = t + i.options.slidesToScroll, t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow;
|
|
else o = 1 + Math.ceil((i.slideCount - i.options.slidesToShow) / i.options.slidesToScroll);
|
|
return o - 1
|
|
}, e.prototype.getLeft = function(i) {
|
|
var e, t, o, s, n = this,
|
|
r = 0;
|
|
return n.slideOffset = 0, t = n.$slides.first().outerHeight(!0), !0 === n.options.infinite ? (n.slideCount > n.options.slidesToShow && (n.slideOffset = n.slideWidth * n.options.slidesToShow * -1, s = -1, !0 === n.options.vertical && !0 === n.options.centerMode && (2 === n.options.slidesToShow ? s = -1.5 : 1 === n.options.slidesToShow && (s = -2)), r = t * n.options.slidesToShow * s), n.slideCount % n.options.slidesToScroll != 0 && i + n.options.slidesToScroll > n.slideCount && n.slideCount > n.options.slidesToShow && (i > n.slideCount ? (n.slideOffset = (n.options.slidesToShow - (i - n.slideCount)) * n.slideWidth * -1, r = (n.options.slidesToShow - (i - n.slideCount)) * t * -1) : (n.slideOffset = n.slideCount % n.options.slidesToScroll * n.slideWidth * -1, r = n.slideCount % n.options.slidesToScroll * t * -1))) : i + n.options.slidesToShow > n.slideCount && (n.slideOffset = (i + n.options.slidesToShow - n.slideCount) * n.slideWidth, r = (i + n.options.slidesToShow - n.slideCount) * t), n.slideCount <= n.options.slidesToShow && (n.slideOffset = 0, r = 0), !0 === n.options.centerMode && n.slideCount <= n.options.slidesToShow ? n.slideOffset = n.slideWidth * Math.floor(n.options.slidesToShow) / 2 - n.slideWidth * n.slideCount / 2 : !0 === n.options.centerMode && !0 === n.options.infinite ? n.slideOffset += n.slideWidth * Math.floor(n.options.slidesToShow / 2) - n.slideWidth : !0 === n.options.centerMode && (n.slideOffset = 0, n.slideOffset += n.slideWidth * Math.floor(n.options.slidesToShow / 2)), e = !1 === n.options.vertical ? i * n.slideWidth * -1 + n.slideOffset : i * t * -1 + r, !0 === n.options.variableWidth && (o = n.slideCount <= n.options.slidesToShow || !1 === n.options.infinite ? n.$slideTrack.children(".slick-slide").eq(i) : n.$slideTrack.children(".slick-slide").eq(i + n.options.slidesToShow), e = !0 === n.options.rtl ? o[0] ? -1 * (n.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0, !0 === n.options.centerMode && (o = n.slideCount <= n.options.slidesToShow || !1 === n.options.infinite ? n.$slideTrack.children(".slick-slide").eq(i) : n.$slideTrack.children(".slick-slide").eq(i + n.options.slidesToShow + 1), e = !0 === n.options.rtl ? o[0] ? -1 * (n.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0, e += (n.$list.width() - o.outerWidth()) / 2)), e
|
|
}, e.prototype.getOption = e.prototype.slickGetOption = function(i) {
|
|
return this.options[i]
|
|
}, e.prototype.getNavigableIndexes = function() {
|
|
var i, e = this,
|
|
t = 0,
|
|
o = 0,
|
|
s = [];
|
|
for (!1 === e.options.infinite ? i = e.slideCount : (t = -1 * e.options.slidesToScroll, o = -1 * e.options.slidesToScroll, i = 2 * e.slideCount); t < i;) s.push(t), t = o + e.options.slidesToScroll, o += e.options.slidesToScroll <= e.options.slidesToShow ? e.options.slidesToScroll : e.options.slidesToShow;
|
|
return s
|
|
}, e.prototype.getSlick = function() {
|
|
return this
|
|
}, e.prototype.getSlideCount = function() {
|
|
var e, t, o = this;
|
|
return t = !0 === o.options.centerMode ? o.slideWidth * Math.floor(o.options.slidesToShow / 2) : 0, !0 === o.options.swipeToSlide ? (o.$slideTrack.find(".slick-slide").each(function(s, n) {
|
|
if (n.offsetLeft - t + i(n).outerWidth() / 2 > -1 * o.swipeLeft) return e = n, !1
|
|
}), Math.abs(i(e).attr("data-slick-index") - o.currentSlide) || 1) : o.options.slidesToScroll
|
|
}, e.prototype.goTo = e.prototype.slickGoTo = function(i, e) {
|
|
this.changeSlide({
|
|
data: {
|
|
message: "index",
|
|
index: parseInt(i)
|
|
}
|
|
}, e)
|
|
}, e.prototype.init = function(e) {
|
|
var t = this;
|
|
i(t.$slider).hasClass("slick-initialized") || (i(t.$slider).addClass("slick-initialized"), t.buildRows(), t.buildOut(), t.setProps(), t.startLoad(), t.loadSlider(), t.initializeEvents(), t.updateArrows(), t.updateDots(), t.checkResponsive(!0), t.focusHandler()), e && t.$slider.trigger("init", [t]), !0 === t.options.accessibility && t.initADA(), t.options.autoplay && (t.paused = !1, t.autoPlay())
|
|
}, e.prototype.initADA = function() {
|
|
var e = this,
|
|
t = Math.ceil(e.slideCount / e.options.slidesToShow),
|
|
o = e.getNavigableIndexes().filter(function(i) {
|
|
return i >= 0 && i < e.slideCount
|
|
});
|
|
e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({
|
|
"aria-hidden": "true",
|
|
tabindex: "-1"
|
|
}).find("a, input, button, select").attr({
|
|
tabindex: "-1"
|
|
}), null !== e.$dots && (e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t) {
|
|
var s = o.indexOf(t);
|
|
i(this).attr({
|
|
role: "tabpanel",
|
|
id: "slick-slide" + e.instanceUid + t,
|
|
tabindex: -1
|
|
}), -1 !== s && i(this).attr({
|
|
"aria-describedby": "slick-slide-control" + e.instanceUid + s
|
|
})
|
|
}), e.$dots.attr("role", "tablist").find("li").each(function(s) {
|
|
var n = o[s];
|
|
i(this).attr({
|
|
role: "presentation"
|
|
}), i(this).find("button").first().attr({
|
|
role: "tab",
|
|
id: "slick-slide-control" + e.instanceUid + s,
|
|
"aria-controls": "slick-slide" + e.instanceUid + n,
|
|
"aria-label": s + 1 + " of " + t,
|
|
"aria-selected": null,
|
|
tabindex: "-1"
|
|
})
|
|
}).eq(e.currentSlide).find("button").attr({
|
|
"aria-selected": "true",
|
|
tabindex: "0"
|
|
}).end());
|
|
for (var s = e.currentSlide, n = s + e.options.slidesToShow; s < n; s++) e.$slides.eq(s).attr("tabindex", 0);
|
|
e.activateADA()
|
|
}, e.prototype.initArrowEvents = function() {
|
|
var i = this;
|
|
!0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.off("click.slick").on("click.slick", {
|
|
message: "previous"
|
|
}, i.changeSlide), i.$nextArrow.off("click.slick").on("click.slick", {
|
|
message: "next"
|
|
}, i.changeSlide), !0 === i.options.accessibility && (i.$prevArrow.on("keydown.slick", i.keyHandler), i.$nextArrow.on("keydown.slick", i.keyHandler)))
|
|
}, e.prototype.initDotEvents = function() {
|
|
var e = this;
|
|
!0 === e.options.dots && (i("li", e.$dots).on("click.slick", {
|
|
message: "index"
|
|
}, e.changeSlide), !0 === e.options.accessibility && e.$dots.on("keydown.slick", e.keyHandler)), !0 === e.options.dots && !0 === e.options.pauseOnDotsHover && i("li", e.$dots).on("mouseenter.slick", i.proxy(e.interrupt, e, !0)).on("mouseleave.slick", i.proxy(e.interrupt, e, !1))
|
|
}, e.prototype.initSlideEvents = function() {
|
|
var e = this;
|
|
e.options.pauseOnHover && (e.$list.on("mouseenter.slick", i.proxy(e.interrupt, e, !0)), e.$list.on("mouseleave.slick", i.proxy(e.interrupt, e, !1)))
|
|
}, e.prototype.initializeEvents = function() {
|
|
var e = this;
|
|
e.initArrowEvents(), e.initDotEvents(), e.initSlideEvents(), e.$list.on("touchstart.slick mousedown.slick", {
|
|
action: "start"
|
|
}, e.swipeHandler), e.$list.on("touchmove.slick mousemove.slick", {
|
|
action: "move"
|
|
}, e.swipeHandler), e.$list.on("touchend.slick mouseup.slick", {
|
|
action: "end"
|
|
}, e.swipeHandler), e.$list.on("touchcancel.slick mouseleave.slick", {
|
|
action: "end"
|
|
}, e.swipeHandler), e.$list.on("click.slick", e.clickHandler), i(document).on(e.visibilityChange, i.proxy(e.visibility, e)), !0 === e.options.accessibility && e.$list.on("keydown.slick", e.keyHandler), !0 === e.options.focusOnSelect && i(e.$slideTrack).children().on("click.slick", e.selectHandler), i(window).on("orientationchange.slick.slick-" + e.instanceUid, i.proxy(e.orientationChange, e)), i(window).on("resize.slick.slick-" + e.instanceUid, i.proxy(e.resize, e)), i("[draggable!=true]", e.$slideTrack).on("dragstart", e.preventDefault), i(window).on("load.slick.slick-" + e.instanceUid, e.setPosition), i(e.setPosition)
|
|
}, e.prototype.initUI = function() {
|
|
var i = this;
|
|
!0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.show(), i.$nextArrow.show()), !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.show()
|
|
}, e.prototype.keyHandler = function(i) {
|
|
var e = this;
|
|
i.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === i.keyCode && !0 === e.options.accessibility ? e.changeSlide({
|
|
data: {
|
|
message: !0 === e.options.rtl ? "next" : "previous"
|
|
}
|
|
}) : 39 === i.keyCode && !0 === e.options.accessibility && e.changeSlide({
|
|
data: {
|
|
message: !0 === e.options.rtl ? "previous" : "next"
|
|
}
|
|
}))
|
|
}, e.prototype.lazyLoad = function() {
|
|
function e(e) {
|
|
i("img[data-lazy]", e).each(function() {
|
|
var e = i(this),
|
|
t = i(this).attr("data-lazy"),
|
|
o = i(this).attr("data-srcset"),
|
|
s = i(this).attr("data-sizes") || n.$slider.attr("data-sizes"),
|
|
r = document.createElement("img");
|
|
r.onload = function() {
|
|
e.animate({
|
|
opacity: 0
|
|
}, 100, function() {
|
|
o && (e.attr("srcset", o), s && e.attr("sizes", s)), e.attr("src", t).animate({
|
|
opacity: 1
|
|
}, 200, function() {
|
|
e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")
|
|
}), n.$slider.trigger("lazyLoaded", [n, e, t])
|
|
})
|
|
}, r.onerror = function() {
|
|
e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), n.$slider.trigger("lazyLoadError", [n, e, t])
|
|
}, r.src = t
|
|
})
|
|
}
|
|
var t, o, s, n = this;
|
|
if (!0 === n.options.centerMode ? !0 === n.options.infinite ? s = (o = n.currentSlide + (n.options.slidesToShow / 2 + 1)) + n.options.slidesToShow + 2 : (o = Math.max(0, n.currentSlide - (n.options.slidesToShow / 2 + 1)), s = n.options.slidesToShow / 2 + 1 + 2 + n.currentSlide) : (o = n.options.infinite ? n.options.slidesToShow + n.currentSlide : n.currentSlide, s = Math.ceil(o + n.options.slidesToShow), !0 === n.options.fade && (o > 0 && o--, s <= n.slideCount && s++)), t = n.$slider.find(".slick-slide").slice(o, s), "anticipated" === n.options.lazyLoad)
|
|
for (var r = o - 1, l = s, d = n.$slider.find(".slick-slide"), a = 0; a < n.options.slidesToScroll; a++) r < 0 && (r = n.slideCount - 1), t = (t = t.add(d.eq(r))).add(d.eq(l)), r--, l++;
|
|
e(t), n.slideCount <= n.options.slidesToShow ? e(n.$slider.find(".slick-slide")) : n.currentSlide >= n.slideCount - n.options.slidesToShow ? e(n.$slider.find(".slick-cloned").slice(0, n.options.slidesToShow)) : 0 === n.currentSlide && e(n.$slider.find(".slick-cloned").slice(-1 * n.options.slidesToShow))
|
|
}, e.prototype.loadSlider = function() {
|
|
var i = this;
|
|
i.setPosition(), i.$slideTrack.css({
|
|
opacity: 1
|
|
}), i.$slider.removeClass("slick-loading"), i.initUI(), "progressive" === i.options.lazyLoad && i.progressiveLazyLoad()
|
|
}, e.prototype.next = e.prototype.slickNext = function() {
|
|
this.changeSlide({
|
|
data: {
|
|
message: "next"
|
|
}
|
|
})
|
|
}, e.prototype.orientationChange = function() {
|
|
var i = this;
|
|
i.checkResponsive(), i.setPosition()
|
|
}, e.prototype.pause = e.prototype.slickPause = function() {
|
|
var i = this;
|
|
i.autoPlayClear(), i.paused = !0
|
|
}, e.prototype.play = e.prototype.slickPlay = function() {
|
|
var i = this;
|
|
i.autoPlay(), i.options.autoplay = !0, i.paused = !1, i.focussed = !1, i.interrupted = !1
|
|
}, e.prototype.postSlide = function(e) {
|
|
var t = this;
|
|
t.unslicked || (t.$slider.trigger("afterChange", [t, e]), t.animating = !1, t.slideCount > t.options.slidesToShow && t.setPosition(), t.swipeLeft = null, t.options.autoplay && t.autoPlay(), !0 === t.options.accessibility && (t.initADA(), t.options.focusOnChange && i(t.$slides.get(t.currentSlide)).attr("tabindex", 0).focus()))
|
|
}, e.prototype.prev = e.prototype.slickPrev = function() {
|
|
this.changeSlide({
|
|
data: {
|
|
message: "previous"
|
|
}
|
|
})
|
|
}, e.prototype.preventDefault = function(i) {
|
|
i.preventDefault()
|
|
}, e.prototype.progressiveLazyLoad = function(e) {
|
|
e = e || 1;
|
|
var t, o, s, n, r, l = this,
|
|
d = i("img[data-lazy]", l.$slider);
|
|
d.length ? (t = d.first(), o = t.attr("data-lazy"), s = t.attr("data-srcset"), n = t.attr("data-sizes") || l.$slider.attr("data-sizes"), (r = document.createElement("img")).onload = function() {
|
|
s && (t.attr("srcset", s), n && t.attr("sizes", n)), t.attr("src", o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"), !0 === l.options.adaptiveHeight && l.setPosition(), l.$slider.trigger("lazyLoaded", [l, t, o]), l.progressiveLazyLoad()
|
|
}, r.onerror = function() {
|
|
e < 3 ? setTimeout(function() {
|
|
l.progressiveLazyLoad(e + 1)
|
|
}, 500) : (t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), l.$slider.trigger("lazyLoadError", [l, t, o]), l.progressiveLazyLoad())
|
|
}, r.src = o) : l.$slider.trigger("allImagesLoaded", [l])
|
|
}, e.prototype.refresh = function(e) {
|
|
var t, o, s = this;
|
|
o = s.slideCount - s.options.slidesToShow, !s.options.infinite && s.currentSlide > o && (s.currentSlide = o), s.slideCount <= s.options.slidesToShow && (s.currentSlide = 0), t = s.currentSlide, s.destroy(!0), i.extend(s, s.initials, {
|
|
currentSlide: t
|
|
}), s.init(), e || s.changeSlide({
|
|
data: {
|
|
message: "index",
|
|
index: t
|
|
}
|
|
}, !1)
|
|
}, e.prototype.registerBreakpoints = function() {
|
|
var e, t, o, s = this,
|
|
n = s.options.responsive || null;
|
|
if ("array" === i.type(n) && n.length) {
|
|
s.respondTo = s.options.respondTo || "window";
|
|
for (e in n)
|
|
if (o = s.breakpoints.length - 1, n.hasOwnProperty(e)) {
|
|
for (t = n[e].breakpoint; o >= 0;) s.breakpoints[o] && s.breakpoints[o] === t && s.breakpoints.splice(o, 1), o--;
|
|
s.breakpoints.push(t), s.breakpointSettings[t] = n[e].settings
|
|
}
|
|
s.breakpoints.sort(function(i, e) {
|
|
return s.options.mobileFirst ? i - e : e - i
|
|
})
|
|
}
|
|
}, e.prototype.reinit = function() {
|
|
var e = this;
|
|
e.$slides = e.$slideTrack.children(e.options.slide).addClass("slick-slide"), e.slideCount = e.$slides.length, e.currentSlide >= e.slideCount && 0 !== e.currentSlide && (e.currentSlide = e.currentSlide - e.options.slidesToScroll), e.slideCount <= e.options.slidesToShow && (e.currentSlide = 0), e.registerBreakpoints(), e.setProps(), e.setupInfinite(), e.buildArrows(), e.updateArrows(), e.initArrowEvents(), e.buildDots(), e.updateDots(), e.initDotEvents(), e.cleanUpSlideEvents(), e.initSlideEvents(), e.checkResponsive(!1, !0), !0 === e.options.focusOnSelect && i(e.$slideTrack).children().on("click.slick", e.selectHandler), e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0), e.setPosition(), e.focusHandler(), e.paused = !e.options.autoplay, e.autoPlay(), e.$slider.trigger("reInit", [e])
|
|
}, e.prototype.resize = function() {
|
|
var e = this;
|
|
i(window).width() !== e.windowWidth && (clearTimeout(e.windowDelay), e.windowDelay = window.setTimeout(function() {
|
|
e.windowWidth = i(window).width(), e.checkResponsive(), e.unslicked || e.setPosition()
|
|
}, 50))
|
|
}, e.prototype.removeSlide = e.prototype.slickRemove = function(i, e, t) {
|
|
var o = this;
|
|
if (i = "boolean" == typeof i ? !0 === (e = i) ? 0 : o.slideCount - 1 : !0 === e ? --i : i, o.slideCount < 1 || i < 0 || i > o.slideCount - 1) return !1;
|
|
o.unload(), !0 === t ? o.$slideTrack.children().remove() : o.$slideTrack.children(this.options.slide).eq(i).remove(), o.$slides = o.$slideTrack.children(this.options.slide), o.$slideTrack.children(this.options.slide).detach(), o.$slideTrack.append(o.$slides), o.$slidesCache = o.$slides, o.reinit()
|
|
}, e.prototype.setCSS = function(i) {
|
|
var e, t, o = this,
|
|
s = {};
|
|
!0 === o.options.rtl && (i = -i), e = "left" == o.positionProp ? Math.ceil(i) + "px" : "0px", t = "top" == o.positionProp ? Math.ceil(i) + "px" : "0px", s[o.positionProp] = i, !1 === o.transformsEnabled ? o.$slideTrack.css(s) : (s = {}, !1 === o.cssTransitions ? (s[o.animType] = "translate(" + e + ", " + t + ")", o.$slideTrack.css(s)) : (s[o.animType] = "translate3d(" + e + ", " + t + ", 0px)", o.$slideTrack.css(s)))
|
|
}, e.prototype.setDimensions = function() {
|
|
var i = this;
|
|
!1 === i.options.vertical ? !0 === i.options.centerMode && i.$list.css({
|
|
padding: "0px " + i.options.centerPadding
|
|
}) : (i.$list.height(i.$slides.first().outerHeight(!0) * i.options.slidesToShow), !0 === i.options.centerMode && i.$list.css({
|
|
padding: i.options.centerPadding + " 0px"
|
|
})), i.listWidth = i.$list.width(), i.listHeight = i.$list.height(), !1 === i.options.vertical && !1 === i.options.variableWidth ? (i.slideWidth = Math.ceil(i.listWidth / i.options.slidesToShow), i.$slideTrack.width(Math.ceil(i.slideWidth * i.$slideTrack.children(".slick-slide").length))) : !0 === i.options.variableWidth ? i.$slideTrack.width(5e3 * i.slideCount) : (i.slideWidth = Math.ceil(i.listWidth), i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0) * i.$slideTrack.children(".slick-slide").length)));
|
|
var e = i.$slides.first().outerWidth(!0) - i.$slides.first().width();
|
|
!1 === i.options.variableWidth && i.$slideTrack.children(".slick-slide").width(i.slideWidth - e)
|
|
}, e.prototype.setFade = function() {
|
|
var e, t = this;
|
|
t.$slides.each(function(o, s) {
|
|
e = t.slideWidth * o * -1, !0 === t.options.rtl ? i(s).css({
|
|
position: "relative",
|
|
right: e,
|
|
top: 0,
|
|
zIndex: t.options.zIndex - 2,
|
|
opacity: 0
|
|
}) : i(s).css({
|
|
position: "relative",
|
|
left: e,
|
|
top: 0,
|
|
zIndex: t.options.zIndex - 2,
|
|
opacity: 0
|
|
})
|
|
}), t.$slides.eq(t.currentSlide).css({
|
|
zIndex: t.options.zIndex - 1,
|
|
opacity: 1
|
|
})
|
|
}, e.prototype.setHeight = function() {
|
|
var i = this;
|
|
if (1 === i.options.slidesToShow && !0 === i.options.adaptiveHeight && !1 === i.options.vertical) {
|
|
var e = i.$slides.eq(i.currentSlide).outerHeight(!0);
|
|
i.$list.css("height", e)
|
|
}
|
|
}, e.prototype.setOption = e.prototype.slickSetOption = function() {
|
|
var e, t, o, s, n, r = this,
|
|
l = !1;
|
|
if ("object" === i.type(arguments[0]) ? (o = arguments[0], l = arguments[1], n = "multiple") : "string" === i.type(arguments[0]) && (o = arguments[0], s = arguments[1], l = arguments[2], "responsive" === arguments[0] && "array" === i.type(arguments[1]) ? n = "responsive" : void 0 !== arguments[1] && (n = "single")), "single" === n) r.options[o] = s;
|
|
else if ("multiple" === n) i.each(o, function(i, e) {
|
|
r.options[i] = e
|
|
});
|
|
else if ("responsive" === n)
|
|
for (t in s)
|
|
if ("array" !== i.type(r.options.responsive)) r.options.responsive = [s[t]];
|
|
else {
|
|
for (e = r.options.responsive.length - 1; e >= 0;) r.options.responsive[e].breakpoint === s[t].breakpoint && r.options.responsive.splice(e, 1), e--;
|
|
r.options.responsive.push(s[t])
|
|
}
|
|
l && (r.unload(), r.reinit())
|
|
}, e.prototype.setPosition = function() {
|
|
var i = this;
|
|
i.setDimensions(), i.setHeight(), !1 === i.options.fade ? i.setCSS(i.getLeft(i.currentSlide)) : i.setFade(), i.$slider.trigger("setPosition", [i])
|
|
}, e.prototype.setProps = function() {
|
|
var i = this,
|
|
e = document.body.style;
|
|
i.positionProp = !0 === i.options.vertical ? "top" : "left", "top" === i.positionProp ? i.$slider.addClass("slick-vertical") : i.$slider.removeClass("slick-vertical"), void 0 === e.WebkitTransition && void 0 === e.MozTransition && void 0 === e.msTransition || !0 === i.options.useCSS && (i.cssTransitions = !0), i.options.fade && ("number" == typeof i.options.zIndex ? i.options.zIndex < 3 && (i.options.zIndex = 3) : i.options.zIndex = i.defaults.zIndex), void 0 !== e.OTransform && (i.animType = "OTransform", i.transformType = "-o-transform", i.transitionType = "OTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)), void 0 !== e.MozTransform && (i.animType = "MozTransform", i.transformType = "-moz-transform", i.transitionType = "MozTransition", void 0 === e.perspectiveProperty && void 0 === e.MozPerspective && (i.animType = !1)), void 0 !== e.webkitTransform && (i.animType = "webkitTransform", i.transformType = "-webkit-transform", i.transitionType = "webkitTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)), void 0 !== e.msTransform && (i.animType = "msTransform", i.transformType = "-ms-transform", i.transitionType = "msTransition", void 0 === e.msTransform && (i.animType = !1)), void 0 !== e.transform && !1 !== i.animType && (i.animType = "transform", i.transformType = "transform", i.transitionType = "transition"), i.transformsEnabled = i.options.useTransform && null !== i.animType && !1 !== i.animType
|
|
}, e.prototype.setSlideClasses = function(i) {
|
|
var e, t, o, s, n = this;
|
|
if (t = n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true"), n.$slides.eq(i).addClass("slick-current"), !0 === n.options.centerMode) {
|
|
var r = n.options.slidesToShow % 2 == 0 ? 1 : 0;
|
|
e = Math.floor(n.options.slidesToShow / 2), !0 === n.options.infinite && (i >= e && i <= n.slideCount - 1 - e ? n.$slides.slice(i - e + r, i + e + 1).addClass("slick-active").attr("aria-hidden", "false") : (o = n.options.slidesToShow + i, t.slice(o - e + 1 + r, o + e + 2).addClass("slick-active").attr("aria-hidden", "false")), 0 === i ? t.eq(t.length - 1 - n.options.slidesToShow).addClass("slick-center") : i === n.slideCount - 1 && t.eq(n.options.slidesToShow).addClass("slick-center")), n.$slides.eq(i).addClass("slick-center")
|
|
} else i >= 0 && i <= n.slideCount - n.options.slidesToShow ? n.$slides.slice(i, i + n.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") : t.length <= n.options.slidesToShow ? t.addClass("slick-active").attr("aria-hidden", "false") : (s = n.slideCount % n.options.slidesToShow, o = !0 === n.options.infinite ? n.options.slidesToShow + i : i, n.options.slidesToShow == n.options.slidesToScroll && n.slideCount - i < n.options.slidesToShow ? t.slice(o - (n.options.slidesToShow - s), o + s).addClass("slick-active").attr("aria-hidden", "false") : t.slice(o, o + n.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false"));
|
|
"ondemand" !== n.options.lazyLoad && "anticipated" !== n.options.lazyLoad || n.lazyLoad()
|
|
}, e.prototype.setupInfinite = function() {
|
|
var e, t, o, s = this;
|
|
if (!0 === s.options.fade && (s.options.centerMode = !1), !0 === s.options.infinite && !1 === s.options.fade && (t = null, s.slideCount > s.options.slidesToShow)) {
|
|
for (o = !0 === s.options.centerMode ? s.options.slidesToShow + 1 : s.options.slidesToShow, e = s.slideCount; e > s.slideCount - o; e -= 1) t = e - 1, i(s.$slides[t]).clone(!0).attr("id", "").attr("data-slick-index", t - s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");
|
|
for (e = 0; e < o + s.slideCount; e += 1) t = e, i(s.$slides[t]).clone(!0).attr("id", "").attr("data-slick-index", t + s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");
|
|
s.$slideTrack.find(".slick-cloned").find("[id]").each(function() {
|
|
i(this).attr("id", "")
|
|
})
|
|
}
|
|
}, e.prototype.interrupt = function(i) {
|
|
var e = this;
|
|
i || e.autoPlay(), e.interrupted = i
|
|
}, e.prototype.selectHandler = function(e) {
|
|
var t = this,
|
|
o = i(e.target).is(".slick-slide") ? i(e.target) : i(e.target).parents(".slick-slide"),
|
|
s = parseInt(o.attr("data-slick-index"));
|
|
s || (s = 0), t.slideCount <= t.options.slidesToShow ? t.slideHandler(s, !1, !0) : t.slideHandler(s)
|
|
}, e.prototype.slideHandler = function(i, e, t) {
|
|
var o, s, n, r, l, d = null,
|
|
a = this;
|
|
if (e = e || !1, !(!0 === a.animating && !0 === a.options.waitForAnimate || !0 === a.options.fade && a.currentSlide === i))
|
|
if (!1 === e && a.asNavFor(i), o = i, d = a.getLeft(o), r = a.getLeft(a.currentSlide), a.currentLeft = null === a.swipeLeft ? r : a.swipeLeft, !1 === a.options.infinite && !1 === a.options.centerMode && (i < 0 || i > a.getDotCount() * a.options.slidesToScroll)) !1 === a.options.fade && (o = a.currentSlide, !0 !== t ? a.animateSlide(r, function() {
|
|
a.postSlide(o)
|
|
}) : a.postSlide(o));
|
|
else if (!1 === a.options.infinite && !0 === a.options.centerMode && (i < 0 || i > a.slideCount - a.options.slidesToScroll)) !1 === a.options.fade && (o = a.currentSlide, !0 !== t ? a.animateSlide(r, function() {
|
|
a.postSlide(o)
|
|
}) : a.postSlide(o));
|
|
else {
|
|
if (a.options.autoplay && clearInterval(a.autoPlayTimer), s = o < 0 ? a.slideCount % a.options.slidesToScroll != 0 ? a.slideCount - a.slideCount % a.options.slidesToScroll : a.slideCount + o : o >= a.slideCount ? a.slideCount % a.options.slidesToScroll != 0 ? 0 : o - a.slideCount : o, a.animating = !0, a.$slider.trigger("beforeChange", [a, a.currentSlide, s]), n = a.currentSlide, a.currentSlide = s, a.setSlideClasses(a.currentSlide), a.options.asNavFor && (l = (l = a.getNavTarget()).slick("getSlick")).slideCount <= l.options.slidesToShow && l.setSlideClasses(a.currentSlide), a.updateDots(), a.updateArrows(), !0 === a.options.fade) return !0 !== t ? (a.fadeSlideOut(n), a.fadeSlide(s, function() {
|
|
a.postSlide(s)
|
|
})) : a.postSlide(s), void a.animateHeight();
|
|
!0 !== t ? a.animateSlide(d, function() {
|
|
a.postSlide(s)
|
|
}) : a.postSlide(s)
|
|
}
|
|
}, e.prototype.startLoad = function() {
|
|
var i = this;
|
|
!0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.hide(), i.$nextArrow.hide()), !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.hide(), i.$slider.addClass("slick-loading")
|
|
}, e.prototype.swipeDirection = function() {
|
|
var i, e, t, o, s = this;
|
|
return i = s.touchObject.startX - s.touchObject.curX, e = s.touchObject.startY - s.touchObject.curY, t = Math.atan2(e, i), (o = Math.round(180 * t / Math.PI)) < 0 && (o = 360 - Math.abs(o)), o <= 45 && o >= 0 ? !1 === s.options.rtl ? "left" : "right" : o <= 360 && o >= 315 ? !1 === s.options.rtl ? "left" : "right" : o >= 135 && o <= 225 ? !1 === s.options.rtl ? "right" : "left" : !0 === s.options.verticalSwiping ? o >= 35 && o <= 135 ? "down" : "up" : "vertical"
|
|
}, e.prototype.swipeEnd = function(i) {
|
|
var e, t, o = this;
|
|
if (o.dragging = !1, o.swiping = !1, o.scrolling) return o.scrolling = !1, !1;
|
|
if (o.interrupted = !1, o.shouldClick = !(o.touchObject.swipeLength > 10), void 0 === o.touchObject.curX) return !1;
|
|
if (!0 === o.touchObject.edgeHit && o.$slider.trigger("edge", [o, o.swipeDirection()]), o.touchObject.swipeLength >= o.touchObject.minSwipe) {
|
|
switch (t = o.swipeDirection()) {
|
|
case "left":
|
|
case "down":
|
|
e = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide + o.getSlideCount()) : o.currentSlide + o.getSlideCount(), o.currentDirection = 0;
|
|
break;
|
|
case "right":
|
|
case "up":
|
|
e = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide - o.getSlideCount()) : o.currentSlide - o.getSlideCount(), o.currentDirection = 1
|
|
}
|
|
"vertical" != t && (o.slideHandler(e), o.touchObject = {}, o.$slider.trigger("swipe", [o, t]))
|
|
} else o.touchObject.startX !== o.touchObject.curX && (o.slideHandler(o.currentSlide), o.touchObject = {})
|
|
}, e.prototype.swipeHandler = function(i) {
|
|
var e = this;
|
|
if (!(!1 === e.options.swipe || "ontouchend" in document && !1 === e.options.swipe || !1 === e.options.draggable && -1 !== i.type.indexOf("mouse"))) switch (e.touchObject.fingerCount = i.originalEvent && void 0 !== i.originalEvent.touches ? i.originalEvent.touches.length : 1, e.touchObject.minSwipe = e.listWidth / e.options.touchThreshold, !0 === e.options.verticalSwiping && (e.touchObject.minSwipe = e.listHeight / e.options.touchThreshold), i.data.action) {
|
|
case "start":
|
|
e.swipeStart(i);
|
|
break;
|
|
case "move":
|
|
e.swipeMove(i);
|
|
break;
|
|
case "end":
|
|
e.swipeEnd(i)
|
|
}
|
|
}, e.prototype.swipeMove = function(i) {
|
|
var e, t, o, s, n, r, l = this;
|
|
return n = void 0 !== i.originalEvent ? i.originalEvent.touches : null, !(!l.dragging || l.scrolling || n && 1 !== n.length) && (e = l.getLeft(l.currentSlide), l.touchObject.curX = void 0 !== n ? n[0].pageX : i.clientX, l.touchObject.curY = void 0 !== n ? n[0].pageY : i.clientY, l.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(l.touchObject.curX - l.touchObject.startX, 2))), r = Math.round(Math.sqrt(Math.pow(l.touchObject.curY - l.touchObject.startY, 2))), !l.options.verticalSwiping && !l.swiping && r > 4 ? (l.scrolling = !0, !1) : (!0 === l.options.verticalSwiping && (l.touchObject.swipeLength = r), t = l.swipeDirection(), void 0 !== i.originalEvent && l.touchObject.swipeLength > 4 && (l.swiping = !0, i.preventDefault()), s = (!1 === l.options.rtl ? 1 : -1) * (l.touchObject.curX > l.touchObject.startX ? 1 : -1), !0 === l.options.verticalSwiping && (s = l.touchObject.curY > l.touchObject.startY ? 1 : -1), o = l.touchObject.swipeLength, l.touchObject.edgeHit = !1, !1 === l.options.infinite && (0 === l.currentSlide && "right" === t || l.currentSlide >= l.getDotCount() && "left" === t) && (o = l.touchObject.swipeLength * l.options.edgeFriction, l.touchObject.edgeHit = !0), !1 === l.options.vertical ? l.swipeLeft = e + o * s : l.swipeLeft = e + o * (l.$list.height() / l.listWidth) * s, !0 === l.options.verticalSwiping && (l.swipeLeft = e + o * s), !0 !== l.options.fade && !1 !== l.options.touchMove && (!0 === l.animating ? (l.swipeLeft = null, !1) : void l.setCSS(l.swipeLeft))))
|
|
}, e.prototype.swipeStart = function(i) {
|
|
var e, t = this;
|
|
if (t.interrupted = !0, 1 !== t.touchObject.fingerCount || t.slideCount <= t.options.slidesToShow) return t.touchObject = {}, !1;
|
|
void 0 !== i.originalEvent && void 0 !== i.originalEvent.touches && (e = i.originalEvent.touches[0]), t.touchObject.startX = t.touchObject.curX = void 0 !== e ? e.pageX : i.clientX, t.touchObject.startY = t.touchObject.curY = void 0 !== e ? e.pageY : i.clientY, t.dragging = !0
|
|
}, e.prototype.unfilterSlides = e.prototype.slickUnfilter = function() {
|
|
var i = this;
|
|
null !== i.$slidesCache && (i.unload(), i.$slideTrack.children(this.options.slide).detach(), i.$slidesCache.appendTo(i.$slideTrack), i.reinit())
|
|
}, e.prototype.unload = function() {
|
|
var e = this;
|
|
i(".slick-cloned", e.$slider).remove(), e.$dots && e.$dots.remove(), e.$prevArrow && e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.remove(), e.$nextArrow && e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.remove(), e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", "")
|
|
}, e.prototype.unslick = function(i) {
|
|
var e = this;
|
|
e.$slider.trigger("unslick", [e, i]), e.destroy()
|
|
}, e.prototype.updateArrows = function() {
|
|
var i = this;
|
|
Math.floor(i.options.slidesToShow / 2), !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && !i.options.infinite && (i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), 0 === i.currentSlide ? (i.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : i.currentSlide >= i.slideCount - i.options.slidesToShow && !1 === i.options.centerMode ? (i.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : i.currentSlide >= i.slideCount - 1 && !0 === i.options.centerMode && (i.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")))
|
|
}, e.prototype.updateDots = function() {
|
|
var i = this;
|
|
null !== i.$dots && (i.$dots.find("li").removeClass("slick-active").end(), i.$dots.find("li").eq(Math.floor(i.currentSlide / i.options.slidesToScroll)).addClass("slick-active"))
|
|
}, e.prototype.visibility = function() {
|
|
var i = this;
|
|
i.options.autoplay && (document[i.hidden] ? i.interrupted = !0 : i.interrupted = !1)
|
|
}, i.fn.slick = function() {
|
|
var i, t, o = this,
|
|
s = arguments[0],
|
|
n = Array.prototype.slice.call(arguments, 1),
|
|
r = o.length;
|
|
for (i = 0; i < r; i++)
|
|
if ("object" == typeof s || void 0 === s ? o[i].slick = new e(o[i], s) : t = o[i].slick[s].apply(o[i].slick, n), void 0 !== t) return t;
|
|
return o
|
|
}
|
|
});
|
|
|
|
|
|
/*!
|
|
* imagesLoaded PACKAGED v4.1.4
|
|
* JavaScript is all like "You images are done yet or what?"
|
|
* MIT License
|
|
*/
|
|
! function(e, t) {
|
|
"function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", t) : "object" == typeof module && module.exports ? module.exports = t() : e.EvEmitter = t()
|
|
}("undefined" != typeof window ? window : this, function() {
|
|
function e() {}
|
|
var t = e.prototype;
|
|
return t.on = function(e, t) {
|
|
if (e && t) {
|
|
var i = this._events = this._events || {},
|
|
n = i[e] = i[e] || [];
|
|
return n.indexOf(t) == -1 && n.push(t), this
|
|
}
|
|
}, t.once = function(e, t) {
|
|
if (e && t) {
|
|
this.on(e, t);
|
|
var i = this._onceEvents = this._onceEvents || {},
|
|
n = i[e] = i[e] || {};
|
|
return n[t] = !0, this
|
|
}
|
|
}, t.off = function(e, t) {
|
|
var i = this._events && this._events[e];
|
|
if (i && i.length) {
|
|
var n = i.indexOf(t);
|
|
return n != -1 && i.splice(n, 1), this
|
|
}
|
|
}, t.emitEvent = function(e, t) {
|
|
var i = this._events && this._events[e];
|
|
if (i && i.length) {
|
|
i = i.slice(0), t = t || [];
|
|
for (var n = this._onceEvents && this._onceEvents[e], o = 0; o < i.length; o++) {
|
|
var r = i[o],
|
|
s = n && n[r];
|
|
s && (this.off(e, r), delete n[r]), r.apply(this, t)
|
|
}
|
|
return this
|
|
}
|
|
}, t.allOff = function() {
|
|
delete this._events, delete this._onceEvents
|
|
}, e
|
|
}),
|
|
function(e, t) {
|
|
"use strict";
|
|
"function" == typeof define && define.amd ? define(["ev-emitter/ev-emitter"], function(i) {
|
|
return t(e, i)
|
|
}) : "object" == typeof module && module.exports ? module.exports = t(e, require("ev-emitter")) : e.imagesLoaded = t(e, e.EvEmitter)
|
|
}("undefined" != typeof window ? window : this, function(e, t) {
|
|
function i(e, t) {
|
|
for (var i in t) e[i] = t[i];
|
|
return e
|
|
}
|
|
|
|
function n(e) {
|
|
if (Array.isArray(e)) return e;
|
|
var t = "object" == typeof e && "number" == typeof e.length;
|
|
return t ? d.call(e) : [e]
|
|
}
|
|
|
|
function o(e, t, r) {
|
|
if (!(this instanceof o)) return new o(e, t, r);
|
|
var s = e;
|
|
return "string" == typeof e && (s = document.querySelectorAll(e)), s ? (this.elements = n(s), this.options = i({}, this.options), "function" == typeof t ? r = t : i(this.options, t), r && this.on("always", r), this.getImages(), h && (this.jqDeferred = new h.Deferred), void setTimeout(this.check.bind(this))) : void a.error("Bad element for imagesLoaded " + (s || e))
|
|
}
|
|
|
|
function r(e) {
|
|
this.img = e
|
|
}
|
|
|
|
function s(e, t) {
|
|
this.url = e, this.element = t, this.img = new Image
|
|
}
|
|
var h = e.jQuery,
|
|
a = e.console,
|
|
d = Array.prototype.slice;
|
|
o.prototype = Object.create(t.prototype), o.prototype.options = {}, o.prototype.getImages = function() {
|
|
this.images = [], this.elements.forEach(this.addElementImages, this)
|
|
}, o.prototype.addElementImages = function(e) {
|
|
"IMG" == e.nodeName && this.addImage(e), this.options.background === !0 && this.addElementBackgroundImages(e);
|
|
var t = e.nodeType;
|
|
if (t && u[t]) {
|
|
for (var i = e.querySelectorAll("img"), n = 0; n < i.length; n++) {
|
|
var o = i[n];
|
|
this.addImage(o)
|
|
}
|
|
if ("string" == typeof this.options.background) {
|
|
var r = e.querySelectorAll(this.options.background);
|
|
for (n = 0; n < r.length; n++) {
|
|
var s = r[n];
|
|
this.addElementBackgroundImages(s)
|
|
}
|
|
}
|
|
}
|
|
};
|
|
var u = {
|
|
1: !0,
|
|
9: !0,
|
|
11: !0
|
|
};
|
|
return o.prototype.addElementBackgroundImages = function(e) {
|
|
var t = getComputedStyle(e);
|
|
if (t)
|
|
for (var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(t.backgroundImage); null !== n;) {
|
|
var o = n && n[2];
|
|
o && this.addBackground(o, e), n = i.exec(t.backgroundImage)
|
|
}
|
|
}, o.prototype.addImage = function(e) {
|
|
var t = new r(e);
|
|
this.images.push(t)
|
|
}, o.prototype.addBackground = function(e, t) {
|
|
var i = new s(e, t);
|
|
this.images.push(i)
|
|
}, o.prototype.check = function() {
|
|
function e(e, i, n) {
|
|
setTimeout(function() {
|
|
t.progress(e, i, n)
|
|
})
|
|
}
|
|
var t = this;
|
|
return this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? void this.images.forEach(function(t) {
|
|
t.once("progress", e), t.check()
|
|
}) : void this.complete()
|
|
}, o.prototype.progress = function(e, t, i) {
|
|
this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded, this.emitEvent("progress", [this, e, t]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, e), this.progressedCount == this.images.length && this.complete(), this.options.debug && a && a.log("progress: " + i, e, t)
|
|
}, o.prototype.complete = function() {
|
|
var e = this.hasAnyBroken ? "fail" : "done";
|
|
if (this.isComplete = !0, this.emitEvent(e, [this]), this.emitEvent("always", [this]), this.jqDeferred) {
|
|
var t = this.hasAnyBroken ? "reject" : "resolve";
|
|
this.jqDeferred[t](this)
|
|
}
|
|
}, r.prototype = Object.create(t.prototype), r.prototype.check = function() {
|
|
var e = this.getIsImageComplete();
|
|
return e ? void this.confirm(0 !== this.img.naturalWidth, "naturalWidth") : (this.proxyImage = new Image, this.proxyImage.addEventListener("load", this), this.proxyImage.addEventListener("error", this), this.img.addEventListener("load", this), this.img.addEventListener("error", this), void(this.proxyImage.src = this.img.src))
|
|
}, r.prototype.getIsImageComplete = function() {
|
|
return this.img.complete && this.img.naturalWidth
|
|
}, r.prototype.confirm = function(e, t) {
|
|
this.isLoaded = e, this.emitEvent("progress", [this, this.img, t])
|
|
}, r.prototype.handleEvent = function(e) {
|
|
var t = "on" + e.type;
|
|
this[t] && this[t](e)
|
|
}, r.prototype.onload = function() {
|
|
this.confirm(!0, "onload"), this.unbindEvents()
|
|
}, r.prototype.onerror = function() {
|
|
this.confirm(!1, "onerror"), this.unbindEvents()
|
|
}, r.prototype.unbindEvents = function() {
|
|
this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
|
|
}, s.prototype = Object.create(r.prototype), s.prototype.check = function() {
|
|
this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url;
|
|
var e = this.getIsImageComplete();
|
|
e && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents())
|
|
}, s.prototype.unbindEvents = function() {
|
|
this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
|
|
}, s.prototype.confirm = function(e, t) {
|
|
this.isLoaded = e, this.emitEvent("progress", [this, this.element, t])
|
|
}, o.makeJQueryPlugin = function(t) {
|
|
t = t || e.jQuery, t && (h = t, h.fn.imagesLoaded = function(e, t) {
|
|
var i = new o(this, e, t);
|
|
return i.jqDeferred.promise(h(this))
|
|
})
|
|
}, o.makeJQueryPlugin(), o
|
|
});
|
|
|
|
|
|
/*!
|
|
* Isotope PACKAGED v3.0.6
|
|
*
|
|
* Licensed GPLv3 for open source use
|
|
* or Isotope Commercial License for commercial use
|
|
*
|
|
* https://isotope.metafizzy.co
|
|
* Copyright 2010-2018 Metafizzy
|
|
*/
|
|
! function(t, e) {
|
|
"function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function(i) {
|
|
return e(t, i)
|
|
}) : "object" == typeof module && module.exports ? module.exports = e(t, require("jquery")) : t.jQueryBridget = e(t, t.jQuery)
|
|
}(window, function(t, e) {
|
|
"use strict";
|
|
|
|
function i(i, s, a) {
|
|
function u(t, e, o) {
|
|
var n, s = "$()." + i + '("' + e + '")';
|
|
return t.each(function(t, u) {
|
|
var h = a.data(u, i);
|
|
if (!h) return void r(i + " not initialized. Cannot call methods, i.e. " + s);
|
|
var d = h[e];
|
|
if (!d || "_" == e.charAt(0)) return void r(s + " is not a valid method");
|
|
var l = d.apply(h, o);
|
|
n = void 0 === n ? l : n
|
|
}), void 0 !== n ? n : t
|
|
}
|
|
|
|
function h(t, e) {
|
|
t.each(function(t, o) {
|
|
var n = a.data(o, i);
|
|
n ? (n.option(e), n._init()) : (n = new s(o, e), a.data(o, i, n))
|
|
})
|
|
}
|
|
a = a || e || t.jQuery, a && (s.prototype.option || (s.prototype.option = function(t) {
|
|
a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t))
|
|
}), a.fn[i] = function(t) {
|
|
if ("string" == typeof t) {
|
|
var e = n.call(arguments, 1);
|
|
return u(this, t, e)
|
|
}
|
|
return h(this, t), this
|
|
}, o(a))
|
|
}
|
|
|
|
function o(t) {
|
|
!t || t && t.bridget || (t.bridget = i)
|
|
}
|
|
var n = Array.prototype.slice,
|
|
s = t.console,
|
|
r = "undefined" == typeof s ? function() {} : function(t) {
|
|
s.error(t)
|
|
};
|
|
return o(e || t.jQuery), i
|
|
}),
|
|
function(t, e) {
|
|
"function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e()
|
|
}("undefined" != typeof window ? window : this, function() {
|
|
function t() {}
|
|
var e = t.prototype;
|
|
return e.on = function(t, e) {
|
|
if (t && e) {
|
|
var i = this._events = this._events || {},
|
|
o = i[t] = i[t] || [];
|
|
return o.indexOf(e) == -1 && o.push(e), this
|
|
}
|
|
}, e.once = function(t, e) {
|
|
if (t && e) {
|
|
this.on(t, e);
|
|
var i = this._onceEvents = this._onceEvents || {},
|
|
o = i[t] = i[t] || {};
|
|
return o[e] = !0, this
|
|
}
|
|
}, e.off = function(t, e) {
|
|
var i = this._events && this._events[t];
|
|
if (i && i.length) {
|
|
var o = i.indexOf(e);
|
|
return o != -1 && i.splice(o, 1), this
|
|
}
|
|
}, e.emitEvent = function(t, e) {
|
|
var i = this._events && this._events[t];
|
|
if (i && i.length) {
|
|
i = i.slice(0), e = e || [];
|
|
for (var o = this._onceEvents && this._onceEvents[t], n = 0; n < i.length; n++) {
|
|
var s = i[n],
|
|
r = o && o[s];
|
|
r && (this.off(t, s), delete o[s]), s.apply(this, e)
|
|
}
|
|
return this
|
|
}
|
|
}, e.allOff = function() {
|
|
delete this._events, delete this._onceEvents
|
|
}, t
|
|
}),
|
|
function(t, e) {
|
|
"function" == typeof define && define.amd ? define("get-size/get-size", e) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e()
|
|
}(window, function() {
|
|
"use strict";
|
|
|
|
function t(t) {
|
|
var e = parseFloat(t),
|
|
i = t.indexOf("%") == -1 && !isNaN(e);
|
|
return i && e
|
|
}
|
|
|
|
function e() {}
|
|
|
|
function i() {
|
|
for (var t = {
|
|
width: 0,
|
|
height: 0,
|
|
innerWidth: 0,
|
|
innerHeight: 0,
|
|
outerWidth: 0,
|
|
outerHeight: 0
|
|
}, e = 0; e < h; e++) {
|
|
var i = u[e];
|
|
t[i] = 0
|
|
}
|
|
return t
|
|
}
|
|
|
|
function o(t) {
|
|
var e = getComputedStyle(t);
|
|
return e || a("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"), e
|
|
}
|
|
|
|
function n() {
|
|
if (!d) {
|
|
d = !0;
|
|
var e = document.createElement("div");
|
|
e.style.width = "200px", e.style.padding = "1px 2px 3px 4px", e.style.borderStyle = "solid", e.style.borderWidth = "1px 2px 3px 4px", e.style.boxSizing = "border-box";
|
|
var i = document.body || document.documentElement;
|
|
i.appendChild(e);
|
|
var n = o(e);
|
|
r = 200 == Math.round(t(n.width)), s.isBoxSizeOuter = r, i.removeChild(e)
|
|
}
|
|
}
|
|
|
|
function s(e) {
|
|
if (n(), "string" == typeof e && (e = document.querySelector(e)), e && "object" == typeof e && e.nodeType) {
|
|
var s = o(e);
|
|
if ("none" == s.display) return i();
|
|
var a = {};
|
|
a.width = e.offsetWidth, a.height = e.offsetHeight;
|
|
for (var d = a.isBorderBox = "border-box" == s.boxSizing, l = 0; l < h; l++) {
|
|
var f = u[l],
|
|
c = s[f],
|
|
m = parseFloat(c);
|
|
a[f] = isNaN(m) ? 0 : m
|
|
}
|
|
var p = a.paddingLeft + a.paddingRight,
|
|
y = a.paddingTop + a.paddingBottom,
|
|
g = a.marginLeft + a.marginRight,
|
|
v = a.marginTop + a.marginBottom,
|
|
_ = a.borderLeftWidth + a.borderRightWidth,
|
|
z = a.borderTopWidth + a.borderBottomWidth,
|
|
I = d && r,
|
|
x = t(s.width);
|
|
x !== !1 && (a.width = x + (I ? 0 : p + _));
|
|
var S = t(s.height);
|
|
return S !== !1 && (a.height = S + (I ? 0 : y + z)), a.innerWidth = a.width - (p + _), a.innerHeight = a.height - (y + z), a.outerWidth = a.width + g, a.outerHeight = a.height + v, a
|
|
}
|
|
}
|
|
var r, a = "undefined" == typeof console ? e : function(t) {
|
|
console.error(t)
|
|
},
|
|
u = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"],
|
|
h = u.length,
|
|
d = !1;
|
|
return s
|
|
}),
|
|
function(t, e) {
|
|
"use strict";
|
|
"function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e()
|
|
}(window, function() {
|
|
"use strict";
|
|
var t = function() {
|
|
var t = window.Element.prototype;
|
|
if (t.matches) return "matches";
|
|
if (t.matchesSelector) return "matchesSelector";
|
|
for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) {
|
|
var o = e[i],
|
|
n = o + "MatchesSelector";
|
|
if (t[n]) return n
|
|
}
|
|
}();
|
|
return function(e, i) {
|
|
return e[t](i)
|
|
}
|
|
}),
|
|
function(t, e) {
|
|
"function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function(i) {
|
|
return e(t, i)
|
|
}) : "object" == typeof module && module.exports ? module.exports = e(t, require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.matchesSelector)
|
|
}(window, function(t, e) {
|
|
var i = {};
|
|
i.extend = function(t, e) {
|
|
for (var i in e) t[i] = e[i];
|
|
return t
|
|
}, i.modulo = function(t, e) {
|
|
return (t % e + e) % e
|
|
};
|
|
var o = Array.prototype.slice;
|
|
i.makeArray = function(t) {
|
|
if (Array.isArray(t)) return t;
|
|
if (null === t || void 0 === t) return [];
|
|
var e = "object" == typeof t && "number" == typeof t.length;
|
|
return e ? o.call(t) : [t]
|
|
}, i.removeFrom = function(t, e) {
|
|
var i = t.indexOf(e);
|
|
i != -1 && t.splice(i, 1)
|
|
}, i.getParent = function(t, i) {
|
|
for (; t.parentNode && t != document.body;)
|
|
if (t = t.parentNode, e(t, i)) return t
|
|
}, i.getQueryElement = function(t) {
|
|
return "string" == typeof t ? document.querySelector(t) : t
|
|
}, i.handleEvent = function(t) {
|
|
var e = "on" + t.type;
|
|
this[e] && this[e](t)
|
|
}, i.filterFindElements = function(t, o) {
|
|
t = i.makeArray(t);
|
|
var n = [];
|
|
return t.forEach(function(t) {
|
|
if (t instanceof HTMLElement) {
|
|
if (!o) return void n.push(t);
|
|
e(t, o) && n.push(t);
|
|
for (var i = t.querySelectorAll(o), s = 0; s < i.length; s++) n.push(i[s])
|
|
}
|
|
}), n
|
|
}, i.debounceMethod = function(t, e, i) {
|
|
i = i || 100;
|
|
var o = t.prototype[e],
|
|
n = e + "Timeout";
|
|
t.prototype[e] = function() {
|
|
var t = this[n];
|
|
clearTimeout(t);
|
|
var e = arguments,
|
|
s = this;
|
|
this[n] = setTimeout(function() {
|
|
o.apply(s, e), delete s[n]
|
|
}, i)
|
|
}
|
|
}, i.docReady = function(t) {
|
|
var e = document.readyState;
|
|
"complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t)
|
|
}, i.toDashed = function(t) {
|
|
return t.replace(/(.)([A-Z])/g, function(t, e, i) {
|
|
return e + "-" + i
|
|
}).toLowerCase()
|
|
};
|
|
var n = t.console;
|
|
return i.htmlInit = function(e, o) {
|
|
i.docReady(function() {
|
|
var s = i.toDashed(o),
|
|
r = "data-" + s,
|
|
a = document.querySelectorAll("[" + r + "]"),
|
|
u = document.querySelectorAll(".js-" + s),
|
|
h = i.makeArray(a).concat(i.makeArray(u)),
|
|
d = r + "-options",
|
|
l = t.jQuery;
|
|
h.forEach(function(t) {
|
|
var i, s = t.getAttribute(r) || t.getAttribute(d);
|
|
try {
|
|
i = s && JSON.parse(s)
|
|
} catch (a) {
|
|
return void(n && n.error("Error parsing " + r + " on " + t.className + ": " + a))
|
|
}
|
|
var u = new e(t, i);
|
|
l && l.data(t, o, u)
|
|
})
|
|
})
|
|
}, i
|
|
}),
|
|
function(t, e) {
|
|
"function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("get-size")) : (t.Outlayer = {}, t.Outlayer.Item = e(t.EvEmitter, t.getSize))
|
|
}(window, function(t, e) {
|
|
"use strict";
|
|
|
|
function i(t) {
|
|
for (var e in t) return !1;
|
|
return e = null, !0
|
|
}
|
|
|
|
function o(t, e) {
|
|
t && (this.element = t, this.layout = e, this.position = {
|
|
x: 0,
|
|
y: 0
|
|
}, this._create())
|
|
}
|
|
|
|
function n(t) {
|
|
return t.replace(/([A-Z])/g, function(t) {
|
|
return "-" + t.toLowerCase()
|
|
})
|
|
}
|
|
var s = document.documentElement.style,
|
|
r = "string" == typeof s.transition ? "transition" : "WebkitTransition",
|
|
a = "string" == typeof s.transform ? "transform" : "WebkitTransform",
|
|
u = {
|
|
WebkitTransition: "webkitTransitionEnd",
|
|
transition: "transitionend"
|
|
}[r],
|
|
h = {
|
|
transform: a,
|
|
transition: r,
|
|
transitionDuration: r + "Duration",
|
|
transitionProperty: r + "Property",
|
|
transitionDelay: r + "Delay"
|
|
},
|
|
d = o.prototype = Object.create(t.prototype);
|
|
d.constructor = o, d._create = function() {
|
|
this._transn = {
|
|
ingProperties: {},
|
|
clean: {},
|
|
onEnd: {}
|
|
}, this.css({
|
|
position: "absolute"
|
|
})
|
|
}, d.handleEvent = function(t) {
|
|
var e = "on" + t.type;
|
|
this[e] && this[e](t)
|
|
}, d.getSize = function() {
|
|
this.size = e(this.element)
|
|
}, d.css = function(t) {
|
|
var e = this.element.style;
|
|
for (var i in t) {
|
|
var o = h[i] || i;
|
|
e[o] = t[i]
|
|
}
|
|
}, d.getPosition = function() {
|
|
var t = getComputedStyle(this.element),
|
|
e = this.layout._getOption("originLeft"),
|
|
i = this.layout._getOption("originTop"),
|
|
o = t[e ? "left" : "right"],
|
|
n = t[i ? "top" : "bottom"],
|
|
s = parseFloat(o),
|
|
r = parseFloat(n),
|
|
a = this.layout.size;
|
|
o.indexOf("%") != -1 && (s = s / 100 * a.width), n.indexOf("%") != -1 && (r = r / 100 * a.height), s = isNaN(s) ? 0 : s, r = isNaN(r) ? 0 : r, s -= e ? a.paddingLeft : a.paddingRight, r -= i ? a.paddingTop : a.paddingBottom, this.position.x = s, this.position.y = r
|
|
}, d.layoutPosition = function() {
|
|
var t = this.layout.size,
|
|
e = {},
|
|
i = this.layout._getOption("originLeft"),
|
|
o = this.layout._getOption("originTop"),
|
|
n = i ? "paddingLeft" : "paddingRight",
|
|
s = i ? "left" : "right",
|
|
r = i ? "right" : "left",
|
|
a = this.position.x + t[n];
|
|
e[s] = this.getXValue(a), e[r] = "";
|
|
var u = o ? "paddingTop" : "paddingBottom",
|
|
h = o ? "top" : "bottom",
|
|
d = o ? "bottom" : "top",
|
|
l = this.position.y + t[u];
|
|
e[h] = this.getYValue(l), e[d] = "", this.css(e), this.emitEvent("layout", [this])
|
|
}, d.getXValue = function(t) {
|
|
var e = this.layout._getOption("horizontal");
|
|
return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + "%" : t + "px"
|
|
}, d.getYValue = function(t) {
|
|
var e = this.layout._getOption("horizontal");
|
|
return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + "%" : t + "px"
|
|
}, d._transitionTo = function(t, e) {
|
|
this.getPosition();
|
|
var i = this.position.x,
|
|
o = this.position.y,
|
|
n = t == this.position.x && e == this.position.y;
|
|
if (this.setPosition(t, e), n && !this.isTransitioning) return void this.layoutPosition();
|
|
var s = t - i,
|
|
r = e - o,
|
|
a = {};
|
|
a.transform = this.getTranslate(s, r), this.transition({
|
|
to: a,
|
|
onTransitionEnd: {
|
|
transform: this.layoutPosition
|
|
},
|
|
isCleaning: !0
|
|
})
|
|
}, d.getTranslate = function(t, e) {
|
|
var i = this.layout._getOption("originLeft"),
|
|
o = this.layout._getOption("originTop");
|
|
return t = i ? t : -t, e = o ? e : -e, "translate3d(" + t + "px, " + e + "px, 0)"
|
|
}, d.goTo = function(t, e) {
|
|
this.setPosition(t, e), this.layoutPosition()
|
|
}, d.moveTo = d._transitionTo, d.setPosition = function(t, e) {
|
|
this.position.x = parseFloat(t), this.position.y = parseFloat(e)
|
|
}, d._nonTransition = function(t) {
|
|
this.css(t.to), t.isCleaning && this._removeStyles(t.to);
|
|
for (var e in t.onTransitionEnd) t.onTransitionEnd[e].call(this)
|
|
}, d.transition = function(t) {
|
|
if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(t);
|
|
var e = this._transn;
|
|
for (var i in t.onTransitionEnd) e.onEnd[i] = t.onTransitionEnd[i];
|
|
for (i in t.to) e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0);
|
|
if (t.from) {
|
|
this.css(t.from);
|
|
var o = this.element.offsetHeight;
|
|
o = null
|
|
}
|
|
this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0
|
|
};
|
|
var l = "opacity," + n(a);
|
|
d.enableTransition = function() {
|
|
if (!this.isTransitioning) {
|
|
var t = this.layout.options.transitionDuration;
|
|
t = "number" == typeof t ? t + "ms" : t, this.css({
|
|
transitionProperty: l,
|
|
transitionDuration: t,
|
|
transitionDelay: this.staggerDelay || 0
|
|
}), this.element.addEventListener(u, this, !1)
|
|
}
|
|
}, d.onwebkitTransitionEnd = function(t) {
|
|
this.ontransitionend(t)
|
|
}, d.onotransitionend = function(t) {
|
|
this.ontransitionend(t)
|
|
};
|
|
var f = {
|
|
"-webkit-transform": "transform"
|
|
};
|
|
d.ontransitionend = function(t) {
|
|
if (t.target === this.element) {
|
|
var e = this._transn,
|
|
o = f[t.propertyName] || t.propertyName;
|
|
if (delete e.ingProperties[o], i(e.ingProperties) && this.disableTransition(), o in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[o]), o in e.onEnd) {
|
|
var n = e.onEnd[o];
|
|
n.call(this), delete e.onEnd[o]
|
|
}
|
|
this.emitEvent("transitionEnd", [this])
|
|
}
|
|
}, d.disableTransition = function() {
|
|
this.removeTransitionStyles(), this.element.removeEventListener(u, this, !1), this.isTransitioning = !1
|
|
}, d._removeStyles = function(t) {
|
|
var e = {};
|
|
for (var i in t) e[i] = "";
|
|
this.css(e)
|
|
};
|
|
var c = {
|
|
transitionProperty: "",
|
|
transitionDuration: "",
|
|
transitionDelay: ""
|
|
};
|
|
return d.removeTransitionStyles = function() {
|
|
this.css(c)
|
|
}, d.stagger = function(t) {
|
|
t = isNaN(t) ? 0 : t, this.staggerDelay = t + "ms"
|
|
}, d.removeElem = function() {
|
|
this.element.parentNode.removeChild(this.element), this.css({
|
|
display: ""
|
|
}), this.emitEvent("remove", [this])
|
|
}, d.remove = function() {
|
|
return r && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", function() {
|
|
this.removeElem()
|
|
}), void this.hide()) : void this.removeElem()
|
|
}, d.reveal = function() {
|
|
delete this.isHidden, this.css({
|
|
display: ""
|
|
});
|
|
var t = this.layout.options,
|
|
e = {},
|
|
i = this.getHideRevealTransitionEndProperty("visibleStyle");
|
|
e[i] = this.onRevealTransitionEnd, this.transition({
|
|
from: t.hiddenStyle,
|
|
to: t.visibleStyle,
|
|
isCleaning: !0,
|
|
onTransitionEnd: e
|
|
})
|
|
}, d.onRevealTransitionEnd = function() {
|
|
this.isHidden || this.emitEvent("reveal")
|
|
}, d.getHideRevealTransitionEndProperty = function(t) {
|
|
var e = this.layout.options[t];
|
|
if (e.opacity) return "opacity";
|
|
for (var i in e) return i
|
|
}, d.hide = function() {
|
|
this.isHidden = !0, this.css({
|
|
display: ""
|
|
});
|
|
var t = this.layout.options,
|
|
e = {},
|
|
i = this.getHideRevealTransitionEndProperty("hiddenStyle");
|
|
e[i] = this.onHideTransitionEnd, this.transition({
|
|
from: t.visibleStyle,
|
|
to: t.hiddenStyle,
|
|
isCleaning: !0,
|
|
onTransitionEnd: e
|
|
})
|
|
}, d.onHideTransitionEnd = function() {
|
|
this.isHidden && (this.css({
|
|
display: "none"
|
|
}), this.emitEvent("hide"))
|
|
}, d.destroy = function() {
|
|
this.css({
|
|
position: "",
|
|
left: "",
|
|
right: "",
|
|
top: "",
|
|
bottom: "",
|
|
transition: "",
|
|
transform: ""
|
|
})
|
|
}, o
|
|
}),
|
|
function(t, e) {
|
|
"use strict";
|
|
"function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function(i, o, n, s) {
|
|
return e(t, i, o, n, s)
|
|
}) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : t.Outlayer = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item)
|
|
}(window, function(t, e, i, o, n) {
|
|
"use strict";
|
|
|
|
function s(t, e) {
|
|
var i = o.getQueryElement(t);
|
|
if (!i) return void(u && u.error("Bad element for " + this.constructor.namespace + ": " + (i || t)));
|
|
this.element = i, h && (this.$element = h(this.element)), this.options = o.extend({}, this.constructor.defaults), this.option(e);
|
|
var n = ++l;
|
|
this.element.outlayerGUID = n, f[n] = this, this._create();
|
|
var s = this._getOption("initLayout");
|
|
s && this.layout()
|
|
}
|
|
|
|
function r(t) {
|
|
function e() {
|
|
t.apply(this, arguments)
|
|
}
|
|
return e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e
|
|
}
|
|
|
|
function a(t) {
|
|
if ("number" == typeof t) return t;
|
|
var e = t.match(/(^\d*\.?\d*)(\w*)/),
|
|
i = e && e[1],
|
|
o = e && e[2];
|
|
if (!i.length) return 0;
|
|
i = parseFloat(i);
|
|
var n = m[o] || 1;
|
|
return i * n
|
|
}
|
|
var u = t.console,
|
|
h = t.jQuery,
|
|
d = function() {},
|
|
l = 0,
|
|
f = {};
|
|
s.namespace = "outlayer", s.Item = n, s.defaults = {
|
|
containerStyle: {
|
|
position: "relative"
|
|
},
|
|
initLayout: !0,
|
|
originLeft: !0,
|
|
originTop: !0,
|
|
resize: !0,
|
|
resizeContainer: !0,
|
|
transitionDuration: "0.4s",
|
|
hiddenStyle: {
|
|
opacity: 0,
|
|
transform: "scale(0.001)"
|
|
},
|
|
visibleStyle: {
|
|
opacity: 1,
|
|
transform: "scale(1)"
|
|
}
|
|
};
|
|
var c = s.prototype;
|
|
o.extend(c, e.prototype), c.option = function(t) {
|
|
o.extend(this.options, t)
|
|
}, c._getOption = function(t) {
|
|
var e = this.constructor.compatOptions[t];
|
|
return e && void 0 !== this.options[e] ? this.options[e] : this.options[t]
|
|
}, s.compatOptions = {
|
|
initLayout: "isInitLayout",
|
|
horizontal: "isHorizontal",
|
|
layoutInstant: "isLayoutInstant",
|
|
originLeft: "isOriginLeft",
|
|
originTop: "isOriginTop",
|
|
resize: "isResizeBound",
|
|
resizeContainer: "isResizingContainer"
|
|
}, c._create = function() {
|
|
this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), o.extend(this.element.style, this.options.containerStyle);
|
|
var t = this._getOption("resize");
|
|
t && this.bindResize()
|
|
}, c.reloadItems = function() {
|
|
this.items = this._itemize(this.element.children)
|
|
}, c._itemize = function(t) {
|
|
for (var e = this._filterFindItemElements(t), i = this.constructor.Item, o = [], n = 0; n < e.length; n++) {
|
|
var s = e[n],
|
|
r = new i(s, this);
|
|
o.push(r)
|
|
}
|
|
return o
|
|
}, c._filterFindItemElements = function(t) {
|
|
return o.filterFindElements(t, this.options.itemSelector)
|
|
}, c.getItemElements = function() {
|
|
return this.items.map(function(t) {
|
|
return t.element
|
|
})
|
|
}, c.layout = function() {
|
|
this._resetLayout(), this._manageStamps();
|
|
var t = this._getOption("layoutInstant"),
|
|
e = void 0 !== t ? t : !this._isLayoutInited;
|
|
this.layoutItems(this.items, e), this._isLayoutInited = !0
|
|
}, c._init = c.layout, c._resetLayout = function() {
|
|
this.getSize()
|
|
}, c.getSize = function() {
|
|
this.size = i(this.element)
|
|
}, c._getMeasurement = function(t, e) {
|
|
var o, n = this.options[t];
|
|
n ? ("string" == typeof n ? o = this.element.querySelector(n) : n instanceof HTMLElement && (o = n), this[t] = o ? i(o)[e] : n) : this[t] = 0
|
|
}, c.layoutItems = function(t, e) {
|
|
t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout()
|
|
}, c._getItemsForLayout = function(t) {
|
|
return t.filter(function(t) {
|
|
return !t.isIgnored
|
|
})
|
|
}, c._layoutItems = function(t, e) {
|
|
if (this._emitCompleteOnItems("layout", t), t && t.length) {
|
|
var i = [];
|
|
t.forEach(function(t) {
|
|
var o = this._getItemLayoutPosition(t);
|
|
o.item = t, o.isInstant = e || t.isLayoutInstant, i.push(o)
|
|
}, this), this._processLayoutQueue(i)
|
|
}
|
|
}, c._getItemLayoutPosition = function() {
|
|
return {
|
|
x: 0,
|
|
y: 0
|
|
}
|
|
}, c._processLayoutQueue = function(t) {
|
|
this.updateStagger(), t.forEach(function(t, e) {
|
|
this._positionItem(t.item, t.x, t.y, t.isInstant, e)
|
|
}, this)
|
|
}, c.updateStagger = function() {
|
|
var t = this.options.stagger;
|
|
return null === t || void 0 === t ? void(this.stagger = 0) : (this.stagger = a(t), this.stagger)
|
|
}, c._positionItem = function(t, e, i, o, n) {
|
|
o ? t.goTo(e, i) : (t.stagger(n * this.stagger), t.moveTo(e, i))
|
|
}, c._postLayout = function() {
|
|
this.resizeContainer()
|
|
}, c.resizeContainer = function() {
|
|
var t = this._getOption("resizeContainer");
|
|
if (t) {
|
|
var e = this._getContainerSize();
|
|
e && (this._setContainerMeasure(e.width, !0), this._setContainerMeasure(e.height, !1))
|
|
}
|
|
}, c._getContainerSize = d, c._setContainerMeasure = function(t, e) {
|
|
if (void 0 !== t) {
|
|
var i = this.size;
|
|
i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px"
|
|
}
|
|
}, c._emitCompleteOnItems = function(t, e) {
|
|
function i() {
|
|
n.dispatchEvent(t + "Complete", null, [e])
|
|
}
|
|
|
|
function o() {
|
|
r++, r == s && i()
|
|
}
|
|
var n = this,
|
|
s = e.length;
|
|
if (!e || !s) return void i();
|
|
var r = 0;
|
|
e.forEach(function(e) {
|
|
e.once(t, o)
|
|
})
|
|
}, c.dispatchEvent = function(t, e, i) {
|
|
var o = e ? [e].concat(i) : i;
|
|
if (this.emitEvent(t, o), h)
|
|
if (this.$element = this.$element || h(this.element), e) {
|
|
var n = h.Event(e);
|
|
n.type = t, this.$element.trigger(n, i)
|
|
} else this.$element.trigger(t, i)
|
|
}, c.ignore = function(t) {
|
|
var e = this.getItem(t);
|
|
e && (e.isIgnored = !0)
|
|
}, c.unignore = function(t) {
|
|
var e = this.getItem(t);
|
|
e && delete e.isIgnored
|
|
}, c.stamp = function(t) {
|
|
t = this._find(t), t && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this))
|
|
}, c.unstamp = function(t) {
|
|
t = this._find(t), t && t.forEach(function(t) {
|
|
o.removeFrom(this.stamps, t), this.unignore(t)
|
|
}, this)
|
|
}, c._find = function(t) {
|
|
if (t) return "string" == typeof t && (t = this.element.querySelectorAll(t)), t = o.makeArray(t)
|
|
}, c._manageStamps = function() {
|
|
this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this))
|
|
}, c._getBoundingRect = function() {
|
|
var t = this.element.getBoundingClientRect(),
|
|
e = this.size;
|
|
this._boundingRect = {
|
|
left: t.left + e.paddingLeft + e.borderLeftWidth,
|
|
top: t.top + e.paddingTop + e.borderTopWidth,
|
|
right: t.right - (e.paddingRight + e.borderRightWidth),
|
|
bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth)
|
|
}
|
|
}, c._manageStamp = d, c._getElementOffset = function(t) {
|
|
var e = t.getBoundingClientRect(),
|
|
o = this._boundingRect,
|
|
n = i(t),
|
|
s = {
|
|
left: e.left - o.left - n.marginLeft,
|
|
top: e.top - o.top - n.marginTop,
|
|
right: o.right - e.right - n.marginRight,
|
|
bottom: o.bottom - e.bottom - n.marginBottom
|
|
};
|
|
return s
|
|
}, c.handleEvent = o.handleEvent, c.bindResize = function() {
|
|
t.addEventListener("resize", this), this.isResizeBound = !0
|
|
}, c.unbindResize = function() {
|
|
t.removeEventListener("resize", this), this.isResizeBound = !1
|
|
}, c.onresize = function() {
|
|
this.resize()
|
|
}, o.debounceMethod(s, "onresize", 100), c.resize = function() {
|
|
this.isResizeBound && this.needsResizeLayout() && this.layout()
|
|
}, c.needsResizeLayout = function() {
|
|
var t = i(this.element),
|
|
e = this.size && t;
|
|
return e && t.innerWidth !== this.size.innerWidth
|
|
}, c.addItems = function(t) {
|
|
var e = this._itemize(t);
|
|
return e.length && (this.items = this.items.concat(e)), e
|
|
}, c.appended = function(t) {
|
|
var e = this.addItems(t);
|
|
e.length && (this.layoutItems(e, !0), this.reveal(e))
|
|
}, c.prepended = function(t) {
|
|
var e = this._itemize(t);
|
|
if (e.length) {
|
|
var i = this.items.slice(0);
|
|
this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i)
|
|
}
|
|
}, c.reveal = function(t) {
|
|
if (this._emitCompleteOnItems("reveal", t), t && t.length) {
|
|
var e = this.updateStagger();
|
|
t.forEach(function(t, i) {
|
|
t.stagger(i * e), t.reveal()
|
|
})
|
|
}
|
|
}, c.hide = function(t) {
|
|
if (this._emitCompleteOnItems("hide", t), t && t.length) {
|
|
var e = this.updateStagger();
|
|
t.forEach(function(t, i) {
|
|
t.stagger(i * e), t.hide()
|
|
})
|
|
}
|
|
}, c.revealItemElements = function(t) {
|
|
var e = this.getItems(t);
|
|
this.reveal(e)
|
|
}, c.hideItemElements = function(t) {
|
|
var e = this.getItems(t);
|
|
this.hide(e)
|
|
}, c.getItem = function(t) {
|
|
for (var e = 0; e < this.items.length; e++) {
|
|
var i = this.items[e];
|
|
if (i.element == t) return i
|
|
}
|
|
}, c.getItems = function(t) {
|
|
t = o.makeArray(t);
|
|
var e = [];
|
|
return t.forEach(function(t) {
|
|
var i = this.getItem(t);
|
|
i && e.push(i)
|
|
}, this), e
|
|
}, c.remove = function(t) {
|
|
var e = this.getItems(t);
|
|
this._emitCompleteOnItems("remove", e), e && e.length && e.forEach(function(t) {
|
|
t.remove(), o.removeFrom(this.items, t)
|
|
}, this)
|
|
}, c.destroy = function() {
|
|
var t = this.element.style;
|
|
t.height = "", t.position = "", t.width = "", this.items.forEach(function(t) {
|
|
t.destroy()
|
|
}), this.unbindResize();
|
|
var e = this.element.outlayerGUID;
|
|
delete f[e], delete this.element.outlayerGUID, h && h.removeData(this.element, this.constructor.namespace)
|
|
}, s.data = function(t) {
|
|
t = o.getQueryElement(t);
|
|
var e = t && t.outlayerGUID;
|
|
return e && f[e]
|
|
}, s.create = function(t, e) {
|
|
var i = r(s);
|
|
return i.defaults = o.extend({}, s.defaults), o.extend(i.defaults, e), i.compatOptions = o.extend({}, s.compatOptions), i.namespace = t, i.data = s.data, i.Item = r(n), o.htmlInit(i, t), h && h.bridget && h.bridget(t, i), i
|
|
};
|
|
var m = {
|
|
ms: 1,
|
|
s: 1e3
|
|
};
|
|
return s.Item = n, s
|
|
}),
|
|
function(t, e) {
|
|
"function" == typeof define && define.amd ? define("isotope-layout/js/item", ["outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.Item = e(t.Outlayer))
|
|
}(window, function(t) {
|
|
"use strict";
|
|
|
|
function e() {
|
|
t.Item.apply(this, arguments)
|
|
}
|
|
var i = e.prototype = Object.create(t.Item.prototype),
|
|
o = i._create;
|
|
i._create = function() {
|
|
this.id = this.layout.itemGUID++, o.call(this), this.sortData = {}
|
|
}, i.updateSortData = function() {
|
|
if (!this.isIgnored) {
|
|
this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random();
|
|
var t = this.layout.options.getSortData,
|
|
e = this.layout._sorters;
|
|
for (var i in t) {
|
|
var o = e[i];
|
|
this.sortData[i] = o(this.element, this)
|
|
}
|
|
}
|
|
};
|
|
var n = i.destroy;
|
|
return i.destroy = function() {
|
|
n.apply(this, arguments), this.css({
|
|
display: ""
|
|
})
|
|
}, e
|
|
}),
|
|
function(t, e) {
|
|
"function" == typeof define && define.amd ? define("isotope-layout/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("get-size"), require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.LayoutMode = e(t.getSize, t.Outlayer))
|
|
}(window, function(t, e) {
|
|
"use strict";
|
|
|
|
function i(t) {
|
|
this.isotope = t, t && (this.options = t.options[this.namespace], this.element = t.element, this.items = t.filteredItems, this.size = t.size)
|
|
}
|
|
var o = i.prototype,
|
|
n = ["_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout", "_getOption"];
|
|
return n.forEach(function(t) {
|
|
o[t] = function() {
|
|
return e.prototype[t].apply(this.isotope, arguments)
|
|
}
|
|
}), o.needsVerticalResizeLayout = function() {
|
|
var e = t(this.isotope.element),
|
|
i = this.isotope.size && e;
|
|
return i && e.innerHeight != this.isotope.size.innerHeight
|
|
}, o._getMeasurement = function() {
|
|
this.isotope._getMeasurement.apply(this, arguments)
|
|
}, o.getColumnWidth = function() {
|
|
this.getSegmentSize("column", "Width")
|
|
}, o.getRowHeight = function() {
|
|
this.getSegmentSize("row", "Height")
|
|
}, o.getSegmentSize = function(t, e) {
|
|
var i = t + e,
|
|
o = "outer" + e;
|
|
if (this._getMeasurement(i, o), !this[i]) {
|
|
var n = this.getFirstItemSize();
|
|
this[i] = n && n[o] || this.isotope.size["inner" + e]
|
|
}
|
|
}, o.getFirstItemSize = function() {
|
|
var e = this.isotope.filteredItems[0];
|
|
return e && e.element && t(e.element)
|
|
}, o.layout = function() {
|
|
this.isotope.layout.apply(this.isotope, arguments)
|
|
}, o.getSize = function() {
|
|
this.isotope.getSize(), this.size = this.isotope.size
|
|
}, i.modes = {}, i.create = function(t, e) {
|
|
function n() {
|
|
i.apply(this, arguments)
|
|
}
|
|
return n.prototype = Object.create(o), n.prototype.constructor = n, e && (n.options = e), n.prototype.namespace = t, i.modes[t] = n, n
|
|
}, i
|
|
}),
|
|
function(t, e) {
|
|
"function" == typeof define && define.amd ? define("masonry-layout/masonry", ["outlayer/outlayer", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer"), require("get-size")) : t.Masonry = e(t.Outlayer, t.getSize)
|
|
}(window, function(t, e) {
|
|
var i = t.create("masonry");
|
|
i.compatOptions.fitWidth = "isFitWidth";
|
|
var o = i.prototype;
|
|
return o._resetLayout = function() {
|
|
this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = [];
|
|
for (var t = 0; t < this.cols; t++) this.colYs.push(0);
|
|
this.maxY = 0, this.horizontalColIndex = 0
|
|
}, o.measureColumns = function() {
|
|
if (this.getContainerWidth(), !this.columnWidth) {
|
|
var t = this.items[0],
|
|
i = t && t.element;
|
|
this.columnWidth = i && e(i).outerWidth || this.containerWidth
|
|
}
|
|
var o = this.columnWidth += this.gutter,
|
|
n = this.containerWidth + this.gutter,
|
|
s = n / o,
|
|
r = o - n % o,
|
|
a = r && r < 1 ? "round" : "floor";
|
|
s = Math[a](s), this.cols = Math.max(s, 1)
|
|
}, o.getContainerWidth = function() {
|
|
var t = this._getOption("fitWidth"),
|
|
i = t ? this.element.parentNode : this.element,
|
|
o = e(i);
|
|
this.containerWidth = o && o.innerWidth
|
|
}, o._getItemLayoutPosition = function(t) {
|
|
t.getSize();
|
|
var e = t.size.outerWidth % this.columnWidth,
|
|
i = e && e < 1 ? "round" : "ceil",
|
|
o = Math[i](t.size.outerWidth / this.columnWidth);
|
|
o = Math.min(o, this.cols);
|
|
for (var n = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", s = this[n](o, t), r = {
|
|
x: this.columnWidth * s.col,
|
|
y: s.y
|
|
}, a = s.y + t.size.outerHeight, u = o + s.col, h = s.col; h < u; h++) this.colYs[h] = a;
|
|
return r
|
|
}, o._getTopColPosition = function(t) {
|
|
var e = this._getTopColGroup(t),
|
|
i = Math.min.apply(Math, e);
|
|
return {
|
|
col: e.indexOf(i),
|
|
y: i
|
|
}
|
|
}, o._getTopColGroup = function(t) {
|
|
if (t < 2) return this.colYs;
|
|
for (var e = [], i = this.cols + 1 - t, o = 0; o < i; o++) e[o] = this._getColGroupY(o, t);
|
|
return e
|
|
}, o._getColGroupY = function(t, e) {
|
|
if (e < 2) return this.colYs[t];
|
|
var i = this.colYs.slice(t, t + e);
|
|
return Math.max.apply(Math, i)
|
|
}, o._getHorizontalColPosition = function(t, e) {
|
|
var i = this.horizontalColIndex % this.cols,
|
|
o = t > 1 && i + t > this.cols;
|
|
i = o ? 0 : i;
|
|
var n = e.size.outerWidth && e.size.outerHeight;
|
|
return this.horizontalColIndex = n ? i + t : this.horizontalColIndex, {
|
|
col: i,
|
|
y: this._getColGroupY(i, t)
|
|
}
|
|
}, o._manageStamp = function(t) {
|
|
var i = e(t),
|
|
o = this._getElementOffset(t),
|
|
n = this._getOption("originLeft"),
|
|
s = n ? o.left : o.right,
|
|
r = s + i.outerWidth,
|
|
a = Math.floor(s / this.columnWidth);
|
|
a = Math.max(0, a);
|
|
var u = Math.floor(r / this.columnWidth);
|
|
u -= r % this.columnWidth ? 0 : 1, u = Math.min(this.cols - 1, u);
|
|
for (var h = this._getOption("originTop"), d = (h ? o.top : o.bottom) + i.outerHeight, l = a; l <= u; l++) this.colYs[l] = Math.max(d, this.colYs[l])
|
|
}, o._getContainerSize = function() {
|
|
this.maxY = Math.max.apply(Math, this.colYs);
|
|
var t = {
|
|
height: this.maxY
|
|
};
|
|
return this._getOption("fitWidth") && (t.width = this._getContainerFitWidth()), t
|
|
}, o._getContainerFitWidth = function() {
|
|
for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];) t++;
|
|
return (this.cols - t) * this.columnWidth - this.gutter
|
|
}, o.needsResizeLayout = function() {
|
|
var t = this.containerWidth;
|
|
return this.getContainerWidth(), t != this.containerWidth
|
|
}, i
|
|
}),
|
|
function(t, e) {
|
|
"function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/masonry", ["../layout-mode", "masonry-layout/masonry"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode"), require("masonry-layout")) : e(t.Isotope.LayoutMode, t.Masonry)
|
|
}(window, function(t, e) {
|
|
"use strict";
|
|
var i = t.create("masonry"),
|
|
o = i.prototype,
|
|
n = {
|
|
_getElementOffset: !0,
|
|
layout: !0,
|
|
_getMeasurement: !0
|
|
};
|
|
for (var s in e.prototype) n[s] || (o[s] = e.prototype[s]);
|
|
var r = o.measureColumns;
|
|
o.measureColumns = function() {
|
|
this.items = this.isotope.filteredItems, r.call(this)
|
|
};
|
|
var a = o._getOption;
|
|
return o._getOption = function(t) {
|
|
return "fitWidth" == t ? void 0 !== this.options.isFitWidth ? this.options.isFitWidth : this.options.fitWidth : a.apply(this.isotope, arguments)
|
|
}, i
|
|
}),
|
|
function(t, e) {
|
|
"function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/fit-rows", ["../layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
|
|
}(window, function(t) {
|
|
"use strict";
|
|
var e = t.create("fitRows"),
|
|
i = e.prototype;
|
|
return i._resetLayout = function() {
|
|
this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth")
|
|
}, i._getItemLayoutPosition = function(t) {
|
|
t.getSize();
|
|
var e = t.size.outerWidth + this.gutter,
|
|
i = this.isotope.size.innerWidth + this.gutter;
|
|
0 !== this.x && e + this.x > i && (this.x = 0, this.y = this.maxY);
|
|
var o = {
|
|
x: this.x,
|
|
y: this.y
|
|
};
|
|
return this.maxY = Math.max(this.maxY, this.y + t.size.outerHeight), this.x += e, o
|
|
}, i._getContainerSize = function() {
|
|
return {
|
|
height: this.maxY
|
|
}
|
|
}, e
|
|
}),
|
|
function(t, e) {
|
|
"function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/vertical", ["../layout-mode"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
|
|
}(window, function(t) {
|
|
"use strict";
|
|
var e = t.create("vertical", {
|
|
horizontalAlignment: 0
|
|
}),
|
|
i = e.prototype;
|
|
return i._resetLayout = function() {
|
|
this.y = 0
|
|
}, i._getItemLayoutPosition = function(t) {
|
|
t.getSize();
|
|
var e = (this.isotope.size.innerWidth - t.size.outerWidth) * this.options.horizontalAlignment,
|
|
i = this.y;
|
|
return this.y += t.size.outerHeight, {
|
|
x: e,
|
|
y: i
|
|
}
|
|
}, i._getContainerSize = function() {
|
|
return {
|
|
height: this.y
|
|
}
|
|
}, e
|
|
}),
|
|
function(t, e) {
|
|
"function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size", "desandro-matches-selector/matches-selector", "fizzy-ui-utils/utils", "isotope-layout/js/item", "isotope-layout/js/layout-mode", "isotope-layout/js/layout-modes/masonry", "isotope-layout/js/layout-modes/fit-rows", "isotope-layout/js/layout-modes/vertical"], function(i, o, n, s, r, a) {
|
|
return e(t, i, o, n, s, r, a)
|
|
}) : "object" == typeof module && module.exports ? module.exports = e(t, require("outlayer"), require("get-size"), require("desandro-matches-selector"), require("fizzy-ui-utils"), require("isotope-layout/js/item"), require("isotope-layout/js/layout-mode"), require("isotope-layout/js/layout-modes/masonry"), require("isotope-layout/js/layout-modes/fit-rows"), require("isotope-layout/js/layout-modes/vertical")) : t.Isotope = e(t, t.Outlayer, t.getSize, t.matchesSelector, t.fizzyUIUtils, t.Isotope.Item, t.Isotope.LayoutMode)
|
|
}(window, function(t, e, i, o, n, s, r) {
|
|
function a(t, e) {
|
|
return function(i, o) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var s = t[n],
|
|
r = i.sortData[s],
|
|
a = o.sortData[s];
|
|
if (r > a || r < a) {
|
|
var u = void 0 !== e[s] ? e[s] : e,
|
|
h = u ? 1 : -1;
|
|
return (r > a ? 1 : -1) * h
|
|
}
|
|
}
|
|
return 0
|
|
}
|
|
}
|
|
var u = t.jQuery,
|
|
h = String.prototype.trim ? function(t) {
|
|
return t.trim()
|
|
} : function(t) {
|
|
return t.replace(/^\s+|\s+$/g, "")
|
|
},
|
|
d = e.create("isotope", {
|
|
layoutMode: "masonry",
|
|
isJQueryFiltering: !0,
|
|
sortAscending: !0
|
|
});
|
|
d.Item = s, d.LayoutMode = r;
|
|
var l = d.prototype;
|
|
l._create = function() {
|
|
this.itemGUID = 0, this._sorters = {}, this._getSorters(), e.prototype._create.call(this), this.modes = {}, this.filteredItems = this.items, this.sortHistory = ["original-order"];
|
|
for (var t in r.modes) this._initLayoutMode(t)
|
|
}, l.reloadItems = function() {
|
|
this.itemGUID = 0, e.prototype.reloadItems.call(this)
|
|
}, l._itemize = function() {
|
|
for (var t = e.prototype._itemize.apply(this, arguments), i = 0; i < t.length; i++) {
|
|
var o = t[i];
|
|
o.id = this.itemGUID++
|
|
}
|
|
return this._updateItemsSortData(t), t
|
|
}, l._initLayoutMode = function(t) {
|
|
var e = r.modes[t],
|
|
i = this.options[t] || {};
|
|
this.options[t] = e.options ? n.extend(e.options, i) : i, this.modes[t] = new e(this)
|
|
}, l.layout = function() {
|
|
return !this._isLayoutInited && this._getOption("initLayout") ? void this.arrange() : void this._layout()
|
|
}, l._layout = function() {
|
|
var t = this._getIsInstant();
|
|
this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, t), this._isLayoutInited = !0
|
|
}, l.arrange = function(t) {
|
|
this.option(t), this._getIsInstant();
|
|
var e = this._filter(this.items);
|
|
this.filteredItems = e.matches, this._bindArrangeComplete(), this._isInstant ? this._noTransition(this._hideReveal, [e]) : this._hideReveal(e), this._sort(), this._layout()
|
|
}, l._init = l.arrange, l._hideReveal = function(t) {
|
|
this.reveal(t.needReveal), this.hide(t.needHide)
|
|
}, l._getIsInstant = function() {
|
|
var t = this._getOption("layoutInstant"),
|
|
e = void 0 !== t ? t : !this._isLayoutInited;
|
|
return this._isInstant = e, e
|
|
}, l._bindArrangeComplete = function() {
|
|
function t() {
|
|
e && i && o && n.dispatchEvent("arrangeComplete", null, [n.filteredItems])
|
|
}
|
|
var e, i, o, n = this;
|
|
this.once("layoutComplete", function() {
|
|
e = !0, t()
|
|
}), this.once("hideComplete", function() {
|
|
i = !0, t()
|
|
}), this.once("revealComplete", function() {
|
|
o = !0, t()
|
|
})
|
|
}, l._filter = function(t) {
|
|
var e = this.options.filter;
|
|
e = e || "*";
|
|
for (var i = [], o = [], n = [], s = this._getFilterTest(e), r = 0; r < t.length; r++) {
|
|
var a = t[r];
|
|
if (!a.isIgnored) {
|
|
var u = s(a);
|
|
u && i.push(a), u && a.isHidden ? o.push(a) : u || a.isHidden || n.push(a)
|
|
}
|
|
}
|
|
return {
|
|
matches: i,
|
|
needReveal: o,
|
|
needHide: n
|
|
}
|
|
}, l._getFilterTest = function(t) {
|
|
return u && this.options.isJQueryFiltering ? function(e) {
|
|
return u(e.element).is(t);
|
|
} : "function" == typeof t ? function(e) {
|
|
return t(e.element)
|
|
} : function(e) {
|
|
return o(e.element, t)
|
|
}
|
|
}, l.updateSortData = function(t) {
|
|
var e;
|
|
t ? (t = n.makeArray(t), e = this.getItems(t)) : e = this.items, this._getSorters(), this._updateItemsSortData(e)
|
|
}, l._getSorters = function() {
|
|
var t = this.options.getSortData;
|
|
for (var e in t) {
|
|
var i = t[e];
|
|
this._sorters[e] = f(i)
|
|
}
|
|
}, l._updateItemsSortData = function(t) {
|
|
for (var e = t && t.length, i = 0; e && i < e; i++) {
|
|
var o = t[i];
|
|
o.updateSortData()
|
|
}
|
|
};
|
|
var f = function() {
|
|
function t(t) {
|
|
if ("string" != typeof t) return t;
|
|
var i = h(t).split(" "),
|
|
o = i[0],
|
|
n = o.match(/^\[(.+)\]$/),
|
|
s = n && n[1],
|
|
r = e(s, o),
|
|
a = d.sortDataParsers[i[1]];
|
|
return t = a ? function(t) {
|
|
return t && a(r(t))
|
|
} : function(t) {
|
|
return t && r(t)
|
|
}
|
|
}
|
|
|
|
function e(t, e) {
|
|
return t ? function(e) {
|
|
return e.getAttribute(t)
|
|
} : function(t) {
|
|
var i = t.querySelector(e);
|
|
return i && i.textContent
|
|
}
|
|
}
|
|
return t
|
|
}();
|
|
d.sortDataParsers = {
|
|
parseInt: function(t) {
|
|
return parseInt(t, 10)
|
|
},
|
|
parseFloat: function(t) {
|
|
return parseFloat(t)
|
|
}
|
|
}, l._sort = function() {
|
|
if (this.options.sortBy) {
|
|
var t = n.makeArray(this.options.sortBy);
|
|
this._getIsSameSortBy(t) || (this.sortHistory = t.concat(this.sortHistory));
|
|
var e = a(this.sortHistory, this.options.sortAscending);
|
|
this.filteredItems.sort(e)
|
|
}
|
|
}, l._getIsSameSortBy = function(t) {
|
|
for (var e = 0; e < t.length; e++)
|
|
if (t[e] != this.sortHistory[e]) return !1;
|
|
return !0
|
|
}, l._mode = function() {
|
|
var t = this.options.layoutMode,
|
|
e = this.modes[t];
|
|
if (!e) throw new Error("No layout mode: " + t);
|
|
return e.options = this.options[t], e
|
|
}, l._resetLayout = function() {
|
|
e.prototype._resetLayout.call(this), this._mode()._resetLayout()
|
|
}, l._getItemLayoutPosition = function(t) {
|
|
return this._mode()._getItemLayoutPosition(t)
|
|
}, l._manageStamp = function(t) {
|
|
this._mode()._manageStamp(t)
|
|
}, l._getContainerSize = function() {
|
|
return this._mode()._getContainerSize()
|
|
}, l.needsResizeLayout = function() {
|
|
return this._mode().needsResizeLayout()
|
|
}, l.appended = function(t) {
|
|
var e = this.addItems(t);
|
|
if (e.length) {
|
|
var i = this._filterRevealAdded(e);
|
|
this.filteredItems = this.filteredItems.concat(i)
|
|
}
|
|
}, l.prepended = function(t) {
|
|
var e = this._itemize(t);
|
|
if (e.length) {
|
|
this._resetLayout(), this._manageStamps();
|
|
var i = this._filterRevealAdded(e);
|
|
this.layoutItems(this.filteredItems), this.filteredItems = i.concat(this.filteredItems), this.items = e.concat(this.items)
|
|
}
|
|
}, l._filterRevealAdded = function(t) {
|
|
var e = this._filter(t);
|
|
return this.hide(e.needHide), this.reveal(e.matches), this.layoutItems(e.matches, !0), e.matches
|
|
}, l.insert = function(t) {
|
|
var e = this.addItems(t);
|
|
if (e.length) {
|
|
var i, o, n = e.length;
|
|
for (i = 0; i < n; i++) o = e[i], this.element.appendChild(o.element);
|
|
var s = this._filter(e).matches;
|
|
for (i = 0; i < n; i++) e[i].isLayoutInstant = !0;
|
|
for (this.arrange(), i = 0; i < n; i++) delete e[i].isLayoutInstant;
|
|
this.reveal(s)
|
|
}
|
|
};
|
|
var c = l.remove;
|
|
return l.remove = function(t) {
|
|
t = n.makeArray(t);
|
|
var e = this.getItems(t);
|
|
c.call(this, t);
|
|
for (var i = e && e.length, o = 0; i && o < i; o++) {
|
|
var s = e[o];
|
|
n.removeFrom(this.filteredItems, s)
|
|
}
|
|
}, l.shuffle = function() {
|
|
for (var t = 0; t < this.items.length; t++) {
|
|
var e = this.items[t];
|
|
e.sortData.random = Math.random()
|
|
}
|
|
this.options.sortBy = "random", this._sort(), this._layout()
|
|
}, l._noTransition = function(t, e) {
|
|
var i = this.options.transitionDuration;
|
|
this.options.transitionDuration = 0;
|
|
var o = t.apply(this, e);
|
|
return this.options.transitionDuration = i, o
|
|
}, l.getFilteredItemElements = function() {
|
|
return this.filteredItems.map(function(t) {
|
|
return t.element
|
|
})
|
|
}, d
|
|
});
|
|
|
|
|
|
|
|
/*!
|
|
Mailchimp Ajax Submit
|
|
jQuery Plugin
|
|
Author: Siddharth Doshi
|
|
*/
|
|
(function($) {
|
|
"use strict";
|
|
$.ajaxChimp = {
|
|
responses: {
|
|
"We have sent you a confirmation email": 0,
|
|
"Please enter a value": 1,
|
|
"An email address must contain a single @": 2,
|
|
"The domain portion of the email address is invalid (the portion after the @: )": 3,
|
|
"The username portion of the email address is invalid (the portion before the @: )": 4,
|
|
"This email address looks fake or invalid. Please enter a real email address": 5
|
|
},
|
|
translations: {
|
|
en: null
|
|
},
|
|
init: function(selector, options) {
|
|
$(selector).ajaxChimp(options)
|
|
}
|
|
};
|
|
$.fn.ajaxChimp = function(options) {
|
|
$(this).each(function(i, elem) {
|
|
var form = $(elem);
|
|
var email = form.find("input[type=email]");
|
|
var label = form.find("label[for=" + email.attr("id") + "]");
|
|
var settings = $.extend({
|
|
url: form.attr("action"),
|
|
language: "en"
|
|
}, options);
|
|
var url = settings.url.replace("/post?", "/post-json?").concat("&c=?");
|
|
form.attr("novalidate", "true");
|
|
email.attr("name", "EMAIL");
|
|
form.submit(function() {
|
|
var msg;
|
|
|
|
function successCallback(resp) {
|
|
if (resp.result === "success") {
|
|
msg = "We have sent you a confirmation email";
|
|
label.removeClass("error").addClass("valid");
|
|
email.removeClass("error").addClass("valid")
|
|
} else {
|
|
email.removeClass("valid").addClass("error");
|
|
label.removeClass("valid").addClass("error");
|
|
var index = -1;
|
|
try {
|
|
var parts = resp.msg.split(" - ", 2);
|
|
if (parts[1] === undefined) {
|
|
msg = resp.msg
|
|
} else {
|
|
var i = parseInt(parts[0], 10);
|
|
if (i.toString() === parts[0]) {
|
|
index = parts[0];
|
|
msg = parts[1]
|
|
} else {
|
|
index = -1;
|
|
msg = resp.msg
|
|
}
|
|
}
|
|
} catch (e) {
|
|
index = -1;
|
|
msg = resp.msg
|
|
}
|
|
}
|
|
if (settings.language !== "en" && $.ajaxChimp.responses[msg] !== undefined && $.ajaxChimp.translations && $.ajaxChimp.translations[settings.language] && $.ajaxChimp.translations[settings.language][$.ajaxChimp.responses[msg]]) {
|
|
msg = $.ajaxChimp.translations[settings.language][$.ajaxChimp.responses[msg]]
|
|
}
|
|
label.html(msg);
|
|
label.show(2e3);
|
|
if (settings.callback) {
|
|
settings.callback(resp)
|
|
}
|
|
}
|
|
var data = {};
|
|
var dataArray = form.serializeArray();
|
|
$.each(dataArray, function(index, item) {
|
|
data[item.name] = item.value
|
|
});
|
|
$.ajax({
|
|
url: url,
|
|
data: data,
|
|
success: successCallback,
|
|
dataType: "jsonp",
|
|
error: function(resp, text) {
|
|
console.log("mailchimp ajax submit error: " + text)
|
|
}
|
|
});
|
|
var submitMsg = "Submitting...";
|
|
if (settings.language !== "en" && $.ajaxChimp.translations && $.ajaxChimp.translations[settings.language] && $.ajaxChimp.translations[settings.language]["submit"]) {
|
|
submitMsg = $.ajaxChimp.translations[settings.language]["submit"]
|
|
}
|
|
label.html(submitMsg).show(2e3);
|
|
return false
|
|
})
|
|
});
|
|
return this
|
|
}
|
|
})(jQuery);
|
|
|
|
|
|
/*!
|
|
* The Final Countdown for jQuery v2.2.0 (http://hilios.github.io/jQuery.countdown/)
|
|
* Copyright (c) 2016 Edson Hilios
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
* this software and associated documentation files (the "Software"), to deal in
|
|
* the Software without restriction, including without limitation the rights to
|
|
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
* the Software, and to permit persons to whom the Software is furnished to do so,
|
|
* subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in all
|
|
* copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
! function(a) {
|
|
"use strict";
|
|
"function" == typeof define && define.amd ? define(["jquery"], a) : a(jQuery)
|
|
}(function(a) {
|
|
"use strict";
|
|
|
|
function b(a) {
|
|
if (a instanceof Date) return a;
|
|
if (String(a).match(g)) return String(a).match(/^[0-9]*$/) && (a = Number(a)), String(a).match(/\-/) && (a = String(a).replace(/\-/g, "/")), new Date(a);
|
|
throw new Error("Couldn't cast `" + a + "` to a date object.")
|
|
}
|
|
|
|
function c(a) {
|
|
var b = a.toString().replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
|
|
return new RegExp(b)
|
|
}
|
|
|
|
function d(a) {
|
|
return function(b) {
|
|
var d = b.match(/%(-|!)?[A-Z]{1}(:[^;]+;)?/gi);
|
|
if (d)
|
|
for (var f = 0, g = d.length; f < g; ++f) {
|
|
var h = d[f].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/),
|
|
j = c(h[0]),
|
|
k = h[1] || "",
|
|
l = h[3] || "",
|
|
m = null;
|
|
h = h[2], i.hasOwnProperty(h) && (m = i[h], m = Number(a[m])), null !== m && ("!" === k && (m = e(l, m)), "" === k && m < 10 && (m = "0" + m.toString()), b = b.replace(j, m.toString()))
|
|
}
|
|
return b = b.replace(/%%/, "%")
|
|
}
|
|
}
|
|
|
|
function e(a, b) {
|
|
var c = "s",
|
|
d = "";
|
|
return a && (a = a.replace(/(:|;|\s)/gi, "").split(/\,/), 1 === a.length ? c = a[0] : (d = a[0], c = a[1])), Math.abs(b) > 1 ? c : d
|
|
}
|
|
var f = [],
|
|
g = [],
|
|
h = {
|
|
precision: 100,
|
|
elapse: !1,
|
|
defer: !1
|
|
};
|
|
g.push(/^[0-9]*$/.source), g.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source), g.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source), g = new RegExp(g.join("|"));
|
|
var i = {
|
|
Y: "years",
|
|
m: "months",
|
|
n: "daysToMonth",
|
|
d: "daysToWeek",
|
|
w: "weeks",
|
|
W: "weeksToMonth",
|
|
H: "hours",
|
|
M: "minutes",
|
|
S: "seconds",
|
|
D: "totalDays",
|
|
I: "totalHours",
|
|
N: "totalMinutes",
|
|
T: "totalSeconds"
|
|
},
|
|
j = function(b, c, d) {
|
|
this.el = b, this.$el = a(b), this.interval = null, this.offset = {}, this.options = a.extend({}, h), this.firstTick = !0, this.instanceNumber = f.length, f.push(this), this.$el.data("countdown-instance", this.instanceNumber), d && ("function" == typeof d ? (this.$el.on("update.countdown", d), this.$el.on("stoped.countdown", d), this.$el.on("finish.countdown", d)) : this.options = a.extend({}, h, d)), this.setFinalDate(c), this.options.defer === !1 && this.start()
|
|
};
|
|
a.extend(j.prototype, {
|
|
start: function() {
|
|
null !== this.interval && clearInterval(this.interval);
|
|
var a = this;
|
|
this.update(), this.interval = setInterval(function() {
|
|
a.update.call(a)
|
|
}, this.options.precision)
|
|
},
|
|
stop: function() {
|
|
clearInterval(this.interval), this.interval = null, this.dispatchEvent("stoped")
|
|
},
|
|
toggle: function() {
|
|
this.interval ? this.stop() : this.start()
|
|
},
|
|
pause: function() {
|
|
this.stop()
|
|
},
|
|
resume: function() {
|
|
this.start()
|
|
},
|
|
remove: function() {
|
|
this.stop.call(this), f[this.instanceNumber] = null, delete this.$el.data().countdownInstance
|
|
},
|
|
setFinalDate: function(a) {
|
|
this.finalDate = b(a)
|
|
},
|
|
update: function() {
|
|
if (0 === this.$el.closest("html").length) return void this.remove();
|
|
var a, b = new Date;
|
|
return a = this.finalDate.getTime() - b.getTime(), a = Math.ceil(a / 1e3), a = !this.options.elapse && a < 0 ? 0 : Math.abs(a), this.totalSecsLeft === a || this.firstTick ? void(this.firstTick = !1) : (this.totalSecsLeft = a, this.elapsed = b >= this.finalDate, this.offset = {
|
|
seconds: this.totalSecsLeft % 60,
|
|
minutes: Math.floor(this.totalSecsLeft / 60) % 60,
|
|
hours: Math.floor(this.totalSecsLeft / 60 / 60) % 24,
|
|
days: Math.floor(this.totalSecsLeft / 60 / 60 / 24) % 7,
|
|
daysToWeek: Math.floor(this.totalSecsLeft / 60 / 60 / 24) % 7,
|
|
daysToMonth: Math.floor(this.totalSecsLeft / 60 / 60 / 24 % 30.4368),
|
|
weeks: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 7),
|
|
weeksToMonth: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 7) % 4,
|
|
months: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 30.4368),
|
|
years: Math.abs(this.finalDate.getFullYear() - b.getFullYear()),
|
|
totalDays: Math.floor(this.totalSecsLeft / 60 / 60 / 24),
|
|
totalHours: Math.floor(this.totalSecsLeft / 60 / 60),
|
|
totalMinutes: Math.floor(this.totalSecsLeft / 60),
|
|
totalSeconds: this.totalSecsLeft
|
|
}, void(this.options.elapse || 0 !== this.totalSecsLeft ? this.dispatchEvent("update") : (this.stop(), this.dispatchEvent("finish"))))
|
|
},
|
|
dispatchEvent: function(b) {
|
|
var c = a.Event(b + ".countdown");
|
|
c.finalDate = this.finalDate, c.elapsed = this.elapsed, c.offset = a.extend({}, this.offset), c.strftime = d(this.offset), this.$el.trigger(c)
|
|
}
|
|
}), a.fn.countdown = function() {
|
|
var b = Array.prototype.slice.call(arguments, 0);
|
|
return this.each(function() {
|
|
var c = a(this).data("countdown-instance");
|
|
if (void 0 !== c) {
|
|
var d = f[c],
|
|
e = b[0];
|
|
j.prototype.hasOwnProperty(e) ? d[e].apply(d, b.slice(1)) : null === String(e).match(/^[$A-Z_][0-9A-Z_$]*$/i) ? (d.setFinalDate.call(d, e), d.start()) : a.error("Method %s does not exist on jQuery.countdown".replace(/\%s/gi, e))
|
|
} else new j(this, b[0], b[1])
|
|
})
|
|
}
|
|
});
|
|
|
|
|
|
|
|
/* jQuery Nice Select - v1.0
|
|
https://github.com/hernansartorio/jquery-nice-select
|
|
Made by Hernán Sartorio */
|
|
! function(e) {
|
|
e.fn.niceSelect = function(t) {
|
|
function s(t) {
|
|
t.after(e("<div></div>").addClass("nice-select").addClass(t.attr("class") || "").addClass(t.attr("disabled") ? "disabled" : "").attr("tabindex", t.attr("disabled") ? null : "0").html('<span class="current"></span><ul class="list"></ul>'));
|
|
var s = t.next(),
|
|
n = t.find("option"),
|
|
i = t.find("option:selected");
|
|
s.find(".current").html(i.data("display") || i.text()), n.each(function(t) {
|
|
var n = e(this),
|
|
i = n.data("display");
|
|
s.find("ul").append(e("<li></li>").attr("data-value", n.val()).attr("data-display", i || null).addClass("option" + (n.is(":selected") ? " selected" : "") + (n.is(":disabled") ? " disabled" : "")).html(n.text()))
|
|
})
|
|
}
|
|
if ("string" == typeof t) return "update" == t ? this.each(function() {
|
|
var t = e(this),
|
|
n = e(this).next(".nice-select"),
|
|
i = n.hasClass("open");
|
|
n.length && (n.remove(), s(t), i && t.next().trigger("click"))
|
|
}) : "destroy" == t ? (this.each(function() {
|
|
var t = e(this),
|
|
s = e(this).next(".nice-select");
|
|
s.length && (s.remove(), t.css("display", ""))
|
|
}), 0 == e(".nice-select").length && e(document).off(".nice_select")) : console.log('Method "' + t + '" does not exist.'), this;
|
|
this.hide(), this.each(function() {
|
|
var t = e(this);
|
|
t.next().hasClass("nice-select") || s(t)
|
|
}), e(document).off(".nice_select"), e(document).on("click.nice_select", ".nice-select", function(t) {
|
|
var s = e(this);
|
|
e(".nice-select").not(s).removeClass("open"), s.toggleClass("open"), s.hasClass("open") ? (s.find(".option"), s.find(".focus").removeClass("focus"), s.find(".selected").addClass("focus")) : s.focus()
|
|
}), e(document).on("click.nice_select", function(t) {
|
|
0 === e(t.target).closest(".nice-select").length && e(".nice-select").removeClass("open").find(".option")
|
|
}), e(document).on("click.nice_select", ".nice-select .option:not(.disabled)", function(t) {
|
|
var s = e(this),
|
|
n = s.closest(".nice-select");
|
|
n.find(".selected").removeClass("selected"), s.addClass("selected");
|
|
var i = s.data("display") || s.text();
|
|
n.find(".current").text(i), n.prev("select").val(s.data("value")).trigger("change")
|
|
}), e(document).on("keydown.nice_select", ".nice-select", function(t) {
|
|
var s = e(this),
|
|
n = e(s.find(".focus") || s.find(".list .option.selected"));
|
|
if (32 == t.keyCode || 13 == t.keyCode) return s.hasClass("open") ? n.trigger("click") : s.trigger("click"), !1;
|
|
if (40 == t.keyCode) {
|
|
if (s.hasClass("open")) {
|
|
var i = n.nextAll(".option:not(.disabled)").first();
|
|
i.length > 0 && (s.find(".focus").removeClass("focus"), i.addClass("focus"))
|
|
} else s.trigger("click");
|
|
return !1
|
|
}
|
|
if (38 == t.keyCode) {
|
|
if (s.hasClass("open")) {
|
|
var l = n.prevAll(".option:not(.disabled)").first();
|
|
l.length > 0 && (s.find(".focus").removeClass("focus"), l.addClass("focus"))
|
|
} else s.trigger("click");
|
|
return !1
|
|
}
|
|
if (27 == t.keyCode) s.hasClass("open") && s.trigger("click");
|
|
else if (9 == t.keyCode && s.hasClass("open")) return !1
|
|
});
|
|
var n = document.createElement("a").style;
|
|
return n.cssText = "pointer-events:auto", "auto" !== n.pointerEvents && e("html").addClass("no-csspointerevents"), this
|
|
}
|
|
}(jQuery);
|
|
|
|
|
|
|
|
/*
|
|
* VenoBox - jQuery Plugin
|
|
* version: 1.8.3
|
|
* @requires jQuery >= 1.7.0
|
|
*
|
|
* Examples at http://veno.es/venobox/
|
|
* License: MIT License
|
|
* License URI: https://github.com/nicolafranchini/VenoBox/blob/master/LICENSE
|
|
* Copyright 2013-2017 Nicola Franchini - @nicolafranchini
|
|
*
|
|
*/
|
|
! function(e) {
|
|
"use strict";
|
|
var s, i, c, a, o, t, d, l, r, n, v, u, b, k, p, m, h, f, g, x, y, w, C, _, B, P, E, O, D, M, N, U, V, I, z, R, X, Y, j, W, q;
|
|
e.fn.extend({
|
|
venobox: function($) {
|
|
var A = this,
|
|
H = e.extend({
|
|
arrowsColor: "#B6B6B6",
|
|
autoplay: !1,
|
|
bgcolor: "#fff",
|
|
border: "0",
|
|
closeBackground: "#161617",
|
|
closeColor: "#d2d2d2",
|
|
framewidth: "",
|
|
frameheight: "",
|
|
gallItems: !1,
|
|
infinigall: !1,
|
|
htmlClose: "×",
|
|
htmlNext: "<span>Next</span>",
|
|
htmlPrev: "<span>Prev</span>",
|
|
numeratio: !1,
|
|
numerationBackground: "#161617",
|
|
numerationColor: "#d2d2d2",
|
|
numerationPosition: "top",
|
|
overlayClose: !0,
|
|
overlayColor: "rgba(23,23,23,0.85)",
|
|
spinner: "double-bounce",
|
|
spinColor: "#d2d2d2",
|
|
titleattr: "title",
|
|
titleBackground: "#161617",
|
|
titleColor: "#d2d2d2",
|
|
titlePosition: "top",
|
|
cb_pre_open: function() {
|
|
return !0
|
|
},
|
|
cb_post_open: function() {},
|
|
cb_pre_close: function() {
|
|
return !0
|
|
},
|
|
cb_post_close: function() {},
|
|
cb_post_resize: function() {},
|
|
cb_after_nav: function() {},
|
|
cb_init: function() {}
|
|
}, $);
|
|
return H.cb_init(A), this.each(function() {
|
|
if ((D = e(this)).data("venobox")) return !0;
|
|
|
|
function $() {
|
|
y = D.data("gall"), h = D.data("numeratio"), u = D.data("gallItems"), b = D.data("infinigall"), k = u || e('.vbox-item[data-gall="' + y + '"]'), w = k.eq(k.index(D) + 1), C = k.eq(k.index(D) - 1), w.length || !0 !== b || (w = k.eq(0)), k.length > 1 ? (M = k.index(D) + 1, c.html(M + " / " + k.length)) : M = 1, !0 === h ? c.show() : c.hide(), "" !== x ? a.show() : a.hide(), w.length || !0 === b ? (e(".vbox-next").css("display", "block"), _ = !0) : (e(".vbox-next").css("display", "none"), _ = !1), k.index(D) > 0 || !0 === b ? (e(".vbox-prev").css("display", "block"), B = !0) : (e(".vbox-prev").css("display", "none"), B = !1), !0 !== B && !0 !== _ || (d.on(K.DOWN, F), d.on(K.MOVE, G), d.on(K.UP, J))
|
|
}
|
|
|
|
function Q(e) {
|
|
return !(e.length < 1) && (!p && (p = !0, f = e.data("overlay") || e.data("overlaycolor"), n = e.data("framewidth"), v = e.data("frameheight"), o = e.data("border"), i = e.data("bgcolor"), l = e.data("href") || e.attr("href"), s = e.data("autoplay"), x = e.attr(e.data("titleattr")) || "", e === C && d.addClass("animated").addClass("swipe-right"), e === w && d.addClass("animated").addClass("swipe-left"), E.show(), void d.animate({
|
|
opacity: 0
|
|
}, 500, function() {
|
|
g.css("background", f), d.removeClass("animated").removeClass("swipe-left").removeClass("swipe-right").css({
|
|
"margin-left": 0,
|
|
"margin-right": 0
|
|
}), "iframe" == e.data("vbtype") ? ce() : "inline" == e.data("vbtype") ? oe() : "ajax" == e.data("vbtype") ? ie() : "video" == e.data("vbtype") ? ae(s) : (d.html('<img src="' + l + '">'), te()), D = e, $(), p = !1, H.cb_after_nav(D, M, w, C)
|
|
})))
|
|
}
|
|
|
|
function S(e) {
|
|
27 === e.keyCode && T(), 37 == e.keyCode && !0 === B && Q(C), 39 == e.keyCode && !0 === _ && Q(w)
|
|
}
|
|
|
|
function T() {
|
|
if (!1 === H.cb_pre_close(D, M, w, C)) return !1;
|
|
e("body").off("keydown", S).removeClass("vbox-open"), D.focus(), g.animate({
|
|
opacity: 0
|
|
}, 500, function() {
|
|
g.remove(), p = !1, H.cb_post_close()
|
|
})
|
|
}
|
|
A.VBclose = function() {
|
|
T()
|
|
}, D.addClass("vbox-item"), D.data("framewidth", H.framewidth), D.data("frameheight", H.frameheight), D.data("border", H.border), D.data("bgcolor", H.bgcolor), D.data("numeratio", H.numeratio), D.data("gallItems", H.gallItems), D.data("infinigall", H.infinigall), D.data("overlaycolor", H.overlayColor), D.data("titleattr", H.titleattr), D.data("venobox", !0), D.on("click", function(u) {
|
|
if (u.preventDefault(), D = e(this), !1 === H.cb_pre_open(D)) return !1;
|
|
switch (A.VBnext = function() {
|
|
Q(w)
|
|
}, A.VBprev = function() {
|
|
Q(C)
|
|
}, f = D.data("overlay") || D.data("overlaycolor"), n = D.data("framewidth"), v = D.data("frameheight"), s = D.data("autoplay") || H.autoplay, o = D.data("border"), i = D.data("bgcolor"), _ = !1, B = !1, p = !1, l = D.data("href") || D.attr("href"), r = D.data("css") || "", x = D.attr(D.data("titleattr")) || "", P = '<div class="vbox-preloader">', H.spinner) {
|
|
case "rotating-plane":
|
|
P += '<div class="sk-rotating-plane"></div>';
|
|
break;
|
|
case "double-bounce":
|
|
P += '<div class="sk-double-bounce"><div class="sk-child sk-double-bounce1"></div><div class="sk-child sk-double-bounce2"></div></div>';
|
|
break;
|
|
case "wave":
|
|
P += '<div class="sk-wave"><div class="sk-rect sk-rect1"></div><div class="sk-rect sk-rect2"></div><div class="sk-rect sk-rect3"></div><div class="sk-rect sk-rect4"></div><div class="sk-rect sk-rect5"></div></div>';
|
|
break;
|
|
case "wandering-cubes":
|
|
P += '<div class="sk-wandering-cubes"><div class="sk-cube sk-cube1"></div><div class="sk-cube sk-cube2"></div></div>';
|
|
break;
|
|
case "spinner-pulse":
|
|
P += '<div class="sk-spinner sk-spinner-pulse"></div>';
|
|
break;
|
|
case "chasing-dots":
|
|
P += '<div class="sk-chasing-dots"><div class="sk-child sk-dot1"></div><div class="sk-child sk-dot2"></div></div>';
|
|
break;
|
|
case "three-bounce":
|
|
P += '<div class="sk-three-bounce"><div class="sk-child sk-bounce1"></div><div class="sk-child sk-bounce2"></div><div class="sk-child sk-bounce3"></div></div>';
|
|
break;
|
|
case "circle":
|
|
P += '<div class="sk-circle"><div class="sk-circle1 sk-child"></div><div class="sk-circle2 sk-child"></div><div class="sk-circle3 sk-child"></div><div class="sk-circle4 sk-child"></div><div class="sk-circle5 sk-child"></div><div class="sk-circle6 sk-child"></div><div class="sk-circle7 sk-child"></div><div class="sk-circle8 sk-child"></div><div class="sk-circle9 sk-child"></div><div class="sk-circle10 sk-child"></div><div class="sk-circle11 sk-child"></div><div class="sk-circle12 sk-child"></div></div>';
|
|
break;
|
|
case "cube-grid":
|
|
P += '<div class="sk-cube-grid"><div class="sk-cube sk-cube1"></div><div class="sk-cube sk-cube2"></div><div class="sk-cube sk-cube3"></div><div class="sk-cube sk-cube4"></div><div class="sk-cube sk-cube5"></div><div class="sk-cube sk-cube6"></div><div class="sk-cube sk-cube7"></div><div class="sk-cube sk-cube8"></div><div class="sk-cube sk-cube9"></div></div>';
|
|
break;
|
|
case "fading-circle":
|
|
P += '<div class="sk-fading-circle"><div class="sk-circle1 sk-circle"></div><div class="sk-circle2 sk-circle"></div><div class="sk-circle3 sk-circle"></div><div class="sk-circle4 sk-circle"></div><div class="sk-circle5 sk-circle"></div><div class="sk-circle6 sk-circle"></div><div class="sk-circle7 sk-circle"></div><div class="sk-circle8 sk-circle"></div><div class="sk-circle9 sk-circle"></div><div class="sk-circle10 sk-circle"></div><div class="sk-circle11 sk-circle"></div><div class="sk-circle12 sk-circle"></div></div>';
|
|
break;
|
|
case "folding-cube":
|
|
P += '<div class="sk-folding-cube"><div class="sk-cube1 sk-cube"></div><div class="sk-cube2 sk-cube"></div><div class="sk-cube4 sk-cube"></div><div class="sk-cube3 sk-cube"></div></div>'
|
|
}
|
|
return P += "</div>", O = '<a class="vbox-next">' + H.htmlNext + '</a><a class="vbox-prev">' + H.htmlPrev + "</a>", U = '<div class="vbox-title"></div><div class="vbox-num">0/0</div><div class="vbox-close">' + H.htmlClose + "</div>", t = '<div class="vbox-overlay ' + r + '" style="background:' + f + '">' + P + '<div class="vbox-container"><div class="vbox-content"></div></div>' + U + O + "</div>", e("body").append(t).addClass("vbox-open"), e(".vbox-preloader div:not(.sk-circle) .sk-child, .vbox-preloader .sk-rotating-plane, .vbox-preloader .sk-rect, .vbox-preloader div:not(.sk-folding-cube) .sk-cube, .vbox-preloader .sk-spinner-pulse").css("background-color", H.spinColor), g = e(".vbox-overlay"), e(".vbox-container"), d = e(".vbox-content"), c = e(".vbox-num"), a = e(".vbox-title"), (E = e(".vbox-preloader")).show(), a.css(H.titlePosition, "-1px"), a.css({
|
|
color: H.titleColor,
|
|
"background-color": H.titleBackground
|
|
}), e(".vbox-close").css({
|
|
color: H.closeColor,
|
|
"background-color": H.closeBackground
|
|
}), e(".vbox-num").css(H.numerationPosition, "-1px"), e(".vbox-num").css({
|
|
color: H.numerationColor,
|
|
"background-color": H.numerationBackground
|
|
}), e(".vbox-next span, .vbox-prev span").css({
|
|
"border-top-color": H.arrowsColor,
|
|
"border-right-color": H.arrowsColor
|
|
}), d.html(""), d.css("opacity", "0"), g.css("opacity", "0"), $(), g.animate({
|
|
opacity: 1
|
|
}, 250, function() {
|
|
"iframe" == D.data("vbtype") ? ce() : "inline" == D.data("vbtype") ? oe() : "ajax" == D.data("vbtype") ? ie() : "video" == D.data("vbtype") ? ae(s) : (d.html('<img src="' + l + '">'), te()), H.cb_post_open(D, M, w, C)
|
|
}), e("body").keydown(S), e(".vbox-prev").on("click", function() {
|
|
Q(C)
|
|
}), e(".vbox-next").on("click", function() {
|
|
Q(w)
|
|
}), !1
|
|
});
|
|
var Z = ".vbox-overlay";
|
|
|
|
function F(e) {
|
|
d.addClass("animated"), I = R = e.pageY, z = X = e.pageX, N = !0
|
|
}
|
|
|
|
function G(e) {
|
|
if (!0 === N) {
|
|
X = e.pageX, R = e.pageY, j = X - z, W = R - I;
|
|
var s = Math.abs(j);
|
|
s > Math.abs(W) && s <= 100 && (e.preventDefault(), d.css("margin-left", j))
|
|
}
|
|
}
|
|
|
|
function J(e) {
|
|
if (!0 === N) {
|
|
N = !1;
|
|
var s = D,
|
|
i = !1;
|
|
(Y = X - z) < 0 && !0 === _ && (s = w, i = !0), Y > 0 && !0 === B && (s = C, i = !0), Math.abs(Y) >= q && !0 === i ? Q(s) : d.css({
|
|
"margin-left": 0,
|
|
"margin-right": 0
|
|
})
|
|
}
|
|
}
|
|
H.overlayClose || (Z = ".vbox-close"), e("body").on("click", Z, function(s) {
|
|
(e(s.target).is(".vbox-overlay") || e(s.target).is(".vbox-content") || e(s.target).is(".vbox-close") || e(s.target).is(".vbox-preloader")) && T()
|
|
}), z = 0, X = 0, Y = 0, q = 50, N = !1;
|
|
var K = {
|
|
DOWN: "touchmousedown",
|
|
UP: "touchmouseup",
|
|
MOVE: "touchmousemove"
|
|
},
|
|
L = function(s) {
|
|
var i;
|
|
switch (s.type) {
|
|
case "mousedown":
|
|
i = K.DOWN;
|
|
break;
|
|
case "mouseup":
|
|
case "mouseout":
|
|
i = K.UP;
|
|
break;
|
|
case "mousemove":
|
|
i = K.MOVE;
|
|
break;
|
|
default:
|
|
return
|
|
}
|
|
var c = se(i, s, s.pageX, s.pageY);
|
|
e(s.target).trigger(c)
|
|
},
|
|
ee = function(s) {
|
|
var i;
|
|
switch (s.type) {
|
|
case "touchstart":
|
|
i = K.DOWN;
|
|
break;
|
|
case "touchend":
|
|
i = K.UP;
|
|
break;
|
|
case "touchmove":
|
|
i = K.MOVE;
|
|
break;
|
|
default:
|
|
return
|
|
}
|
|
var c, a = s.originalEvent.touches[0];
|
|
c = i == K.UP ? se(i, s, null, null) : se(i, s, a.pageX, a.pageY), e(s.target).trigger(c)
|
|
},
|
|
se = function(s, i, c, a) {
|
|
return e.Event(s, {
|
|
pageX: c,
|
|
pageY: a,
|
|
originalEvent: i
|
|
})
|
|
};
|
|
|
|
function ie() {
|
|
e.ajax({
|
|
url: l,
|
|
cache: !1
|
|
}).done(function(e) {
|
|
d.html('<div class="vbox-inline">' + e + "</div>"), te()
|
|
}).fail(function() {
|
|
d.html('<div class="vbox-inline"><p>Error retrieving contents, please retry</div>'), de()
|
|
})
|
|
}
|
|
|
|
function ce() {
|
|
d.html('<iframe class="venoframe" src="' + l + '"></iframe>'), de()
|
|
}
|
|
|
|
function ae(e) {
|
|
var s, i = function(e) {
|
|
var s;
|
|
e.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/), RegExp.$3.indexOf("youtu") > -1 ? s = "youtube" : RegExp.$3.indexOf("vimeo") > -1 && (s = "vimeo");
|
|
return {
|
|
type: s,
|
|
id: RegExp.$6
|
|
}
|
|
}(l),
|
|
c = (e ? "?rel=0&autoplay=1" : "?rel=0") + function(e) {
|
|
var s = "",
|
|
i = decodeURIComponent(e).split("?");
|
|
if (void 0 !== i[1]) {
|
|
var c, a, o = i[1].split("&");
|
|
for (a = 0; a < o.length; a++) c = o[a].split("="), s = s + "&" + c[0] + "=" + c[1]
|
|
}
|
|
return encodeURI(s)
|
|
}(l);
|
|
"vimeo" == i.type ? s = "https://player.vimeo.com/video/" : "youtube" == i.type && (s = "https://www.youtube.com/embed/"), d.html('<iframe class="venoframe vbvid" webkitallowfullscreen mozallowfullscreen allowfullscreen frameborder="0" src="' + s + i.id + c + '"></iframe>'), de()
|
|
}
|
|
|
|
function oe() {
|
|
d.html('<div class="vbox-inline">' + e(l).html() + "</div>"), de()
|
|
}
|
|
|
|
function te() {
|
|
(V = d.find("img")).length ? V.each(function() {
|
|
e(this).one("load", function() {
|
|
de()
|
|
})
|
|
}) : de()
|
|
}
|
|
|
|
function de() {
|
|
a.html(x), d.find(">:first-child").addClass("figlio").css({
|
|
width: n,
|
|
height: v,
|
|
padding: o,
|
|
background: i
|
|
}), e("img.figlio").on("dragstart", function(e) {
|
|
e.preventDefault()
|
|
}), le(), d.animate({
|
|
opacity: "1"
|
|
}, "slow", function() {
|
|
E.hide()
|
|
})
|
|
}
|
|
|
|
function le() {
|
|
var s = d.outerHeight(),
|
|
i = e(window).height();
|
|
m = s + 60 < i ? (i - s) / 2 : "30px", d.css("margin-top", m), d.css("margin-bottom", m), H.cb_post_resize()
|
|
}
|
|
"ontouchstart" in window ? (e(document).on("touchstart", ee), e(document).on("touchmove", ee), e(document).on("touchend", ee)) : (e(document).on("mousedown", L), e(document).on("mouseup", L), e(document).on("mouseout", L), e(document).on("mousemove", L)), e(window).resize(function() {
|
|
e(".vbox-content").length && setTimeout(le(), 800)
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}(jQuery);
|
|
|
|
|
|
|
|
/*----------------------------
|
|
Theia Sticky Sidebar JS
|
|
------------------------------*/
|
|
! function(i) {
|
|
i.fn.theiaStickySidebar = function(t) {
|
|
function e(t, e) {
|
|
var a = o(t, e);
|
|
a || (console.log("TSS: Body width smaller than options.minWidth. Init is delayed."), i(document).on("scroll." + t.namespace, function(t, e) {
|
|
return function(a) {
|
|
var n = o(t, e);
|
|
n && i(this).unbind(a)
|
|
}
|
|
}(t, e)), i(window).on("resize." + t.namespace, function(t, e) {
|
|
return function(a) {
|
|
var n = o(t, e);
|
|
n && i(this).unbind(a)
|
|
}
|
|
}(t, e)))
|
|
}
|
|
|
|
function o(t, e) {
|
|
return t.initialized === !0 || !(i("body").width() < t.minWidth) && (a(t, e), !0)
|
|
}
|
|
|
|
function a(t, e) {
|
|
t.initialized = !0;
|
|
var o = i("#theia-sticky-sidebar-stylesheet-" + t.namespace);
|
|
0 === o.length && i("head").append(i('<style id="theia-sticky-sidebar-stylesheet-' + t.namespace + '">.theiaStickySidebar:after {content: ""; display: table; clear: both;}</style>')), e.each(function() {
|
|
function e() {
|
|
a.fixedScrollTop = 0, a.sidebar.css({
|
|
"min-height": "1px"
|
|
}), a.stickySidebar.css({
|
|
position: "static",
|
|
width: "",
|
|
transform: "none"
|
|
})
|
|
}
|
|
|
|
function o(t) {
|
|
var e = t.height();
|
|
return t.children().each(function() {
|
|
e = Math.max(e, i(this).height())
|
|
}), e
|
|
}
|
|
var a = {};
|
|
if (a.sidebar = i(this), a.options = t || {}, a.container = i(a.options.containerSelector), 0 == a.container.length && (a.container = a.sidebar.parent()), a.sidebar.parents().css("-webkit-transform", "none"), a.sidebar.css({
|
|
position: a.options.defaultPosition,
|
|
overflow: "visible",
|
|
"-webkit-box-sizing": "border-box",
|
|
"-moz-box-sizing": "border-box",
|
|
"box-sizing": "border-box"
|
|
}), a.stickySidebar = a.sidebar.find(".theiaStickySidebar"), 0 == a.stickySidebar.length) {
|
|
var s = /(?:text|application)\/(?:x-)?(?:javascript|ecmascript)/i;
|
|
a.sidebar.find("script").filter(function(i, t) {
|
|
return 0 === t.type.length || t.type.match(s)
|
|
}).remove(), a.stickySidebar = i("<div>").addClass("theiaStickySidebar").append(a.sidebar.children()), a.sidebar.append(a.stickySidebar)
|
|
}
|
|
a.marginBottom = parseInt(a.sidebar.css("margin-bottom")), a.paddingTop = parseInt(a.sidebar.css("padding-top")), a.paddingBottom = parseInt(a.sidebar.css("padding-bottom"));
|
|
var r = a.stickySidebar.offset().top,
|
|
d = a.stickySidebar.outerHeight();
|
|
a.stickySidebar.css("padding-top", 1), a.stickySidebar.css("padding-bottom", 1), r -= a.stickySidebar.offset().top, d = a.stickySidebar.outerHeight() - d - r, 0 == r ? (a.stickySidebar.css("padding-top", 0), a.stickySidebarPaddingTop = 0) : a.stickySidebarPaddingTop = 1, 0 == d ? (a.stickySidebar.css("padding-bottom", 0), a.stickySidebarPaddingBottom = 0) : a.stickySidebarPaddingBottom = 1, a.previousScrollTop = null, a.fixedScrollTop = 0, e(), a.onScroll = function(a) {
|
|
if (a.stickySidebar.is(":visible")) {
|
|
if (i("body").width() < a.options.minWidth) return void e();
|
|
if (a.options.disableOnResponsiveLayouts) {
|
|
var s = a.sidebar.outerWidth("none" == a.sidebar.css("float"));
|
|
if (s + 50 > a.container.width()) return void e()
|
|
}
|
|
var r = i(document).scrollTop(),
|
|
d = "static";
|
|
if (r >= a.sidebar.offset().top + (a.paddingTop - a.options.additionalMarginTop)) {
|
|
var c, p = a.paddingTop + t.additionalMarginTop,
|
|
b = a.paddingBottom + a.marginBottom + t.additionalMarginBottom,
|
|
l = a.sidebar.offset().top,
|
|
f = a.sidebar.offset().top + o(a.container),
|
|
h = 0 + t.additionalMarginTop,
|
|
g = a.stickySidebar.outerHeight() + p + b < i(window).height();
|
|
c = g ? h + a.stickySidebar.outerHeight() : i(window).height() - a.marginBottom - a.paddingBottom - t.additionalMarginBottom;
|
|
var u = l - r + a.paddingTop,
|
|
S = f - r - a.paddingBottom - a.marginBottom,
|
|
y = a.stickySidebar.offset().top - r,
|
|
m = a.previousScrollTop - r;
|
|
"fixed" == a.stickySidebar.css("position") && "modern" == a.options.sidebarBehavior && (y += m), "stick-to-top" == a.options.sidebarBehavior && (y = t.additionalMarginTop), "stick-to-bottom" == a.options.sidebarBehavior && (y = c - a.stickySidebar.outerHeight()), y = m > 0 ? Math.min(y, h) : Math.max(y, c - a.stickySidebar.outerHeight()), y = Math.max(y, u), y = Math.min(y, S - a.stickySidebar.outerHeight());
|
|
var k = a.container.height() == a.stickySidebar.outerHeight();
|
|
d = (k || y != h) && (k || y != c - a.stickySidebar.outerHeight()) ? r + y - a.sidebar.offset().top - a.paddingTop <= t.additionalMarginTop ? "static" : "absolute" : "fixed"
|
|
}
|
|
if ("fixed" == d) {
|
|
var v = i(document).scrollLeft();
|
|
a.stickySidebar.css({
|
|
position: "fixed",
|
|
width: n(a.stickySidebar) + "px",
|
|
transform: "translateY(" + y + "px)",
|
|
left: a.sidebar.offset().left + parseInt(a.sidebar.css("padding-left")) - v + "px",
|
|
top: "0px"
|
|
})
|
|
} else if ("absolute" == d) {
|
|
var x = {};
|
|
"absolute" != a.stickySidebar.css("position") && (x.position = "absolute", x.transform = "translateY(" + (r + y - a.sidebar.offset().top - a.stickySidebarPaddingTop - a.stickySidebarPaddingBottom) + "px)", x.top = "0px"), x.width = n(a.stickySidebar) + "px", x.left = "", a.stickySidebar.css(x)
|
|
} else "static" == d && e();
|
|
"static" != d && 1 == a.options.updateSidebarHeight && a.sidebar.css({
|
|
"min-height": a.stickySidebar.outerHeight() + a.stickySidebar.offset().top - a.sidebar.offset().top + a.paddingBottom
|
|
}), a.previousScrollTop = r
|
|
}
|
|
}, a.onScroll(a), i(document).on("scroll." + a.options.namespace, function(i) {
|
|
return function() {
|
|
i.onScroll(i)
|
|
}
|
|
}(a)), i(window).on("resize." + a.options.namespace, function(i) {
|
|
return function() {
|
|
i.stickySidebar.css({
|
|
position: "static"
|
|
}), i.onScroll(i)
|
|
}
|
|
}(a)), "undefined" != typeof ResizeSensor && new ResizeSensor(a.stickySidebar[0], function(i) {
|
|
return function() {
|
|
i.onScroll(i)
|
|
}
|
|
}(a))
|
|
})
|
|
}
|
|
|
|
function n(i) {
|
|
var t;
|
|
try {
|
|
t = i[0].getBoundingClientRect().width
|
|
} catch (i) {}
|
|
return "undefined" == typeof t && (t = i.width()), t
|
|
}
|
|
var s = {
|
|
containerSelector: "",
|
|
additionalMarginTop: 0,
|
|
additionalMarginBottom: 0,
|
|
updateSidebarHeight: !0,
|
|
minWidth: 0,
|
|
disableOnResponsiveLayouts: !0,
|
|
sidebarBehavior: "modern",
|
|
defaultPosition: "relative",
|
|
namespace: "TSS"
|
|
};
|
|
return t = i.extend(s, t), t.additionalMarginTop = parseInt(t.additionalMarginTop) || 0, t.additionalMarginBottom = parseInt(t.additionalMarginBottom) || 0, e(t, this), this
|
|
}
|
|
}(jQuery);
|
|
//# sourceMappingURL=maps/theia-sticky-sidebar.min.js.map
|
|
|
|
/*!
|
|
* scrollup v2.4.1
|
|
* Url: http://markgoodyear.com/labs/scrollup/
|
|
* Copyright (c) Mark Goodyear  @markgdyr  http://markgoodyear.com
|
|
* License: MIT
|
|
*/
|
|
! function(l, o, e) {
|
|
"use strict";
|
|
l.fn.scrollUp = function(o) {
|
|
l.data(e.body, "scrollUp") || (l.data(e.body, "scrollUp", !0), l.fn.scrollUp.init(o))
|
|
}, l.fn.scrollUp.init = function(r) {
|
|
var s, t, c, i, n, a, d, p = l.fn.scrollUp.settings = l.extend({}, l.fn.scrollUp.defaults, r),
|
|
f = !1;
|
|
switch (d = p.scrollTrigger ? l(p.scrollTrigger) : l("<a/>", {
|
|
id: p.scrollName,
|
|
href: "#top"
|
|
}), p.scrollTitle && d.attr("title", p.scrollTitle), d.appendTo("body"), p.scrollImg || p.scrollTrigger || d.html(p.scrollText), d.css({
|
|
display: "none",
|
|
position: "fixed",
|
|
zIndex: p.zIndex
|
|
}), p.activeOverlay && l("<div/>", {
|
|
id: p.scrollName + "-active"
|
|
}).css({
|
|
position: "absolute",
|
|
top: p.scrollDistance + "px",
|
|
width: "100%",
|
|
borderTop: "1px dotted" + p.activeOverlay,
|
|
zIndex: p.zIndex
|
|
}).appendTo("body"), p.animation) {
|
|
case "fade":
|
|
s = "fadeIn", t = "fadeOut", c = p.animationSpeed;
|
|
break;
|
|
case "slide":
|
|
s = "slideDown", t = "slideUp", c = p.animationSpeed;
|
|
break;
|
|
default:
|
|
s = "show", t = "hide", c = 0
|
|
}
|
|
i = "top" === p.scrollFrom ? p.scrollDistance : l(e).height() - l(o).height() - p.scrollDistance, n = l(o).scroll(function() {
|
|
l(o).scrollTop() > i ? f || (d[s](c), f = !0) : f && (d[t](c), f = !1)
|
|
}), p.scrollTarget ? "number" == typeof p.scrollTarget ? a = p.scrollTarget : "string" == typeof p.scrollTarget && (a = Math.floor(l(p.scrollTarget).offset().top)) : a = 0, d.click(function(o) {
|
|
o.preventDefault(), l("html, body").animate({
|
|
scrollTop: a
|
|
}, p.scrollSpeed, p.easingType)
|
|
})
|
|
}, l.fn.scrollUp.defaults = {
|
|
scrollName: "scrollUp",
|
|
scrollDistance: 300,
|
|
scrollFrom: "top",
|
|
scrollSpeed: 300,
|
|
easingType: "linear",
|
|
animation: "fade",
|
|
animationSpeed: 200,
|
|
scrollTrigger: !1,
|
|
scrollTarget: !1,
|
|
scrollText: "Scroll to top",
|
|
scrollTitle: !1,
|
|
scrollImg: !1,
|
|
activeOverlay: !1,
|
|
zIndex: 2147483647
|
|
}, l.fn.scrollUp.destroy = function(r) {
|
|
l.removeData(e.body, "scrollUp"), l("#" + l.fn.scrollUp.settings.scrollName).remove(), l("#" + l.fn.scrollUp.settings.scrollName + "-active").remove(), l.fn.jquery.split(".")[1] >= 7 ? l(o).off("scroll", r) : l(o).unbind("scroll", r)
|
|
}, l.scrollUp = l.fn.scrollUp
|
|
}(jQuery, window, document);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
* Ajax Contact Form
|
|
*/
|
|
$(function() {
|
|
|
|
// Get the form.
|
|
var form = $('#contact-form');
|
|
|
|
// Get the messages div.
|
|
var formMessages = $('.form-messege');
|
|
|
|
// Set up an event listener for the contact form.
|
|
$(form).submit(function(e) {
|
|
// Stop the browser from submitting the form.
|
|
e.preventDefault();
|
|
|
|
// Serialize the form data.
|
|
var formData = $(form).serialize();
|
|
|
|
// Submit the form using AJAX.
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: $(form).attr('action'),
|
|
data: formData
|
|
})
|
|
.done(function(response) {
|
|
// Make sure that the formMessages div has the 'success' class.
|
|
$(formMessages).removeClass('error');
|
|
$(formMessages).addClass('success');
|
|
|
|
// Set the message text.
|
|
$(formMessages).text(response);
|
|
|
|
// Clear the form.
|
|
$('#contact-form input,#contact-form textarea').val('');
|
|
})
|
|
.fail(function(data) {
|
|
// Make sure that the formMessages div has the 'error' class.
|
|
$(formMessages).removeClass('success');
|
|
$(formMessages).addClass('error');
|
|
|
|
// Set the message text.
|
|
if (data.responseText !== '') {
|
|
$(formMessages).text(data.responseText);
|
|
} else {
|
|
$(formMessages).text('Oops! An error occured and your message could not be sent.');
|
|
}
|
|
});
|
|
});
|
|
|
|
}); |