/*!
* Bootstrap v3.3.5 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under the MIT license
*/
if ("undefined" == typeof jQuery)
throw new Error("Bootstrap's JavaScript requires jQuery");
+(function (a) {
"use strict";
var b = a.fn.jquery.split(" ")[0].split(".");
if ((b[0] < 2 && b[1] < 9) || (1 == b[0] && 9 == b[1] && b[2] < 1))
throw new Error(
"Bootstrap's JavaScript requires jQuery version 1.9.1 or higher"
);
})(jQuery),
+(function (a) {
"use strict";
function b() {
var a = document.createElement("bootstrap"),
b = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd otransitionend",
transition: "transitionend",
};
for (var c in b) if (void 0 !== a.style[c]) return { end: b[c] };
return !1;
}
(a.fn.emulateTransitionEnd = function (b) {
var c = !1,
d = this;
a(this).one("bsTransitionEnd", function () {
c = !0;
});
var e = function () {
c || a(d).trigger(a.support.transition.end);
};
return setTimeout(e, b), this;
}),
a(function () {
(a.support.transition = b()),
a.support.transition &&
(a.event.special.bsTransitionEnd = {
bindType: a.support.transition.end,
delegateType: a.support.transition.end,
handle: function (b) {
return a(b.target).is(this)
? b.handleObj.handler.apply(this, arguments)
: void 0;
},
});
});
})(jQuery),
+(function (a) {
"use strict";
function b(b) {
return this.each(function () {
var c = a(this),
e = c.data("bs.alert");
e || c.data("bs.alert", (e = new d(this))),
"string" == typeof b && e[b].call(c);
});
}
var c = '[data-dismiss="alert"]',
d = function (b) {
a(b).on("click", c, this.close);
};
(d.VERSION = "3.3.5"),
(d.TRANSITION_DURATION = 150),
(d.prototype.close = function (b) {
function c() {
g.detach().trigger("closed.bs.alert").remove();
}
var e = a(this),
f = e.attr("data-target");
f || ((f = e.attr("href")), (f = f && f.replace(/.*(?=#[^\s]*$)/, "")));
var g = a(f);
b && b.preventDefault(),
g.length || (g = e.closest(".alert")),
g.trigger((b = a.Event("close.bs.alert"))),
b.isDefaultPrevented() ||
(g.removeClass("in"),
a.support.transition && g.hasClass("fade")
? g
.one("bsTransitionEnd", c)
.emulateTransitionEnd(d.TRANSITION_DURATION)
: c());
});
var e = a.fn.alert;
(a.fn.alert = b),
(a.fn.alert.Constructor = d),
(a.fn.alert.noConflict = function () {
return (a.fn.alert = e), this;
}),
a(document).on("click.bs.alert.data-api", c, d.prototype.close);
})(jQuery),
+(function (a) {
"use strict";
function b(b) {
return this.each(function () {
var d = a(this),
e = d.data("bs.button"),
f = "object" == typeof b && b;
e || d.data("bs.button", (e = new c(this, f))),
"toggle" == b ? e.toggle() : b && e.setState(b);
});
}
var c = function (b, d) {
(this.$element = a(b)),
(this.options = a.extend({}, c.DEFAULTS, d)),
(this.isLoading = !1);
};
(c.VERSION = "3.3.5"),
(c.DEFAULTS = { loadingText: "loading..." }),
(c.prototype.setState = function (b) {
var c = "disabled",
d = this.$element,
e = d.is("input") ? "val" : "html",
f = d.data();
(b += "Text"),
null == f.resetText && d.data("resetText", d[e]()),
setTimeout(
a.proxy(function () {
d[e](null == f[b] ? this.options[b] : f[b]),
"loadingText" == b
? ((this.isLoading = !0), d.addClass(c).attr(c, c))
: this.isLoading &&
((this.isLoading = !1), d.removeClass(c).removeAttr(c));
}, this),
0
);
}),
(c.prototype.toggle = function () {
var a = !0,
b = this.$element.closest('[data-toggle="buttons"]');
if (b.length) {
var c = this.$element.find("input");
"radio" == c.prop("type")
? (c.prop("checked") && (a = !1),
b.find(".active").removeClass("active"),
this.$element.addClass("active"))
: "checkbox" == c.prop("type") &&
(c.prop("checked") !== this.$element.hasClass("active") &&
(a = !1),
this.$element.toggleClass("active")),
c.prop("checked", this.$element.hasClass("active")),
a && c.trigger("change");
} else
this.$element.attr("aria-pressed", !this.$element.hasClass("active")),
this.$element.toggleClass("active");
});
var d = a.fn.button;
(a.fn.button = b),
(a.fn.button.Constructor = c),
(a.fn.button.noConflict = function () {
return (a.fn.button = d), this;
}),
a(document)
.on("click.bs.button.data-api", '[data-toggle^="button"]', function (
c
) {
var d = a(c.target);
d.hasClass("btn") || (d = d.closest(".btn")),
b.call(d, "toggle"),
a(c.target).is('input[type="radio"]') ||
a(c.target).is('input[type="checkbox"]') ||
c.preventDefault();
})
.on(
"focus.bs.button.data-api blur.bs.button.data-api",
'[data-toggle^="button"]',
function (b) {
a(b.target)
.closest(".btn")
.toggleClass("focus", /^focus(in)?$/.test(b.type));
}
);
})(jQuery),
+(function (a) {
"use strict";
function b(b) {
return this.each(function () {
var d = a(this),
e = d.data("bs.carousel"),
f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b),
g = "string" == typeof b ? b : f.slide;
e || d.data("bs.carousel", (e = new c(this, f))),
"number" == typeof b
? e.to(b)
: g
? e[g]()
: f.interval && e.pause().cycle();
});
}
var c = function (b, c) {
(this.$element = a(b)),
(this.$indicators = this.$element.find(".carousel-indicators")),
(this.options = c),
(this.paused = null),
(this.sliding = null),
(this.interval = null),
(this.$active = null),
(this.$items = null),
this.options.keyboard &&
this.$element.on("keydown.bs.carousel", a.proxy(this.keydown, this)),
"hover" == this.options.pause &&
!("ontouchstart" in document.documentElement) &&
this.$element
.on("mouseenter.bs.carousel", a.proxy(this.pause, this))
.on("mouseleave.bs.carousel", a.proxy(this.cycle, this));
};
(c.VERSION = "3.3.5"),
(c.TRANSITION_DURATION = 600),
(c.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0, keyboard: !0 }),
(c.prototype.keydown = function (a) {
if (!/input|textarea/i.test(a.target.tagName)) {
switch (a.which) {
case 37:
this.prev();
break;
case 39:
this.next();
break;
default:
return;
}
a.preventDefault();
}
}),
(c.prototype.cycle = function (b) {
return (
b || (this.paused = !1),
this.interval && clearInterval(this.interval),
this.options.interval &&
!this.paused &&
(this.interval = setInterval(
a.proxy(this.next, this),
this.options.interval
)),
this
);
}),
(c.prototype.getItemIndex = function (a) {
return (
(this.$items = a.parent().children(".item")),
this.$items.index(a || this.$active)
);
}),
(c.prototype.getItemForDirection = function (a, b) {
var c = this.getItemIndex(b),
d =
("prev" == a && 0 === c) ||
("next" == a && c == this.$items.length - 1);
if (d && !this.options.wrap) return b;
var e = "prev" == a ? -1 : 1,
f = (c + e) % this.$items.length;
return this.$items.eq(f);
}),
(c.prototype.to = function (a) {
var b = this,
c = this.getItemIndex(
(this.$active = this.$element.find(".item.active"))
);
return a > this.$items.length - 1 || 0 > a
? void 0
: this.sliding
? this.$element.one("slid.bs.carousel", function () {
b.to(a);
})
: c == a
? this.pause().cycle()
: this.slide(a > c ? "next" : "prev", this.$items.eq(a));
}),
(c.prototype.pause = function (b) {
return (
b || (this.paused = !0),
this.$element.find(".next, .prev").length &&
a.support.transition &&
(this.$element.trigger(a.support.transition.end), this.cycle(!0)),
(this.interval = clearInterval(this.interval)),
this
);
}),
(c.prototype.next = function () {
return this.sliding ? void 0 : this.slide("next");
}),
(c.prototype.prev = function () {
return this.sliding ? void 0 : this.slide("prev");
}),
(c.prototype.slide = function (b, d) {
var e = this.$element.find(".item.active"),
f = d || this.getItemForDirection(b, e),
g = this.interval,
h = "next" == b ? "left" : "right",
i = this;
if (f.hasClass("active")) return (this.sliding = !1);
var j = f[0],
k = a.Event("slide.bs.carousel", { relatedTarget: j, direction: h });
if ((this.$element.trigger(k), !k.isDefaultPrevented())) {
if (
((this.sliding = !0), g && this.pause(), this.$indicators.length)
) {
this.$indicators.find(".active").removeClass("active");
var l = a(this.$indicators.children()[this.getItemIndex(f)]);
l && l.addClass("active");
}
var m = a.Event("slid.bs.carousel", {
relatedTarget: j,
direction: h,
});
return (
a.support.transition && this.$element.hasClass("slide")
? (f.addClass(b),
f[0].offsetWidth,
e.addClass(h),
f.addClass(h),
e
.one("bsTransitionEnd", function () {
f.removeClass([b, h].join(" ")).addClass("active"),
e.removeClass(["active", h].join(" ")),
(i.sliding = !1),
setTimeout(function () {
i.$element.trigger(m);
}, 0);
})
.emulateTransitionEnd(c.TRANSITION_DURATION))
: (e.removeClass("active"),
f.addClass("active"),
(this.sliding = !1),
this.$element.trigger(m)),
g && this.cycle(),
this
);
}
});
var d = a.fn.carousel;
(a.fn.carousel = b),
(a.fn.carousel.Constructor = c),
(a.fn.carousel.noConflict = function () {
return (a.fn.carousel = d), this;
});
var e = function (c) {
var d,
e = a(this),
f = a(
e.attr("data-target") ||
((d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, ""))
);
if (f.hasClass("carousel")) {
var g = a.extend({}, f.data(), e.data()),
h = e.attr("data-slide-to");
h && (g.interval = !1),
b.call(f, g),
h && f.data("bs.carousel").to(h),
c.preventDefault();
}
};
a(document)
.on("click.bs.carousel.data-api", "[data-slide]", e)
.on("click.bs.carousel.data-api", "[data-slide-to]", e),
a(window).on("load", function () {
a('[data-ride="carousel"]').each(function () {
var c = a(this);
b.call(c, c.data());
});
});
})(jQuery),
+(function (a) {
"use strict";
function b(b) {
var c,
d =
b.attr("data-target") ||
((c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""));
return a(d);
}
function c(b) {
return this.each(function () {
var c = a(this),
e = c.data("bs.collapse"),
f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b);
!e && f.toggle && /show|hide/.test(b) && (f.toggle = !1),
e || c.data("bs.collapse", (e = new d(this, f))),
"string" == typeof b && e[b]();
});
}
var d = function (b, c) {
(this.$element = a(b)),
(this.options = a.extend({}, d.DEFAULTS, c)),
(this.$trigger = a(
'[data-toggle="collapse"][href="#' +
b.id +
'"],[data-toggle="collapse"][data-target="#' +
b.id +
'"]'
)),
(this.transitioning = null),
this.options.parent
? (this.$parent = this.getParent())
: this.addAriaAndCollapsedClass(this.$element, this.$trigger),
this.options.toggle && this.toggle();
};
(d.VERSION = "3.3.5"),
(d.TRANSITION_DURATION = 350),
(d.DEFAULTS = { toggle: !0 }),
(d.prototype.dimension = function () {
var a = this.$element.hasClass("width");
return a ? "width" : "height";
}),
(d.prototype.show = function () {
if (!this.transitioning && !this.$element.hasClass("in")) {
var b,
e =
this.$parent &&
this.$parent.children(".panel").children(".in, .collapsing");
if (
!(
e &&
e.length &&
((b = e.data("bs.collapse")), b && b.transitioning)
)
) {
var f = a.Event("show.bs.collapse");
if ((this.$element.trigger(f), !f.isDefaultPrevented())) {
e &&
e.length &&
(c.call(e, "hide"), b || e.data("bs.collapse", null));
var g = this.dimension();
this.$element
.removeClass("collapse")
.addClass("collapsing")
[g](0)
.attr("aria-expanded", !0),
this.$trigger
.removeClass("collapsed")
.attr("aria-expanded", !0),
(this.transitioning = 1);
var h = function () {
this.$element
.removeClass("collapsing")
.addClass("collapse in")
[g](""),
(this.transitioning = 0),
this.$element.trigger("shown.bs.collapse");
};
if (!a.support.transition) return h.call(this);
var i = a.camelCase(["scroll", g].join("-"));
this.$element
.one("bsTransitionEnd", a.proxy(h, this))
.emulateTransitionEnd(d.TRANSITION_DURATION)
[g](this.$element[0][i]);
}
}
}
}),
(d.prototype.hide = function () {
if (!this.transitioning && this.$element.hasClass("in")) {
var b = a.Event("hide.bs.collapse");
if ((this.$element.trigger(b), !b.isDefaultPrevented())) {
var c = this.dimension();
this.$element[c](this.$element[c]())[0].offsetHeight,
this.$element
.addClass("collapsing")
.removeClass("collapse in")
.attr("aria-expanded", !1),
this.$trigger.addClass("collapsed").attr("aria-expanded", !1),
(this.transitioning = 1);
var e = function () {
(this.transitioning = 0),
this.$element
.removeClass("collapsing")
.addClass("collapse")
.trigger("hidden.bs.collapse");
};
return a.support.transition
? void this.$element[c](0)
.one("bsTransitionEnd", a.proxy(e, this))
.emulateTransitionEnd(d.TRANSITION_DURATION)
: e.call(this);
}
}
}),
(d.prototype.toggle = function () {
this[this.$element.hasClass("in") ? "hide" : "show"]();
}),
(d.prototype.getParent = function () {
return a(this.options.parent)
.find(
'[data-toggle="collapse"][data-parent="' +
this.options.parent +
'"]'
)
.each(
a.proxy(function (c, d) {
var e = a(d);
this.addAriaAndCollapsedClass(b(e), e);
}, this)
)
.end();
}),
(d.prototype.addAriaAndCollapsedClass = function (a, b) {
var c = a.hasClass("in");
a.attr("aria-expanded", c),
b.toggleClass("collapsed", !c).attr("aria-expanded", c);
});
var e = a.fn.collapse;
(a.fn.collapse = c),
(a.fn.collapse.Constructor = d),
(a.fn.collapse.noConflict = function () {
return (a.fn.collapse = e), this;
}),
a(document).on(
"click.bs.collapse.data-api",
'[data-toggle="collapse"]',
function (d) {
var e = a(this);
e.attr("data-target") || d.preventDefault();
var f = b(e),
g = f.data("bs.collapse"),
h = g ? "toggle" : e.data();
c.call(f, h);
}
);
})(jQuery),
+(function (a) {
"use strict";
function b(b) {
var c = b.attr("data-target");
c ||
((c = b.attr("href")),
(c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")));
var d = c && a(c);
return d && d.length ? d : b.parent();
}
function c(c) {
(c && 3 === c.which) ||
(a(e).remove(),
a(f).each(function () {
var d = a(this),
e = b(d),
f = { relatedTarget: this };
e.hasClass("open") &&
((c &&
"click" == c.type &&
/input|textarea/i.test(c.target.tagName) &&
a.contains(e[0], c.target)) ||
(e.trigger((c = a.Event("hide.bs.dropdown", f))),
c.isDefaultPrevented() ||
(d.attr("aria-expanded", "false"),
e.removeClass("open").trigger("hidden.bs.dropdown", f))));
}));
}
function d(b) {
return this.each(function () {
var c = a(this),
d = c.data("bs.dropdown");
d || c.data("bs.dropdown", (d = new g(this))),
"string" == typeof b && d[b].call(c);
});
}
var e = ".dropdown-backdrop",
f = '[data-toggle="dropdown"]',
g = function (b) {
a(b).on("click.bs.dropdown", this.toggle);
};
(g.VERSION = "3.3.5"),
(g.prototype.toggle = function (d) {
var e = a(this);
if (!e.is(".disabled, :disabled")) {
var f = b(e),
g = f.hasClass("open");
if ((c(), !g)) {
"ontouchstart" in document.documentElement &&
!f.closest(".navbar-nav").length &&
a(document.createElement("div"))
.addClass("dropdown-backdrop")
.insertAfter(a(this))
.on("click", c);
var h = { relatedTarget: this };
if (
(f.trigger((d = a.Event("show.bs.dropdown", h))),
d.isDefaultPrevented())
)
return;
e.trigger("focus").attr("aria-expanded", "true"),
f.toggleClass("open").trigger("shown.bs.dropdown", h);
}
return !1;
}
}),
(g.prototype.keydown = function (c) {
if (
/(38|40|27|32)/.test(c.which) &&
!/input|textarea/i.test(c.target.tagName)
) {
var d = a(this);
if (
(c.preventDefault(),
c.stopPropagation(),
!d.is(".disabled, :disabled"))
) {
var e = b(d),
g = e.hasClass("open");
if ((!g && 27 != c.which) || (g && 27 == c.which))
return (
27 == c.which && e.find(f).trigger("focus"), d.trigger("click")
);
var h = " li:not(.disabled):visible a",
i = e.find(".dropdown-menu" + h);
if (i.length) {
var j = i.index(c.target);
38 == c.which && j > 0 && j--,
40 == c.which && j < i.length - 1 && j++,
~j || (j = 0),
i.eq(j).trigger("focus");
}
}
}
});
var h = a.fn.dropdown;
(a.fn.dropdown = d),
(a.fn.dropdown.Constructor = g),
(a.fn.dropdown.noConflict = function () {
return (a.fn.dropdown = h), this;
}),
a(document)
.on("click.bs.dropdown.data-api", c)
.on("click.bs.dropdown.data-api", ".dropdown form", function (a) {
a.stopPropagation();
})
.on("click.bs.dropdown.data-api", f, g.prototype.toggle)
.on("keydown.bs.dropdown.data-api", f, g.prototype.keydown)
.on(
"keydown.bs.dropdown.data-api",
".dropdown-menu",
g.prototype.keydown
);
})(jQuery),
+(function (a) {
"use strict";
function b(b, d) {
return this.each(function () {
var e = a(this),
f = e.data("bs.modal"),
g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b);
f || e.data("bs.modal", (f = new c(this, g))),
"string" == typeof b ? f[b](d) : g.show && f.show(d);
});
}
var c = function (b, c) {
(this.options = c),
(this.$body = a(document.body)),
(this.$element = a(b)),
(this.$dialog = this.$element.find(".modal-dialog")),
(this.$backdrop = null),
(this.isShown = null),
(this.originalBodyPad = null),
(this.scrollbarWidth = 0),
(this.ignoreBackdropClick = !1),
this.options.remote &&
this.$element.find(".modal-content").load(
this.options.remote,
a.proxy(function () {
this.$element.trigger("loaded.bs.modal");
}, this)
);
};
(c.VERSION = "3.3.5"),
(c.TRANSITION_DURATION = 300),
(c.BACKDROP_TRANSITION_DURATION = 150),
(c.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }),
(c.prototype.toggle = function (a) {
return this.isShown ? this.hide() : this.show(a);
}),
(c.prototype.show = function (b) {
var d = this,
e = a.Event("show.bs.modal", { relatedTarget: b });
this.$element.trigger(e),
this.isShown ||
e.isDefaultPrevented() ||
((this.isShown = !0),
this.checkScrollbar(),
this.setScrollbar(),
this.$body.addClass("modal-open"),
this.escape(),
this.resize(),
this.$element.on(
"click.dismiss.bs.modal",
'[data-dismiss="modal"]',
a.proxy(this.hide, this)
),
this.$dialog.on("mousedown.dismiss.bs.modal", function () {
d.$element.one("mouseup.dismiss.bs.modal", function (b) {
a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0);
});
}),
this.backdrop(function () {
var e = a.support.transition && d.$element.hasClass("fade");
d.$element.parent().length || d.$element.appendTo(d.$body),
d.$element.show().scrollTop(0),
d.adjustDialog(),
e && d.$element[0].offsetWidth,
d.$element.addClass("in"),
d.enforceFocus();
var f = a.Event("shown.bs.modal", { relatedTarget: b });
e
? d.$dialog
.one("bsTransitionEnd", function () {
d.$element.trigger("focus").trigger(f);
})
.emulateTransitionEnd(c.TRANSITION_DURATION)
: d.$element.trigger("focus").trigger(f);
}));
}),
(c.prototype.hide = function (b) {
b && b.preventDefault(),
(b = a.Event("hide.bs.modal")),
this.$element.trigger(b),
this.isShown &&
!b.isDefaultPrevented() &&
((this.isShown = !1),
this.escape(),
this.resize(),
a(document).off("focusin.bs.modal"),
this.$element
.removeClass("in")
.off("click.dismiss.bs.modal")
.off("mouseup.dismiss.bs.modal"),
this.$dialog.off("mousedown.dismiss.bs.modal"),
a.support.transition && this.$element.hasClass("fade")
? this.$element
.one("bsTransitionEnd", a.proxy(this.hideModal, this))
.emulateTransitionEnd(c.TRANSITION_DURATION)
: this.hideModal());
}),
(c.prototype.enforceFocus = function () {
a(document)
.off("focusin.bs.modal")
.on(
"focusin.bs.modal",
a.proxy(function (a) {
this.$element[0] === a.target ||
this.$element.has(a.target).length ||
this.$element.trigger("focus");
}, this)
);
}),
(c.prototype.escape = function () {
this.isShown && this.options.keyboard
? this.$element.on(
"keydown.dismiss.bs.modal",
a.proxy(function (a) {
27 == a.which && this.hide();
}, this)
)
: this.isShown || this.$element.off("keydown.dismiss.bs.modal");
}),
(c.prototype.resize = function () {
this.isShown
? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this))
: a(window).off("resize.bs.modal");
}),
(c.prototype.hideModal = function () {
var a = this;
this.$element.hide(),
this.backdrop(function () {
a.$body.removeClass("modal-open"),
a.resetAdjustments(),
a.resetScrollbar(),
a.$element.trigger("hidden.bs.modal");
});
}),
(c.prototype.removeBackdrop = function () {
this.$backdrop && this.$backdrop.remove(), (this.$backdrop = null);
}),
(c.prototype.backdrop = function (b) {
var d = this,
e = this.$element.hasClass("fade") ? "fade" : "";
if (this.isShown && this.options.backdrop) {
var f = a.support.transition && e;
if (
((this.$backdrop = a(document.createElement("div"))
.addClass("modal-backdrop " + e)
.appendTo(this.$body)),
this.$element.on(
"click.dismiss.bs.modal",
a.proxy(function (a) {
return this.ignoreBackdropClick
? void (this.ignoreBackdropClick = !1)
: void (
a.target === a.currentTarget &&
("static" == this.options.backdrop
? this.$element[0].focus()
: this.hide())
);
}, this)
),
f && this.$backdrop[0].offsetWidth,
this.$backdrop.addClass("in"),
!b)
)
return;
f
? this.$backdrop
.one("bsTransitionEnd", b)
.emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION)
: b();
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass("in");
var g = function () {
d.removeBackdrop(), b && b();
};
a.support.transition && this.$element.hasClass("fade")
? this.$backdrop
.one("bsTransitionEnd", g)
.emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION)
: g();
} else b && b();
}),
(c.prototype.handleUpdate = function () {
this.adjustDialog();
}),
(c.prototype.adjustDialog = function () {
var a =
this.$element[0].scrollHeight > document.documentElement.clientHeight;
this.$element.css({
paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "",
paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : "",
});
}),
(c.prototype.resetAdjustments = function () {
this.$element.css({ paddingLeft: "", paddingRight: "" });
}),
(c.prototype.checkScrollbar = function () {
var a = window.innerWidth;
if (!a) {
var b = document.documentElement.getBoundingClientRect();
a = b.right - Math.abs(b.left);
}
(this.bodyIsOverflowing = document.body.clientWidth < a),
(this.scrollbarWidth = this.measureScrollbar());
}),
(c.prototype.setScrollbar = function () {
var a = parseInt(this.$body.css("padding-right") || 0, 10);
(this.originalBodyPad = document.body.style.paddingRight || ""),
this.bodyIsOverflowing &&
this.$body.css("padding-right", a + this.scrollbarWidth);
}),
(c.prototype.resetScrollbar = function () {
this.$body.css("padding-right", this.originalBodyPad);
}),
(c.prototype.measureScrollbar = function () {
var a = document.createElement("div");
(a.className = "modal-scrollbar-measure"), this.$body.append(a);
var b = a.offsetWidth - a.clientWidth;
return this.$body[0].removeChild(a), b;
});
var d = a.fn.modal;
(a.fn.modal = b),
(a.fn.modal.Constructor = c),
(a.fn.modal.noConflict = function () {
return (a.fn.modal = d), this;
}),
a(document).on(
"click.bs.modal.data-api",
'[data-toggle="modal"]',
function (c) {
var d = a(this),
e = d.attr("href"),
f = a(
d.attr("data-target") || (e && e.replace(/.*(?=#[^\s]+$)/, ""))
),
g = f.data("bs.modal")
? "toggle"
: a.extend({ remote: !/#/.test(e) && e }, f.data(), d.data());
d.is("a") && c.preventDefault(),
f.one("show.bs.modal", function (a) {
a.isDefaultPrevented() ||
f.one("hidden.bs.modal", function () {
d.is(":visible") && d.trigger("focus");
});
}),
b.call(f, g, this);
}
);
})(jQuery),
+(function (a) {
"use strict";
function b(b) {
return this.each(function () {
var d = a(this),
e = d.data("bs.tooltip"),
f = "object" == typeof b && b;
(e || !/destroy|hide/.test(b)) &&
(e || d.data("bs.tooltip", (e = new c(this, f))),
"string" == typeof b && e[b]());
});
}
var c = function (a, b) {
(this.type = null),
(this.options = null),
(this.enabled = null),
(this.timeout = null),
(this.hoverState = null),
(this.$element = null),
(this.inState = null),
this.init("tooltip", a, b);
};
(c.VERSION = "3.3.5"),
(c.TRANSITION_DURATION = 150),
(c.DEFAULTS = {
animation: !0,
placement: "top",
selector: !1,
template:
'
',
trigger: "hover focus",
title: "",
delay: 0,
html: !1,
container: !1,
viewport: { selector: "body", padding: 0 },
}),
(c.prototype.init = function (b, c, d) {
if (
((this.enabled = !0),
(this.type = b),
(this.$element = a(c)),
(this.options = this.getOptions(d)),
(this.$viewport =
this.options.viewport &&
a(
a.isFunction(this.options.viewport)
? this.options.viewport.call(this, this.$element)
: this.options.viewport.selector || this.options.viewport
)),
(this.inState = { click: !1, hover: !1, focus: !1 }),
this.$element[0] instanceof document.constructor &&
!this.options.selector)
)
throw new Error(
"`selector` option must be specified when initializing " +
this.type +
" on the window.document object!"
);
for (var e = this.options.trigger.split(" "), f = e.length; f--; ) {
var g = e[f];
if ("click" == g)
this.$element.on(
"click." + this.type,
this.options.selector,
a.proxy(this.toggle, this)
);
else if ("manual" != g) {
var h = "hover" == g ? "mouseenter" : "focusin",
i = "hover" == g ? "mouseleave" : "focusout";
this.$element.on(
h + "." + this.type,
this.options.selector,
a.proxy(this.enter, this)
),
this.$element.on(
i + "." + this.type,
this.options.selector,
a.proxy(this.leave, this)
);
}
}
this.options.selector
? (this._options = a.extend({}, this.options, {
trigger: "manual",
selector: "",
}))
: this.fixTitle();
}),
(c.prototype.getDefaults = function () {
return c.DEFAULTS;
}),
(c.prototype.getOptions = function (b) {
return (
(b = a.extend({}, this.getDefaults(), this.$element.data(), b)),
b.delay &&
"number" == typeof b.delay &&
(b.delay = { show: b.delay, hide: b.delay }),
b
);
}),
(c.prototype.getDelegateOptions = function () {
var b = {},
c = this.getDefaults();
return (
this._options &&
a.each(this._options, function (a, d) {
c[a] != d && (b[a] = d);
}),
b
);
}),
(c.prototype.enter = function (b) {
var c =
b instanceof this.constructor
? b
: a(b.currentTarget).data("bs." + this.type);
return (
c ||
((c = new this.constructor(
b.currentTarget,
this.getDelegateOptions()
)),
a(b.currentTarget).data("bs." + this.type, c)),
b instanceof a.Event &&
(c.inState["focusin" == b.type ? "focus" : "hover"] = !0),
c.tip().hasClass("in") || "in" == c.hoverState
? void (c.hoverState = "in")
: (clearTimeout(c.timeout),
(c.hoverState = "in"),
c.options.delay && c.options.delay.show
? void (c.timeout = setTimeout(function () {
"in" == c.hoverState && c.show();
}, c.options.delay.show))
: c.show())
);
}),
(c.prototype.isInStateTrue = function () {
for (var a in this.inState) if (this.inState[a]) return !0;
return !1;
}),
(c.prototype.leave = function (b) {
var c =
b instanceof this.constructor
? b
: a(b.currentTarget).data("bs." + this.type);
return (
c ||
((c = new this.constructor(
b.currentTarget,
this.getDelegateOptions()
)),
a(b.currentTarget).data("bs." + this.type, c)),
b instanceof a.Event &&
(c.inState["focusout" == b.type ? "focus" : "hover"] = !1),
c.isInStateTrue()
? void 0
: (clearTimeout(c.timeout),
(c.hoverState = "out"),
c.options.delay && c.options.delay.hide
? void (c.timeout = setTimeout(function () {
"out" == c.hoverState && c.hide();
}, c.options.delay.hide))
: c.hide())
);
}),
(c.prototype.show = function () {
var b = a.Event("show.bs." + this.type);
if (this.hasContent() && this.enabled) {
this.$element.trigger(b);
var d = a.contains(
this.$element[0].ownerDocument.documentElement,
this.$element[0]
);
if (b.isDefaultPrevented() || !d) return;
var e = this,
f = this.tip(),
g = this.getUID(this.type);
this.setContent(),
f.attr("id", g),
this.$element.attr("aria-describedby", g),
this.options.animation && f.addClass("fade");
var h =
"function" == typeof this.options.placement
? this.options.placement.call(this, f[0], this.$element[0])
: this.options.placement,
i = /\s?auto?\s?/i,
j = i.test(h);
j && (h = h.replace(i, "") || "top"),
f
.detach()
.css({ top: 0, left: 0, display: "block" })
.addClass(h)
.data("bs." + this.type, this),
this.options.container
? f.appendTo(this.options.container)
: f.insertAfter(this.$element),
this.$element.trigger("inserted.bs." + this.type);
var k = this.getPosition(),
l = f[0].offsetWidth,
m = f[0].offsetHeight;
if (j) {
var n = h,
o = this.getPosition(this.$viewport);
(h =
"bottom" == h && k.bottom + m > o.bottom
? "top"
: "top" == h && k.top - m < o.top
? "bottom"
: "right" == h && k.right + l > o.width
? "left"
: "left" == h && k.left - l < o.left
? "right"
: h),
f.removeClass(n).addClass(h);
}
var p = this.getCalculatedOffset(h, k, l, m);
this.applyPlacement(p, h);
var q = function () {
var a = e.hoverState;
e.$element.trigger("shown.bs." + e.type),
(e.hoverState = null),
"out" == a && e.leave(e);
};
a.support.transition && this.$tip.hasClass("fade")
? f
.one("bsTransitionEnd", q)
.emulateTransitionEnd(c.TRANSITION_DURATION)
: q();
}
}),
(c.prototype.applyPlacement = function (b, c) {
var d = this.tip(),
e = d[0].offsetWidth,
f = d[0].offsetHeight,
g = parseInt(d.css("margin-top"), 10),
h = parseInt(d.css("margin-left"), 10);
isNaN(g) && (g = 0),
isNaN(h) && (h = 0),
(b.top += g),
(b.left += h),
a.offset.setOffset(
d[0],
a.extend(
{
using: function (a) {
d.css({ top: Math.round(a.top), left: Math.round(a.left) });
},
},
b
),
0
),
d.addClass("in");
var i = d[0].offsetWidth,
j = d[0].offsetHeight;
"top" == c && j != f && (b.top = b.top + f - j);
var k = this.getViewportAdjustedDelta(c, b, i, j);
k.left ? (b.left += k.left) : (b.top += k.top);
var l = /top|bottom/.test(c),
m = l ? 2 * k.left - e + i : 2 * k.top - f + j,
n = l ? "offsetWidth" : "offsetHeight";
d.offset(b), this.replaceArrow(m, d[0][n], l);
}),
(c.prototype.replaceArrow = function (a, b, c) {
this.arrow()
.css(c ? "left" : "top", 50 * (1 - a / b) + "%")
.css(c ? "top" : "left", "");
}),
(c.prototype.setContent = function () {
var a = this.tip(),
b = this.getTitle();
a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b),
a.removeClass("fade in top bottom left right");
}),
(c.prototype.hide = function (b) {
function d() {
"in" != e.hoverState && f.detach(),
e.$element
.removeAttr("aria-describedby")
.trigger("hidden.bs." + e.type),
b && b();
}
var e = this,
f = a(this.$tip),
g = a.Event("hide.bs." + this.type);
return (
this.$element.trigger(g),
g.isDefaultPrevented()
? void 0
: (f.removeClass("in"),
a.support.transition && f.hasClass("fade")
? f
.one("bsTransitionEnd", d)
.emulateTransitionEnd(c.TRANSITION_DURATION)
: d(),
(this.hoverState = null),
this)
);
}),
(c.prototype.fixTitle = function () {
var a = this.$element;
(a.attr("title") || "string" != typeof a.attr("data-original-title")) &&
a
.attr("data-original-title", a.attr("title") || "")
.attr("title", "");
}),
(c.prototype.hasContent = function () {
return this.getTitle();
}),
(c.prototype.getPosition = function (b) {
b = b || this.$element;
var c = b[0],
d = "BODY" == c.tagName,
e = c.getBoundingClientRect();
null == e.width &&
(e = a.extend({}, e, {
width: e.right - e.left,
height: e.bottom - e.top,
}));
var f = d ? { top: 0, left: 0 } : b.offset(),
g = {
scroll: d
? document.documentElement.scrollTop || document.body.scrollTop
: b.scrollTop(),
},
h = d
? { width: a(window).width(), height: a(window).height() }
: null;
return a.extend({}, e, g, h, f);
}),
(c.prototype.getCalculatedOffset = function (a, b, c, d) {
return "bottom" == a
? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 }
: "top" == a
? { top: b.top - d, left: b.left + b.width / 2 - c / 2 }
: "left" == a
? { top: b.top + b.height / 2 - d / 2, left: b.left - c }
: { top: b.top + b.height / 2 - d / 2, left: b.left + b.width };
}),
(c.prototype.getViewportAdjustedDelta = function (a, b, c, d) {
var e = { top: 0, left: 0 };
if (!this.$viewport) return e;
var f = (this.options.viewport && this.options.viewport.padding) || 0,
g = this.getPosition(this.$viewport);
if (/right|left/.test(a)) {
var h = b.top - f - g.scroll,
i = b.top + f - g.scroll + d;
h < g.top
? (e.top = g.top - h)
: i > g.top + g.height && (e.top = g.top + g.height - i);
} else {
var j = b.left - f,
k = b.left + f + c;
j < g.left
? (e.left = g.left - j)
: k > g.right && (e.left = g.left + g.width - k);
}
return e;
}),
(c.prototype.getTitle = function () {
var a,
b = this.$element,
c = this.options;
return (a =
b.attr("data-original-title") ||
("function" == typeof c.title ? c.title.call(b[0]) : c.title));
}),
(c.prototype.getUID = function (a) {
do a += ~~(1e6 * Math.random());
while (document.getElementById(a));
return a;
}),
(c.prototype.tip = function () {
if (
!this.$tip &&
((this.$tip = a(this.options.template)), 1 != this.$tip.length)
)
throw new Error(
this.type +
" `template` option must consist of exactly 1 top-level element!"
);
return this.$tip;
}),
(c.prototype.arrow = function () {
return (this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow"));
}),
(c.prototype.enable = function () {
this.enabled = !0;
}),
(c.prototype.disable = function () {
this.enabled = !1;
}),
(c.prototype.toggleEnabled = function () {
this.enabled = !this.enabled;
}),
(c.prototype.toggle = function (b) {
var c = this;
b &&
((c = a(b.currentTarget).data("bs." + this.type)),
c ||
((c = new this.constructor(
b.currentTarget,
this.getDelegateOptions()
)),
a(b.currentTarget).data("bs." + this.type, c))),
b
? ((c.inState.click = !c.inState.click),
c.isInStateTrue() ? c.enter(c) : c.leave(c))
: c.tip().hasClass("in")
? c.leave(c)
: c.enter(c);
}),
(c.prototype.destroy = function () {
var a = this;
clearTimeout(this.timeout),
this.hide(function () {
a.$element.off("." + a.type).removeData("bs." + a.type),
a.$tip && a.$tip.detach(),
(a.$tip = null),
(a.$arrow = null),
(a.$viewport = null);
});
});
var d = a.fn.tooltip;
(a.fn.tooltip = b),
(a.fn.tooltip.Constructor = c),
(a.fn.tooltip.noConflict = function () {
return (a.fn.tooltip = d), this;
});
})(jQuery),
+(function (a) {
"use strict";
function b(b) {
return this.each(function () {
var d = a(this),
e = d.data("bs.popover"),
f = "object" == typeof b && b;
(e || !/destroy|hide/.test(b)) &&
(e || d.data("bs.popover", (e = new c(this, f))),
"string" == typeof b && e[b]());
});
}
var c = function (a, b) {
this.init("popover", a, b);
};
if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js");
(c.VERSION = "3.3.5"),
(c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, {
placement: "right",
trigger: "click",
content: "",
template:
'',
})),
(c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype)),
(c.prototype.constructor = c),
(c.prototype.getDefaults = function () {
return c.DEFAULTS;
}),
(c.prototype.setContent = function () {
var a = this.tip(),
b = this.getTitle(),
c = this.getContent();
a.find(".popover-title")[this.options.html ? "html" : "text"](b),
a
.find(".popover-content")
.children()
.detach()
.end()
[
this.options.html
? "string" == typeof c
? "html"
: "append"
: "text"
](c),
a.removeClass("fade top bottom left right in"),
a.find(".popover-title").html() || a.find(".popover-title").hide();
}),
(c.prototype.hasContent = function () {
return this.getTitle() || this.getContent();
}),
(c.prototype.getContent = function () {
var a = this.$element,
b = this.options;
return (
a.attr("data-content") ||
("function" == typeof b.content ? b.content.call(a[0]) : b.content)
);
}),
(c.prototype.arrow = function () {
return (this.$arrow = this.$arrow || this.tip().find(".arrow"));
});
var d = a.fn.popover;
(a.fn.popover = b),
(a.fn.popover.Constructor = c),
(a.fn.popover.noConflict = function () {
return (a.fn.popover = d), this;
});
})(jQuery),
+(function (a) {
"use strict";
function b(c, d) {
(this.$body = a(document.body)),
(this.$scrollElement = a(a(c).is(document.body) ? window : c)),
(this.options = a.extend({}, b.DEFAULTS, d)),
(this.selector = (this.options.target || "") + " .nav li > a"),
(this.offsets = []),
(this.targets = []),
(this.activeTarget = null),
(this.scrollHeight = 0),
this.$scrollElement.on(
"scroll.bs.scrollspy",
a.proxy(this.process, this)
),
this.refresh(),
this.process();
}
function c(c) {
return this.each(function () {
var d = a(this),
e = d.data("bs.scrollspy"),
f = "object" == typeof c && c;
e || d.data("bs.scrollspy", (e = new b(this, f))),
"string" == typeof c && e[c]();
});
}
(b.VERSION = "3.3.5"),
(b.DEFAULTS = { offset: 10 }),
(b.prototype.getScrollHeight = function () {
return (
this.$scrollElement[0].scrollHeight ||
Math.max(
this.$body[0].scrollHeight,
document.documentElement.scrollHeight
)
);
}),
(b.prototype.refresh = function () {
var b = this,
c = "offset",
d = 0;
(this.offsets = []),
(this.targets = []),
(this.scrollHeight = this.getScrollHeight()),
a.isWindow(this.$scrollElement[0]) ||
((c = "position"), (d = this.$scrollElement.scrollTop())),
this.$body
.find(this.selector)
.map(function () {
var b = a(this),
e = b.data("target") || b.attr("href"),
f = /^#./.test(e) && a(e);
return (
(f && f.length && f.is(":visible") && [[f[c]().top + d, e]]) ||
null
);
})
.sort(function (a, b) {
return a[0] - b[0];
})
.each(function () {
b.offsets.push(this[0]), b.targets.push(this[1]);
});
}),
(b.prototype.process = function () {
var a,
b = this.$scrollElement.scrollTop() + this.options.offset,
c = this.getScrollHeight(),
d = this.options.offset + c - this.$scrollElement.height(),
e = this.offsets,
f = this.targets,
g = this.activeTarget;
if ((this.scrollHeight != c && this.refresh(), b >= d))
return g != (a = f[f.length - 1]) && this.activate(a);
if (g && b < e[0]) return (this.activeTarget = null), this.clear();
for (a = e.length; a--; )
g != f[a] &&
b >= e[a] &&
(void 0 === e[a + 1] || b < e[a + 1]) &&
this.activate(f[a]);
}),
(b.prototype.activate = function (b) {
(this.activeTarget = b), this.clear();
var c =
this.selector +
'[data-target="' +
b +
'"],' +
this.selector +
'[href="' +
b +
'"]',
d = a(c).parents("li").addClass("active");
d.parent(".dropdown-menu").length &&
(d = d.closest("li.dropdown").addClass("active")),
d.trigger("activate.bs.scrollspy");
}),
(b.prototype.clear = function () {
a(this.selector)
.parentsUntil(this.options.target, ".active")
.removeClass("active");
});
var d = a.fn.scrollspy;
(a.fn.scrollspy = c),
(a.fn.scrollspy.Constructor = b),
(a.fn.scrollspy.noConflict = function () {
return (a.fn.scrollspy = d), this;
}),
a(window).on("load.bs.scrollspy.data-api", function () {
a('[data-spy="scroll"]').each(function () {
var b = a(this);
c.call(b, b.data());
});
});
})(jQuery),
+(function (a) {
"use strict";
function b(b) {
return this.each(function () {
var d = a(this),
e = d.data("bs.tab");
e || d.data("bs.tab", (e = new c(this))),
"string" == typeof b && e[b]();
});
}
var c = function (b) {
this.element = a(b);
};
(c.VERSION = "3.3.5"),
(c.TRANSITION_DURATION = 150),
(c.prototype.show = function () {
var b = this.element,
c = b.closest("ul:not(.dropdown-menu)"),
d = b.data("target");
if (
(d ||
((d = b.attr("href")), (d = d && d.replace(/.*(?=#[^\s]*$)/, ""))),
!b.parent("li").hasClass("active"))
) {
var e = c.find(".active:last a"),
f = a.Event("hide.bs.tab", { relatedTarget: b[0] }),
g = a.Event("show.bs.tab", { relatedTarget: e[0] });
if (
(e.trigger(f),
b.trigger(g),
!g.isDefaultPrevented() && !f.isDefaultPrevented())
) {
var h = a(d);
this.activate(b.closest("li"), c),
this.activate(h, h.parent(), function () {
e.trigger({ type: "hidden.bs.tab", relatedTarget: b[0] }),
b.trigger({ type: "shown.bs.tab", relatedTarget: e[0] });
});
}
}
}),
(c.prototype.activate = function (b, d, e) {
function f() {
g
.removeClass("active")
.find("> .dropdown-menu > .active")
.removeClass("active")
.end()
.find('[data-toggle="tab"]')
.attr("aria-expanded", !1),
b
.addClass("active")
.find('[data-toggle="tab"]')
.attr("aria-expanded", !0),
h ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"),
b.parent(".dropdown-menu").length &&
b
.closest("li.dropdown")
.addClass("active")
.end()
.find('[data-toggle="tab"]')
.attr("aria-expanded", !0),
e && e();
}
var g = d.find("> .active"),
h =
e &&
a.support.transition &&
((g.length && g.hasClass("fade")) || !!d.find("> .fade").length);
g.length && h
? g
.one("bsTransitionEnd", f)
.emulateTransitionEnd(c.TRANSITION_DURATION)
: f(),
g.removeClass("in");
});
var d = a.fn.tab;
(a.fn.tab = b),
(a.fn.tab.Constructor = c),
(a.fn.tab.noConflict = function () {
return (a.fn.tab = d), this;
});
var e = function (c) {
c.preventDefault(), b.call(a(this), "show");
};
a(document)
.on("click.bs.tab.data-api", '[data-toggle="tab"]', e)
.on("click.bs.tab.data-api", '[data-toggle="pill"]', e);
})(jQuery),
+(function (a) {
"use strict";
function b(b) {
return this.each(function () {
var d = a(this),
e = d.data("bs.affix"),
f = "object" == typeof b && b;
e || d.data("bs.affix", (e = new c(this, f))),
"string" == typeof b && e[b]();
});
}
var c = function (b, d) {
(this.options = a.extend({}, c.DEFAULTS, d)),
(this.$target = a(this.options.target)
.on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this))
.on(
"click.bs.affix.data-api",
a.proxy(this.checkPositionWithEventLoop, this)
)),
(this.$element = a(b)),
(this.affixed = null),
(this.unpin = null),
(this.pinnedOffset = null),
this.checkPosition();
};
(c.VERSION = "3.3.5"),
(c.RESET = "affix affix-top affix-bottom"),
(c.DEFAULTS = { offset: 0, target: window }),
(c.prototype.getState = function (a, b, c, d) {
var e = this.$target.scrollTop(),
f = this.$element.offset(),
g = this.$target.height();
if (null != c && "top" == this.affixed) return c > e ? "top" : !1;
if ("bottom" == this.affixed)
return null != c
? e + this.unpin <= f.top
? !1
: "bottom"
: a - d >= e + g
? !1
: "bottom";
var h = null == this.affixed,
i = h ? e : f.top,
j = h ? g : b;
return null != c && c >= e
? "top"
: null != d && i + j >= a - d
? "bottom"
: !1;
}),
(c.prototype.getPinnedOffset = function () {
if (this.pinnedOffset) return this.pinnedOffset;
this.$element.removeClass(c.RESET).addClass("affix");
var a = this.$target.scrollTop(),
b = this.$element.offset();
return (this.pinnedOffset = b.top - a);
}),
(c.prototype.checkPositionWithEventLoop = function () {
setTimeout(a.proxy(this.checkPosition, this), 1);
}),
(c.prototype.checkPosition = function () {
if (this.$element.is(":visible")) {
var b = this.$element.height(),
d = this.options.offset,
e = d.top,
f = d.bottom,
g = Math.max(a(document).height(), a(document.body).height());
"object" != typeof d && (f = e = d),
"function" == typeof e && (e = d.top(this.$element)),
"function" == typeof f && (f = d.bottom(this.$element));
var h = this.getState(g, b, e, f);
if (this.affixed != h) {
null != this.unpin && this.$element.css("top", "");
var i = "affix" + (h ? "-" + h : ""),
j = a.Event(i + ".bs.affix");
if ((this.$element.trigger(j), j.isDefaultPrevented())) return;
(this.affixed = h),
(this.unpin = "bottom" == h ? this.getPinnedOffset() : null),
this.$element
.removeClass(c.RESET)
.addClass(i)
.trigger(i.replace("affix", "affixed") + ".bs.affix");
}
"bottom" == h && this.$element.offset({ top: g - b - f });
}
});
var d = a.fn.affix;
(a.fn.affix = b),
(a.fn.affix.Constructor = c),
(a.fn.affix.noConflict = function () {
return (a.fn.affix = d), this;
}),
a(window).on("load", function () {
a('[data-spy="affix"]').each(function () {
var c = a(this),
d = c.data();
(d.offset = d.offset || {}),
null != d.offsetBottom && (d.offset.bottom = d.offsetBottom),
null != d.offsetTop && (d.offset.top = d.offsetTop),
b.call(c, d);
});
});
})(jQuery);
/*! WOW - v1.1.2 - 2015-04-07
* Copyright (c) 2015 Matthieu Aussaguel; Licensed MIT */ (function () {
var a,
b,
c,
d,
e,
f = function (a, b) {
return function () {
return a.apply(b, arguments);
};
},
g =
[].indexOf ||
function (a) {
for (var b = 0, c = this.length; c > b; b++)
if (b in this && this[b] === a) return b;
return -1;
};
(b = (function () {
function a() {}
return (
(a.prototype.extend = function (a, b) {
var c, d;
for (c in b) (d = b[c]), null == a[c] && (a[c] = d);
return a;
}),
(a.prototype.isMobile = function (a) {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
a
);
}),
(a.prototype.createEvent = function (a, b, c, d) {
var e;
return (
null == b && (b = !1),
null == c && (c = !1),
null == d && (d = null),
null != document.createEvent
? ((e = document.createEvent("CustomEvent")),
e.initCustomEvent(a, b, c, d))
: null != document.createEventObject
? ((e = document.createEventObject()), (e.eventType = a))
: (e.eventName = a),
e
);
}),
(a.prototype.emitEvent = function (a, b) {
return null != a.dispatchEvent
? a.dispatchEvent(b)
: b in (null != a)
? a[b]()
: "on" + b in (null != a)
? a["on" + b]()
: void 0;
}),
(a.prototype.addEvent = function (a, b, c) {
return null != a.addEventListener
? a.addEventListener(b, c, !1)
: null != a.attachEvent
? a.attachEvent("on" + b, c)
: (a[b] = c);
}),
(a.prototype.removeEvent = function (a, b, c) {
return null != a.removeEventListener
? a.removeEventListener(b, c, !1)
: null != a.detachEvent
? a.detachEvent("on" + b, c)
: delete a[b];
}),
(a.prototype.innerHeight = function () {
return "innerHeight" in window
? window.innerHeight
: document.documentElement.clientHeight;
}),
a
);
})()),
(c =
this.WeakMap ||
this.MozWeakMap ||
(c = (function () {
function a() {
(this.keys = []), (this.values = []);
}
return (
(a.prototype.get = function (a) {
var b, c, d, e, f;
for (f = this.keys, b = d = 0, e = f.length; e > d; b = ++d)
if (((c = f[b]), c === a)) return this.values[b];
}),
(a.prototype.set = function (a, b) {
var c, d, e, f, g;
for (g = this.keys, c = e = 0, f = g.length; f > e; c = ++e)
if (((d = g[c]), d === a)) return void (this.values[c] = b);
return this.keys.push(a), this.values.push(b);
}),
a
);
})())),
(a =
this.MutationObserver ||
this.WebkitMutationObserver ||
this.MozMutationObserver ||
(a = (function () {
function a() {
"undefined" != typeof console &&
null !== console &&
console.warn("MutationObserver is not supported by your browser."),
"undefined" != typeof console &&
null !== console &&
console.warn(
"WOW.js cannot detect dom mutations, please call .sync() after loading new content."
);
}
return (a.notSupported = !0), (a.prototype.observe = function () {}), a;
})())),
(d =
this.getComputedStyle ||
function (a) {
return (
(this.getPropertyValue = function (b) {
var c;
return (
"float" === b && (b = "styleFloat"),
e.test(b) &&
b.replace(e, function (a, b) {
return b.toUpperCase();
}),
(null != (c = a.currentStyle) ? c[b] : void 0) || null
);
}),
this
);
}),
(e = /(\-([a-z]){1})/g),
(this.WOW = (function () {
function e(a) {
null == a && (a = {}),
(this.scrollCallback = f(this.scrollCallback, this)),
(this.scrollHandler = f(this.scrollHandler, this)),
(this.resetAnimation = f(this.resetAnimation, this)),
(this.start = f(this.start, this)),
(this.scrolled = !0),
(this.config = this.util().extend(a, this.defaults)),
(this.animationNameCache = new c()),
(this.wowEvent = this.util().createEvent(this.config.boxClass));
}
return (
(e.prototype.defaults = {
boxClass: "wow",
animateClass: "animated",
offset: 0,
mobile: !0,
live: !0,
callback: null,
}),
(e.prototype.init = function () {
var a;
return (
(this.element = window.document.documentElement),
"interactive" === (a = document.readyState) || "complete" === a
? this.start()
: this.util().addEvent(document, "DOMContentLoaded", this.start),
(this.finished = [])
);
}),
(e.prototype.start = function () {
var b, c, d, e;
if (
((this.stopped = !1),
(this.boxes = function () {
var a, c, d, e;
for (
d = this.element.querySelectorAll("." + this.config.boxClass),
e = [],
a = 0,
c = d.length;
c > a;
a++
)
(b = d[a]), e.push(b);
return e;
}.call(this)),
(this.all = function () {
var a, c, d, e;
for (d = this.boxes, e = [], a = 0, c = d.length; c > a; a++)
(b = d[a]), e.push(b);
return e;
}.call(this)),
this.boxes.length)
)
if (this.disabled()) this.resetStyle();
else
for (e = this.boxes, c = 0, d = e.length; d > c; c++)
(b = e[c]), this.applyStyle(b, !0);
return (
this.disabled() ||
(this.util().addEvent(window, "scroll", this.scrollHandler),
this.util().addEvent(window, "resize", this.scrollHandler),
(this.interval = setInterval(this.scrollCallback, 50))),
this.config.live
? new a(
(function (a) {
return function (b) {
var c, d, e, f, g;
for (g = [], c = 0, d = b.length; d > c; c++)
(f = b[c]),
g.push(
function () {
var a, b, c, d;
for (
c = f.addedNodes || [],
d = [],
a = 0,
b = c.length;
b > a;
a++
)
(e = c[a]), d.push(this.doSync(e));
return d;
}.call(a)
);
return g;
};
})(this)
).observe(document.body, { childList: !0, subtree: !0 })
: void 0
);
}),
(e.prototype.stop = function () {
return (
(this.stopped = !0),
this.util().removeEvent(window, "scroll", this.scrollHandler),
this.util().removeEvent(window, "resize", this.scrollHandler),
null != this.interval ? clearInterval(this.interval) : void 0
);
}),
(e.prototype.sync = function () {
return a.notSupported ? this.doSync(this.element) : void 0;
}),
(e.prototype.doSync = function (a) {
var b, c, d, e, f;
if ((null == a && (a = this.element), 1 === a.nodeType)) {
for (
a = a.parentNode || a,
e = a.querySelectorAll("." + this.config.boxClass),
f = [],
c = 0,
d = e.length;
d > c;
c++
)
(b = e[c]),
g.call(this.all, b) < 0
? (this.boxes.push(b),
this.all.push(b),
this.stopped || this.disabled()
? this.resetStyle()
: this.applyStyle(b, !0),
f.push((this.scrolled = !0)))
: f.push(void 0);
return f;
}
}),
(e.prototype.show = function (a) {
return (
this.applyStyle(a),
(a.className = a.className + " " + this.config.animateClass),
null != this.config.callback && this.config.callback(a),
this.util().emitEvent(a, this.wowEvent),
this.util().addEvent(a, "animationend", this.resetAnimation),
this.util().addEvent(a, "oanimationend", this.resetAnimation),
this.util().addEvent(a, "webkitAnimationEnd", this.resetAnimation),
this.util().addEvent(a, "MSAnimationEnd", this.resetAnimation),
a
);
}),
(e.prototype.applyStyle = function (a, b) {
var c, d, e;
return (
(d = a.getAttribute("data-wow-duration")),
(c = a.getAttribute("data-wow-delay")),
(e = a.getAttribute("data-wow-iteration")),
this.animate(
(function (f) {
return function () {
return f.customStyle(a, b, d, c, e);
};
})(this)
)
);
}),
(e.prototype.animate = (function () {
return "requestAnimationFrame" in window
? function (a) {
return window.requestAnimationFrame(a);
}
: function (a) {
return a();
};
})()),
(e.prototype.resetStyle = function () {
var a, b, c, d, e;
for (d = this.boxes, e = [], b = 0, c = d.length; c > b; b++)
(a = d[b]), e.push((a.style.visibility = "visible"));
return e;
}),
(e.prototype.resetAnimation = function (a) {
var b;
return a.type.toLowerCase().indexOf("animationend") >= 0
? ((b = a.target || a.srcElement),
(b.className = b.className
.replace(this.config.animateClass, "")
.trim()))
: void 0;
}),
(e.prototype.customStyle = function (a, b, c, d, e) {
return (
b && this.cacheAnimationName(a),
(a.style.visibility = b ? "hidden" : "visible"),
c && this.vendorSet(a.style, { animationDuration: c }),
d && this.vendorSet(a.style, { animationDelay: d }),
e && this.vendorSet(a.style, { animationIterationCount: e }),
this.vendorSet(a.style, {
animationName: b ? "none" : this.cachedAnimationName(a),
}),
a
);
}),
(e.prototype.vendors = ["moz", "webkit"]),
(e.prototype.vendorSet = function (a, b) {
var c, d, e, f;
d = [];
for (c in b)
(e = b[c]),
(a["" + c] = e),
d.push(
function () {
var b, d, g, h;
for (
g = this.vendors, h = [], b = 0, d = g.length;
d > b;
b++
)
(f = g[b]),
h.push(
(a[
"" + f + c.charAt(0).toUpperCase() + c.substr(1)
] = e)
);
return h;
}.call(this)
);
return d;
}),
(e.prototype.vendorCSS = function (a, b) {
var c, e, f, g, h, i;
for (
h = d(a),
g = h.getPropertyCSSValue(b),
f = this.vendors,
c = 0,
e = f.length;
e > c;
c++
)
(i = f[c]), (g = g || h.getPropertyCSSValue("-" + i + "-" + b));
return g;
}),
(e.prototype.animationName = function (a) {
var b;
try {
b = this.vendorCSS(a, "animation-name").cssText;
} catch (c) {
b = d(a).getPropertyValue("animation-name");
}
return "none" === b ? "" : b;
}),
(e.prototype.cacheAnimationName = function (a) {
return this.animationNameCache.set(a, this.animationName(a));
}),
(e.prototype.cachedAnimationName = function (a) {
return this.animationNameCache.get(a);
}),
(e.prototype.scrollHandler = function () {
return (this.scrolled = !0);
}),
(e.prototype.scrollCallback = function () {
var a;
return !this.scrolled ||
((this.scrolled = !1),
(this.boxes = function () {
var b, c, d, e;
for (d = this.boxes, e = [], b = 0, c = d.length; c > b; b++)
(a = d[b]), a && (this.isVisible(a) ? this.show(a) : e.push(a));
return e;
}.call(this)),
this.boxes.length || this.config.live)
? void 0
: this.stop();
}),
(e.prototype.offsetTop = function (a) {
for (var b; void 0 === a.offsetTop; ) a = a.parentNode;
for (b = a.offsetTop; (a = a.offsetParent); ) b += a.offsetTop;
return b;
}),
(e.prototype.isVisible = function (a) {
var b, c, d, e, f;
return (
(c = a.getAttribute("data-wow-offset") || this.config.offset),
(f = window.pageYOffset),
(e =
f +
Math.min(this.element.clientHeight, this.util().innerHeight()) -
c),
(d = this.offsetTop(a)),
(b = d + a.clientHeight),
e >= d && b >= f
);
}),
(e.prototype.util = function () {
return null != this._util ? this._util : (this._util = new b());
}),
(e.prototype.disabled = function () {
return (
!this.config.mobile && this.util().isMobile(navigator.userAgent)
);
}),
e
);
})());
}.call(this));
/*!
* Isotope PACKAGED v2.2.2
*
* Licensed GPLv3 for open source use
* or Isotope Commercial License for commercial use
*
* http://isotope.metafizzy.co
* Copyright 2015 Metafizzy
*/
!(function (a) {
function b() {}
function c(a) {
function c(b) {
b.prototype.option ||
(b.prototype.option = function (b) {
a.isPlainObject(b) && (this.options = a.extend(!0, this.options, b));
});
}
function e(b, c) {
a.fn[b] = function (e) {
if ("string" == typeof e) {
for (
var g = d.call(arguments, 1), h = 0, i = this.length;
i > h;
h++
) {
var j = this[h],
k = a.data(j, b);
if (k)
if (a.isFunction(k[e]) && "_" !== e.charAt(0)) {
var l = k[e].apply(k, g);
if (void 0 !== l) return l;
} else f("no such method '" + e + "' for " + b + " instance");
else
f(
"cannot call methods on " +
b +
" prior to initialization; attempted to call '" +
e +
"'"
);
}
return this;
}
return this.each(function () {
var d = a.data(this, b);
d
? (d.option(e), d._init())
: ((d = new c(this, e)), a.data(this, b, d));
});
};
}
if (a) {
var f =
"undefined" == typeof console
? b
: function (a) {
console.error(a);
};
return (
(a.bridget = function (a, b) {
c(b), e(a, b);
}),
a.bridget
);
}
}
var d = Array.prototype.slice;
"function" == typeof define && define.amd
? define("jquery-bridget/jquery.bridget", ["jquery"], c)
: c("object" == typeof exports ? require("jquery") : a.jQuery);
})(window),
(function (a) {
function b(b) {
var c = a.event;
return (c.target = c.target || c.srcElement || b), c;
}
var c = document.documentElement,
d = function () {};
c.addEventListener
? (d = function (a, b, c) {
a.addEventListener(b, c, !1);
})
: c.attachEvent &&
(d = function (a, c, d) {
(a[c + d] = d.handleEvent
? function () {
var c = b(a);
d.handleEvent.call(d, c);
}
: function () {
var c = b(a);
d.call(a, c);
}),
a.attachEvent("on" + c, a[c + d]);
});
var e = function () {};
c.removeEventListener
? (e = function (a, b, c) {
a.removeEventListener(b, c, !1);
})
: c.detachEvent &&
(e = function (a, b, c) {
a.detachEvent("on" + b, a[b + c]);
try {
delete a[b + c];
} catch (d) {
a[b + c] = void 0;
}
});
var f = { bind: d, unbind: e };
"function" == typeof define && define.amd
? define("eventie/eventie", f)
: "object" == typeof exports
? (module.exports = f)
: (a.eventie = f);
})(window),
function () {
"use strict";
function a() {}
function b(a, b) {
for (var c = a.length; c--; ) if (a[c].listener === b) return c;
return -1;
}
function c(a) {
return function () {
return this[a].apply(this, arguments);
};
}
var d = a.prototype,
e = this,
f = e.EventEmitter;
(d.getListeners = function (a) {
var b,
c,
d = this._getEvents();
if (a instanceof RegExp) {
b = {};
for (c in d) d.hasOwnProperty(c) && a.test(c) && (b[c] = d[c]);
} else b = d[a] || (d[a] = []);
return b;
}),
(d.flattenListeners = function (a) {
var b,
c = [];
for (b = 0; b < a.length; b += 1) c.push(a[b].listener);
return c;
}),
(d.getListenersAsObject = function (a) {
var b,
c = this.getListeners(a);
return c instanceof Array && ((b = {}), (b[a] = c)), b || c;
}),
(d.addListener = function (a, c) {
var d,
e = this.getListenersAsObject(a),
f = "object" == typeof c;
for (d in e)
e.hasOwnProperty(d) &&
-1 === b(e[d], c) &&
e[d].push(f ? c : { listener: c, once: !1 });
return this;
}),
(d.on = c("addListener")),
(d.addOnceListener = function (a, b) {
return this.addListener(a, { listener: b, once: !0 });
}),
(d.once = c("addOnceListener")),
(d.defineEvent = function (a) {
return this.getListeners(a), this;
}),
(d.defineEvents = function (a) {
for (var b = 0; b < a.length; b += 1) this.defineEvent(a[b]);
return this;
}),
(d.removeListener = function (a, c) {
var d,
e,
f = this.getListenersAsObject(a);
for (e in f)
f.hasOwnProperty(e) &&
((d = b(f[e], c)), -1 !== d && f[e].splice(d, 1));
return this;
}),
(d.off = c("removeListener")),
(d.addListeners = function (a, b) {
return this.manipulateListeners(!1, a, b);
}),
(d.removeListeners = function (a, b) {
return this.manipulateListeners(!0, a, b);
}),
(d.manipulateListeners = function (a, b, c) {
var d,
e,
f = a ? this.removeListener : this.addListener,
g = a ? this.removeListeners : this.addListeners;
if ("object" != typeof b || b instanceof RegExp)
for (d = c.length; d--; ) f.call(this, b, c[d]);
else
for (d in b)
b.hasOwnProperty(d) &&
(e = b[d]) &&
("function" == typeof e
? f.call(this, d, e)
: g.call(this, d, e));
return this;
}),
(d.removeEvent = function (a) {
var b,
c = typeof a,
d = this._getEvents();
if ("string" === c) delete d[a];
else if (a instanceof RegExp)
for (b in d) d.hasOwnProperty(b) && a.test(b) && delete d[b];
else delete this._events;
return this;
}),
(d.removeAllListeners = c("removeEvent")),
(d.emitEvent = function (a, b) {
var c,
d,
e,
f,
g = this.getListenersAsObject(a);
for (e in g)
if (g.hasOwnProperty(e))
for (d = g[e].length; d--; )
(c = g[e][d]),
c.once === !0 && this.removeListener(a, c.listener),
(f = c.listener.apply(this, b || [])),
f === this._getOnceReturnValue() &&
this.removeListener(a, c.listener);
return this;
}),
(d.trigger = c("emitEvent")),
(d.emit = function (a) {
var b = Array.prototype.slice.call(arguments, 1);
return this.emitEvent(a, b);
}),
(d.setOnceReturnValue = function (a) {
return (this._onceReturnValue = a), this;
}),
(d._getOnceReturnValue = function () {
return this.hasOwnProperty("_onceReturnValue")
? this._onceReturnValue
: !0;
}),
(d._getEvents = function () {
return this._events || (this._events = {});
}),
(a.noConflict = function () {
return (e.EventEmitter = f), a;
}),
"function" == typeof define && define.amd
? define("eventEmitter/EventEmitter", [], function () {
return a;
})
: "object" == typeof module && module.exports
? (module.exports = a)
: (e.EventEmitter = a);
}.call(this),
(function (a) {
function b(a) {
if (a) {
if ("string" == typeof d[a]) return a;
a = a.charAt(0).toUpperCase() + a.slice(1);
for (var b, e = 0, f = c.length; f > e; e++)
if (((b = c[e] + a), "string" == typeof d[b])) return b;
}
}
var c = "Webkit Moz ms Ms O".split(" "),
d = document.documentElement.style;
"function" == typeof define && define.amd
? define("get-style-property/get-style-property", [], function () {
return b;
})
: "object" == typeof exports
? (module.exports = b)
: (a.getStyleProperty = b);
})(window),
(function (a, b) {
function c(a) {
var b = parseFloat(a),
c = -1 === a.indexOf("%") && !isNaN(b);
return c && b;
}
function d() {}
function e() {
for (
var a = {
width: 0,
height: 0,
innerWidth: 0,
innerHeight: 0,
outerWidth: 0,
outerHeight: 0,
},
b = 0,
c = h.length;
c > b;
b++
) {
var d = h[b];
a[d] = 0;
}
return a;
}
function f(b) {
function d() {
if (!m) {
m = !0;
var d = a.getComputedStyle;
if (
((j = (function () {
var a = d
? function (a) {
return d(a, null);
}
: function (a) {
return a.currentStyle;
};
return function (b) {
var c = a(b);
return (
c ||
g(
"Style returned " +
c +
". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"
),
c
);
};
})()),
(k = b("boxSizing")))
) {
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[k] = "border-box");
var f = document.body || document.documentElement;
f.appendChild(e);
var h = j(e);
(l = 200 === c(h.width)), f.removeChild(e);
}
}
}
function f(a) {
if (
(d(),
"string" == typeof a && (a = document.querySelector(a)),
a && "object" == typeof a && a.nodeType)
) {
var b = j(a);
if ("none" === b.display) return e();
var f = {};
(f.width = a.offsetWidth), (f.height = a.offsetHeight);
for (
var g = (f.isBorderBox = !(!k || !b[k] || "border-box" !== b[k])),
m = 0,
n = h.length;
n > m;
m++
) {
var o = h[m],
p = b[o];
p = i(a, p);
var q = parseFloat(p);
f[o] = isNaN(q) ? 0 : q;
}
var r = f.paddingLeft + f.paddingRight,
s = f.paddingTop + f.paddingBottom,
t = f.marginLeft + f.marginRight,
u = f.marginTop + f.marginBottom,
v = f.borderLeftWidth + f.borderRightWidth,
w = f.borderTopWidth + f.borderBottomWidth,
x = g && l,
y = c(b.width);
y !== !1 && (f.width = y + (x ? 0 : r + v));
var z = c(b.height);
return (
z !== !1 && (f.height = z + (x ? 0 : s + w)),
(f.innerWidth = f.width - (r + v)),
(f.innerHeight = f.height - (s + w)),
(f.outerWidth = f.width + t),
(f.outerHeight = f.height + u),
f
);
}
}
function i(b, c) {
if (a.getComputedStyle || -1 === c.indexOf("%")) return c;
var d = b.style,
e = d.left,
f = b.runtimeStyle,
g = f && f.left;
return (
g && (f.left = b.currentStyle.left),
(d.left = c),
(c = d.pixelLeft),
(d.left = e),
g && (f.left = g),
c
);
}
var j,
k,
l,
m = !1;
return f;
}
var g =
"undefined" == typeof console
? d
: function (a) {
console.error(a);
},
h = [
"paddingLeft",
"paddingRight",
"paddingTop",
"paddingBottom",
"marginLeft",
"marginRight",
"marginTop",
"marginBottom",
"borderLeftWidth",
"borderRightWidth",
"borderTopWidth",
"borderBottomWidth",
];
"function" == typeof define && define.amd
? define("get-size/get-size", [
"get-style-property/get-style-property",
], f)
: "object" == typeof exports
? (module.exports = f(require("desandro-get-style-property")))
: (a.getSize = f(a.getStyleProperty));
})(window),
(function (a) {
function b(a) {
"function" == typeof a && (b.isReady ? a() : g.push(a));
}
function c(a) {
var c = "readystatechange" === a.type && "complete" !== f.readyState;
b.isReady || c || d();
}
function d() {
b.isReady = !0;
for (var a = 0, c = g.length; c > a; a++) {
var d = g[a];
d();
}
}
function e(e) {
return (
"complete" === f.readyState
? d()
: (e.bind(f, "DOMContentLoaded", c),
e.bind(f, "readystatechange", c),
e.bind(a, "load", c)),
b
);
}
var f = a.document,
g = [];
(b.isReady = !1),
"function" == typeof define && define.amd
? define("doc-ready/doc-ready", ["eventie/eventie"], e)
: "object" == typeof exports
? (module.exports = e(require("eventie")))
: (a.docReady = e(a.eventie));
})(window),
(function (a) {
"use strict";
function b(a, b) {
return a[g](b);
}
function c(a) {
if (!a.parentNode) {
var b = document.createDocumentFragment();
b.appendChild(a);
}
}
function d(a, b) {
c(a);
for (
var d = a.parentNode.querySelectorAll(b), e = 0, f = d.length;
f > e;
e++
)
if (d[e] === a) return !0;
return !1;
}
function e(a, d) {
return c(a), b(a, d);
}
var f,
g = (function () {
if (a.matches) return "matches";
if (a.matchesSelector) return "matchesSelector";
for (
var b = ["webkit", "moz", "ms", "o"], c = 0, d = b.length;
d > c;
c++
) {
var e = b[c],
f = e + "MatchesSelector";
if (a[f]) return f;
}
})();
if (g) {
var h = document.createElement("div"),
i = b(h, "div");
f = i ? b : e;
} else f = d;
"function" == typeof define && define.amd
? define("matches-selector/matches-selector", [], function () {
return f;
})
: "object" == typeof exports
? (module.exports = f)
: (window.matchesSelector = f);
})(Element.prototype),
(function (a, b) {
"use strict";
"function" == typeof define && define.amd
? define("fizzy-ui-utils/utils", [
"doc-ready/doc-ready",
"matches-selector/matches-selector",
], function (c, d) {
return b(a, c, d);
})
: "object" == typeof exports
? (module.exports = b(
a,
require("doc-ready"),
require("desandro-matches-selector")
))
: (a.fizzyUIUtils = b(a, a.docReady, a.matchesSelector));
})(window, function (a, b, c) {
var d = {};
(d.extend = function (a, b) {
for (var c in b) a[c] = b[c];
return a;
}),
(d.modulo = function (a, b) {
return ((a % b) + b) % b;
});
var e = Object.prototype.toString;
(d.isArray = function (a) {
return "[object Array]" == e.call(a);
}),
(d.makeArray = function (a) {
var b = [];
if (d.isArray(a)) b = a;
else if (a && "number" == typeof a.length)
for (var c = 0, e = a.length; e > c; c++) b.push(a[c]);
else b.push(a);
return b;
}),
(d.indexOf = Array.prototype.indexOf
? function (a, b) {
return a.indexOf(b);
}
: function (a, b) {
for (var c = 0, d = a.length; d > c; c++) if (a[c] === b) return c;
return -1;
}),
(d.removeFrom = function (a, b) {
var c = d.indexOf(a, b);
-1 != c && a.splice(c, 1);
}),
(d.isElement =
"function" == typeof HTMLElement || "object" == typeof HTMLElement
? function (a) {
return a instanceof HTMLElement;
}
: function (a) {
return (
a &&
"object" == typeof a &&
1 == a.nodeType &&
"string" == typeof a.nodeName
);
}),
(d.setText = (function () {
function a(a, c) {
(b =
b ||
(void 0 !== document.documentElement.textContent
? "textContent"
: "innerText")),
(a[b] = c);
}
var b;
return a;
})()),
(d.getParent = function (a, b) {
for (; a != document.body; )
if (((a = a.parentNode), c(a, b))) return a;
}),
(d.getQueryElement = function (a) {
return "string" == typeof a ? document.querySelector(a) : a;
}),
(d.handleEvent = function (a) {
var b = "on" + a.type;
this[b] && this[b](a);
}),
(d.filterFindElements = function (a, b) {
a = d.makeArray(a);
for (var e = [], f = 0, g = a.length; g > f; f++) {
var h = a[f];
if (d.isElement(h))
if (b) {
c(h, b) && e.push(h);
for (
var i = h.querySelectorAll(b), j = 0, k = i.length;
k > j;
j++
)
e.push(i[j]);
} else e.push(h);
}
return e;
}),
(d.debounceMethod = function (a, b, c) {
var d = a.prototype[b],
e = b + "Timeout";
a.prototype[b] = function () {
var a = this[e];
a && clearTimeout(a);
var b = arguments,
f = this;
this[e] = setTimeout(function () {
d.apply(f, b), delete f[e];
}, c || 100);
};
}),
(d.toDashed = function (a) {
return a
.replace(/(.)([A-Z])/g, function (a, b, c) {
return b + "-" + c;
})
.toLowerCase();
});
var f = a.console;
return (
(d.htmlInit = function (c, e) {
b(function () {
for (
var b = d.toDashed(e),
g = document.querySelectorAll(".js-" + b),
h = "data-" + b + "-options",
i = 0,
j = g.length;
j > i;
i++
) {
var k,
l = g[i],
m = l.getAttribute(h);
try {
k = m && JSON.parse(m);
} catch (n) {
f &&
f.error(
"Error parsing " +
h +
" on " +
l.nodeName.toLowerCase() +
(l.id ? "#" + l.id : "") +
": " +
n
);
continue;
}
var o = new c(l, k),
p = a.jQuery;
p && p.data(l, e, o);
}
});
}),
d
);
}),
(function (a, b) {
"use strict";
"function" == typeof define && define.amd
? define("outlayer/item", [
"eventEmitter/EventEmitter",
"get-size/get-size",
"get-style-property/get-style-property",
"fizzy-ui-utils/utils",
], function (c, d, e, f) {
return b(a, c, d, e, f);
})
: "object" == typeof exports
? (module.exports = b(
a,
require("wolfy87-eventemitter"),
require("get-size"),
require("desandro-get-style-property"),
require("fizzy-ui-utils")
))
: ((a.Outlayer = {}),
(a.Outlayer.Item = b(
a,
a.EventEmitter,
a.getSize,
a.getStyleProperty,
a.fizzyUIUtils
)));
})(window, function (a, b, c, d, e) {
"use strict";
function f(a) {
for (var b in a) return !1;
return (b = null), !0;
}
function g(a, b) {
a &&
((this.element = a),
(this.layout = b),
(this.position = { x: 0, y: 0 }),
this._create());
}
function h(a) {
return a.replace(/([A-Z])/g, function (a) {
return "-" + a.toLowerCase();
});
}
var i = a.getComputedStyle,
j = i
? function (a) {
return i(a, null);
}
: function (a) {
return a.currentStyle;
},
k = d("transition"),
l = d("transform"),
m = k && l,
n = !!d("perspective"),
o = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "otransitionend",
transition: "transitionend",
}[k],
p = [
"transform",
"transition",
"transitionDuration",
"transitionProperty",
],
q = (function () {
for (var a = {}, b = 0, c = p.length; c > b; b++) {
var e = p[b],
f = d(e);
f && f !== e && (a[e] = f);
}
return a;
})();
e.extend(g.prototype, b.prototype),
(g.prototype._create = function () {
(this._transn = { ingProperties: {}, clean: {}, onEnd: {} }),
this.css({ position: "absolute" });
}),
(g.prototype.handleEvent = function (a) {
var b = "on" + a.type;
this[b] && this[b](a);
}),
(g.prototype.getSize = function () {
this.size = c(this.element);
}),
(g.prototype.css = function (a) {
var b = this.element.style;
for (var c in a) {
var d = q[c] || c;
b[d] = a[c];
}
}),
(g.prototype.getPosition = function () {
var a = j(this.element),
b = this.layout.options,
c = b.isOriginLeft,
d = b.isOriginTop,
e = a[c ? "left" : "right"],
f = a[d ? "top" : "bottom"],
g = this.layout.size,
h =
-1 != e.indexOf("%")
? (parseFloat(e) / 100) * g.width
: parseInt(e, 10),
i =
-1 != f.indexOf("%")
? (parseFloat(f) / 100) * g.height
: parseInt(f, 10);
(h = isNaN(h) ? 0 : h),
(i = isNaN(i) ? 0 : i),
(h -= c ? g.paddingLeft : g.paddingRight),
(i -= d ? g.paddingTop : g.paddingBottom),
(this.position.x = h),
(this.position.y = i);
}),
(g.prototype.layoutPosition = function () {
var a = this.layout.size,
b = this.layout.options,
c = {},
d = b.isOriginLeft ? "paddingLeft" : "paddingRight",
e = b.isOriginLeft ? "left" : "right",
f = b.isOriginLeft ? "right" : "left",
g = this.position.x + a[d];
(c[e] = this.getXValue(g)), (c[f] = "");
var h = b.isOriginTop ? "paddingTop" : "paddingBottom",
i = b.isOriginTop ? "top" : "bottom",
j = b.isOriginTop ? "bottom" : "top",
k = this.position.y + a[h];
(c[i] = this.getYValue(k)),
(c[j] = ""),
this.css(c),
this.emitEvent("layout", [this]);
}),
(g.prototype.getXValue = function (a) {
var b = this.layout.options;
return b.percentPosition && !b.isHorizontal
? (a / this.layout.size.width) * 100 + "%"
: a + "px";
}),
(g.prototype.getYValue = function (a) {
var b = this.layout.options;
return b.percentPosition && b.isHorizontal
? (a / this.layout.size.height) * 100 + "%"
: a + "px";
}),
(g.prototype._transitionTo = function (a, b) {
this.getPosition();
var c = this.position.x,
d = this.position.y,
e = parseInt(a, 10),
f = parseInt(b, 10),
g = e === this.position.x && f === this.position.y;
if ((this.setPosition(a, b), g && !this.isTransitioning))
return void this.layoutPosition();
var h = a - c,
i = b - d,
j = {};
(j.transform = this.getTranslate(h, i)),
this.transition({
to: j,
onTransitionEnd: { transform: this.layoutPosition },
isCleaning: !0,
});
}),
(g.prototype.getTranslate = function (a, b) {
var c = this.layout.options;
return (
(a = c.isOriginLeft ? a : -a),
(b = c.isOriginTop ? b : -b),
n
? "translate3d(" + a + "px, " + b + "px, 0)"
: "translate(" + a + "px, " + b + "px)"
);
}),
(g.prototype.goTo = function (a, b) {
this.setPosition(a, b), this.layoutPosition();
}),
(g.prototype.moveTo = m ? g.prototype._transitionTo : g.prototype.goTo),
(g.prototype.setPosition = function (a, b) {
(this.position.x = parseInt(a, 10)),
(this.position.y = parseInt(b, 10));
}),
(g.prototype._nonTransition = function (a) {
this.css(a.to), a.isCleaning && this._removeStyles(a.to);
for (var b in a.onTransitionEnd) a.onTransitionEnd[b].call(this);
}),
(g.prototype._transition = function (a) {
if (!parseFloat(this.layout.options.transitionDuration))
return void this._nonTransition(a);
var b = this._transn;
for (var c in a.onTransitionEnd) b.onEnd[c] = a.onTransitionEnd[c];
for (c in a.to)
(b.ingProperties[c] = !0), a.isCleaning && (b.clean[c] = !0);
if (a.from) {
this.css(a.from);
var d = this.element.offsetHeight;
d = null;
}
this.enableTransition(a.to),
this.css(a.to),
(this.isTransitioning = !0);
});
var r = "opacity," + h(q.transform || "transform");
(g.prototype.enableTransition = function () {
this.isTransitioning ||
(this.css({
transitionProperty: r,
transitionDuration: this.layout.options.transitionDuration,
}),
this.element.addEventListener(o, this, !1));
}),
(g.prototype.transition =
g.prototype[k ? "_transition" : "_nonTransition"]),
(g.prototype.onwebkitTransitionEnd = function (a) {
this.ontransitionend(a);
}),
(g.prototype.onotransitionend = function (a) {
this.ontransitionend(a);
});
var s = {
"-webkit-transform": "transform",
"-moz-transform": "transform",
"-o-transform": "transform",
};
(g.prototype.ontransitionend = function (a) {
if (a.target === this.element) {
var b = this._transn,
c = s[a.propertyName] || a.propertyName;
if (
(delete b.ingProperties[c],
f(b.ingProperties) && this.disableTransition(),
c in b.clean &&
((this.element.style[a.propertyName] = ""), delete b.clean[c]),
c in b.onEnd)
) {
var d = b.onEnd[c];
d.call(this), delete b.onEnd[c];
}
this.emitEvent("transitionEnd", [this]);
}
}),
(g.prototype.disableTransition = function () {
this.removeTransitionStyles(),
this.element.removeEventListener(o, this, !1),
(this.isTransitioning = !1);
}),
(g.prototype._removeStyles = function (a) {
var b = {};
for (var c in a) b[c] = "";
this.css(b);
});
var t = { transitionProperty: "", transitionDuration: "" };
return (
(g.prototype.removeTransitionStyles = function () {
this.css(t);
}),
(g.prototype.removeElem = function () {
this.element.parentNode.removeChild(this.element),
this.css({ display: "" }),
this.emitEvent("remove", [this]);
}),
(g.prototype.remove = function () {
if (!k || !parseFloat(this.layout.options.transitionDuration))
return void this.removeElem();
var a = this;
this.once("transitionEnd", function () {
a.removeElem();
}),
this.hide();
}),
(g.prototype.reveal = function () {
delete this.isHidden, this.css({ display: "" });
var a = this.layout.options,
b = {},
c = this.getHideRevealTransitionEndProperty("visibleStyle");
(b[c] = this.onRevealTransitionEnd),
this.transition({
from: a.hiddenStyle,
to: a.visibleStyle,
isCleaning: !0,
onTransitionEnd: b,
});
}),
(g.prototype.onRevealTransitionEnd = function () {
this.isHidden || this.emitEvent("reveal");
}),
(g.prototype.getHideRevealTransitionEndProperty = function (a) {
var b = this.layout.options[a];
if (b.opacity) return "opacity";
for (var c in b) return c;
}),
(g.prototype.hide = function () {
(this.isHidden = !0), this.css({ display: "" });
var a = this.layout.options,
b = {},
c = this.getHideRevealTransitionEndProperty("hiddenStyle");
(b[c] = this.onHideTransitionEnd),
this.transition({
from: a.visibleStyle,
to: a.hiddenStyle,
isCleaning: !0,
onTransitionEnd: b,
});
}),
(g.prototype.onHideTransitionEnd = function () {
this.isHidden &&
(this.css({ display: "none" }), this.emitEvent("hide"));
}),
(g.prototype.destroy = function () {
this.css({
position: "",
left: "",
right: "",
top: "",
bottom: "",
transition: "",
transform: "",
});
}),
g
);
}),
(function (a, b) {
"use strict";
"function" == typeof define && define.amd
? define("outlayer/outlayer", [
"eventie/eventie",
"eventEmitter/EventEmitter",
"get-size/get-size",
"fizzy-ui-utils/utils",
"./item",
], function (c, d, e, f, g) {
return b(a, c, d, e, f, g);
})
: "object" == typeof exports
? (module.exports = b(
a,
require("eventie"),
require("wolfy87-eventemitter"),
require("get-size"),
require("fizzy-ui-utils"),
require("./item")
))
: (a.Outlayer = b(
a,
a.eventie,
a.EventEmitter,
a.getSize,
a.fizzyUIUtils,
a.Outlayer.Item
));
})(window, function (a, b, c, d, e, f) {
"use strict";
function g(a, b) {
var c = e.getQueryElement(a);
if (!c)
return void (
h &&
h.error(
"Bad element for " + this.constructor.namespace + ": " + (c || a)
)
);
(this.element = c),
i && (this.$element = i(this.element)),
(this.options = e.extend({}, this.constructor.defaults)),
this.option(b);
var d = ++k;
(this.element.outlayerGUID = d),
(l[d] = this),
this._create(),
this.options.isInitLayout && this.layout();
}
var h = a.console,
i = a.jQuery,
j = function () {},
k = 0,
l = {};
return (
(g.namespace = "outlayer"),
(g.Item = f),
(g.defaults = {
containerStyle: { position: "relative" },
isInitLayout: !0,
isOriginLeft: !0,
isOriginTop: !0,
isResizeBound: !0,
isResizingContainer: !0,
transitionDuration: "0.4s",
hiddenStyle: { opacity: 0, transform: "scale(0.001)" },
visibleStyle: { opacity: 1, transform: "scale(1)" },
}),
e.extend(g.prototype, c.prototype),
(g.prototype.option = function (a) {
e.extend(this.options, a);
}),
(g.prototype._create = function () {
this.reloadItems(),
(this.stamps = []),
this.stamp(this.options.stamp),
e.extend(this.element.style, this.options.containerStyle),
this.options.isResizeBound && this.bindResize();
}),
(g.prototype.reloadItems = function () {
this.items = this._itemize(this.element.children);
}),
(g.prototype._itemize = function (a) {
for (
var b = this._filterFindItemElements(a),
c = this.constructor.Item,
d = [],
e = 0,
f = b.length;
f > e;
e++
) {
var g = b[e],
h = new c(g, this);
d.push(h);
}
return d;
}),
(g.prototype._filterFindItemElements = function (a) {
return e.filterFindElements(a, this.options.itemSelector);
}),
(g.prototype.getItemElements = function () {
for (var a = [], b = 0, c = this.items.length; c > b; b++)
a.push(this.items[b].element);
return a;
}),
(g.prototype.layout = function () {
this._resetLayout(), this._manageStamps();
var a =
void 0 !== this.options.isLayoutInstant
? this.options.isLayoutInstant
: !this._isLayoutInited;
this.layoutItems(this.items, a), (this._isLayoutInited = !0);
}),
(g.prototype._init = g.prototype.layout),
(g.prototype._resetLayout = function () {
this.getSize();
}),
(g.prototype.getSize = function () {
this.size = d(this.element);
}),
(g.prototype._getMeasurement = function (a, b) {
var c,
f = this.options[a];
f
? ("string" == typeof f
? (c = this.element.querySelector(f))
: e.isElement(f) && (c = f),
(this[a] = c ? d(c)[b] : f))
: (this[a] = 0);
}),
(g.prototype.layoutItems = function (a, b) {
(a = this._getItemsForLayout(a)),
this._layoutItems(a, b),
this._postLayout();
}),
(g.prototype._getItemsForLayout = function (a) {
for (var b = [], c = 0, d = a.length; d > c; c++) {
var e = a[c];
e.isIgnored || b.push(e);
}
return b;
}),
(g.prototype._layoutItems = function (a, b) {
if ((this._emitCompleteOnItems("layout", a), a && a.length)) {
for (var c = [], d = 0, e = a.length; e > d; d++) {
var f = a[d],
g = this._getItemLayoutPosition(f);
(g.item = f), (g.isInstant = b || f.isLayoutInstant), c.push(g);
}
this._processLayoutQueue(c);
}
}),
(g.prototype._getItemLayoutPosition = function () {
return { x: 0, y: 0 };
}),
(g.prototype._processLayoutQueue = function (a) {
for (var b = 0, c = a.length; c > b; b++) {
var d = a[b];
this._positionItem(d.item, d.x, d.y, d.isInstant);
}
}),
(g.prototype._positionItem = function (a, b, c, d) {
d ? a.goTo(b, c) : a.moveTo(b, c);
}),
(g.prototype._postLayout = function () {
this.resizeContainer();
}),
(g.prototype.resizeContainer = function () {
if (this.options.isResizingContainer) {
var a = this._getContainerSize();
a &&
(this._setContainerMeasure(a.width, !0),
this._setContainerMeasure(a.height, !1));
}
}),
(g.prototype._getContainerSize = j),
(g.prototype._setContainerMeasure = function (a, b) {
if (void 0 !== a) {
var c = this.size;
c.isBorderBox &&
(a += b
? c.paddingLeft +
c.paddingRight +
c.borderLeftWidth +
c.borderRightWidth
: c.paddingBottom +
c.paddingTop +
c.borderTopWidth +
c.borderBottomWidth),
(a = Math.max(a, 0)),
(this.element.style[b ? "width" : "height"] = a + "px");
}
}),
(g.prototype._emitCompleteOnItems = function (a, b) {
function c() {
e.dispatchEvent(a + "Complete", null, [b]);
}
function d() {
g++, g === f && c();
}
var e = this,
f = b.length;
if (!b || !f) return void c();
for (var g = 0, h = 0, i = b.length; i > h; h++) {
var j = b[h];
j.once(a, d);
}
}),
(g.prototype.dispatchEvent = function (a, b, c) {
var d = b ? [b].concat(c) : c;
if ((this.emitEvent(a, d), i))
if (((this.$element = this.$element || i(this.element)), b)) {
var e = i.Event(b);
(e.type = a), this.$element.trigger(e, c);
} else this.$element.trigger(a, c);
}),
(g.prototype.ignore = function (a) {
var b = this.getItem(a);
b && (b.isIgnored = !0);
}),
(g.prototype.unignore = function (a) {
var b = this.getItem(a);
b && delete b.isIgnored;
}),
(g.prototype.stamp = function (a) {
if ((a = this._find(a))) {
this.stamps = this.stamps.concat(a);
for (var b = 0, c = a.length; c > b; b++) {
var d = a[b];
this.ignore(d);
}
}
}),
(g.prototype.unstamp = function (a) {
if ((a = this._find(a)))
for (var b = 0, c = a.length; c > b; b++) {
var d = a[b];
e.removeFrom(this.stamps, d), this.unignore(d);
}
}),
(g.prototype._find = function (a) {
return a
? ("string" == typeof a && (a = this.element.querySelectorAll(a)),
(a = e.makeArray(a)))
: void 0;
}),
(g.prototype._manageStamps = function () {
if (this.stamps && this.stamps.length) {
this._getBoundingRect();
for (var a = 0, b = this.stamps.length; b > a; a++) {
var c = this.stamps[a];
this._manageStamp(c);
}
}
}),
(g.prototype._getBoundingRect = function () {
var a = this.element.getBoundingClientRect(),
b = this.size;
this._boundingRect = {
left: a.left + b.paddingLeft + b.borderLeftWidth,
top: a.top + b.paddingTop + b.borderTopWidth,
right: a.right - (b.paddingRight + b.borderRightWidth),
bottom: a.bottom - (b.paddingBottom + b.borderBottomWidth),
};
}),
(g.prototype._manageStamp = j),
(g.prototype._getElementOffset = function (a) {
var b = a.getBoundingClientRect(),
c = this._boundingRect,
e = d(a),
f = {
left: b.left - c.left - e.marginLeft,
top: b.top - c.top - e.marginTop,
right: c.right - b.right - e.marginRight,
bottom: c.bottom - b.bottom - e.marginBottom,
};
return f;
}),
(g.prototype.handleEvent = function (a) {
var b = "on" + a.type;
this[b] && this[b](a);
}),
(g.prototype.bindResize = function () {
this.isResizeBound ||
(b.bind(a, "resize", this), (this.isResizeBound = !0));
}),
(g.prototype.unbindResize = function () {
this.isResizeBound && b.unbind(a, "resize", this),
(this.isResizeBound = !1);
}),
(g.prototype.onresize = function () {
function a() {
b.resize(), delete b.resizeTimeout;
}
this.resizeTimeout && clearTimeout(this.resizeTimeout);
var b = this;
this.resizeTimeout = setTimeout(a, 100);
}),
(g.prototype.resize = function () {
this.isResizeBound && this.needsResizeLayout() && this.layout();
}),
(g.prototype.needsResizeLayout = function () {
var a = d(this.element),
b = this.size && a;
return b && a.innerWidth !== this.size.innerWidth;
}),
(g.prototype.addItems = function (a) {
var b = this._itemize(a);
return b.length && (this.items = this.items.concat(b)), b;
}),
(g.prototype.appended = function (a) {
var b = this.addItems(a);
b.length && (this.layoutItems(b, !0), this.reveal(b));
}),
(g.prototype.prepended = function (a) {
var b = this._itemize(a);
if (b.length) {
var c = this.items.slice(0);
(this.items = b.concat(c)),
this._resetLayout(),
this._manageStamps(),
this.layoutItems(b, !0),
this.reveal(b),
this.layoutItems(c);
}
}),
(g.prototype.reveal = function (a) {
this._emitCompleteOnItems("reveal", a);
for (var b = a && a.length, c = 0; b && b > c; c++) {
var d = a[c];
d.reveal();
}
}),
(g.prototype.hide = function (a) {
this._emitCompleteOnItems("hide", a);
for (var b = a && a.length, c = 0; b && b > c; c++) {
var d = a[c];
d.hide();
}
}),
(g.prototype.revealItemElements = function (a) {
var b = this.getItems(a);
this.reveal(b);
}),
(g.prototype.hideItemElements = function (a) {
var b = this.getItems(a);
this.hide(b);
}),
(g.prototype.getItem = function (a) {
for (var b = 0, c = this.items.length; c > b; b++) {
var d = this.items[b];
if (d.element === a) return d;
}
}),
(g.prototype.getItems = function (a) {
a = e.makeArray(a);
for (var b = [], c = 0, d = a.length; d > c; c++) {
var f = a[c],
g = this.getItem(f);
g && b.push(g);
}
return b;
}),
(g.prototype.remove = function (a) {
var b = this.getItems(a);
if ((this._emitCompleteOnItems("remove", b), b && b.length))
for (var c = 0, d = b.length; d > c; c++) {
var f = b[c];
f.remove(), e.removeFrom(this.items, f);
}
}),
(g.prototype.destroy = function () {
var a = this.element.style;
(a.height = ""), (a.position = ""), (a.width = "");
for (var b = 0, c = this.items.length; c > b; b++) {
var d = this.items[b];
d.destroy();
}
this.unbindResize();
var e = this.element.outlayerGUID;
delete l[e],
delete this.element.outlayerGUID,
i && i.removeData(this.element, this.constructor.namespace);
}),
(g.data = function (a) {
a = e.getQueryElement(a);
var b = a && a.outlayerGUID;
return b && l[b];
}),
(g.create = function (a, b) {
function c() {
g.apply(this, arguments);
}
return (
Object.create
? (c.prototype = Object.create(g.prototype))
: e.extend(c.prototype, g.prototype),
(c.prototype.constructor = c),
(c.defaults = e.extend({}, g.defaults)),
e.extend(c.defaults, b),
(c.prototype.settings = {}),
(c.namespace = a),
(c.data = g.data),
(c.Item = function () {
f.apply(this, arguments);
}),
(c.Item.prototype = new f()),
e.htmlInit(c, a),
i && i.bridget && i.bridget(a, c),
c
);
}),
(g.Item = f),
g
);
}),
(function (a, b) {
"use strict";
"function" == typeof define && define.amd
? define("isotope/js/item", ["outlayer/outlayer"], b)
: "object" == typeof exports
? (module.exports = b(require("outlayer")))
: ((a.Isotope = a.Isotope || {}), (a.Isotope.Item = b(a.Outlayer)));
})(window, function (a) {
"use strict";
function b() {
a.Item.apply(this, arguments);
}
(b.prototype = new a.Item()),
(b.prototype._create = function () {
(this.id = this.layout.itemGUID++),
a.Item.prototype._create.call(this),
(this.sortData = {});
}),
(b.prototype.updateSortData = function () {
if (!this.isIgnored) {
(this.sortData.id = this.id),
(this.sortData["original-order"] = this.id),
(this.sortData.random = Math.random());
var a = this.layout.options.getSortData,
b = this.layout._sorters;
for (var c in a) {
var d = b[c];
this.sortData[c] = d(this.element, this);
}
}
});
var c = b.prototype.destroy;
return (
(b.prototype.destroy = function () {
c.apply(this, arguments), this.css({ display: "" });
}),
b
);
}),
(function (a, b) {
"use strict";
"function" == typeof define && define.amd
? define("isotope/js/layout-mode", [
"get-size/get-size",
"outlayer/outlayer",
], b)
: "object" == typeof exports
? (module.exports = b(require("get-size"), require("outlayer")))
: ((a.Isotope = a.Isotope || {}),
(a.Isotope.LayoutMode = b(a.getSize, a.Outlayer)));
})(window, function (a, b) {
"use strict";
function c(a) {
(this.isotope = a),
a &&
((this.options = a.options[this.namespace]),
(this.element = a.element),
(this.items = a.filteredItems),
(this.size = a.size));
}
return (
(function () {
function a(a) {
return function () {
return b.prototype[a].apply(this.isotope, arguments);
};
}
for (
var d = [
"_resetLayout",
"_getItemLayoutPosition",
"_manageStamp",
"_getContainerSize",
"_getElementOffset",
"needsResizeLayout",
],
e = 0,
f = d.length;
f > e;
e++
) {
var g = d[e];
c.prototype[g] = a(g);
}
})(),
(c.prototype.needsVerticalResizeLayout = function () {
var b = a(this.isotope.element),
c = this.isotope.size && b;
return c && b.innerHeight != this.isotope.size.innerHeight;
}),
(c.prototype._getMeasurement = function () {
this.isotope._getMeasurement.apply(this, arguments);
}),
(c.prototype.getColumnWidth = function () {
this.getSegmentSize("column", "Width");
}),
(c.prototype.getRowHeight = function () {
this.getSegmentSize("row", "Height");
}),
(c.prototype.getSegmentSize = function (a, b) {
var c = a + b,
d = "outer" + b;
if ((this._getMeasurement(c, d), !this[c])) {
var e = this.getFirstItemSize();
this[c] = (e && e[d]) || this.isotope.size["inner" + b];
}
}),
(c.prototype.getFirstItemSize = function () {
var b = this.isotope.filteredItems[0];
return b && b.element && a(b.element);
}),
(c.prototype.layout = function () {
this.isotope.layout.apply(this.isotope, arguments);
}),
(c.prototype.getSize = function () {
this.isotope.getSize(), (this.size = this.isotope.size);
}),
(c.modes = {}),
(c.create = function (a, b) {
function d() {
c.apply(this, arguments);
}
return (
(d.prototype = new c()),
b && (d.options = b),
(d.prototype.namespace = a),
(c.modes[a] = d),
d
);
}),
c
);
}),
(function (a, b) {
"use strict";
"function" == typeof define && define.amd
? define("masonry/masonry", [
"outlayer/outlayer",
"get-size/get-size",
"fizzy-ui-utils/utils",
], b)
: "object" == typeof exports
? (module.exports = b(
require("outlayer"),
require("get-size"),
require("fizzy-ui-utils")
))
: (a.Masonry = b(a.Outlayer, a.getSize, a.fizzyUIUtils));
})(window, function (a, b, c) {
var d = a.create("masonry");
return (
(d.prototype._resetLayout = function () {
this.getSize(),
this._getMeasurement("columnWidth", "outerWidth"),
this._getMeasurement("gutter", "outerWidth"),
this.measureColumns();
var a = this.cols;
for (this.colYs = []; a--; ) this.colYs.push(0);
this.maxY = 0;
}),
(d.prototype.measureColumns = function () {
if ((this.getContainerWidth(), !this.columnWidth)) {
var a = this.items[0],
c = a && a.element;
this.columnWidth = (c && b(c).outerWidth) || this.containerWidth;
}
var d = (this.columnWidth += this.gutter),
e = this.containerWidth + this.gutter,
f = e / d,
g = d - (e % d),
h = g && 1 > g ? "round" : "floor";
(f = Math[h](f)), (this.cols = Math.max(f, 1));
}),
(d.prototype.getContainerWidth = function () {
var a = this.options.isFitWidth
? this.element.parentNode
: this.element,
c = b(a);
this.containerWidth = c && c.innerWidth;
}),
(d.prototype._getItemLayoutPosition = function (a) {
a.getSize();
var b = a.size.outerWidth % this.columnWidth,
d = b && 1 > b ? "round" : "ceil",
e = Math[d](a.size.outerWidth / this.columnWidth);
e = Math.min(e, this.cols);
for (
var f = this._getColGroup(e),
g = Math.min.apply(Math, f),
h = c.indexOf(f, g),
i = { x: this.columnWidth * h, y: g },
j = g + a.size.outerHeight,
k = this.cols + 1 - f.length,
l = 0;
k > l;
l++
)
this.colYs[h + l] = j;
return i;
}),
(d.prototype._getColGroup = function (a) {
if (2 > a) return this.colYs;
for (var b = [], c = this.cols + 1 - a, d = 0; c > d; d++) {
var e = this.colYs.slice(d, d + a);
b[d] = Math.max.apply(Math, e);
}
return b;
}),
(d.prototype._manageStamp = function (a) {
var c = b(a),
d = this._getElementOffset(a),
e = this.options.isOriginLeft ? d.left : d.right,
f = e + c.outerWidth,
g = Math.floor(e / this.columnWidth);
g = Math.max(0, g);
var h = Math.floor(f / this.columnWidth);
(h -= f % this.columnWidth ? 0 : 1), (h = Math.min(this.cols - 1, h));
for (
var i = (this.options.isOriginTop ? d.top : d.bottom) + c.outerHeight,
j = g;
h >= j;
j++
)
this.colYs[j] = Math.max(i, this.colYs[j]);
}),
(d.prototype._getContainerSize = function () {
this.maxY = Math.max.apply(Math, this.colYs);
var a = { height: this.maxY };
return (
this.options.isFitWidth && (a.width = this._getContainerFitWidth()), a
);
}),
(d.prototype._getContainerFitWidth = function () {
for (var a = 0, b = this.cols; --b && 0 === this.colYs[b]; ) a++;
return (this.cols - a) * this.columnWidth - this.gutter;
}),
(d.prototype.needsResizeLayout = function () {
var a = this.containerWidth;
return this.getContainerWidth(), a !== this.containerWidth;
}),
d
);
}),
(function (a, b) {
"use strict";
"function" == typeof define && define.amd
? define("isotope/js/layout-modes/masonry", [
"../layout-mode",
"masonry/masonry",
], b)
: "object" == typeof exports
? (module.exports = b(
require("../layout-mode"),
require("masonry-layout")
))
: b(a.Isotope.LayoutMode, a.Masonry);
})(window, function (a, b) {
"use strict";
function c(a, b) {
for (var c in b) a[c] = b[c];
return a;
}
var d = a.create("masonry"),
e = d.prototype._getElementOffset,
f = d.prototype.layout,
g = d.prototype._getMeasurement;
c(d.prototype, b.prototype),
(d.prototype._getElementOffset = e),
(d.prototype.layout = f),
(d.prototype._getMeasurement = g);
var h = d.prototype.measureColumns;
d.prototype.measureColumns = function () {
(this.items = this.isotope.filteredItems), h.call(this);
};
var i = d.prototype._manageStamp;
return (
(d.prototype._manageStamp = function () {
(this.options.isOriginLeft = this.isotope.options.isOriginLeft),
(this.options.isOriginTop = this.isotope.options.isOriginTop),
i.apply(this, arguments);
}),
d
);
}),
(function (a, b) {
"use strict";
"function" == typeof define && define.amd
? define("isotope/js/layout-modes/fit-rows", ["../layout-mode"], b)
: "object" == typeof exports
? (module.exports = b(require("../layout-mode")))
: b(a.Isotope.LayoutMode);
})(window, function (a) {
"use strict";
var b = a.create("fitRows");
return (
(b.prototype._resetLayout = function () {
(this.x = 0),
(this.y = 0),
(this.maxY = 0),
this._getMeasurement("gutter", "outerWidth");
}),
(b.prototype._getItemLayoutPosition = function (a) {
a.getSize();
var b = a.size.outerWidth + this.gutter,
c = this.isotope.size.innerWidth + this.gutter;
0 !== this.x && b + this.x > c && ((this.x = 0), (this.y = this.maxY));
var d = { x: this.x, y: this.y };
return (
(this.maxY = Math.max(this.maxY, this.y + a.size.outerHeight)),
(this.x += b),
d
);
}),
(b.prototype._getContainerSize = function () {
return { height: this.maxY };
}),
b
);
}),
(function (a, b) {
"use strict";
"function" == typeof define && define.amd
? define("isotope/js/layout-modes/vertical", ["../layout-mode"], b)
: "object" == typeof exports
? (module.exports = b(require("../layout-mode")))
: b(a.Isotope.LayoutMode);
})(window, function (a) {
"use strict";
var b = a.create("vertical", { horizontalAlignment: 0 });
return (
(b.prototype._resetLayout = function () {
this.y = 0;
}),
(b.prototype._getItemLayoutPosition = function (a) {
a.getSize();
var b =
(this.isotope.size.innerWidth - a.size.outerWidth) *
this.options.horizontalAlignment,
c = this.y;
return (this.y += a.size.outerHeight), { x: b, y: c };
}),
(b.prototype._getContainerSize = function () {
return { height: this.y };
}),
b
);
}),
(function (a, b) {
"use strict";
"function" == typeof define && define.amd
? define([
"outlayer/outlayer",
"get-size/get-size",
"matches-selector/matches-selector",
"fizzy-ui-utils/utils",
"isotope/js/item",
"isotope/js/layout-mode",
"isotope/js/layout-modes/masonry",
"isotope/js/layout-modes/fit-rows",
"isotope/js/layout-modes/vertical",
], function (c, d, e, f, g, h) {
return b(a, c, d, e, f, g, h);
})
: "object" == typeof exports
? (module.exports = b(
a,
require("outlayer"),
require("get-size"),
require("desandro-matches-selector"),
require("fizzy-ui-utils"),
require("./item"),
require("./layout-mode"),
require("./layout-modes/masonry"),
require("./layout-modes/fit-rows"),
require("./layout-modes/vertical")
))
: (a.Isotope = b(
a,
a.Outlayer,
a.getSize,
a.matchesSelector,
a.fizzyUIUtils,
a.Isotope.Item,
a.Isotope.LayoutMode
));
})(window, function (a, b, c, d, e, f, g) {
function h(a, b) {
return function (c, d) {
for (var e = 0, f = a.length; f > e; e++) {
var g = a[e],
h = c.sortData[g],
i = d.sortData[g];
if (h > i || i > h) {
var j = void 0 !== b[g] ? b[g] : b,
k = j ? 1 : -1;
return (h > i ? 1 : -1) * k;
}
}
return 0;
};
}
var i = a.jQuery,
j = String.prototype.trim
? function (a) {
return a.trim();
}
: function (a) {
return a.replace(/^\s+|\s+$/g, "");
},
k = document.documentElement,
l = k.textContent
? function (a) {
return a.textContent;
}
: function (a) {
return a.innerText;
},
m = b.create("isotope", {
layoutMode: "masonry",
isJQueryFiltering: !0,
sortAscending: !0,
});
(m.Item = f),
(m.LayoutMode = g),
(m.prototype._create = function () {
(this.itemGUID = 0),
(this._sorters = {}),
this._getSorters(),
b.prototype._create.call(this),
(this.modes = {}),
(this.filteredItems = this.items),
(this.sortHistory = ["original-order"]);
for (var a in g.modes) this._initLayoutMode(a);
}),
(m.prototype.reloadItems = function () {
(this.itemGUID = 0), b.prototype.reloadItems.call(this);
}),
(m.prototype._itemize = function () {
for (
var a = b.prototype._itemize.apply(this, arguments),
c = 0,
d = a.length;
d > c;
c++
) {
var e = a[c];
e.id = this.itemGUID++;
}
return this._updateItemsSortData(a), a;
}),
(m.prototype._initLayoutMode = function (a) {
var b = g.modes[a],
c = this.options[a] || {};
(this.options[a] = b.options ? e.extend(b.options, c) : c),
(this.modes[a] = new b(this));
}),
(m.prototype.layout = function () {
return !this._isLayoutInited && this.options.isInitLayout
? void this.arrange()
: void this._layout();
}),
(m.prototype._layout = function () {
var a = this._getIsInstant();
this._resetLayout(),
this._manageStamps(),
this.layoutItems(this.filteredItems, a),
(this._isLayoutInited = !0);
}),
(m.prototype.arrange = function (a) {
function b() {
d.reveal(c.needReveal), d.hide(c.needHide);
}
this.option(a), this._getIsInstant();
var c = this._filter(this.items);
this.filteredItems = c.matches;
var d = this;
this._bindArrangeComplete(),
this._isInstant ? this._noTransition(b) : b(),
this._sort(),
this._layout();
}),
(m.prototype._init = m.prototype.arrange),
(m.prototype._getIsInstant = function () {
var a =
void 0 !== this.options.isLayoutInstant
? this.options.isLayoutInstant
: !this._isLayoutInited;
return (this._isInstant = a), a;
}),
(m.prototype._bindArrangeComplete = function () {
function a() {
b &&
c &&
d &&
e.dispatchEvent("arrangeComplete", null, [e.filteredItems]);
}
var b,
c,
d,
e = this;
this.once("layoutComplete", function () {
(b = !0), a();
}),
this.once("hideComplete", function () {
(c = !0), a();
}),
this.once("revealComplete", function () {
(d = !0), a();
});
}),
(m.prototype._filter = function (a) {
var b = this.options.filter;
b = b || "*";
for (
var c = [],
d = [],
e = [],
f = this._getFilterTest(b),
g = 0,
h = a.length;
h > g;
g++
) {
var i = a[g];
if (!i.isIgnored) {
var j = f(i);
j && c.push(i),
j && i.isHidden ? d.push(i) : j || i.isHidden || e.push(i);
}
}
return { matches: c, needReveal: d, needHide: e };
}),
(m.prototype._getFilterTest = function (a) {
return i && this.options.isJQueryFiltering
? function (b) {
return i(b.element).is(a);
}
: "function" == typeof a
? function (b) {
return a(b.element);
}
: function (b) {
return d(b.element, a);
};
}),
(m.prototype.updateSortData = function (a) {
var b;
a ? ((a = e.makeArray(a)), (b = this.getItems(a))) : (b = this.items),
this._getSorters(),
this._updateItemsSortData(b);
}),
(m.prototype._getSorters = function () {
var a = this.options.getSortData;
for (var b in a) {
var c = a[b];
this._sorters[b] = n(c);
}
}),
(m.prototype._updateItemsSortData = function (a) {
for (var b = a && a.length, c = 0; b && b > c; c++) {
var d = a[c];
d.updateSortData();
}
});
var n = (function () {
function a(a) {
if ("string" != typeof a) return a;
var c = j(a).split(" "),
d = c[0],
e = d.match(/^\[(.+)\]$/),
f = e && e[1],
g = b(f, d),
h = m.sortDataParsers[c[1]];
return (a = h
? function (a) {
return a && h(g(a));
}
: function (a) {
return a && g(a);
});
}
function b(a, b) {
var c;
return (c = a
? function (b) {
return b.getAttribute(a);
}
: function (a) {
var c = a.querySelector(b);
return c && l(c);
});
}
return a;
})();
(m.sortDataParsers = {
parseInt: function (a) {
return parseInt(a, 10);
},
parseFloat: function (a) {
return parseFloat(a);
},
}),
(m.prototype._sort = function () {
var a = this.options.sortBy;
if (a) {
var b = [].concat.apply(a, this.sortHistory),
c = h(b, this.options.sortAscending);
this.filteredItems.sort(c),
a != this.sortHistory[0] && this.sortHistory.unshift(a);
}
}),
(m.prototype._mode = function () {
var a = this.options.layoutMode,
b = this.modes[a];
if (!b) throw new Error("No layout mode: " + a);
return (b.options = this.options[a]), b;
}),
(m.prototype._resetLayout = function () {
b.prototype._resetLayout.call(this), this._mode()._resetLayout();
}),
(m.prototype._getItemLayoutPosition = function (a) {
return this._mode()._getItemLayoutPosition(a);
}),
(m.prototype._manageStamp = function (a) {
this._mode()._manageStamp(a);
}),
(m.prototype._getContainerSize = function () {
return this._mode()._getContainerSize();
}),
(m.prototype.needsResizeLayout = function () {
return this._mode().needsResizeLayout();
}),
(m.prototype.appended = function (a) {
var b = this.addItems(a);
if (b.length) {
var c = this._filterRevealAdded(b);
this.filteredItems = this.filteredItems.concat(c);
}
}),
(m.prototype.prepended = function (a) {
var b = this._itemize(a);
if (b.length) {
this._resetLayout(), this._manageStamps();
var c = this._filterRevealAdded(b);
this.layoutItems(this.filteredItems),
(this.filteredItems = c.concat(this.filteredItems)),
(this.items = b.concat(this.items));
}
}),
(m.prototype._filterRevealAdded = function (a) {
var b = this._filter(a);
return (
this.hide(b.needHide),
this.reveal(b.matches),
this.layoutItems(b.matches, !0),
b.matches
);
}),
(m.prototype.insert = function (a) {
var b = this.addItems(a);
if (b.length) {
var c,
d,
e = b.length;
for (c = 0; e > c; c++)
(d = b[c]), this.element.appendChild(d.element);
var f = this._filter(b).matches;
for (c = 0; e > c; c++) b[c].isLayoutInstant = !0;
for (this.arrange(), c = 0; e > c; c++) delete b[c].isLayoutInstant;
this.reveal(f);
}
});
var o = m.prototype.remove;
return (
(m.prototype.remove = function (a) {
a = e.makeArray(a);
var b = this.getItems(a);
o.call(this, a);
var c = b && b.length;
if (c)
for (var d = 0; c > d; d++) {
var f = b[d];
e.removeFrom(this.filteredItems, f);
}
}),
(m.prototype.shuffle = function () {
for (var a = 0, b = this.items.length; b > a; a++) {
var c = this.items[a];
c.sortData.random = Math.random();
}
(this.options.sortBy = "random"), this._sort(), this._layout();
}),
(m.prototype._noTransition = function (a) {
var b = this.options.transitionDuration;
this.options.transitionDuration = 0;
var c = a.call(this);
return (this.options.transitionDuration = b), c;
}),
(m.prototype.getFilteredItemElements = function () {
for (var a = [], b = 0, c = this.filteredItems.length; c > b; b++)
a.push(this.filteredItems[b].element);
return a;
}),
m
);
});
/*!
* imagesLoaded PACKAGED v3.1.8
* JavaScript is all like "You images are done yet or what?"
* MIT License
*/
(function () {
function e() {}
function t(e, t) {
for (var n = e.length; n--; ) if (e[n].listener === t) return n;
return -1;
}
function n(e) {
return function () {
return this[e].apply(this, arguments);
};
}
var i = e.prototype,
r = this,
o = r.EventEmitter;
(i.getListeners = function (e) {
var t,
n,
i = this._getEvents();
if ("object" == typeof e) {
t = {};
for (n in i) i.hasOwnProperty(n) && e.test(n) && (t[n] = i[n]);
} else t = i[e] || (i[e] = []);
return t;
}),
(i.flattenListeners = function (e) {
var t,
n = [];
for (t = 0; e.length > t; t += 1) n.push(e[t].listener);
return n;
}),
(i.getListenersAsObject = function (e) {
var t,
n = this.getListeners(e);
return n instanceof Array && ((t = {}), (t[e] = n)), t || n;
}),
(i.addListener = function (e, n) {
var i,
r = this.getListenersAsObject(e),
o = "object" == typeof n;
for (i in r)
r.hasOwnProperty(i) &&
-1 === t(r[i], n) &&
r[i].push(o ? n : { listener: n, once: !1 });
return this;
}),
(i.on = n("addListener")),
(i.addOnceListener = function (e, t) {
return this.addListener(e, { listener: t, once: !0 });
}),
(i.once = n("addOnceListener")),
(i.defineEvent = function (e) {
return this.getListeners(e), this;
}),
(i.defineEvents = function (e) {
for (var t = 0; e.length > t; t += 1) this.defineEvent(e[t]);
return this;
}),
(i.removeListener = function (e, n) {
var i,
r,
o = this.getListenersAsObject(e);
for (r in o)
o.hasOwnProperty(r) &&
((i = t(o[r], n)), -1 !== i && o[r].splice(i, 1));
return this;
}),
(i.off = n("removeListener")),
(i.addListeners = function (e, t) {
return this.manipulateListeners(!1, e, t);
}),
(i.removeListeners = function (e, t) {
return this.manipulateListeners(!0, e, t);
}),
(i.manipulateListeners = function (e, t, n) {
var i,
r,
o = e ? this.removeListener : this.addListener,
s = e ? this.removeListeners : this.addListeners;
if ("object" != typeof t || t instanceof RegExp)
for (i = n.length; i--; ) o.call(this, t, n[i]);
else
for (i in t)
t.hasOwnProperty(i) &&
(r = t[i]) &&
("function" == typeof r ? o.call(this, i, r) : s.call(this, i, r));
return this;
}),
(i.removeEvent = function (e) {
var t,
n = typeof e,
i = this._getEvents();
if ("string" === n) delete i[e];
else if ("object" === n)
for (t in i) i.hasOwnProperty(t) && e.test(t) && delete i[t];
else delete this._events;
return this;
}),
(i.removeAllListeners = n("removeEvent")),
(i.emitEvent = function (e, t) {
var n,
i,
r,
o,
s = this.getListenersAsObject(e);
for (r in s)
if (s.hasOwnProperty(r))
for (i = s[r].length; i--; )
(n = s[r][i]),
n.once === !0 && this.removeListener(e, n.listener),
(o = n.listener.apply(this, t || [])),
o === this._getOnceReturnValue() &&
this.removeListener(e, n.listener);
return this;
}),
(i.trigger = n("emitEvent")),
(i.emit = function (e) {
var t = Array.prototype.slice.call(arguments, 1);
return this.emitEvent(e, t);
}),
(i.setOnceReturnValue = function (e) {
return (this._onceReturnValue = e), this;
}),
(i._getOnceReturnValue = function () {
return this.hasOwnProperty("_onceReturnValue")
? this._onceReturnValue
: !0;
}),
(i._getEvents = function () {
return this._events || (this._events = {});
}),
(e.noConflict = function () {
return (r.EventEmitter = o), e;
}),
"function" == typeof define && define.amd
? define("eventEmitter/EventEmitter", [], function () {
return e;
})
: "object" == typeof module && module.exports
? (module.exports = e)
: (this.EventEmitter = e);
}.call(this),
(function (e) {
function t(t) {
var n = e.event;
return (n.target = n.target || n.srcElement || t), n;
}
var n = document.documentElement,
i = function () {};
n.addEventListener
? (i = function (e, t, n) {
e.addEventListener(t, n, !1);
})
: n.attachEvent &&
(i = function (e, n, i) {
(e[n + i] = i.handleEvent
? function () {
var n = t(e);
i.handleEvent.call(i, n);
}
: function () {
var n = t(e);
i.call(e, n);
}),
e.attachEvent("on" + n, e[n + i]);
});
var r = function () {};
n.removeEventListener
? (r = function (e, t, n) {
e.removeEventListener(t, n, !1);
})
: n.detachEvent &&
(r = function (e, t, n) {
e.detachEvent("on" + t, e[t + n]);
try {
delete e[t + n];
} catch (i) {
e[t + n] = void 0;
}
});
var o = { bind: i, unbind: r };
"function" == typeof define && define.amd
? define("eventie/eventie", o)
: (e.eventie = o);
})(this),
(function (e, t) {
"function" == typeof define && define.amd
? define(["eventEmitter/EventEmitter", "eventie/eventie"], function (
n,
i
) {
return t(e, n, i);
})
: "object" == typeof exports
? (module.exports = t(
e,
require("wolfy87-eventemitter"),
require("eventie")
))
: (e.imagesLoaded = t(e, e.EventEmitter, e.eventie));
})(window, function (e, t, n) {
function i(e, t) {
for (var n in t) e[n] = t[n];
return e;
}
function r(e) {
return "[object Array]" === d.call(e);
}
function o(e) {
var t = [];
if (r(e)) t = e;
else if ("number" == typeof e.length)
for (var n = 0, i = e.length; i > n; n++) t.push(e[n]);
else t.push(e);
return t;
}
function s(e, t, n) {
if (!(this instanceof s)) return new s(e, t);
"string" == typeof e && (e = document.querySelectorAll(e)),
(this.elements = o(e)),
(this.options = i({}, this.options)),
"function" == typeof t ? (n = t) : i(this.options, t),
n && this.on("always", n),
this.getImages(),
a && (this.jqDeferred = new a.Deferred());
var r = this;
setTimeout(function () {
r.check();
});
}
function f(e) {
this.img = e;
}
function c(e) {
(this.src = e), (v[e] = this);
}
var a = e.jQuery,
u = e.console,
h = u !== void 0,
d = Object.prototype.toString;
(s.prototype = new t()),
(s.prototype.options = {}),
(s.prototype.getImages = function () {
this.images = [];
for (var e = 0, t = this.elements.length; t > e; e++) {
var n = this.elements[e];
"IMG" === n.nodeName && this.addImage(n);
var i = n.nodeType;
if (i && (1 === i || 9 === i || 11 === i))
for (
var r = n.querySelectorAll("img"), o = 0, s = r.length;
s > o;
o++
) {
var f = r[o];
this.addImage(f);
}
}
}),
(s.prototype.addImage = function (e) {
var t = new f(e);
this.images.push(t);
}),
(s.prototype.check = function () {
function e(e, r) {
return (
t.options.debug && h && u.log("confirm", e, r),
t.progress(e),
n++,
n === i && t.complete(),
!0
);
}
var t = this,
n = 0,
i = this.images.length;
if (((this.hasAnyBroken = !1), !i)) return this.complete(), void 0;
for (var r = 0; i > r; r++) {
var o = this.images[r];
o.on("confirm", e), o.check();
}
}),
(s.prototype.progress = function (e) {
this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded;
var t = this;
setTimeout(function () {
t.emit("progress", t, e),
t.jqDeferred && t.jqDeferred.notify && t.jqDeferred.notify(t, e);
});
}),
(s.prototype.complete = function () {
var e = this.hasAnyBroken ? "fail" : "done";
this.isComplete = !0;
var t = this;
setTimeout(function () {
if ((t.emit(e, t), t.emit("always", t), t.jqDeferred)) {
var n = t.hasAnyBroken ? "reject" : "resolve";
t.jqDeferred[n](t);
}
});
}),
a &&
(a.fn.imagesLoaded = function (e, t) {
var n = new s(this, e, t);
return n.jqDeferred.promise(a(this));
}),
(f.prototype = new t()),
(f.prototype.check = function () {
var e = v[this.img.src] || new c(this.img.src);
if (e.isConfirmed)
return this.confirm(e.isLoaded, "cached was confirmed"), void 0;
if (this.img.complete && void 0 !== this.img.naturalWidth)
return (
this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), void 0
);
var t = this;
e.on("confirm", function (e, n) {
return t.confirm(e.isLoaded, n), !0;
}),
e.check();
}),
(f.prototype.confirm = function (e, t) {
(this.isLoaded = e), this.emit("confirm", this, t);
});
var v = {};
return (
(c.prototype = new t()),
(c.prototype.check = function () {
if (!this.isChecked) {
var e = new Image();
n.bind(e, "load", this),
n.bind(e, "error", this),
(e.src = this.src),
(this.isChecked = !0);
}
}),
(c.prototype.handleEvent = function (e) {
var t = "on" + e.type;
this[t] && this[t](e);
}),
(c.prototype.onload = function (e) {
this.confirm(!0, "onload"), this.unbindProxyEvents(e);
}),
(c.prototype.onerror = function (e) {
this.confirm(!1, "onerror"), this.unbindProxyEvents(e);
}),
(c.prototype.confirm = function (e, t) {
(this.isConfirmed = !0),
(this.isLoaded = e),
this.emit("confirm", this, t);
}),
(c.prototype.unbindProxyEvents = function (e) {
n.unbind(e.target, "load", this), n.unbind(e.target, "error", this);
}),
s
);
}));
/*!
Waypoints - 4.0.0
Copyright © 2011-2015 Caleb Troughton
Licensed under the MIT license.
https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
*/
(function () {
"use strict";
var keyCounter = 0;
var allWaypoints = {};
/* http://imakewebthings.com/waypoints/api/waypoint */
function Waypoint(options) {
if (!options) {
throw new Error("No options passed to Waypoint constructor");
}
if (!options.element) {
throw new Error("No element option passed to Waypoint constructor");
}
if (!options.handler) {
throw new Error("No handler option passed to Waypoint constructor");
}
this.key = "waypoint-" + keyCounter;
this.options = Waypoint.Adapter.extend({}, Waypoint.defaults, options);
this.element = this.options.element;
this.adapter = new Waypoint.Adapter(this.element);
this.callback = options.handler;
this.axis = this.options.horizontal ? "horizontal" : "vertical";
this.enabled = this.options.enabled;
this.triggerPoint = null;
this.group = Waypoint.Group.findOrCreate({
name: this.options.group,
axis: this.axis,
});
this.context = Waypoint.Context.findOrCreateByElement(this.options.context);
if (Waypoint.offsetAliases[this.options.offset]) {
this.options.offset = Waypoint.offsetAliases[this.options.offset];
}
this.group.add(this);
this.context.add(this);
allWaypoints[this.key] = this;
keyCounter += 1;
}
/* Private */
Waypoint.prototype.queueTrigger = function (direction) {
this.group.queueTrigger(this, direction);
};
/* Private */
Waypoint.prototype.trigger = function (args) {
if (!this.enabled) {
return;
}
if (this.callback) {
this.callback.apply(this, args);
}
};
/* Public */
/* http://imakewebthings.com/waypoints/api/destroy */
Waypoint.prototype.destroy = function () {
this.context.remove(this);
this.group.remove(this);
delete allWaypoints[this.key];
};
/* Public */
/* http://imakewebthings.com/waypoints/api/disable */
Waypoint.prototype.disable = function () {
this.enabled = false;
return this;
};
/* Public */
/* http://imakewebthings.com/waypoints/api/enable */
Waypoint.prototype.enable = function () {
this.context.refresh();
this.enabled = true;
return this;
};
/* Public */
/* http://imakewebthings.com/waypoints/api/next */
Waypoint.prototype.next = function () {
return this.group.next(this);
};
/* Public */
/* http://imakewebthings.com/waypoints/api/previous */
Waypoint.prototype.previous = function () {
return this.group.previous(this);
};
/* Private */
Waypoint.invokeAll = function (method) {
var allWaypointsArray = [];
for (var waypointKey in allWaypoints) {
allWaypointsArray.push(allWaypoints[waypointKey]);
}
for (var i = 0, end = allWaypointsArray.length; i < end; i++) {
allWaypointsArray[i][method]();
}
};
/* Public */
/* http://imakewebthings.com/waypoints/api/destroy-all */
Waypoint.destroyAll = function () {
Waypoint.invokeAll("destroy");
};
/* Public */
/* http://imakewebthings.com/waypoints/api/disable-all */
Waypoint.disableAll = function () {
Waypoint.invokeAll("disable");
};
/* Public */
/* http://imakewebthings.com/waypoints/api/enable-all */
Waypoint.enableAll = function () {
Waypoint.invokeAll("enable");
};
/* Public */
/* http://imakewebthings.com/waypoints/api/refresh-all */
Waypoint.refreshAll = function () {
Waypoint.Context.refreshAll();
};
/* Public */
/* http://imakewebthings.com/waypoints/api/viewport-height */
Waypoint.viewportHeight = function () {
return window.innerHeight || document.documentElement.clientHeight;
};
/* Public */
/* http://imakewebthings.com/waypoints/api/viewport-width */
Waypoint.viewportWidth = function () {
return document.documentElement.clientWidth;
};
Waypoint.adapters = [];
Waypoint.defaults = {
context: window,
continuous: true,
enabled: true,
group: "default",
horizontal: false,
offset: 0,
};
Waypoint.offsetAliases = {
"bottom-in-view": function () {
return this.context.innerHeight() - this.adapter.outerHeight();
},
"right-in-view": function () {
return this.context.innerWidth() - this.adapter.outerWidth();
},
};
window.Waypoint = Waypoint;
})();
(function () {
"use strict";
function requestAnimationFrameShim(callback) {
window.setTimeout(callback, 1000 / 60);
}
var keyCounter = 0;
var contexts = {};
var Waypoint = window.Waypoint;
var oldWindowLoad = window.onload;
/* http://imakewebthings.com/waypoints/api/context */
function Context(element) {
this.element = element;
this.Adapter = Waypoint.Adapter;
this.adapter = new this.Adapter(element);
this.key = "waypoint-context-" + keyCounter;
this.didScroll = false;
this.didResize = false;
this.oldScroll = {
x: this.adapter.scrollLeft(),
y: this.adapter.scrollTop(),
};
this.waypoints = {
vertical: {},
horizontal: {},
};
element.waypointContextKey = this.key;
contexts[element.waypointContextKey] = this;
keyCounter += 1;
this.createThrottledScrollHandler();
this.createThrottledResizeHandler();
}
/* Private */
Context.prototype.add = function (waypoint) {
var axis = waypoint.options.horizontal ? "horizontal" : "vertical";
this.waypoints[axis][waypoint.key] = waypoint;
this.refresh();
};
/* Private */
Context.prototype.checkEmpty = function () {
var horizontalEmpty = this.Adapter.isEmptyObject(this.waypoints.horizontal);
var verticalEmpty = this.Adapter.isEmptyObject(this.waypoints.vertical);
if (horizontalEmpty && verticalEmpty) {
this.adapter.off(".waypoints");
delete contexts[this.key];
}
};
/* Private */
Context.prototype.createThrottledResizeHandler = function () {
var self = this;
function resizeHandler() {
self.handleResize();
self.didResize = false;
}
this.adapter.on("resize.waypoints", function () {
if (!self.didResize) {
self.didResize = true;
Waypoint.requestAnimationFrame(resizeHandler);
}
});
};
/* Private */
Context.prototype.createThrottledScrollHandler = function () {
var self = this;
function scrollHandler() {
self.handleScroll();
self.didScroll = false;
}
this.adapter.on("scroll.waypoints", function () {
if (!self.didScroll || Waypoint.isTouch) {
self.didScroll = true;
Waypoint.requestAnimationFrame(scrollHandler);
}
});
};
/* Private */
Context.prototype.handleResize = function () {
Waypoint.Context.refreshAll();
};
/* Private */
Context.prototype.handleScroll = function () {
var triggeredGroups = {};
var axes = {
horizontal: {
newScroll: this.adapter.scrollLeft(),
oldScroll: this.oldScroll.x,
forward: "right",
backward: "left",
},
vertical: {
newScroll: this.adapter.scrollTop(),
oldScroll: this.oldScroll.y,
forward: "down",
backward: "up",
},
};
for (var axisKey in axes) {
var axis = axes[axisKey];
var isForward = axis.newScroll > axis.oldScroll;
var direction = isForward ? axis.forward : axis.backward;
for (var waypointKey in this.waypoints[axisKey]) {
var waypoint = this.waypoints[axisKey][waypointKey];
var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint;
var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint;
var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint;
var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint;
if (crossedForward || crossedBackward) {
waypoint.queueTrigger(direction);
triggeredGroups[waypoint.group.id] = waypoint.group;
}
}
}
for (var groupKey in triggeredGroups) {
triggeredGroups[groupKey].flushTriggers();
}
this.oldScroll = {
x: axes.horizontal.newScroll,
y: axes.vertical.newScroll,
};
};
/* Private */
Context.prototype.innerHeight = function () {
/*eslint-disable eqeqeq */
if (this.element == this.element.window) {
return Waypoint.viewportHeight();
}
/*eslint-enable eqeqeq */
return this.adapter.innerHeight();
};
/* Private */
Context.prototype.remove = function (waypoint) {
delete this.waypoints[waypoint.axis][waypoint.key];
this.checkEmpty();
};
/* Private */
Context.prototype.innerWidth = function () {
/*eslint-disable eqeqeq */
if (this.element == this.element.window) {
return Waypoint.viewportWidth();
}
/*eslint-enable eqeqeq */
return this.adapter.innerWidth();
};
/* Public */
/* http://imakewebthings.com/waypoints/api/context-destroy */
Context.prototype.destroy = function () {
var allWaypoints = [];
for (var axis in this.waypoints) {
for (var waypointKey in this.waypoints[axis]) {
allWaypoints.push(this.waypoints[axis][waypointKey]);
}
}
for (var i = 0, end = allWaypoints.length; i < end; i++) {
allWaypoints[i].destroy();
}
};
/* Public */
/* http://imakewebthings.com/waypoints/api/context-refresh */
Context.prototype.refresh = function () {
/*eslint-disable eqeqeq */
var isWindow = this.element == this.element.window;
/*eslint-enable eqeqeq */
var contextOffset = isWindow ? undefined : this.adapter.offset();
var triggeredGroups = {};
var axes;
this.handleScroll();
axes = {
horizontal: {
contextOffset: isWindow ? 0 : contextOffset.left,
contextScroll: isWindow ? 0 : this.oldScroll.x,
contextDimension: this.innerWidth(),
oldScroll: this.oldScroll.x,
forward: "right",
backward: "left",
offsetProp: "left",
},
vertical: {
contextOffset: isWindow ? 0 : contextOffset.top,
contextScroll: isWindow ? 0 : this.oldScroll.y,
contextDimension: this.innerHeight(),
oldScroll: this.oldScroll.y,
forward: "down",
backward: "up",
offsetProp: "top",
},
};
for (var axisKey in axes) {
var axis = axes[axisKey];
for (var waypointKey in this.waypoints[axisKey]) {
var waypoint = this.waypoints[axisKey][waypointKey];
var adjustment = waypoint.options.offset;
var oldTriggerPoint = waypoint.triggerPoint;
var elementOffset = 0;
var freshWaypoint = oldTriggerPoint == null;
var contextModifier, wasBeforeScroll, nowAfterScroll;
var triggeredBackward, triggeredForward;
if (waypoint.element !== waypoint.element.window) {
elementOffset = waypoint.adapter.offset()[axis.offsetProp];
}
if (typeof adjustment === "function") {
adjustment = adjustment.apply(waypoint);
} else if (typeof adjustment === "string") {
adjustment = parseFloat(adjustment);
if (waypoint.options.offset.indexOf("%") > -1) {
adjustment = Math.ceil((axis.contextDimension * adjustment) / 100);
}
}
contextModifier = axis.contextScroll - axis.contextOffset;
waypoint.triggerPoint = elementOffset + contextModifier - adjustment;
wasBeforeScroll = oldTriggerPoint < axis.oldScroll;
nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll;
triggeredBackward = wasBeforeScroll && nowAfterScroll;
triggeredForward = !wasBeforeScroll && !nowAfterScroll;
if (!freshWaypoint && triggeredBackward) {
waypoint.queueTrigger(axis.backward);
triggeredGroups[waypoint.group.id] = waypoint.group;
} else if (!freshWaypoint && triggeredForward) {
waypoint.queueTrigger(axis.forward);
triggeredGroups[waypoint.group.id] = waypoint.group;
} else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) {
waypoint.queueTrigger(axis.forward);
triggeredGroups[waypoint.group.id] = waypoint.group;
}
}
}
Waypoint.requestAnimationFrame(function () {
for (var groupKey in triggeredGroups) {
triggeredGroups[groupKey].flushTriggers();
}
});
return this;
};
/* Private */
Context.findOrCreateByElement = function (element) {
return Context.findByElement(element) || new Context(element);
};
/* Private */
Context.refreshAll = function () {
for (var contextId in contexts) {
contexts[contextId].refresh();
}
};
/* Public */
/* http://imakewebthings.com/waypoints/api/context-find-by-element */
Context.findByElement = function (element) {
return contexts[element.waypointContextKey];
};
window.onload = function () {
if (oldWindowLoad) {
oldWindowLoad();
}
Context.refreshAll();
};
Waypoint.requestAnimationFrame = function (callback) {
var requestFn =
window.requestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
requestAnimationFrameShim;
requestFn.call(window, callback);
};
Waypoint.Context = Context;
})();
(function () {
"use strict";
function byTriggerPoint(a, b) {
return a.triggerPoint - b.triggerPoint;
}
function byReverseTriggerPoint(a, b) {
return b.triggerPoint - a.triggerPoint;
}
var groups = {
vertical: {},
horizontal: {},
};
var Waypoint = window.Waypoint;
/* http://imakewebthings.com/waypoints/api/group */
function Group(options) {
this.name = options.name;
this.axis = options.axis;
this.id = this.name + "-" + this.axis;
this.waypoints = [];
this.clearTriggerQueues();
groups[this.axis][this.name] = this;
}
/* Private */
Group.prototype.add = function (waypoint) {
this.waypoints.push(waypoint);
};
/* Private */
Group.prototype.clearTriggerQueues = function () {
this.triggerQueues = {
up: [],
down: [],
left: [],
right: [],
};
};
/* Private */
Group.prototype.flushTriggers = function () {
for (var direction in this.triggerQueues) {
var waypoints = this.triggerQueues[direction];
var reverse = direction === "up" || direction === "left";
waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint);
for (var i = 0, end = waypoints.length; i < end; i += 1) {
var waypoint = waypoints[i];
if (waypoint.options.continuous || i === waypoints.length - 1) {
waypoint.trigger([direction]);
}
}
}
this.clearTriggerQueues();
};
/* Private */
Group.prototype.next = function (waypoint) {
this.waypoints.sort(byTriggerPoint);
var index = Waypoint.Adapter.inArray(waypoint, this.waypoints);
var isLast = index === this.waypoints.length - 1;
return isLast ? null : this.waypoints[index + 1];
};
/* Private */
Group.prototype.previous = function (waypoint) {
this.waypoints.sort(byTriggerPoint);
var index = Waypoint.Adapter.inArray(waypoint, this.waypoints);
return index ? this.waypoints[index - 1] : null;
};
/* Private */
Group.prototype.queueTrigger = function (waypoint, direction) {
this.triggerQueues[direction].push(waypoint);
};
/* Private */
Group.prototype.remove = function (waypoint) {
var index = Waypoint.Adapter.inArray(waypoint, this.waypoints);
if (index > -1) {
this.waypoints.splice(index, 1);
}
};
/* Public */
/* http://imakewebthings.com/waypoints/api/first */
Group.prototype.first = function () {
return this.waypoints[0];
};
/* Public */
/* http://imakewebthings.com/waypoints/api/last */
Group.prototype.last = function () {
return this.waypoints[this.waypoints.length - 1];
};
/* Private */
Group.findOrCreate = function (options) {
return groups[options.axis][options.name] || new Group(options);
};
Waypoint.Group = Group;
})();
(function () {
"use strict";
var $ = window.jQuery;
var Waypoint = window.Waypoint;
function JQueryAdapter(element) {
this.$element = $(element);
}
$.each(
[
"innerHeight",
"innerWidth",
"off",
"offset",
"on",
"outerHeight",
"outerWidth",
"scrollLeft",
"scrollTop",
],
function (i, method) {
JQueryAdapter.prototype[method] = function () {
var args = Array.prototype.slice.call(arguments);
return this.$element[method].apply(this.$element, args);
};
}
);
$.each(["extend", "inArray", "isEmptyObject"], function (i, method) {
JQueryAdapter[method] = $[method];
});
Waypoint.adapters.push({
name: "jquery",
Adapter: JQueryAdapter,
});
Waypoint.Adapter = JQueryAdapter;
})();
(function () {
"use strict";
var Waypoint = window.Waypoint;
function createExtension(framework) {
return function () {
var waypoints = [];
var overrides = arguments[0];
if (framework.isFunction(arguments[0])) {
overrides = framework.extend({}, arguments[1]);
overrides.handler = arguments[0];
}
this.each(function () {
var options = framework.extend({}, overrides, {
element: this,
});
if (typeof options.context === "string") {
options.context = framework(this).closest(options.context)[0];
}
waypoints.push(new Waypoint(options));
});
return waypoints;
};
}
if (window.jQuery) {
window.jQuery.fn.waypoint = createExtension(window.jQuery);
}
if (window.Zepto) {
window.Zepto.fn.waypoint = createExtension(window.Zepto);
}
})();
/*
_ _ _ _
___| (_) ___| | __ (_)___
/ __| | |/ __| |/ / | / __|
\__ \ | | (__| < _ | \__ \
|___/_|_|\___|_|\_(_)/ |___/
|__/
Version: 1.5.8
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 (a) {
"use strict";
"function" == typeof define && define.amd
? define(["jquery"], a)
: "undefined" != typeof exports
? (module.exports = a(require("jquery")))
: a(jQuery);
})(function (a) {
"use strict";
var b = window.Slick || {};
(b = (function () {
function c(c, d) {
var f,
e = this;
(e.defaults = {
accessibility: !0,
adaptiveHeight: !1,
appendArrows: a(c),
appendDots: a(c),
arrows: !0,
asNavFor: null,
prevArrow:
'',
nextArrow:
'',
autoplay: !1,
autoplaySpeed: 3e3,
centerMode: !1,
centerPadding: "50px",
cssEase: "ease",
customPaging: function (a, b) {
return (
'"
);
},
dots: !1,
dotsClass: "slick-dots",
draggable: !0,
easing: "linear",
edgeFriction: 0.35,
fade: !1,
focusOnSelect: !1,
infinite: !0,
initialSlide: 0,
lazyLoad: "ondemand",
mobileFirst: !1,
pauseOnHover: !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,
variableWidth: !1,
vertical: !1,
verticalSwiping: !1,
waitForAnimate: !0,
zIndex: 1e3,
}),
(e.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,
slideCount: null,
slideWidth: null,
$slideTrack: null,
$slides: null,
sliding: !1,
slideOffset: 0,
swipeLeft: null,
$list: null,
touchObject: {},
transformsEnabled: !1,
unslicked: !1,
}),
a.extend(e, e.initials),
(e.activeBreakpoint = null),
(e.animType = null),
(e.animProp = null),
(e.breakpoints = []),
(e.breakpointSettings = []),
(e.cssTransitions = !1),
(e.hidden = "hidden"),
(e.paused = !1),
(e.positionProp = null),
(e.respondTo = null),
(e.rowCount = 1),
(e.shouldClick = !0),
(e.$slider = a(c)),
(e.$slidesCache = null),
(e.transformType = null),
(e.transitionType = null),
(e.visibilityChange = "visibilitychange"),
(e.windowWidth = 0),
(e.windowTimer = null),
(f = a(c).data("slick") || {}),
(e.options = a.extend({}, e.defaults, f, d)),
(e.currentSlide = e.options.initialSlide),
(e.originalSettings = e.options),
"undefined" != typeof document.mozHidden
? ((e.hidden = "mozHidden"),
(e.visibilityChange = "mozvisibilitychange"))
: "undefined" != typeof document.webkitHidden &&
((e.hidden = "webkitHidden"),
(e.visibilityChange = "webkitvisibilitychange")),
(e.autoPlay = a.proxy(e.autoPlay, e)),
(e.autoPlayClear = a.proxy(e.autoPlayClear, e)),
(e.changeSlide = a.proxy(e.changeSlide, e)),
(e.clickHandler = a.proxy(e.clickHandler, e)),
(e.selectHandler = a.proxy(e.selectHandler, e)),
(e.setPosition = a.proxy(e.setPosition, e)),
(e.swipeHandler = a.proxy(e.swipeHandler, e)),
(e.dragHandler = a.proxy(e.dragHandler, e)),
(e.keyHandler = a.proxy(e.keyHandler, e)),
(e.autoPlayIterator = a.proxy(e.autoPlayIterator, e)),
(e.instanceUid = b++),
(e.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/),
e.registerBreakpoints(),
e.init(!0),
e.checkResponsive(!0);
}
var b = 0;
return c;
})()),
(b.prototype.addSlide = b.prototype.slickAdd = function (b, c, d) {
var e = this;
if ("boolean" == typeof c) (d = c), (c = null);
else if (0 > c || c >= e.slideCount) return !1;
e.unload(),
"number" == typeof c
? 0 === c && 0 === e.$slides.length
? a(b).appendTo(e.$slideTrack)
: d
? a(b).insertBefore(e.$slides.eq(c))
: a(b).insertAfter(e.$slides.eq(c))
: d === !0
? a(b).prependTo(e.$slideTrack)
: a(b).appendTo(e.$slideTrack),
(e.$slides = e.$slideTrack.children(this.options.slide)),
e.$slideTrack.children(this.options.slide).detach(),
e.$slideTrack.append(e.$slides),
e.$slides.each(function (b, c) {
a(c).attr("data-slick-index", b);
}),
(e.$slidesCache = e.$slides),
e.reinit();
}),
(b.prototype.animateHeight = function () {
var a = this;
if (
1 === a.options.slidesToShow &&
a.options.adaptiveHeight === !0 &&
a.options.vertical === !1
) {
var b = a.$slides.eq(a.currentSlide).outerHeight(!0);
a.$list.animate({ height: b }, a.options.speed);
}
}),
(b.prototype.animateSlide = function (b, c) {
var d = {},
e = this;
e.animateHeight(),
e.options.rtl === !0 && e.options.vertical === !1 && (b = -b),
e.transformsEnabled === !1
? e.options.vertical === !1
? e.$slideTrack.animate(
{ left: b },
e.options.speed,
e.options.easing,
c
)
: e.$slideTrack.animate(
{ top: b },
e.options.speed,
e.options.easing,
c
)
: e.cssTransitions === !1
? (e.options.rtl === !0 && (e.currentLeft = -e.currentLeft),
a({ animStart: e.currentLeft }).animate(
{ animStart: b },
{
duration: e.options.speed,
easing: e.options.easing,
step: function (a) {
(a = Math.ceil(a)),
e.options.vertical === !1
? ((d[e.animType] = "translate(" + a + "px, 0px)"),
e.$slideTrack.css(d))
: ((d[e.animType] = "translate(0px," + a + "px)"),
e.$slideTrack.css(d));
},
complete: function () {
c && c.call();
},
}
))
: (e.applyTransition(),
(b = Math.ceil(b)),
(d[e.animType] =
e.options.vertical === !1
? "translate3d(" + b + "px, 0px, 0px)"
: "translate3d(0px," + b + "px, 0px)"),
e.$slideTrack.css(d),
c &&
setTimeout(function () {
e.disableTransition(), c.call();
}, e.options.speed));
}),
(b.prototype.asNavFor = function (b) {
var c = this,
d = c.options.asNavFor;
d && null !== d && (d = a(d).not(c.$slider)),
null !== d &&
"object" == typeof d &&
d.each(function () {
var c = a(this).slick("getSlick");
c.unslicked || c.slideHandler(b, !0);
});
}),
(b.prototype.applyTransition = function (a) {
var b = this,
c = {};
(c[b.transitionType] =
b.options.fade === !1
? b.transformType + " " + b.options.speed + "ms " + b.options.cssEase
: "opacity " + b.options.speed + "ms " + b.options.cssEase),
b.options.fade === !1 ? b.$slideTrack.css(c) : b.$slides.eq(a).css(c);
}),
(b.prototype.autoPlay = function () {
var a = this;
a.autoPlayTimer && clearInterval(a.autoPlayTimer),
a.slideCount > a.options.slidesToShow &&
a.paused !== !0 &&
(a.autoPlayTimer = setInterval(
a.autoPlayIterator,
a.options.autoplaySpeed
));
}),
(b.prototype.autoPlayClear = function () {
var a = this;
a.autoPlayTimer && clearInterval(a.autoPlayTimer);
}),
(b.prototype.autoPlayIterator = function () {
var a = this;
a.options.infinite === !1
? 1 === a.direction
? (a.currentSlide + 1 === a.slideCount - 1 && (a.direction = 0),
a.slideHandler(a.currentSlide + a.options.slidesToScroll))
: (0 === a.currentSlide - 1 && (a.direction = 1),
a.slideHandler(a.currentSlide - a.options.slidesToScroll))
: a.slideHandler(a.currentSlide + a.options.slidesToScroll);
}),
(b.prototype.buildArrows = function () {
var b = this;
b.options.arrows === !0 &&
((b.$prevArrow = a(b.options.prevArrow).addClass("slick-arrow")),
(b.$nextArrow = a(b.options.nextArrow).addClass("slick-arrow")),
b.slideCount > b.options.slidesToShow
? (b.$prevArrow
.removeClass("slick-hidden")
.removeAttr("aria-hidden tabindex"),
b.$nextArrow
.removeClass("slick-hidden")
.removeAttr("aria-hidden tabindex"),
b.htmlExpr.test(b.options.prevArrow) &&
b.$prevArrow.prependTo(b.options.appendArrows),
b.htmlExpr.test(b.options.nextArrow) &&
b.$nextArrow.appendTo(b.options.appendArrows),
b.options.infinite !== !0 &&
b.$prevArrow
.addClass("slick-disabled")
.attr("aria-disabled", "true"))
: b.$prevArrow
.add(b.$nextArrow)
.addClass("slick-hidden")
.attr({ "aria-disabled": "true", tabindex: "-1" }));
}),
(b.prototype.buildDots = function () {
var c,
d,
b = this;
if (b.options.dots === !0 && b.slideCount > b.options.slidesToShow) {
for (
d = '', c = 0;
c <= b.getDotCount();
c += 1
)
d += "- " + b.options.customPaging.call(this, b, c) + "
";
(d += "
"),
(b.$dots = a(d).appendTo(b.options.appendDots)),
b.$dots
.find("li")
.first()
.addClass("slick-active")
.attr("aria-hidden", "false");
}
}),
(b.prototype.buildOut = function () {
var b = this;
(b.$slides = b.$slider
.children(b.options.slide + ":not(.slick-cloned)")
.addClass("slick-slide")),
(b.slideCount = b.$slides.length),
b.$slides.each(function (b, c) {
a(c)
.attr("data-slick-index", b)
.data("originalStyling", a(c).attr("style") || "");
}),
(b.$slidesCache = b.$slides),
b.$slider.addClass("slick-slider"),
(b.$slideTrack =
0 === b.slideCount
? a('').appendTo(b.$slider)
: b.$slides.wrapAll('').parent()),
(b.$list = b.$slideTrack
.wrap('')
.parent()),
b.$slideTrack.css("opacity", 0),
(b.options.centerMode === !0 || b.options.swipeToSlide === !0) &&
(b.options.slidesToScroll = 1),
a("img[data-lazy]", b.$slider).not("[src]").addClass("slick-loading"),
b.setupInfinite(),
b.buildArrows(),
b.buildDots(),
b.updateDots(),
b.setSlideClasses(
"number" == typeof b.currentSlide ? b.currentSlide : 0
),
b.options.draggable === !0 && b.$list.addClass("draggable");
}),
(b.prototype.buildRows = function () {
var b,
c,
d,
e,
f,
g,
h,
a = this;
if (
((e = document.createDocumentFragment()),
(g = a.$slider.children()),
a.options.rows > 1)
) {
for (
h = a.options.slidesPerRow * a.options.rows,
f = Math.ceil(g.length / h),
b = 0;
f > b;
b++
) {
var i = document.createElement("div");
for (c = 0; c < a.options.rows; c++) {
var j = document.createElement("div");
for (d = 0; d < a.options.slidesPerRow; d++) {
var k = b * h + (c * a.options.slidesPerRow + d);
g.get(k) && j.appendChild(g.get(k));
}
i.appendChild(j);
}
e.appendChild(i);
}
a.$slider.html(e),
a.$slider
.children()
.children()
.children()
.css({
width: 100 / a.options.slidesPerRow + "%",
display: "inline-block",
});
}
}),
(b.prototype.checkResponsive = function (b, c) {
var e,
f,
g,
d = this,
h = !1,
i = d.$slider.width(),
j = window.innerWidth || a(window).width();
if (
("window" === d.respondTo
? (g = j)
: "slider" === d.respondTo
? (g = i)
: "min" === d.respondTo && (g = Math.min(j, i)),
d.options.responsive &&
d.options.responsive.length &&
null !== d.options.responsive)
) {
f = null;
for (e in d.breakpoints)
d.breakpoints.hasOwnProperty(e) &&
(d.originalSettings.mobileFirst === !1
? g < d.breakpoints[e] && (f = d.breakpoints[e])
: g > d.breakpoints[e] && (f = d.breakpoints[e]));
null !== f
? null !== d.activeBreakpoint
? (f !== d.activeBreakpoint || c) &&
((d.activeBreakpoint = f),
"unslick" === d.breakpointSettings[f]
? d.unslick(f)
: ((d.options = a.extend(
{},
d.originalSettings,
d.breakpointSettings[f]
)),
b === !0 && (d.currentSlide = d.options.initialSlide),
d.refresh(b)),
(h = f))
: ((d.activeBreakpoint = f),
"unslick" === d.breakpointSettings[f]
? d.unslick(f)
: ((d.options = a.extend(
{},
d.originalSettings,
d.breakpointSettings[f]
)),
b === !0 && (d.currentSlide = d.options.initialSlide),
d.refresh(b)),
(h = f))
: null !== d.activeBreakpoint &&
((d.activeBreakpoint = null),
(d.options = d.originalSettings),
b === !0 && (d.currentSlide = d.options.initialSlide),
d.refresh(b),
(h = f)),
b || h === !1 || d.$slider.trigger("breakpoint", [d, h]);
}
}),
(b.prototype.changeSlide = function (b, c) {
var f,
g,
h,
d = this,
e = a(b.target);
switch (
(e.is("a") && b.preventDefault(),
e.is("li") || (e = e.closest("li")),
(h = 0 !== d.slideCount % d.options.slidesToScroll),
(f = h
? 0
: (d.slideCount - d.currentSlide) % d.options.slidesToScroll),
b.data.message)
) {
case "previous":
(g = 0 === f ? d.options.slidesToScroll : d.options.slidesToShow - f),
d.slideCount > d.options.slidesToShow &&
d.slideHandler(d.currentSlide - g, !1, c);
break;
case "next":
(g = 0 === f ? d.options.slidesToScroll : f),
d.slideCount > d.options.slidesToShow &&
d.slideHandler(d.currentSlide + g, !1, c);
break;
case "index":
var i =
0 === b.data.index
? 0
: b.data.index || e.index() * d.options.slidesToScroll;
d.slideHandler(d.checkNavigable(i), !1, c),
e.children().trigger("focus");
break;
default:
return;
}
}),
(b.prototype.checkNavigable = function (a) {
var c,
d,
b = this;
if (((c = b.getNavigableIndexes()), (d = 0), a > c[c.length - 1]))
a = c[c.length - 1];
else
for (var e in c) {
if (a < c[e]) {
a = d;
break;
}
d = c[e];
}
return a;
}),
(b.prototype.cleanUpEvents = function () {
var b = this;
b.options.dots &&
null !== b.$dots &&
(a("li", b.$dots).off("click.slick", b.changeSlide),
b.options.pauseOnDotsHover === !0 &&
b.options.autoplay === !0 &&
a("li", b.$dots)
.off("mouseenter.slick", a.proxy(b.setPaused, b, !0))
.off("mouseleave.slick", a.proxy(b.setPaused, b, !1))),
b.options.arrows === !0 &&
b.slideCount > b.options.slidesToShow &&
(b.$prevArrow && b.$prevArrow.off("click.slick", b.changeSlide),
b.$nextArrow && b.$nextArrow.off("click.slick", b.changeSlide)),
b.$list.off("touchstart.slick mousedown.slick", b.swipeHandler),
b.$list.off("touchmove.slick mousemove.slick", b.swipeHandler),
b.$list.off("touchend.slick mouseup.slick", b.swipeHandler),
b.$list.off("touchcancel.slick mouseleave.slick", b.swipeHandler),
b.$list.off("click.slick", b.clickHandler),
a(document).off(b.visibilityChange, b.visibility),
b.$list.off("mouseenter.slick", a.proxy(b.setPaused, b, !0)),
b.$list.off("mouseleave.slick", a.proxy(b.setPaused, b, !1)),
b.options.accessibility === !0 &&
b.$list.off("keydown.slick", b.keyHandler),
b.options.focusOnSelect === !0 &&
a(b.$slideTrack).children().off("click.slick", b.selectHandler),
a(window).off(
"orientationchange.slick.slick-" + b.instanceUid,
b.orientationChange
),
a(window).off("resize.slick.slick-" + b.instanceUid, b.resize),
a("[draggable!=true]", b.$slideTrack).off(
"dragstart",
b.preventDefault
),
a(window).off("load.slick.slick-" + b.instanceUid, b.setPosition),
a(document).off("ready.slick.slick-" + b.instanceUid, b.setPosition);
}),
(b.prototype.cleanUpRows = function () {
var b,
a = this;
a.options.rows > 1 &&
((b = a.$slides.children().children()),
b.removeAttr("style"),
a.$slider.html(b));
}),
(b.prototype.clickHandler = function (a) {
var b = this;
b.shouldClick === !1 &&
(a.stopImmediatePropagation(), a.stopPropagation(), a.preventDefault());
}),
(b.prototype.destroy = function (b) {
var c = this;
c.autoPlayClear(),
(c.touchObject = {}),
c.cleanUpEvents(),
a(".slick-cloned", c.$slider).detach(),
c.$dots && c.$dots.remove(),
c.$prevArrow &&
c.$prevArrow.length &&
(c.$prevArrow
.removeClass("slick-disabled slick-arrow slick-hidden")
.removeAttr("aria-hidden aria-disabled tabindex")
.css("display", ""),
c.htmlExpr.test(c.options.prevArrow) && c.$prevArrow.remove()),
c.$nextArrow &&
c.$nextArrow.length &&
(c.$nextArrow
.removeClass("slick-disabled slick-arrow slick-hidden")
.removeAttr("aria-hidden aria-disabled tabindex")
.css("display", ""),
c.htmlExpr.test(c.options.nextArrow) && c.$nextArrow.remove()),
c.$slides &&
(c.$slides
.removeClass(
"slick-slide slick-active slick-center slick-visible slick-current"
)
.removeAttr("aria-hidden")
.removeAttr("data-slick-index")
.each(function () {
a(this).attr("style", a(this).data("originalStyling"));
}),
c.$slideTrack.children(this.options.slide).detach(),
c.$slideTrack.detach(),
c.$list.detach(),
c.$slider.append(c.$slides)),
c.cleanUpRows(),
c.$slider.removeClass("slick-slider"),
c.$slider.removeClass("slick-initialized"),
(c.unslicked = !0),
b || c.$slider.trigger("destroy", [c]);
}),
(b.prototype.disableTransition = function (a) {
var b = this,
c = {};
(c[b.transitionType] = ""),
b.options.fade === !1 ? b.$slideTrack.css(c) : b.$slides.eq(a).css(c);
}),
(b.prototype.fadeSlide = function (a, b) {
var c = this;
c.cssTransitions === !1
? (c.$slides.eq(a).css({ zIndex: c.options.zIndex }),
c.$slides
.eq(a)
.animate({ opacity: 1 }, c.options.speed, c.options.easing, b))
: (c.applyTransition(a),
c.$slides.eq(a).css({ opacity: 1, zIndex: c.options.zIndex }),
b &&
setTimeout(function () {
c.disableTransition(a), b.call();
}, c.options.speed));
}),
(b.prototype.fadeSlideOut = function (a) {
var b = this;
b.cssTransitions === !1
? b.$slides
.eq(a)
.animate(
{ opacity: 0, zIndex: b.options.zIndex - 2 },
b.options.speed,
b.options.easing
)
: (b.applyTransition(a),
b.$slides.eq(a).css({ opacity: 0, zIndex: b.options.zIndex - 2 }));
}),
(b.prototype.filterSlides = b.prototype.slickFilter = function (a) {
var b = this;
null !== a &&
(b.unload(),
b.$slideTrack.children(this.options.slide).detach(),
b.$slidesCache.filter(a).appendTo(b.$slideTrack),
b.reinit());
}),
(b.prototype.getCurrent = b.prototype.slickCurrentSlide = function () {
var a = this;
return a.currentSlide;
}),
(b.prototype.getDotCount = function () {
var a = this,
b = 0,
c = 0,
d = 0;
if (a.options.infinite === !0)
for (; b < a.slideCount; )
++d,
(b = c + a.options.slidesToShow),
(c +=
a.options.slidesToScroll <= a.options.slidesToShow
? a.options.slidesToScroll
: a.options.slidesToShow);
else if (a.options.centerMode === !0) d = a.slideCount;
else
for (; b < a.slideCount; )
++d,
(b = c + a.options.slidesToShow),
(c +=
a.options.slidesToScroll <= a.options.slidesToShow
? a.options.slidesToScroll
: a.options.slidesToShow);
return d - 1;
}),
(b.prototype.getLeft = function (a) {
var c,
d,
f,
b = this,
e = 0;
return (
(b.slideOffset = 0),
(d = b.$slides.first().outerHeight(!0)),
b.options.infinite === !0
? (b.slideCount > b.options.slidesToShow &&
((b.slideOffset = -1 * b.slideWidth * b.options.slidesToShow),
(e = -1 * d * b.options.slidesToShow)),
0 !== b.slideCount % b.options.slidesToScroll &&
a + b.options.slidesToScroll > b.slideCount &&
b.slideCount > b.options.slidesToShow &&
(a > b.slideCount
? ((b.slideOffset =
-1 *
(b.options.slidesToShow - (a - b.slideCount)) *
b.slideWidth),
(e = -1 * (b.options.slidesToShow - (a - b.slideCount)) * d))
: ((b.slideOffset =
((-1 * b.slideCount) % b.options.slidesToScroll) *
b.slideWidth),
(e = ((-1 * b.slideCount) % b.options.slidesToScroll) * d))))
: a + b.options.slidesToShow > b.slideCount &&
((b.slideOffset =
(a + b.options.slidesToShow - b.slideCount) * b.slideWidth),
(e = (a + b.options.slidesToShow - b.slideCount) * d)),
b.slideCount <= b.options.slidesToShow &&
((b.slideOffset = 0), (e = 0)),
b.options.centerMode === !0 && b.options.infinite === !0
? (b.slideOffset +=
b.slideWidth * Math.floor(b.options.slidesToShow / 2) -
b.slideWidth)
: b.options.centerMode === !0 &&
((b.slideOffset = 0),
(b.slideOffset +=
b.slideWidth * Math.floor(b.options.slidesToShow / 2))),
(c =
b.options.vertical === !1
? -1 * a * b.slideWidth + b.slideOffset
: -1 * a * d + e),
b.options.variableWidth === !0 &&
((f =
b.slideCount <= b.options.slidesToShow || b.options.infinite === !1
? b.$slideTrack.children(".slick-slide").eq(a)
: b.$slideTrack
.children(".slick-slide")
.eq(a + b.options.slidesToShow)),
(c = f[0] ? -1 * f[0].offsetLeft : 0),
b.options.centerMode === !0 &&
((f =
b.options.infinite === !1
? b.$slideTrack.children(".slick-slide").eq(a)
: b.$slideTrack
.children(".slick-slide")
.eq(a + b.options.slidesToShow + 1)),
(c = f[0] ? -1 * f[0].offsetLeft : 0),
(c += (b.$list.width() - f.outerWidth()) / 2))),
c
);
}),
(b.prototype.getOption = b.prototype.slickGetOption = function (a) {
var b = this;
return b.options[a];
}),
(b.prototype.getNavigableIndexes = function () {
var e,
a = this,
b = 0,
c = 0,
d = [];
for (
a.options.infinite === !1
? (e = a.slideCount)
: ((b = -1 * a.options.slidesToScroll),
(c = -1 * a.options.slidesToScroll),
(e = 2 * a.slideCount));
e > b;
)
d.push(b),
(b = c + a.options.slidesToScroll),
(c +=
a.options.slidesToScroll <= a.options.slidesToShow
? a.options.slidesToScroll
: a.options.slidesToShow);
return d;
}),
(b.prototype.getSlick = function () {
return this;
}),
(b.prototype.getSlideCount = function () {
var c,
d,
e,
b = this;
return (
(e =
b.options.centerMode === !0
? b.slideWidth * Math.floor(b.options.slidesToShow / 2)
: 0),
b.options.swipeToSlide === !0
? (b.$slideTrack.find(".slick-slide").each(function (c, f) {
return f.offsetLeft - e + a(f).outerWidth() / 2 > -1 * b.swipeLeft
? ((d = f), !1)
: void 0;
}),
(c = Math.abs(a(d).attr("data-slick-index") - b.currentSlide) || 1))
: b.options.slidesToScroll
);
}),
(b.prototype.goTo = b.prototype.slickGoTo = function (a, b) {
var c = this;
c.changeSlide({ data: { message: "index", index: parseInt(a) } }, b);
}),
(b.prototype.init = function (b) {
var c = this;
a(c.$slider).hasClass("slick-initialized") ||
(a(c.$slider).addClass("slick-initialized"),
c.buildRows(),
c.buildOut(),
c.setProps(),
c.startLoad(),
c.loadSlider(),
c.initializeEvents(),
c.updateArrows(),
c.updateDots()),
b && c.$slider.trigger("init", [c]),
c.options.accessibility === !0 && c.initADA();
}),
(b.prototype.initArrowEvents = function () {
var a = this;
a.options.arrows === !0 &&
a.slideCount > a.options.slidesToShow &&
(a.$prevArrow.on("click.slick", { message: "previous" }, a.changeSlide),
a.$nextArrow.on("click.slick", { message: "next" }, a.changeSlide));
}),
(b.prototype.initDotEvents = function () {
var b = this;
b.options.dots === !0 &&
b.slideCount > b.options.slidesToShow &&
a("li", b.$dots).on("click.slick", { message: "index" }, b.changeSlide),
b.options.dots === !0 &&
b.options.pauseOnDotsHover === !0 &&
b.options.autoplay === !0 &&
a("li", b.$dots)
.on("mouseenter.slick", a.proxy(b.setPaused, b, !0))
.on("mouseleave.slick", a.proxy(b.setPaused, b, !1));
}),
(b.prototype.initializeEvents = function () {
var b = this;
b.initArrowEvents(),
b.initDotEvents(),
b.$list.on(
"touchstart.slick mousedown.slick",
{ action: "start" },
b.swipeHandler
),
b.$list.on(
"touchmove.slick mousemove.slick",
{ action: "move" },
b.swipeHandler
),
b.$list.on(
"touchend.slick mouseup.slick",
{ action: "end" },
b.swipeHandler
),
b.$list.on(
"touchcancel.slick mouseleave.slick",
{ action: "end" },
b.swipeHandler
),
b.$list.on("click.slick", b.clickHandler),
a(document).on(b.visibilityChange, a.proxy(b.visibility, b)),
b.$list.on("mouseenter.slick", a.proxy(b.setPaused, b, !0)),
b.$list.on("mouseleave.slick", a.proxy(b.setPaused, b, !1)),
b.options.accessibility === !0 &&
b.$list.on("keydown.slick", b.keyHandler),
b.options.focusOnSelect === !0 &&
a(b.$slideTrack).children().on("click.slick", b.selectHandler),
a(window).on(
"orientationchange.slick.slick-" + b.instanceUid,
a.proxy(b.orientationChange, b)
),
a(window).on(
"resize.slick.slick-" + b.instanceUid,
a.proxy(b.resize, b)
),
a("[draggable!=true]", b.$slideTrack).on("dragstart", b.preventDefault),
a(window).on("load.slick.slick-" + b.instanceUid, b.setPosition),
a(document).on("ready.slick.slick-" + b.instanceUid, b.setPosition);
}),
(b.prototype.initUI = function () {
var a = this;
a.options.arrows === !0 &&
a.slideCount > a.options.slidesToShow &&
(a.$prevArrow.show(), a.$nextArrow.show()),
a.options.dots === !0 &&
a.slideCount > a.options.slidesToShow &&
a.$dots.show(),
a.options.autoplay === !0 && a.autoPlay();
}),
(b.prototype.keyHandler = function (a) {
var b = this;
a.target.tagName.match("TEXTAREA|INPUT|SELECT") ||
(37 === a.keyCode && b.options.accessibility === !0
? b.changeSlide({ data: { message: "previous" } })
: 39 === a.keyCode &&
b.options.accessibility === !0 &&
b.changeSlide({ data: { message: "next" } }));
}),
(b.prototype.lazyLoad = function () {
function g(b) {
a("img[data-lazy]", b).each(function () {
var b = a(this),
c = a(this).attr("data-lazy"),
d = document.createElement("img");
(d.onload = function () {
b.animate({ opacity: 0 }, 100, function () {
b.attr("src", c).animate({ opacity: 1 }, 200, function () {
b.removeAttr("data-lazy").removeClass("slick-loading");
});
});
}),
(d.src = c);
});
}
var c,
d,
e,
f,
b = this;
b.options.centerMode === !0
? b.options.infinite === !0
? ((e = b.currentSlide + (b.options.slidesToShow / 2 + 1)),
(f = e + b.options.slidesToShow + 2))
: ((e = Math.max(
0,
b.currentSlide - (b.options.slidesToShow / 2 + 1)
)),
(f = 2 + (b.options.slidesToShow / 2 + 1) + b.currentSlide))
: ((e = b.options.infinite
? b.options.slidesToShow + b.currentSlide
: b.currentSlide),
(f = e + b.options.slidesToShow),
b.options.fade === !0 && (e > 0 && e--, f <= b.slideCount && f++)),
(c = b.$slider.find(".slick-slide").slice(e, f)),
g(c),
b.slideCount <= b.options.slidesToShow
? ((d = b.$slider.find(".slick-slide")), g(d))
: b.currentSlide >= b.slideCount - b.options.slidesToShow
? ((d = b.$slider
.find(".slick-cloned")
.slice(0, b.options.slidesToShow)),
g(d))
: 0 === b.currentSlide &&
((d = b.$slider
.find(".slick-cloned")
.slice(-1 * b.options.slidesToShow)),
g(d));
}),
(b.prototype.loadSlider = function () {
var a = this;
a.setPosition(),
a.$slideTrack.css({ opacity: 1 }),
a.$slider.removeClass("slick-loading"),
a.initUI(),
"progressive" === a.options.lazyLoad && a.progressiveLazyLoad();
}),
(b.prototype.next = b.prototype.slickNext = function () {
var a = this;
a.changeSlide({ data: { message: "next" } });
}),
(b.prototype.orientationChange = function () {
var a = this;
a.checkResponsive(), a.setPosition();
}),
(b.prototype.pause = b.prototype.slickPause = function () {
var a = this;
a.autoPlayClear(), (a.paused = !0);
}),
(b.prototype.play = b.prototype.slickPlay = function () {
var a = this;
(a.paused = !1), a.autoPlay();
}),
(b.prototype.postSlide = function (a) {
var b = this;
b.$slider.trigger("afterChange", [b, a]),
(b.animating = !1),
b.setPosition(),
(b.swipeLeft = null),
b.options.autoplay === !0 && b.paused === !1 && b.autoPlay(),
b.options.accessibility === !0 && b.initADA();
}),
(b.prototype.prev = b.prototype.slickPrev = function () {
var a = this;
a.changeSlide({ data: { message: "previous" } });
}),
(b.prototype.preventDefault = function (a) {
a.preventDefault();
}),
(b.prototype.progressiveLazyLoad = function () {
var c,
d,
b = this;
(c = a("img[data-lazy]", b.$slider).length),
c > 0 &&
((d = a("img[data-lazy]", b.$slider).first()),
d
.attr("src", d.attr("data-lazy"))
.removeClass("slick-loading")
.load(function () {
d.removeAttr("data-lazy"),
b.progressiveLazyLoad(),
b.options.adaptiveHeight === !0 && b.setPosition();
})
.error(function () {
d.removeAttr("data-lazy"), b.progressiveLazyLoad();
}));
}),
(b.prototype.refresh = function (b) {
var c = this,
d = c.currentSlide;
c.destroy(!0),
a.extend(c, c.initials, { currentSlide: d }),
c.init(),
b || c.changeSlide({ data: { message: "index", index: d } }, !1);
}),
(b.prototype.registerBreakpoints = function () {
var c,
d,
e,
b = this,
f = b.options.responsive || null;
if ("array" === a.type(f) && f.length) {
b.respondTo = b.options.respondTo || "window";
for (c in f)
if (
((e = b.breakpoints.length - 1),
(d = f[c].breakpoint),
f.hasOwnProperty(c))
) {
for (; e >= 0; )
b.breakpoints[e] &&
b.breakpoints[e] === d &&
b.breakpoints.splice(e, 1),
e--;
b.breakpoints.push(d), (b.breakpointSettings[d] = f[c].settings);
}
b.breakpoints.sort(function (a, c) {
return b.options.mobileFirst ? a - c : c - a;
});
}
}),
(b.prototype.reinit = function () {
var b = this;
(b.$slides = b.$slideTrack
.children(b.options.slide)
.addClass("slick-slide")),
(b.slideCount = b.$slides.length),
b.currentSlide >= b.slideCount &&
0 !== b.currentSlide &&
(b.currentSlide = b.currentSlide - b.options.slidesToScroll),
b.slideCount <= b.options.slidesToShow && (b.currentSlide = 0),
b.registerBreakpoints(),
b.setProps(),
b.setupInfinite(),
b.buildArrows(),
b.updateArrows(),
b.initArrowEvents(),
b.buildDots(),
b.updateDots(),
b.initDotEvents(),
b.checkResponsive(!1, !0),
b.options.focusOnSelect === !0 &&
a(b.$slideTrack).children().on("click.slick", b.selectHandler),
b.setSlideClasses(0),
b.setPosition(),
b.$slider.trigger("reInit", [b]),
b.options.autoplay === !0 && b.focusHandler();
}),
(b.prototype.resize = function () {
var b = this;
a(window).width() !== b.windowWidth &&
(clearTimeout(b.windowDelay),
(b.windowDelay = window.setTimeout(function () {
(b.windowWidth = a(window).width()),
b.checkResponsive(),
b.unslicked || b.setPosition();
}, 50)));
}),
(b.prototype.removeSlide = b.prototype.slickRemove = function (a, b, c) {
var d = this;
return (
"boolean" == typeof a
? ((b = a), (a = b === !0 ? 0 : d.slideCount - 1))
: (a = b === !0 ? --a : a),
d.slideCount < 1 || 0 > a || a > d.slideCount - 1
? !1
: (d.unload(),
c === !0
? d.$slideTrack.children().remove()
: d.$slideTrack.children(this.options.slide).eq(a).remove(),
(d.$slides = d.$slideTrack.children(this.options.slide)),
d.$slideTrack.children(this.options.slide).detach(),
d.$slideTrack.append(d.$slides),
(d.$slidesCache = d.$slides),
d.reinit(),
void 0)
);
}),
(b.prototype.setCSS = function (a) {
var d,
e,
b = this,
c = {};
b.options.rtl === !0 && (a = -a),
(d = "left" == b.positionProp ? Math.ceil(a) + "px" : "0px"),
(e = "top" == b.positionProp ? Math.ceil(a) + "px" : "0px"),
(c[b.positionProp] = a),
b.transformsEnabled === !1
? b.$slideTrack.css(c)
: ((c = {}),
b.cssTransitions === !1
? ((c[b.animType] = "translate(" + d + ", " + e + ")"),
b.$slideTrack.css(c))
: ((c[b.animType] = "translate3d(" + d + ", " + e + ", 0px)"),
b.$slideTrack.css(c)));
}),
(b.prototype.setDimensions = function () {
var a = this;
a.options.vertical === !1
? a.options.centerMode === !0 &&
a.$list.css({ padding: "0px " + a.options.centerPadding })
: (a.$list.height(
a.$slides.first().outerHeight(!0) * a.options.slidesToShow
),
a.options.centerMode === !0 &&
a.$list.css({ padding: a.options.centerPadding + " 0px" })),
(a.listWidth = a.$list.width()),
(a.listHeight = a.$list.height()),
a.options.vertical === !1 && a.options.variableWidth === !1
? ((a.slideWidth = Math.ceil(a.listWidth / a.options.slidesToShow)),
a.$slideTrack.width(
Math.ceil(
a.slideWidth * a.$slideTrack.children(".slick-slide").length
)
))
: a.options.variableWidth === !0
? a.$slideTrack.width(5e3 * a.slideCount)
: ((a.slideWidth = Math.ceil(a.listWidth)),
a.$slideTrack.height(
Math.ceil(
a.$slides.first().outerHeight(!0) *
a.$slideTrack.children(".slick-slide").length
)
));
var b = a.$slides.first().outerWidth(!0) - a.$slides.first().width();
a.options.variableWidth === !1 &&
a.$slideTrack.children(".slick-slide").width(a.slideWidth - b);
}),
(b.prototype.setFade = function () {
var c,
b = this;
b.$slides.each(function (d, e) {
(c = -1 * b.slideWidth * d),
b.options.rtl === !0
? a(e).css({
position: "relative",
right: c,
top: 0,
zIndex: b.options.zIndex - 2,
opacity: 0,
})
: a(e).css({
position: "relative",
left: c,
top: 0,
zIndex: b.options.zIndex - 2,
opacity: 0,
});
}),
b.$slides
.eq(b.currentSlide)
.css({ zIndex: b.options.zIndex - 1, opacity: 1 });
}),
(b.prototype.setHeight = function () {
var a = this;
if (
1 === a.options.slidesToShow &&
a.options.adaptiveHeight === !0 &&
a.options.vertical === !1
) {
var b = a.$slides.eq(a.currentSlide).outerHeight(!0);
a.$list.css("height", b);
}
}),
(b.prototype.setOption = b.prototype.slickSetOption = function (b, c, d) {
var f,
g,
e = this;
if ("responsive" === b && "array" === a.type(c))
for (g in c)
if ("array" !== a.type(e.options.responsive))
e.options.responsive = [c[g]];
else {
for (f = e.options.responsive.length - 1; f >= 0; )
e.options.responsive[f].breakpoint === c[g].breakpoint &&
e.options.responsive.splice(f, 1),
f--;
e.options.responsive.push(c[g]);
}
else e.options[b] = c;
d === !0 && (e.unload(), e.reinit());
}),
(b.prototype.setPosition = function () {
var a = this;
a.setDimensions(),
a.setHeight(),
a.options.fade === !1
? a.setCSS(a.getLeft(a.currentSlide))
: a.setFade(),
a.$slider.trigger("setPosition", [a]);
}),
(b.prototype.setProps = function () {
var a = this,
b = document.body.style;
(a.positionProp = a.options.vertical === !0 ? "top" : "left"),
"top" === a.positionProp
? a.$slider.addClass("slick-vertical")
: a.$slider.removeClass("slick-vertical"),
(void 0 !== b.WebkitTransition ||
void 0 !== b.MozTransition ||
void 0 !== b.msTransition) &&
a.options.useCSS === !0 &&
(a.cssTransitions = !0),
a.options.fade &&
("number" == typeof a.options.zIndex
? a.options.zIndex < 3 && (a.options.zIndex = 3)
: (a.options.zIndex = a.defaults.zIndex)),
void 0 !== b.OTransform &&
((a.animType = "OTransform"),
(a.transformType = "-o-transform"),
(a.transitionType = "OTransition"),
void 0 === b.perspectiveProperty &&
void 0 === b.webkitPerspective &&
(a.animType = !1)),
void 0 !== b.MozTransform &&
((a.animType = "MozTransform"),
(a.transformType = "-moz-transform"),
(a.transitionType = "MozTransition"),
void 0 === b.perspectiveProperty &&
void 0 === b.MozPerspective &&
(a.animType = !1)),
void 0 !== b.webkitTransform &&
((a.animType = "webkitTransform"),
(a.transformType = "-webkit-transform"),
(a.transitionType = "webkitTransition"),
void 0 === b.perspectiveProperty &&
void 0 === b.webkitPerspective &&
(a.animType = !1)),
void 0 !== b.msTransform &&
((a.animType = "msTransform"),
(a.transformType = "-ms-transform"),
(a.transitionType = "msTransition"),
void 0 === b.msTransform && (a.animType = !1)),
void 0 !== b.transform &&
a.animType !== !1 &&
((a.animType = "transform"),
(a.transformType = "transform"),
(a.transitionType = "transition")),
(a.transformsEnabled = null !== a.animType && a.animType !== !1);
}),
(b.prototype.setSlideClasses = function (a) {
var c,
d,
e,
f,
b = this;
(d = b.$slider
.find(".slick-slide")
.removeClass("slick-active slick-center slick-current")
.attr("aria-hidden", "true")),
b.$slides.eq(a).addClass("slick-current"),
b.options.centerMode === !0
? ((c = Math.floor(b.options.slidesToShow / 2)),
b.options.infinite === !0 &&
(a >= c && a <= b.slideCount - 1 - c
? b.$slides
.slice(a - c, a + c + 1)
.addClass("slick-active")
.attr("aria-hidden", "false")
: ((e = b.options.slidesToShow + a),
d
.slice(e - c + 1, e + c + 2)
.addClass("slick-active")
.attr("aria-hidden", "false")),
0 === a
? d
.eq(d.length - 1 - b.options.slidesToShow)
.addClass("slick-center")
: a === b.slideCount - 1 &&
d.eq(b.options.slidesToShow).addClass("slick-center")),
b.$slides.eq(a).addClass("slick-center"))
: a >= 0 && a <= b.slideCount - b.options.slidesToShow
? b.$slides
.slice(a, a + b.options.slidesToShow)
.addClass("slick-active")
.attr("aria-hidden", "false")
: d.length <= b.options.slidesToShow
? d.addClass("slick-active").attr("aria-hidden", "false")
: ((f = b.slideCount % b.options.slidesToShow),
(e = b.options.infinite === !0 ? b.options.slidesToShow + a : a),
b.options.slidesToShow == b.options.slidesToScroll &&
b.slideCount - a < b.options.slidesToShow
? d
.slice(e - (b.options.slidesToShow - f), e + f)
.addClass("slick-active")
.attr("aria-hidden", "false")
: d
.slice(e, e + b.options.slidesToShow)
.addClass("slick-active")
.attr("aria-hidden", "false")),
"ondemand" === b.options.lazyLoad && b.lazyLoad();
}),
(b.prototype.setupInfinite = function () {
var c,
d,
e,
b = this;
if (
(b.options.fade === !0 && (b.options.centerMode = !1),
b.options.infinite === !0 &&
b.options.fade === !1 &&
((d = null), b.slideCount > b.options.slidesToShow))
) {
for (
e =
b.options.centerMode === !0
? b.options.slidesToShow + 1
: b.options.slidesToShow,
c = b.slideCount;
c > b.slideCount - e;
c -= 1
)
(d = c - 1),
a(b.$slides[d])
.clone(!0)
.attr("id", "")
.attr("data-slick-index", d - b.slideCount)
.prependTo(b.$slideTrack)
.addClass("slick-cloned");
for (c = 0; e > c; c += 1)
(d = c),
a(b.$slides[d])
.clone(!0)
.attr("id", "")
.attr("data-slick-index", d + b.slideCount)
.appendTo(b.$slideTrack)
.addClass("slick-cloned");
b.$slideTrack
.find(".slick-cloned")
.find("[id]")
.each(function () {
a(this).attr("id", "");
});
}
}),
(b.prototype.setPaused = function (a) {
var b = this;
b.options.autoplay === !0 &&
b.options.pauseOnHover === !0 &&
((b.paused = a), a ? b.autoPlayClear() : b.autoPlay());
}),
(b.prototype.selectHandler = function (b) {
var c = this,
d = a(b.target).is(".slick-slide")
? a(b.target)
: a(b.target).parents(".slick-slide"),
e = parseInt(d.attr("data-slick-index"));
return (
e || (e = 0),
c.slideCount <= c.options.slidesToShow
? (c.setSlideClasses(e), c.asNavFor(e), void 0)
: (c.slideHandler(e), void 0)
);
}),
(b.prototype.slideHandler = function (a, b, c) {
var d,
e,
f,
g,
h = null,
i = this;
return (
(b = b || !1),
(i.animating === !0 && i.options.waitForAnimate === !0) ||
(i.options.fade === !0 && i.currentSlide === a) ||
i.slideCount <= i.options.slidesToShow
? void 0
: (b === !1 && i.asNavFor(a),
(d = a),
(h = i.getLeft(d)),
(g = i.getLeft(i.currentSlide)),
(i.currentLeft = null === i.swipeLeft ? g : i.swipeLeft),
i.options.infinite === !1 &&
i.options.centerMode === !1 &&
(0 > a || a > i.getDotCount() * i.options.slidesToScroll)
? (i.options.fade === !1 &&
((d = i.currentSlide),
c !== !0
? i.animateSlide(g, function () {
i.postSlide(d);
})
: i.postSlide(d)),
void 0)
: i.options.infinite === !1 &&
i.options.centerMode === !0 &&
(0 > a || a > i.slideCount - i.options.slidesToScroll)
? (i.options.fade === !1 &&
((d = i.currentSlide),
c !== !0
? i.animateSlide(g, function () {
i.postSlide(d);
})
: i.postSlide(d)),
void 0)
: (i.options.autoplay === !0 && clearInterval(i.autoPlayTimer),
(e =
0 > d
? 0 !== i.slideCount % i.options.slidesToScroll
? i.slideCount - (i.slideCount % i.options.slidesToScroll)
: i.slideCount + d
: d >= i.slideCount
? 0 !== i.slideCount % i.options.slidesToScroll
? 0
: d - i.slideCount
: d),
(i.animating = !0),
i.$slider.trigger("beforeChange", [i, i.currentSlide, e]),
(f = i.currentSlide),
(i.currentSlide = e),
i.setSlideClasses(i.currentSlide),
i.updateDots(),
i.updateArrows(),
i.options.fade === !0
? (c !== !0
? (i.fadeSlideOut(f),
i.fadeSlide(e, function () {
i.postSlide(e);
}))
: i.postSlide(e),
i.animateHeight(),
void 0)
: (c !== !0
? i.animateSlide(h, function () {
i.postSlide(e);
})
: i.postSlide(e),
void 0)))
);
}),
(b.prototype.startLoad = function () {
var a = this;
a.options.arrows === !0 &&
a.slideCount > a.options.slidesToShow &&
(a.$prevArrow.hide(), a.$nextArrow.hide()),
a.options.dots === !0 &&
a.slideCount > a.options.slidesToShow &&
a.$dots.hide(),
a.$slider.addClass("slick-loading");
}),
(b.prototype.swipeDirection = function () {
var a,
b,
c,
d,
e = this;
return (
(a = e.touchObject.startX - e.touchObject.curX),
(b = e.touchObject.startY - e.touchObject.curY),
(c = Math.atan2(b, a)),
(d = Math.round((180 * c) / Math.PI)),
0 > d && (d = 360 - Math.abs(d)),
45 >= d && d >= 0
? e.options.rtl === !1
? "left"
: "right"
: 360 >= d && d >= 315
? e.options.rtl === !1
? "left"
: "right"
: d >= 135 && 225 >= d
? e.options.rtl === !1
? "right"
: "left"
: e.options.verticalSwiping === !0
? d >= 35 && 135 >= d
? "left"
: "right"
: "vertical"
);
}),
(b.prototype.swipeEnd = function () {
var c,
b = this;
if (
((b.dragging = !1),
(b.shouldClick = b.touchObject.swipeLength > 10 ? !1 : !0),
void 0 === b.touchObject.curX)
)
return !1;
if (
(b.touchObject.edgeHit === !0 &&
b.$slider.trigger("edge", [b, b.swipeDirection()]),
b.touchObject.swipeLength >= b.touchObject.minSwipe)
)
switch (b.swipeDirection()) {
case "left":
(c = b.options.swipeToSlide
? b.checkNavigable(b.currentSlide + b.getSlideCount())
: b.currentSlide + b.getSlideCount()),
b.slideHandler(c),
(b.currentDirection = 0),
(b.touchObject = {}),
b.$slider.trigger("swipe", [b, "left"]);
break;
case "right":
(c = b.options.swipeToSlide
? b.checkNavigable(b.currentSlide - b.getSlideCount())
: b.currentSlide - b.getSlideCount()),
b.slideHandler(c),
(b.currentDirection = 1),
(b.touchObject = {}),
b.$slider.trigger("swipe", [b, "right"]);
}
else
b.touchObject.startX !== b.touchObject.curX &&
(b.slideHandler(b.currentSlide), (b.touchObject = {}));
}),
(b.prototype.swipeHandler = function (a) {
var b = this;
if (
!(
b.options.swipe === !1 ||
("ontouchend" in document && b.options.swipe === !1) ||
(b.options.draggable === !1 && -1 !== a.type.indexOf("mouse"))
)
)
switch (
((b.touchObject.fingerCount =
a.originalEvent && void 0 !== a.originalEvent.touches
? a.originalEvent.touches.length
: 1),
(b.touchObject.minSwipe = b.listWidth / b.options.touchThreshold),
b.options.verticalSwiping === !0 &&
(b.touchObject.minSwipe = b.listHeight / b.options.touchThreshold),
a.data.action)
) {
case "start":
b.swipeStart(a);
break;
case "move":
b.swipeMove(a);
break;
case "end":
b.swipeEnd(a);
}
}),
(b.prototype.swipeMove = function (a) {
var d,
e,
f,
g,
h,
b = this;
return (
(h = void 0 !== a.originalEvent ? a.originalEvent.touches : null),
!b.dragging || (h && 1 !== h.length)
? !1
: ((d = b.getLeft(b.currentSlide)),
(b.touchObject.curX = void 0 !== h ? h[0].pageX : a.clientX),
(b.touchObject.curY = void 0 !== h ? h[0].pageY : a.clientY),
(b.touchObject.swipeLength = Math.round(
Math.sqrt(Math.pow(b.touchObject.curX - b.touchObject.startX, 2))
)),
b.options.verticalSwiping === !0 &&
(b.touchObject.swipeLength = Math.round(
Math.sqrt(
Math.pow(b.touchObject.curY - b.touchObject.startY, 2)
)
)),
(e = b.swipeDirection()),
"vertical" !== e
? (void 0 !== a.originalEvent &&
b.touchObject.swipeLength > 4 &&
a.preventDefault(),
(g =
(b.options.rtl === !1 ? 1 : -1) *
(b.touchObject.curX > b.touchObject.startX ? 1 : -1)),
b.options.verticalSwiping === !0 &&
(g = b.touchObject.curY > b.touchObject.startY ? 1 : -1),
(f = b.touchObject.swipeLength),
(b.touchObject.edgeHit = !1),
b.options.infinite === !1 &&
((0 === b.currentSlide && "right" === e) ||
(b.currentSlide >= b.getDotCount() && "left" === e)) &&
((f = b.touchObject.swipeLength * b.options.edgeFriction),
(b.touchObject.edgeHit = !0)),
(b.swipeLeft =
b.options.vertical === !1
? d + f * g
: d + f * (b.$list.height() / b.listWidth) * g),
b.options.verticalSwiping === !0 && (b.swipeLeft = d + f * g),
b.options.fade === !0 || b.options.touchMove === !1
? !1
: b.animating === !0
? ((b.swipeLeft = null), !1)
: (b.setCSS(b.swipeLeft), void 0))
: void 0)
);
}),
(b.prototype.swipeStart = function (a) {
var c,
b = this;
return 1 !== b.touchObject.fingerCount ||
b.slideCount <= b.options.slidesToShow
? ((b.touchObject = {}), !1)
: (void 0 !== a.originalEvent &&
void 0 !== a.originalEvent.touches &&
(c = a.originalEvent.touches[0]),
(b.touchObject.startX = b.touchObject.curX =
void 0 !== c ? c.pageX : a.clientX),
(b.touchObject.startY = b.touchObject.curY =
void 0 !== c ? c.pageY : a.clientY),
(b.dragging = !0),
void 0);
}),
(b.prototype.unfilterSlides = b.prototype.slickUnfilter = function () {
var a = this;
null !== a.$slidesCache &&
(a.unload(),
a.$slideTrack.children(this.options.slide).detach(),
a.$slidesCache.appendTo(a.$slideTrack),
a.reinit());
}),
(b.prototype.unload = function () {
var b = this;
a(".slick-cloned", b.$slider).remove(),
b.$dots && b.$dots.remove(),
b.$prevArrow &&
b.htmlExpr.test(b.options.prevArrow) &&
b.$prevArrow.remove(),
b.$nextArrow &&
b.htmlExpr.test(b.options.nextArrow) &&
b.$nextArrow.remove(),
b.$slides
.removeClass("slick-slide slick-active slick-visible slick-current")
.attr("aria-hidden", "true")
.css("width", "");
}),
(b.prototype.unslick = function (a) {
var b = this;
b.$slider.trigger("unslick", [b, a]), b.destroy();
}),
(b.prototype.updateArrows = function () {
var b,
a = this;
(b = Math.floor(a.options.slidesToShow / 2)),
a.options.arrows === !0 &&
a.slideCount > a.options.slidesToShow &&
!a.options.infinite &&
(a.$prevArrow
.removeClass("slick-disabled")
.attr("aria-disabled", "false"),
a.$nextArrow
.removeClass("slick-disabled")
.attr("aria-disabled", "false"),
0 === a.currentSlide
? (a.$prevArrow
.addClass("slick-disabled")
.attr("aria-disabled", "true"),
a.$nextArrow
.removeClass("slick-disabled")
.attr("aria-disabled", "false"))
: a.currentSlide >= a.slideCount - a.options.slidesToShow &&
a.options.centerMode === !1
? (a.$nextArrow
.addClass("slick-disabled")
.attr("aria-disabled", "true"),
a.$prevArrow
.removeClass("slick-disabled")
.attr("aria-disabled", "false"))
: a.currentSlide >= a.slideCount - 1 &&
a.options.centerMode === !0 &&
(a.$nextArrow
.addClass("slick-disabled")
.attr("aria-disabled", "true"),
a.$prevArrow
.removeClass("slick-disabled")
.attr("aria-disabled", "false")));
}),
(b.prototype.updateDots = function () {
var a = this;
null !== a.$dots &&
(a.$dots
.find("li")
.removeClass("slick-active")
.attr("aria-hidden", "true"),
a.$dots
.find("li")
.eq(Math.floor(a.currentSlide / a.options.slidesToScroll))
.addClass("slick-active")
.attr("aria-hidden", "false"));
}),
(b.prototype.visibility = function () {
var a = this;
document[a.hidden]
? ((a.paused = !0), a.autoPlayClear())
: a.options.autoplay === !0 && ((a.paused = !1), a.autoPlay());
}),
(b.prototype.initADA = function () {
var b = this;
b.$slides
.add(b.$slideTrack.find(".slick-cloned"))
.attr({ "aria-hidden": "true", tabindex: "-1" })
.find("a, input, button, select")
.attr({ tabindex: "-1" }),
b.$slideTrack.attr("role", "listbox"),
b.$slides.not(b.$slideTrack.find(".slick-cloned")).each(function (c) {
a(this).attr({
role: "option",
"aria-describedby": "slick-slide" + b.instanceUid + c,
});
}),
null !== b.$dots &&
b.$dots
.attr("role", "tablist")
.find("li")
.each(function (c) {
a(this).attr({
role: "presentation",
"aria-selected": "false",
"aria-controls": "navigation" + b.instanceUid + c,
id: "slick-slide" + b.instanceUid + c,
});
})
.first()
.attr("aria-selected", "true")
.end()
.find("button")
.attr("role", "button")
.end()
.closest("div")
.attr("role", "toolbar"),
b.activateADA();
}),
(b.prototype.activateADA = function () {
var a = this,
b = a.$slider.find("*").is(":focus");
a.$slideTrack
.find(".slick-active")
.attr({ "aria-hidden": "false", tabindex: "0" })
.find("a, input, button, select")
.attr({ tabindex: "0" }),
b && a.$slideTrack.find(".slick-active").focus();
}),
(b.prototype.focusHandler = function () {
var b = this;
b.$slider.on("focus.slick blur.slick", "*", function (c) {
c.stopImmediatePropagation();
var d = a(this);
setTimeout(function () {
b.isPlay &&
(d.is(":focus")
? (b.autoPlayClear(), (b.paused = !0))
: ((b.paused = !1), b.autoPlay()));
}, 0);
});
}),
(a.fn.slick = function () {
var g,
a = this,
c = arguments[0],
d = Array.prototype.slice.call(arguments, 1),
e = a.length,
f = 0;
for (f; e > f; f++)
if (
("object" == typeof c || "undefined" == typeof c
? (a[f].slick = new b(a[f], c))
: (g = a[f].slick[c].apply(a[f].slick, d)),
"undefined" != typeof g)
)
return g;
return a;
});
});
/*! bootstrap-progressbar v0.9.0 | Copyright (c) 2012-2015 Stephan Groß | MIT license | http://www.minddust.com */
!(function (t) {
"use strict";
var e = function (n, s) {
(this.$element = t(n)), (this.options = t.extend({}, e.defaults, s));
};
(e.defaults = {
transition_delay: 300,
refresh_speed: 50,
display_text: "none",
use_percentage: !0,
percent_format: function (t) {
return t + "%";
},
amount_format: function (t, e) {
return t + " / " + e;
},
update: t.noop,
done: t.noop,
fail: t.noop,
}),
(e.prototype.transition = function () {
var n = this.$element,
s = n.parent(),
a = this.$back_text,
r = this.$front_text,
i = this.options,
o = parseInt(n.attr("data-transitiongoal")),
h = parseInt(n.attr("aria-valuemin")) || 0,
d = parseInt(n.attr("aria-valuemax")) || 100,
f = s.hasClass("vertical"),
p =
i.update && "function" == typeof i.update
? i.update
: e.defaults.update,
u = i.done && "function" == typeof i.done ? i.done : e.defaults.done,
c = i.fail && "function" == typeof i.fail ? i.fail : e.defaults.fail;
if (isNaN(o)) return void c("data-transitiongoal not set");
var l = Math.round((100 * (o - h)) / (d - h));
if ("center" === i.display_text && !a && !r) {
(this.$back_text = a = t("")
.addClass("progressbar-back-text")
.prependTo(s)),
(this.$front_text = r = t("")
.addClass("progressbar-front-text")
.prependTo(n));
var g;
f
? ((g = s.css("height")),
a.css({ height: g, "line-height": g }),
r.css({ height: g, "line-height": g }),
t(window).resize(function () {
(g = s.css("height")),
a.css({ height: g, "line-height": g }),
r.css({ height: g, "line-height": g });
}))
: ((g = s.css("width")),
r.css({ width: g }),
t(window).resize(function () {
(g = s.css("width")), r.css({ width: g });
}));
}
setTimeout(function () {
var t, e, c, g, _;
f ? n.css("height", l + "%") : n.css("width", l + "%");
var x = setInterval(function () {
f
? ((c = n.height()), (g = s.height()))
: ((c = n.width()), (g = s.width())),
(t = Math.round((100 * c) / g)),
(e = Math.round(h + (c / g) * (d - h))),
t >= l && ((t = l), (e = o), u(n), clearInterval(x)),
"none" !== i.display_text &&
((_ = i.use_percentage
? i.percent_format(t)
: i.amount_format(e, d, h)),
"fill" === i.display_text
? n.text(_)
: "center" === i.display_text && (a.text(_), r.text(_))),
n.attr("aria-valuenow", e),
p(t, n);
}, i.refresh_speed);
}, i.transition_delay);
});
var n = t.fn.progressbar;
(t.fn.progressbar = function (n) {
return this.each(function () {
var s = t(this),
a = s.data("bs.progressbar"),
r = "object" == typeof n && n;
a && r && t.extend(a.options, r),
a || s.data("bs.progressbar", (a = new e(this, r))),
a.transition();
});
}),
(t.fn.progressbar.Constructor = e),
(t.fn.progressbar.noConflict = function () {
return (t.fn.progressbar = n), this;
});
})(window.jQuery);
// ProgressBar.js 0.9.0
// https://kimmobrunfeldt.github.io/progressbar.js
// License: MIT
!(function (a) {
if ("object" == typeof exports && "undefined" != typeof module)
module.exports = a();
else if ("function" == typeof define && define.amd) define([], a);
else {
var b;
(b =
"undefined" != typeof window
? window
: "undefined" != typeof global
? global
: "undefined" != typeof self
? self
: this),
(b.ProgressBar = a());
}
})(function () {
var a;
return (function b(a, c, d) {
function e(g, h) {
if (!c[g]) {
if (!a[g]) {
var i = "function" == typeof require && require;
if (!h && i) return i(g, !0);
if (f) return f(g, !0);
var j = new Error("Cannot find module '" + g + "'");
throw ((j.code = "MODULE_NOT_FOUND"), j);
}
var k = (c[g] = { exports: {} });
a[g][0].call(
k.exports,
function (b) {
var c = a[g][1][b];
return e(c ? c : b);
},
k,
k.exports,
b,
a,
c,
d
);
}
return c[g].exports;
}
for (
var f = "function" == typeof require && require, g = 0;
g < d.length;
g++
)
e(d[g]);
return e;
})(
{
1: [
function (b, c, d) {
(function () {
var b = this,
e = (function () {
"use strict";
function e() {}
function f(a, b) {
var c;
for (c in a) Object.hasOwnProperty.call(a, c) && b(c);
}
function g(a, b) {
return (
f(b, function (c) {
a[c] = b[c];
}),
a
);
}
function h(a, b) {
f(b, function (c) {
"undefined" == typeof a[c] && (a[c] = b[c]);
});
}
function i(a, b, c, d, e, f, g) {
var h,
i,
k,
l = f > a ? 0 : (a - f) / e;
for (h in b)
b.hasOwnProperty(h) &&
((i = g[h]),
(k = "function" == typeof i ? i : o[i]),
(b[h] = j(c[h], d[h], k, l)));
return b;
}
function j(a, b, c, d) {
return a + (b - a) * c(d);
}
function k(a, b) {
var c = n.prototype.filter,
d = a._filterArgs;
f(c, function (e) {
"undefined" != typeof c[e][b] && c[e][b].apply(a, d);
});
}
function l(a, b, c, d, e, f, g, h, j, l, m) {
(v = b + c + d),
(w = Math.min(m || u(), v)),
(x = w >= v),
(y = d - (v - w)),
a.isPlaying() && !x
? ((a._scheduleId = l(a._timeoutHandler, s)),
k(a, "beforeTween"),
b + c > w
? i(1, e, f, g, 1, 1, h)
: i(w, e, f, g, d, b + c, h),
k(a, "afterTween"),
j(e, a._attachment, y))
: a.isPlaying() &&
x &&
(j(g, a._attachment, y), a.stop(!0));
}
function m(a, b) {
var c = {},
d = typeof b;
return (
"string" === d || "function" === d
? f(a, function (a) {
c[a] = b;
})
: f(a, function (a) {
c[a] || (c[a] = b[a] || q);
}),
c
);
}
function n(a, b) {
(this._currentState = a || {}),
(this._configured = !1),
(this._scheduleFunction = p),
"undefined" != typeof b && this.setConfig(b);
}
var o,
p,
q = "linear",
r = 500,
s = 1e3 / 60,
t = Date.now
? Date.now
: function () {
return +new Date();
},
u =
"undefined" != typeof SHIFTY_DEBUG_NOW
? SHIFTY_DEBUG_NOW
: t;
p =
"undefined" != typeof window
? window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
(window.mozCancelRequestAnimationFrame &&
window.mozRequestAnimationFrame) ||
setTimeout
: setTimeout;
var v, w, x, y;
return (
(n.prototype.tween = function (a) {
return this._isTweening
? this
: ((void 0 === a && this._configured) ||
this.setConfig(a),
(this._timestamp = u()),
this._start(this.get(), this._attachment),
this.resume());
}),
(n.prototype.setConfig = function (a) {
(a = a || {}),
(this._configured = !0),
(this._attachment = a.attachment),
(this._pausedAtTime = null),
(this._scheduleId = null),
(this._delay = a.delay || 0),
(this._start = a.start || e),
(this._step = a.step || e),
(this._finish = a.finish || e),
(this._duration = a.duration || r),
(this._currentState = g({}, a.from) || this.get()),
(this._originalState = this.get()),
(this._targetState = g({}, a.to) || this.get());
var b = this;
this._timeoutHandler = function () {
l(
b,
b._timestamp,
b._delay,
b._duration,
b._currentState,
b._originalState,
b._targetState,
b._easing,
b._step,
b._scheduleFunction
);
};
var c = this._currentState,
d = this._targetState;
return (
h(d, c),
(this._easing = m(c, a.easing || q)),
(this._filterArgs = [
c,
this._originalState,
d,
this._easing,
]),
k(this, "tweenCreated"),
this
);
}),
(n.prototype.get = function () {
return g({}, this._currentState);
}),
(n.prototype.set = function (a) {
this._currentState = a;
}),
(n.prototype.pause = function () {
return (
(this._pausedAtTime = u()), (this._isPaused = !0), this
);
}),
(n.prototype.resume = function () {
return (
this._isPaused &&
(this._timestamp += u() - this._pausedAtTime),
(this._isPaused = !1),
(this._isTweening = !0),
this._timeoutHandler(),
this
);
}),
(n.prototype.seek = function (a) {
a = Math.max(a, 0);
var b = u();
return this._timestamp + a === 0
? this
: ((this._timestamp = b - a),
this.isPlaying() ||
((this._isTweening = !0),
(this._isPaused = !1),
l(
this,
this._timestamp,
this._delay,
this._duration,
this._currentState,
this._originalState,
this._targetState,
this._easing,
this._step,
this._scheduleFunction,
b
),
this.pause()),
this);
}),
(n.prototype.stop = function (a) {
return (
(this._isTweening = !1),
(this._isPaused = !1),
(this._timeoutHandler = e),
(
b.cancelAnimationFrame ||
b.webkitCancelAnimationFrame ||
b.oCancelAnimationFrame ||
b.msCancelAnimationFrame ||
b.mozCancelRequestAnimationFrame ||
b.clearTimeout
)(this._scheduleId),
a &&
(k(this, "beforeTween"),
i(
1,
this._currentState,
this._originalState,
this._targetState,
1,
0,
this._easing
),
k(this, "afterTween"),
k(this, "afterTweenEnd"),
this._finish.call(
this,
this._currentState,
this._attachment
)),
this
);
}),
(n.prototype.isPlaying = function () {
return this._isTweening && !this._isPaused;
}),
(n.prototype.setScheduleFunction = function (a) {
this._scheduleFunction = a;
}),
(n.prototype.dispose = function () {
var a;
for (a in this) this.hasOwnProperty(a) && delete this[a];
}),
(n.prototype.filter = {}),
(n.prototype.formula = {
linear: function (a) {
return a;
},
}),
(o = n.prototype.formula),
g(n, {
now: u,
each: f,
tweenProps: i,
tweenProp: j,
applyFilter: k,
shallowCopy: g,
defaults: h,
composeEasingObject: m,
}),
"function" == typeof SHIFTY_DEBUG_NOW &&
(b.timeoutHandler = l),
"object" == typeof d
? (c.exports = n)
: "function" == typeof a && a.amd
? a(function () {
return n;
})
: "undefined" == typeof b.Tweenable && (b.Tweenable = n),
n
);
})();
!(function () {
e.shallowCopy(e.prototype.formula, {
easeInQuad: function (a) {
return Math.pow(a, 2);
},
easeOutQuad: function (a) {
return -(Math.pow(a - 1, 2) - 1);
},
easeInOutQuad: function (a) {
return (a /= 0.5) < 1
? 0.5 * Math.pow(a, 2)
: -0.5 * ((a -= 2) * a - 2);
},
easeInCubic: function (a) {
return Math.pow(a, 3);
},
easeOutCubic: function (a) {
return Math.pow(a - 1, 3) + 1;
},
easeInOutCubic: function (a) {
return (a /= 0.5) < 1
? 0.5 * Math.pow(a, 3)
: 0.5 * (Math.pow(a - 2, 3) + 2);
},
easeInQuart: function (a) {
return Math.pow(a, 4);
},
easeOutQuart: function (a) {
return -(Math.pow(a - 1, 4) - 1);
},
easeInOutQuart: function (a) {
return (a /= 0.5) < 1
? 0.5 * Math.pow(a, 4)
: -0.5 * ((a -= 2) * Math.pow(a, 3) - 2);
},
easeInQuint: function (a) {
return Math.pow(a, 5);
},
easeOutQuint: function (a) {
return Math.pow(a - 1, 5) + 1;
},
easeInOutQuint: function (a) {
return (a /= 0.5) < 1
? 0.5 * Math.pow(a, 5)
: 0.5 * (Math.pow(a - 2, 5) + 2);
},
easeInSine: function (a) {
return -Math.cos(a * (Math.PI / 2)) + 1;
},
easeOutSine: function (a) {
return Math.sin(a * (Math.PI / 2));
},
easeInOutSine: function (a) {
return -0.5 * (Math.cos(Math.PI * a) - 1);
},
easeInExpo: function (a) {
return 0 === a ? 0 : Math.pow(2, 10 * (a - 1));
},
easeOutExpo: function (a) {
return 1 === a ? 1 : -Math.pow(2, -10 * a) + 1;
},
easeInOutExpo: function (a) {
return 0 === a
? 0
: 1 === a
? 1
: (a /= 0.5) < 1
? 0.5 * Math.pow(2, 10 * (a - 1))
: 0.5 * (-Math.pow(2, -10 * --a) + 2);
},
easeInCirc: function (a) {
return -(Math.sqrt(1 - a * a) - 1);
},
easeOutCirc: function (a) {
return Math.sqrt(1 - Math.pow(a - 1, 2));
},
easeInOutCirc: function (a) {
return (a /= 0.5) < 1
? -0.5 * (Math.sqrt(1 - a * a) - 1)
: 0.5 * (Math.sqrt(1 - (a -= 2) * a) + 1);
},
easeOutBounce: function (a) {
return 1 / 2.75 > a
? 7.5625 * a * a
: 2 / 2.75 > a
? 7.5625 * (a -= 1.5 / 2.75) * a + 0.75
: 2.5 / 2.75 > a
? 7.5625 * (a -= 2.25 / 2.75) * a + 0.9375
: 7.5625 * (a -= 2.625 / 2.75) * a + 0.984375;
},
easeInBack: function (a) {
var b = 1.70158;
return a * a * ((b + 1) * a - b);
},
easeOutBack: function (a) {
var b = 1.70158;
return (a -= 1) * a * ((b + 1) * a + b) + 1;
},
easeInOutBack: function (a) {
var b = 1.70158;
return (a /= 0.5) < 1
? 0.5 * (a * a * (((b *= 1.525) + 1) * a - b))
: 0.5 * ((a -= 2) * a * (((b *= 1.525) + 1) * a + b) + 2);
},
elastic: function (a) {
return (
-1 *
Math.pow(4, -8 * a) *
Math.sin(((6 * a - 1) * (2 * Math.PI)) / 2) +
1
);
},
swingFromTo: function (a) {
var b = 1.70158;
return (a /= 0.5) < 1
? 0.5 * (a * a * (((b *= 1.525) + 1) * a - b))
: 0.5 * ((a -= 2) * a * (((b *= 1.525) + 1) * a + b) + 2);
},
swingFrom: function (a) {
var b = 1.70158;
return a * a * ((b + 1) * a - b);
},
swingTo: function (a) {
var b = 1.70158;
return (a -= 1) * a * ((b + 1) * a + b) + 1;
},
bounce: function (a) {
return 1 / 2.75 > a
? 7.5625 * a * a
: 2 / 2.75 > a
? 7.5625 * (a -= 1.5 / 2.75) * a + 0.75
: 2.5 / 2.75 > a
? 7.5625 * (a -= 2.25 / 2.75) * a + 0.9375
: 7.5625 * (a -= 2.625 / 2.75) * a + 0.984375;
},
bouncePast: function (a) {
return 1 / 2.75 > a
? 7.5625 * a * a
: 2 / 2.75 > a
? 2 - (7.5625 * (a -= 1.5 / 2.75) * a + 0.75)
: 2.5 / 2.75 > a
? 2 - (7.5625 * (a -= 2.25 / 2.75) * a + 0.9375)
: 2 - (7.5625 * (a -= 2.625 / 2.75) * a + 0.984375);
},
easeFromTo: function (a) {
return (a /= 0.5) < 1
? 0.5 * Math.pow(a, 4)
: -0.5 * ((a -= 2) * Math.pow(a, 3) - 2);
},
easeFrom: function (a) {
return Math.pow(a, 4);
},
easeTo: function (a) {
return Math.pow(a, 0.25);
},
});
})(),
(function () {
function a(a, b, c, d, e, f) {
function g(a) {
return ((n * a + o) * a + p) * a;
}
function h(a) {
return ((q * a + r) * a + s) * a;
}
function i(a) {
return (3 * n * a + 2 * o) * a + p;
}
function j(a) {
return 1 / (200 * a);
}
function k(a, b) {
return h(m(a, b));
}
function l(a) {
return a >= 0 ? a : 0 - a;
}
function m(a, b) {
var c, d, e, f, h, j;
for (e = a, j = 0; 8 > j; j++) {
if (((f = g(e) - a), l(f) < b)) return e;
if (((h = i(e)), l(h) < 1e-6)) break;
e -= f / h;
}
if (((c = 0), (d = 1), (e = a), c > e)) return c;
if (e > d) return d;
for (; d > c; ) {
if (((f = g(e)), l(f - a) < b)) return e;
a > f ? (c = e) : (d = e), (e = 0.5 * (d - c) + c);
}
return e;
}
var n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0;
return (
(p = 3 * b),
(o = 3 * (d - b) - p),
(n = 1 - p - o),
(s = 3 * c),
(r = 3 * (e - c) - s),
(q = 1 - s - r),
k(a, j(f))
);
}
function b(b, c, d, e) {
return function (f) {
return a(f, b, c, d, e, 1);
};
}
(e.setBezierFunction = function (a, c, d, f, g) {
var h = b(c, d, f, g);
return (
(h.displayName = a),
(h.x1 = c),
(h.y1 = d),
(h.x2 = f),
(h.y2 = g),
(e.prototype.formula[a] = h)
);
}),
(e.unsetBezierFunction = function (a) {
delete e.prototype.formula[a];
});
})(),
(function () {
function a(a, b, c, d, f, g) {
return e.tweenProps(d, b, a, c, 1, g, f);
}
var b = new e();
(b._filterArgs = []),
(e.interpolate = function (c, d, f, g, h) {
var i = e.shallowCopy({}, c),
j = h || 0,
k = e.composeEasingObject(c, g || "linear");
b.set({});
var l = b._filterArgs;
(l.length = 0),
(l[0] = i),
(l[1] = c),
(l[2] = d),
(l[3] = k),
e.applyFilter(b, "tweenCreated"),
e.applyFilter(b, "beforeTween");
var m = a(c, i, d, f, k, j);
return e.applyFilter(b, "afterTween"), m;
});
})(),
(function (a) {
function b(a, b) {
var c,
d = [],
e = a.length;
for (c = 0; e > c; c++) d.push("_" + b + "_" + c);
return d;
}
function c(a) {
var b = a.match(v);
return (
b
? (1 === b.length || a[0].match(u)) && b.unshift("")
: (b = ["", ""]),
b.join(A)
);
}
function d(b) {
a.each(b, function (a) {
var c = b[a];
"string" == typeof c && c.match(z) && (b[a] = e(c));
});
}
function e(a) {
return i(z, a, f);
}
function f(a) {
var b = g(a);
return "rgb(" + b[0] + "," + b[1] + "," + b[2] + ")";
}
function g(a) {
return (
(a = a.replace(/#/, "")),
3 === a.length &&
((a = a.split("")),
(a = a[0] + a[0] + a[1] + a[1] + a[2] + a[2])),
(B[0] = h(a.substr(0, 2))),
(B[1] = h(a.substr(2, 2))),
(B[2] = h(a.substr(4, 2))),
B
);
}
function h(a) {
return parseInt(a, 16);
}
function i(a, b, c) {
var d = b.match(a),
e = b.replace(a, A);
if (d)
for (var f, g = d.length, h = 0; g > h; h++)
(f = d.shift()), (e = e.replace(A, c(f)));
return e;
}
function j(a) {
return i(x, a, k);
}
function k(a) {
for (
var b = a.match(w), c = b.length, d = a.match(y)[0], e = 0;
c > e;
e++
)
d += parseInt(b[e], 10) + ",";
return (d = d.slice(0, -1) + ")");
}
function l(d) {
var e = {};
return (
a.each(d, function (a) {
var f = d[a];
if ("string" == typeof f) {
var g = r(f);
e[a] = { formatString: c(f), chunkNames: b(g, a) };
}
}),
e
);
}
function m(b, c) {
a.each(c, function (a) {
for (
var d = b[a], e = r(d), f = e.length, g = 0;
f > g;
g++
)
b[c[a].chunkNames[g]] = +e[g];
delete b[a];
});
}
function n(b, c) {
a.each(c, function (a) {
var d = b[a],
e = o(b, c[a].chunkNames),
f = p(e, c[a].chunkNames);
(d = q(c[a].formatString, f)), (b[a] = j(d));
});
}
function o(a, b) {
for (var c, d = {}, e = b.length, f = 0; e > f; f++)
(c = b[f]), (d[c] = a[c]), delete a[c];
return d;
}
function p(a, b) {
C.length = 0;
for (var c = b.length, d = 0; c > d; d++) C.push(a[b[d]]);
return C;
}
function q(a, b) {
for (var c = a, d = b.length, e = 0; d > e; e++)
c = c.replace(A, +b[e].toFixed(4));
return c;
}
function r(a) {
return a.match(w);
}
function s(b, c) {
a.each(c, function (a) {
var d,
e = c[a],
f = e.chunkNames,
g = f.length,
h = b[a];
if ("string" == typeof h) {
var i = h.split(" "),
j = i[i.length - 1];
for (d = 0; g > d; d++) b[f[d]] = i[d] || j;
} else for (d = 0; g > d; d++) b[f[d]] = h;
delete b[a];
});
}
function t(b, c) {
a.each(c, function (a) {
var d = c[a],
e = d.chunkNames,
f = e.length,
g = b[e[0]],
h = typeof g;
if ("string" === h) {
for (var i = "", j = 0; f > j; j++)
(i += " " + b[e[j]]), delete b[e[j]];
b[a] = i.substr(1);
} else b[a] = g;
});
}
var u = /(\d|\-|\.)/,
v = /([^\-0-9\.]+)/g,
w = /[0-9.\-]+/g,
x = new RegExp(
"rgb\\(" +
w.source +
/,\s*/.source +
w.source +
/,\s*/.source +
w.source +
"\\)",
"g"
),
y = /^.*\(/,
z = /#([0-9]|[a-f]){3,6}/gi,
A = "VAL",
B = [],
C = [];
a.prototype.filter.token = {
tweenCreated: function (a, b, c, e) {
d(a), d(b), d(c), (this._tokenData = l(a));
},
beforeTween: function (a, b, c, d) {
s(d, this._tokenData),
m(a, this._tokenData),
m(b, this._tokenData),
m(c, this._tokenData);
},
afterTween: function (a, b, c, d) {
n(a, this._tokenData),
n(b, this._tokenData),
n(c, this._tokenData),
t(d, this._tokenData);
},
};
})(e);
}.call(null));
},
{},
],
2: [
function (a, b, c) {
var d = a("./shape"),
e = a("./utils"),
f = function (a, b) {
(this._pathTemplate =
"M 50,50 m 0,-{radius} a {radius},{radius} 0 1 1 0,{2radius} a {radius},{radius} 0 1 1 0,-{2radius}"),
d.apply(this, arguments);
};
(f.prototype = new d()),
(f.prototype.constructor = f),
(f.prototype._pathString = function (a) {
var b = a.strokeWidth;
a.trailWidth &&
a.trailWidth > a.strokeWidth &&
(b = a.trailWidth);
var c = 50 - b / 2;
return e.render(this._pathTemplate, {
radius: c,
"2radius": 2 * c,
});
}),
(f.prototype._trailString = function (a) {
return this._pathString(a);
}),
(b.exports = f);
},
{ "./shape": 7, "./utils": 8 },
],
3: [
function (a, b, c) {
var d = a("./shape"),
e = a("./utils"),
f = function (a, b) {
(this._pathTemplate = "M 0,{center} L 100,{center}"),
d.apply(this, arguments);
};
(f.prototype = new d()),
(f.prototype.constructor = f),
(f.prototype._initializeSvg = function (a, b) {
a.setAttribute("viewBox", "0 0 100 " + b.strokeWidth),
a.setAttribute("preserveAspectRatio", "none");
}),
(f.prototype._pathString = function (a) {
return e.render(this._pathTemplate, {
center: a.strokeWidth / 2,
});
}),
(f.prototype._trailString = function (a) {
return this._pathString(a);
}),
(b.exports = f);
},
{ "./shape": 7, "./utils": 8 },
],
4: [
function (a, b, c) {
b.exports = {
Line: a("./line"),
Circle: a("./circle"),
SemiCircle: a("./semicircle"),
Path: a("./path"),
Shape: a("./shape"),
utils: a("./utils"),
};
},
{
"./circle": 2,
"./line": 3,
"./path": 5,
"./semicircle": 6,
"./shape": 7,
"./utils": 8,
},
],
5: [
function (a, b, c) {
var d = a("shifty"),
e = a("./utils"),
f = {
easeIn: "easeInCubic",
easeOut: "easeOutCubic",
easeInOut: "easeInOutCubic",
},
g = function (a, b) {
b = e.extend(
{
duration: 800,
easing: "linear",
from: {},
to: {},
step: function () {},
},
b
);
var c;
(c = e.isString(a) ? document.querySelector(a) : a),
(this.path = c),
(this._opts = b),
(this._tweenable = null);
var d = this.path.getTotalLength();
(this.path.style.strokeDasharray = d + " " + d), this.set(0);
};
(g.prototype.value = function () {
var a = this._getComputedDashOffset(),
b = this.path.getTotalLength(),
c = 1 - a / b;
return parseFloat(c.toFixed(6), 10);
}),
(g.prototype.set = function (a) {
this.stop(),
(this.path.style.strokeDashoffset = this._progressToOffset(a));
var b = this._opts.step;
if (e.isFunction(b)) {
var c = this._easing(this._opts.easing),
d = this._calculateTo(a, c),
f = this._opts.shape || this;
b(d, f, this._opts.attachment);
}
}),
(g.prototype.stop = function () {
this._stopTween(),
(this.path.style.strokeDashoffset = this._getComputedDashOffset());
}),
(g.prototype.animate = function (a, b, c) {
(b = b || {}), e.isFunction(b) && ((c = b), (b = {}));
var f = e.extend({}, b),
g = e.extend({}, this._opts);
b = e.extend(g, b);
var h = this._easing(b.easing),
i = this._resolveFromAndTo(a, h, f);
this.stop(), this.path.getBoundingClientRect();
var j = this._getComputedDashOffset(),
k = this._progressToOffset(a),
l = this;
(this._tweenable = new d()),
this._tweenable.tween({
from: e.extend({ offset: j }, i.from),
to: e.extend({ offset: k }, i.to),
duration: b.duration,
easing: h,
step: function (a) {
l.path.style.strokeDashoffset = a.offset;
var c = b.shape || l;
b.step(a, c, b.attachment);
},
finish: function (a) {
e.isFunction(c) && c();
},
});
}),
(g.prototype._getComputedDashOffset = function () {
var a = window.getComputedStyle(this.path, null);
return parseFloat(a.getPropertyValue("stroke-dashoffset"), 10);
}),
(g.prototype._progressToOffset = function (a) {
var b = this.path.getTotalLength();
return b - a * b;
}),
(g.prototype._resolveFromAndTo = function (a, b, c) {
return c.from && c.to
? { from: c.from, to: c.to }
: { from: this._calculateFrom(b), to: this._calculateTo(a, b) };
}),
(g.prototype._calculateFrom = function (a) {
return d.interpolate(
this._opts.from,
this._opts.to,
this.value(),
a
);
}),
(g.prototype._calculateTo = function (a, b) {
return d.interpolate(this._opts.from, this._opts.to, a, b);
}),
(g.prototype._stopTween = function () {
null !== this._tweenable &&
(this._tweenable.stop(),
this._tweenable.dispose(),
(this._tweenable = null));
}),
(g.prototype._easing = function (a) {
return f.hasOwnProperty(a) ? f[a] : a;
}),
(b.exports = g);
},
{ "./utils": 8, shifty: 1 },
],
6: [
function (a, b, c) {
var d = a("./shape"),
e = a("./circle"),
f = a("./utils"),
g = function (a, b) {
(this._pathTemplate =
"M 50,50 m -{radius},0 a {radius},{radius} 0 1 1 {2radius},0"),
d.apply(this, arguments);
};
(g.prototype = new d()),
(g.prototype.constructor = g),
(g.prototype._initializeSvg = function (a, b) {
a.setAttribute("viewBox", "0 0 100 50");
}),
(g.prototype._initializeTextElement = function (a, b, c) {
a.text.style &&
((c.style.top = "auto"),
(c.style.bottom = "0"),
a.text.alignToBottom
? f.setStyle(c, "transform", "translate(-50%, 0)")
: f.setStyle(c, "transform", "translate(-50%, 50%)"));
}),
(g.prototype._pathString = e.prototype._pathString),
(g.prototype._trailString = e.prototype._trailString),
(b.exports = g);
},
{ "./circle": 2, "./shape": 7, "./utils": 8 },
],
7: [
function (a, b, c) {
var d = a("./path"),
e = a("./utils"),
f = "Object is destroyed",
g = function h(a, b) {
if (!(this instanceof h))
throw new Error("Constructor was called without new keyword");
if (0 !== arguments.length) {
this._opts = e.extend(
{
color: "#555",
strokeWidth: 1,
trailColor: null,
trailWidth: null,
fill: null,
text: {
style: {
color: null,
position: "absolute",
left: "50%",
top: "50%",
padding: 0,
margin: 0,
transform: {
prefix: !0,
value: "translate(-50%, -50%)",
},
},
alignToBottom: !0,
value: "",
className: "progressbar-text",
},
svgStyle: { display: "block", width: "100%" },
},
b,
!0
);
var c,
f = this._createSvgView(this._opts);
if (((c = e.isString(a) ? document.querySelector(a) : a), !c))
throw new Error("Container does not exist: " + a);
(this._container = c),
this._container.appendChild(f.svg),
this._opts.svgStyle &&
e.setStyles(f.svg, this._opts.svgStyle),
(this.text = null),
this._opts.text.value &&
((this.text = this._createTextElement(
this._opts,
this._container
)),
this._container.appendChild(this.text)),
(this.svg = f.svg),
(this.path = f.path),
(this.trail = f.trail);
var g = e.extend(
{ attachment: void 0, shape: this },
this._opts
);
this._progressPath = new d(f.path, g);
}
};
(g.prototype.animate = function (a, b, c) {
if (null === this._progressPath) throw new Error(f);
this._progressPath.animate(a, b, c);
}),
(g.prototype.stop = function () {
if (null === this._progressPath) throw new Error(f);
void 0 !== this._progressPath && this._progressPath.stop();
}),
(g.prototype.destroy = function () {
if (null === this._progressPath) throw new Error(f);
this.stop(),
this.svg.parentNode.removeChild(this.svg),
(this.svg = null),
(this.path = null),
(this.trail = null),
(this._progressPath = null),
null !== this.text &&
(this.text.parentNode.removeChild(this.text),
(this.text = null));
}),
(g.prototype.set = function (a) {
if (null === this._progressPath) throw new Error(f);
this._progressPath.set(a);
}),
(g.prototype.value = function () {
if (null === this._progressPath) throw new Error(f);
return void 0 === this._progressPath
? 0
: this._progressPath.value();
}),
(g.prototype.setText = function (a) {
if (null === this._progressPath) throw new Error(f);
null === this.text &&
((this.text = this._createTextElement(
this._opts,
this._container
)),
this._container.appendChild(this.text)),
this.text.removeChild(this.text.firstChild),
this.text.appendChild(document.createTextNode(a));
}),
(g.prototype._createSvgView = function (a) {
var b = document.createElementNS(
"http://www.w3.org/2000/svg",
"svg"
);
this._initializeSvg(b, a);
var c = null;
(a.trailColor || a.trailWidth) &&
((c = this._createTrail(a)), b.appendChild(c));
var d = this._createPath(a);
return b.appendChild(d), { svg: b, path: d, trail: c };
}),
(g.prototype._initializeSvg = function (a, b) {
a.setAttribute("viewBox", "0 0 100 100");
}),
(g.prototype._createPath = function (a) {
var b = this._pathString(a);
return this._createPathElement(b, a);
}),
(g.prototype._createTrail = function (a) {
var b = this._trailString(a),
c = e.extend({}, a);
return (
c.trailColor || (c.trailColor = "#eee"),
c.trailWidth || (c.trailWidth = c.strokeWidth),
(c.color = c.trailColor),
(c.strokeWidth = c.trailWidth),
(c.fill = null),
this._createPathElement(b, c)
);
}),
(g.prototype._createPathElement = function (a, b) {
var c = document.createElementNS(
"http://www.w3.org/2000/svg",
"path"
);
return (
c.setAttribute("d", a),
c.setAttribute("stroke", b.color),
c.setAttribute("stroke-width", b.strokeWidth),
b.fill
? c.setAttribute("fill", b.fill)
: c.setAttribute("fill-opacity", "0"),
c
);
}),
(g.prototype._createTextElement = function (a, b) {
var c = document.createElement("p");
c.appendChild(document.createTextNode(a.text.value));
var d = a.text.style;
return (
d &&
((b.style.position = "relative"),
e.setStyles(c, d),
d.color || (c.style.color = a.color)),
(c.className = a.text.className),
this._initializeTextElement(a, b, c),
c
);
}),
(g.prototype._initializeTextElement = function (a, b, c) {}),
(g.prototype._pathString = function (a) {
throw new Error("Override this function for each progress bar");
}),
(g.prototype._trailString = function (a) {
throw new Error("Override this function for each progress bar");
}),
(b.exports = g);
},
{ "./path": 5, "./utils": 8 },
],
8: [
function (a, b, c) {
function d(a, b, c) {
(a = a || {}), (b = b || {}), (c = c || !1);
for (var e in b)
if (b.hasOwnProperty(e)) {
var f = a[e],
g = b[e];
c && l(f) && l(g) ? (a[e] = d(f, g, c)) : (a[e] = g);
}
return a;
}
function e(a, b) {
var c = a;
for (var d in b)
if (b.hasOwnProperty(d)) {
var e = b[d],
f = "\\{" + d + "\\}",
g = new RegExp(f, "g");
c = c.replace(g, e);
}
return c;
}
function f(a, b, c) {
for (var d = 0; d < n.length; ++d) {
var e = n[d];
a.style[e + h(b)] = c;
}
a.style[b] = c;
}
function g(a, b) {
m(b, function (b, c) {
null !== b &&
void 0 !== b &&
(l(b) && b.prefix === !0 ? f(a, c, b.value) : (a.style[c] = b));
});
}
function h(a) {
return a.charAt(0).toUpperCase() + a.slice(1);
}
function i(a) {
return "string" == typeof a || a instanceof String;
}
function j(a) {
return "function" == typeof a;
}
function k(a) {
return "[object Array]" === Object.prototype.toString.call(a);
}
function l(a) {
if (k(a)) return !1;
var b = typeof a;
return "object" === b && !!a;
}
function m(a, b) {
for (var c in a)
if (a.hasOwnProperty(c)) {
var d = a[c];
b(d, c);
}
}
var n = "Webkit Moz O ms".split(" ");
b.exports = {
extend: d,
render: e,
setStyle: f,
setStyles: g,
capitalize: h,
isString: i,
isFunction: j,
isObject: l,
forEachObject: m,
};
},
{},
],
},
{},
[4]
)(4);
});
/*!
* Chart.js
* http://chartjs.org/
* Version: 1.0.2
*
* Copyright 2015 Nick Downie
* Released under the MIT license
* https://github.com/nnnick/Chart.js/blob/master/LICENSE.md
*/
(function () {
"use strict";
var t = this,
i = t.Chart,
e = function (t) {
(this.canvas = t.canvas), (this.ctx = t);
var i = function (t, i) {
return t["offset" + i]
? t["offset" + i]
: document.defaultView.getComputedStyle(t).getPropertyValue(i);
},
e = (this.width = i(t.canvas, "Width")),
n = (this.height = i(t.canvas, "Height"));
(t.canvas.width = e), (t.canvas.height = n);
var e = (this.width = t.canvas.width),
n = (this.height = t.canvas.height);
return (
(this.aspectRatio = this.width / this.height), s.retinaScale(this), this
);
};
(e.defaults = {
global: {
animation: !0,
animationSteps: 60,
animationEasing: "easeOutQuart",
showScale: !0,
scaleOverride: !1,
scaleSteps: null,
scaleStepWidth: null,
scaleStartValue: null,
scaleLineColor: "rgba(0,0,0,.1)",
scaleLineWidth: 1,
scaleShowLabels: !0,
scaleLabel: "<%=value%>",
scaleIntegersOnly: !0,
scaleBeginAtZero: !1,
scaleFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
scaleFontSize: 12,
scaleFontStyle: "normal",
scaleFontColor: "#666",
responsive: !1,
maintainAspectRatio: !0,
showTooltips: !0,
customTooltips: !1,
tooltipEvents: ["mousemove", "touchstart", "touchmove", "mouseout"],
tooltipFillColor: "rgba(0,0,0,0.8)",
tooltipFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
tooltipFontSize: 14,
tooltipFontStyle: "normal",
tooltipFontColor: "#fff",
tooltipTitleFontFamily:
"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
tooltipTitleFontSize: 14,
tooltipTitleFontStyle: "bold",
tooltipTitleFontColor: "#fff",
tooltipYPadding: 6,
tooltipXPadding: 6,
tooltipCaretSize: 8,
tooltipCornerRadius: 6,
tooltipXOffset: 10,
tooltipTemplate: "<%if (label){%><%=label%>: <%}%><%= value %>",
multiTooltipTemplate: "<%= value %>",
multiTooltipKeyBackground: "#fff",
onAnimationProgress: function () {},
onAnimationComplete: function () {},
},
}),
(e.types = {});
var s = (e.helpers = {}),
n = (s.each = function (t, i, e) {
var s = Array.prototype.slice.call(arguments, 3);
if (t)
if (t.length === +t.length) {
var n;
for (n = 0; n < t.length; n++) i.apply(e, [t[n], n].concat(s));
} else for (var o in t) i.apply(e, [t[o], o].concat(s));
}),
o = (s.clone = function (t) {
var i = {};
return (
n(t, function (e, s) {
t.hasOwnProperty(s) && (i[s] = e);
}),
i
);
}),
a = (s.extend = function (t) {
return (
n(Array.prototype.slice.call(arguments, 1), function (i) {
n(i, function (e, s) {
i.hasOwnProperty(s) && (t[s] = e);
});
}),
t
);
}),
h = (s.merge = function () {
var t = Array.prototype.slice.call(arguments, 0);
return t.unshift({}), a.apply(null, t);
}),
l = (s.indexOf = function (t, i) {
if (Array.prototype.indexOf) return t.indexOf(i);
for (var e = 0; e < t.length; e++) if (t[e] === i) return e;
return -1;
}),
r =
((s.where = function (t, i) {
var e = [];
return (
s.each(t, function (t) {
i(t) && e.push(t);
}),
e
);
}),
(s.findNextWhere = function (t, i, e) {
e || (e = -1);
for (var s = e + 1; s < t.length; s++) {
var n = t[s];
if (i(n)) return n;
}
}),
(s.findPreviousWhere = function (t, i, e) {
e || (e = t.length);
for (var s = e - 1; s >= 0; s--) {
var n = t[s];
if (i(n)) return n;
}
}),
(s.inherits = function (t) {
var i = this,
e =
t && t.hasOwnProperty("constructor")
? t.constructor
: function () {
return i.apply(this, arguments);
},
s = function () {
this.constructor = e;
};
return (
(s.prototype = i.prototype),
(e.prototype = new s()),
(e.extend = r),
t && a(e.prototype, t),
(e.__super__ = i.prototype),
e
);
})),
c = (s.noop = function () {}),
u = (s.uid = (function () {
var t = 0;
return function () {
return "chart-" + t++;
};
})()),
d = (s.warn = function (t) {
window.console &&
"function" == typeof window.console.warn &&
console.warn(t);
}),
p = (s.amd = "function" == typeof define && define.amd),
f = (s.isNumber = function (t) {
return !isNaN(parseFloat(t)) && isFinite(t);
}),
g = (s.max = function (t) {
return Math.max.apply(Math, t);
}),
m = (s.min = function (t) {
return Math.min.apply(Math, t);
}),
v =
((s.cap = function (t, i, e) {
if (f(i)) {
if (t > i) return i;
} else if (f(e) && e > t) return e;
return t;
}),
(s.getDecimalPlaces = function (t) {
return t % 1 !== 0 && f(t) ? t.toString().split(".")[1].length : 0;
})),
S = (s.radians = function (t) {
return t * (Math.PI / 180);
}),
x =
((s.getAngleFromPoint = function (t, i) {
var e = i.x - t.x,
s = i.y - t.y,
n = Math.sqrt(e * e + s * s),
o = 2 * Math.PI + Math.atan2(s, e);
return 0 > e && 0 > s && (o += 2 * Math.PI), { angle: o, distance: n };
}),
(s.aliasPixel = function (t) {
return t % 2 === 0 ? 0 : 0.5;
})),
y =
((s.splineCurve = function (t, i, e, s) {
var n = Math.sqrt(Math.pow(i.x - t.x, 2) + Math.pow(i.y - t.y, 2)),
o = Math.sqrt(Math.pow(e.x - i.x, 2) + Math.pow(e.y - i.y, 2)),
a = (s * n) / (n + o),
h = (s * o) / (n + o);
return {
inner: { x: i.x - a * (e.x - t.x), y: i.y - a * (e.y - t.y) },
outer: { x: i.x + h * (e.x - t.x), y: i.y + h * (e.y - t.y) },
};
}),
(s.calculateOrderOfMagnitude = function (t) {
return Math.floor(Math.log(t) / Math.LN10);
})),
C =
((s.calculateScaleRange = function (t, i, e, s, n) {
var o = 2,
a = Math.floor(i / (1.5 * e)),
h = o >= a,
l = g(t),
r = m(t);
l === r && ((l += 0.5), r >= 0.5 && !s ? (r -= 0.5) : (l += 0.5));
for (
var c = Math.abs(l - r),
u = y(c),
d = Math.ceil(l / (1 * Math.pow(10, u))) * Math.pow(10, u),
p = s ? 0 : Math.floor(r / (1 * Math.pow(10, u))) * Math.pow(10, u),
f = d - p,
v = Math.pow(10, u),
S = Math.round(f / v);
(S > a || a > 2 * S) && !h;
)
if (S > a) (v *= 2), (S = Math.round(f / v)), S % 1 !== 0 && (h = !0);
else if (n && u >= 0) {
if ((v / 2) % 1 !== 0) break;
(v /= 2), (S = Math.round(f / v));
} else (v /= 2), (S = Math.round(f / v));
return (
h && ((S = o), (v = f / S)),
{ steps: S, stepValue: v, min: p, max: p + S * v }
);
}),
(s.template = function (t, i) {
function e(t, i) {
var e = /\W/.test(t)
? new Function(
"obj",
"var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('" +
t
.replace(/[\r\t\n]/g, " ")
.split("<%")
.join(" ")
.replace(/((^|%>)[^\t]*)'/g, "$1\r")
.replace(/\t=(.*?)%>/g, "',$1,'")
.split(" ")
.join("');")
.split("%>")
.join("p.push('")
.split("\r")
.join("\\'") +
"');}return p.join('');"
)
: (s[t] = s[t]);
return i ? e(i) : e;
}
if (t instanceof Function) return t(i);
var s = {};
return e(t, i);
})),
w =
((s.generateLabels = function (t, i, e, s) {
var o = new Array(i);
return (
labelTemplateString &&
n(o, function (i, n) {
o[n] = C(t, { value: e + s * (n + 1) });
}),
o
);
}),
(s.easingEffects = {
linear: function (t) {
return t;
},
easeInQuad: function (t) {
return t * t;
},
easeOutQuad: function (t) {
return -1 * t * (t - 2);
},
easeInOutQuad: function (t) {
return (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1);
},
easeInCubic: function (t) {
return t * t * t;
},
easeOutCubic: function (t) {
return 1 * ((t = t / 1 - 1) * t * t + 1);
},
easeInOutCubic: function (t) {
return (t /= 0.5) < 1
? 0.5 * t * t * t
: 0.5 * ((t -= 2) * t * t + 2);
},
easeInQuart: function (t) {
return t * t * t * t;
},
easeOutQuart: function (t) {
return -1 * ((t = t / 1 - 1) * t * t * t - 1);
},
easeInOutQuart: function (t) {
return (t /= 0.5) < 1
? 0.5 * t * t * t * t
: -0.5 * ((t -= 2) * t * t * t - 2);
},
easeInQuint: function (t) {
return 1 * (t /= 1) * t * t * t * t;
},
easeOutQuint: function (t) {
return 1 * ((t = t / 1 - 1) * t * t * t * t + 1);
},
easeInOutQuint: function (t) {
return (t /= 0.5) < 1
? 0.5 * t * t * t * t * t
: 0.5 * ((t -= 2) * t * t * t * t + 2);
},
easeInSine: function (t) {
return -1 * Math.cos((t / 1) * (Math.PI / 2)) + 1;
},
easeOutSine: function (t) {
return 1 * Math.sin((t / 1) * (Math.PI / 2));
},
easeInOutSine: function (t) {
return -0.5 * (Math.cos((Math.PI * t) / 1) - 1);
},
easeInExpo: function (t) {
return 0 === t ? 1 : 1 * Math.pow(2, 10 * (t / 1 - 1));
},
easeOutExpo: function (t) {
return 1 === t ? 1 : 1 * (-Math.pow(2, (-10 * t) / 1) + 1);
},
easeInOutExpo: function (t) {
return 0 === t
? 0
: 1 === t
? 1
: (t /= 0.5) < 1
? 0.5 * Math.pow(2, 10 * (t - 1))
: 0.5 * (-Math.pow(2, -10 * --t) + 2);
},
easeInCirc: function (t) {
return t >= 1 ? t : -1 * (Math.sqrt(1 - (t /= 1) * t) - 1);
},
easeOutCirc: function (t) {
return 1 * Math.sqrt(1 - (t = t / 1 - 1) * t);
},
easeInOutCirc: function (t) {
return (t /= 0.5) < 1
? -0.5 * (Math.sqrt(1 - t * t) - 1)
: 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);
},
easeInElastic: function (t) {
var i = 1.70158,
e = 0,
s = 1;
return 0 === t
? 0
: 1 == (t /= 1)
? 1
: (e || (e = 0.3),
s < Math.abs(1)
? ((s = 1), (i = e / 4))
: (i = (e / (2 * Math.PI)) * Math.asin(1 / s)),
-(
s *
Math.pow(2, 10 * (t -= 1)) *
Math.sin((2 * (1 * t - i) * Math.PI) / e)
));
},
easeOutElastic: function (t) {
var i = 1.70158,
e = 0,
s = 1;
return 0 === t
? 0
: 1 == (t /= 1)
? 1
: (e || (e = 0.3),
s < Math.abs(1)
? ((s = 1), (i = e / 4))
: (i = (e / (2 * Math.PI)) * Math.asin(1 / s)),
s *
Math.pow(2, -10 * t) *
Math.sin((2 * (1 * t - i) * Math.PI) / e) +
1);
},
easeInOutElastic: function (t) {
var i = 1.70158,
e = 0,
s = 1;
return 0 === t
? 0
: 2 == (t /= 0.5)
? 1
: (e || (e = 0.3 * 1.5),
s < Math.abs(1)
? ((s = 1), (i = e / 4))
: (i = (e / (2 * Math.PI)) * Math.asin(1 / s)),
1 > t
? -0.5 *
s *
Math.pow(2, 10 * (t -= 1)) *
Math.sin((2 * (1 * t - i) * Math.PI) / e)
: s *
Math.pow(2, -10 * (t -= 1)) *
Math.sin((2 * (1 * t - i) * Math.PI) / e) *
0.5 +
1);
},
easeInBack: function (t) {
var i = 1.70158;
return 1 * (t /= 1) * t * ((i + 1) * t - i);
},
easeOutBack: function (t) {
var i = 1.70158;
return 1 * ((t = t / 1 - 1) * t * ((i + 1) * t + i) + 1);
},
easeInOutBack: function (t) {
var i = 1.70158;
return (t /= 0.5) < 1
? 0.5 * t * t * (((i *= 1.525) + 1) * t - i)
: 0.5 * ((t -= 2) * t * (((i *= 1.525) + 1) * t + i) + 2);
},
easeInBounce: function (t) {
return 1 - w.easeOutBounce(1 - t);
},
easeOutBounce: function (t) {
return (t /= 1) < 1 / 2.75
? 7.5625 * t * t
: 2 / 2.75 > t
? 1 * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75)
: 2.5 / 2.75 > t
? 1 * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375)
: 1 * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375);
},
easeInOutBounce: function (t) {
return 0.5 > t
? 0.5 * w.easeInBounce(2 * t)
: 0.5 * w.easeOutBounce(2 * t - 1) + 0.5;
},
})),
b = (s.requestAnimFrame = (function () {
return (
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (t) {
return window.setTimeout(t, 1e3 / 60);
}
);
})()),
P = (s.cancelAnimFrame = (function () {
return (
window.cancelAnimationFrame ||
window.webkitCancelAnimationFrame ||
window.mozCancelAnimationFrame ||
window.oCancelAnimationFrame ||
window.msCancelAnimationFrame ||
function (t) {
return window.clearTimeout(t, 1e3 / 60);
}
);
})()),
L =
((s.animationLoop = function (t, i, e, s, n, o) {
var a = 0,
h = w[e] || w.linear,
l = function () {
a++;
var e = a / i,
r = h(e);
t.call(o, r, e, a),
s.call(o, r, e),
i > a ? (o.animationFrame = b(l)) : n.apply(o);
};
b(l);
}),
(s.getRelativePosition = function (t) {
var i,
e,
s = t.originalEvent || t,
n = t.currentTarget || t.srcElement,
o = n.getBoundingClientRect();
return (
s.touches
? ((i = s.touches[0].clientX - o.left),
(e = s.touches[0].clientY - o.top))
: ((i = s.clientX - o.left), (e = s.clientY - o.top)),
{ x: i, y: e }
);
}),
(s.addEvent = function (t, i, e) {
t.addEventListener
? t.addEventListener(i, e)
: t.attachEvent
? t.attachEvent("on" + i, e)
: (t["on" + i] = e);
})),
k = (s.removeEvent = function (t, i, e) {
t.removeEventListener
? t.removeEventListener(i, e, !1)
: t.detachEvent
? t.detachEvent("on" + i, e)
: (t["on" + i] = c);
}),
F =
((s.bindEvents = function (t, i, e) {
t.events || (t.events = {}),
n(i, function (i) {
(t.events[i] = function () {
e.apply(t, arguments);
}),
L(t.chart.canvas, i, t.events[i]);
});
}),
(s.unbindEvents = function (t, i) {
n(i, function (i, e) {
k(t.chart.canvas, e, i);
});
})),
R = (s.getMaximumWidth = function (t) {
var i = t.parentNode;
return i.clientWidth;
}),
T = (s.getMaximumHeight = function (t) {
var i = t.parentNode;
return i.clientHeight;
}),
A =
((s.getMaximumSize = s.getMaximumWidth),
(s.retinaScale = function (t) {
var i = t.ctx,
e = t.canvas.width,
s = t.canvas.height;
window.devicePixelRatio &&
((i.canvas.style.width = e + "px"),
(i.canvas.style.height = s + "px"),
(i.canvas.height = s * window.devicePixelRatio),
(i.canvas.width = e * window.devicePixelRatio),
i.scale(window.devicePixelRatio, window.devicePixelRatio));
})),
M = (s.clear = function (t) {
t.ctx.clearRect(0, 0, t.width, t.height);
}),
W = (s.fontString = function (t, i, e) {
return i + " " + t + "px " + e;
}),
z = (s.longestText = function (t, i, e) {
t.font = i;
var s = 0;
return (
n(e, function (i) {
var e = t.measureText(i).width;
s = e > s ? e : s;
}),
s
);
}),
B = (s.drawRoundedRectangle = function (t, i, e, s, n, o) {
t.beginPath(),
t.moveTo(i + o, e),
t.lineTo(i + s - o, e),
t.quadraticCurveTo(i + s, e, i + s, e + o),
t.lineTo(i + s, e + n - o),
t.quadraticCurveTo(i + s, e + n, i + s - o, e + n),
t.lineTo(i + o, e + n),
t.quadraticCurveTo(i, e + n, i, e + n - o),
t.lineTo(i, e + o),
t.quadraticCurveTo(i, e, i + o, e),
t.closePath();
});
(e.instances = {}),
(e.Type = function (t, i, s) {
(this.options = i),
(this.chart = s),
(this.id = u()),
(e.instances[this.id] = this),
i.responsive && this.resize(),
this.initialize.call(this, t);
}),
a(e.Type.prototype, {
initialize: function () {
return this;
},
clear: function () {
return M(this.chart), this;
},
stop: function () {
return P(this.animationFrame), this;
},
resize: function (t) {
this.stop();
var i = this.chart.canvas,
e = R(this.chart.canvas),
s = this.options.maintainAspectRatio
? e / this.chart.aspectRatio
: T(this.chart.canvas);
return (
(i.width = this.chart.width = e),
(i.height = this.chart.height = s),
A(this.chart),
"function" == typeof t &&
t.apply(this, Array.prototype.slice.call(arguments, 1)),
this
);
},
reflow: c,
render: function (t) {
return (
t && this.reflow(),
this.options.animation && !t
? s.animationLoop(
this.draw,
this.options.animationSteps,
this.options.animationEasing,
this.options.onAnimationProgress,
this.options.onAnimationComplete,
this
)
: (this.draw(), this.options.onAnimationComplete.call(this)),
this
);
},
generateLegend: function () {
return C(this.options.legendTemplate, this);
},
destroy: function () {
this.clear(), F(this, this.events);
var t = this.chart.canvas;
(t.width = this.chart.width),
(t.height = this.chart.height),
t.style.removeProperty
? (t.style.removeProperty("width"),
t.style.removeProperty("height"))
: (t.style.removeAttribute("width"),
t.style.removeAttribute("height")),
delete e.instances[this.id];
},
showTooltip: function (t, i) {
"undefined" == typeof this.activeElements && (this.activeElements = []);
var o = function (t) {
var i = !1;
return t.length !== this.activeElements.length
? (i = !0)
: (n(
t,
function (t, e) {
t !== this.activeElements[e] && (i = !0);
},
this
),
i);
}.call(this, t);
if (o || i) {
if (
((this.activeElements = t),
this.draw(),
this.options.customTooltips && this.options.customTooltips(!1),
t.length > 0)
)
if (this.datasets && this.datasets.length > 1) {
for (
var a, h, r = this.datasets.length - 1;
r >= 0 &&
((a =
this.datasets[r].points ||
this.datasets[r].bars ||
this.datasets[r].segments),
(h = l(a, t[0])),
-1 === h);
r--
);
var c = [],
u = [],
d = function () {
var t,
i,
e,
n,
o,
a = [],
l = [],
r = [];
return (
s.each(this.datasets, function (i) {
(t = i.points || i.bars || i.segments),
t[h] && t[h].hasValue() && a.push(t[h]);
}),
s.each(
a,
function (t) {
l.push(t.x),
r.push(t.y),
c.push(
s.template(this.options.multiTooltipTemplate, t)
),
u.push({
fill: t._saved.fillColor || t.fillColor,
stroke: t._saved.strokeColor || t.strokeColor,
});
},
this
),
(o = m(r)),
(e = g(r)),
(n = m(l)),
(i = g(l)),
{ x: n > this.chart.width / 2 ? n : i, y: (o + e) / 2 }
);
}.call(this, h);
new e.MultiTooltip({
x: d.x,
y: d.y,
xPadding: this.options.tooltipXPadding,
yPadding: this.options.tooltipYPadding,
xOffset: this.options.tooltipXOffset,
fillColor: this.options.tooltipFillColor,
textColor: this.options.tooltipFontColor,
fontFamily: this.options.tooltipFontFamily,
fontStyle: this.options.tooltipFontStyle,
fontSize: this.options.tooltipFontSize,
titleTextColor: this.options.tooltipTitleFontColor,
titleFontFamily: this.options.tooltipTitleFontFamily,
titleFontStyle: this.options.tooltipTitleFontStyle,
titleFontSize: this.options.tooltipTitleFontSize,
cornerRadius: this.options.tooltipCornerRadius,
labels: c,
legendColors: u,
legendColorBackground: this.options.multiTooltipKeyBackground,
title: t[0].label,
chart: this.chart,
ctx: this.chart.ctx,
custom: this.options.customTooltips,
}).draw();
} else
n(
t,
function (t) {
var i = t.tooltipPosition();
new e.Tooltip({
x: Math.round(i.x),
y: Math.round(i.y),
xPadding: this.options.tooltipXPadding,
yPadding: this.options.tooltipYPadding,
fillColor: this.options.tooltipFillColor,
textColor: this.options.tooltipFontColor,
fontFamily: this.options.tooltipFontFamily,
fontStyle: this.options.tooltipFontStyle,
fontSize: this.options.tooltipFontSize,
caretHeight: this.options.tooltipCaretSize,
cornerRadius: this.options.tooltipCornerRadius,
text: C(this.options.tooltipTemplate, t),
chart: this.chart,
custom: this.options.customTooltips,
}).draw();
},
this
);
return this;
}
},
toBase64Image: function () {
return this.chart.canvas.toDataURL.apply(this.chart.canvas, arguments);
},
}),
(e.Type.extend = function (t) {
var i = this,
s = function () {
return i.apply(this, arguments);
};
if (
((s.prototype = o(i.prototype)),
a(s.prototype, t),
(s.extend = e.Type.extend),
t.name || i.prototype.name)
) {
var n = t.name || i.prototype.name,
l = e.defaults[i.prototype.name]
? o(e.defaults[i.prototype.name])
: {};
(e.defaults[n] = a(l, t.defaults)),
(e.types[n] = s),
(e.prototype[n] = function (t, i) {
var o = h(e.defaults.global, e.defaults[n], i || {});
return new s(t, o, this);
});
} else
d("Name not provided for this chart, so it hasn't been registered");
return i;
}),
(e.Element = function (t) {
a(this, t), this.initialize.apply(this, arguments), this.save();
}),
a(e.Element.prototype, {
initialize: function () {},
restore: function (t) {
return (
t
? n(
t,
function (t) {
this[t] = this._saved[t];
},
this
)
: a(this, this._saved),
this
);
},
save: function () {
return (this._saved = o(this)), delete this._saved._saved, this;
},
update: function (t) {
return (
n(
t,
function (t, i) {
(this._saved[i] = this[i]), (this[i] = t);
},
this
),
this
);
},
transition: function (t, i) {
return (
n(
t,
function (t, e) {
this[e] = (t - this._saved[e]) * i + this._saved[e];
},
this
),
this
);
},
tooltipPosition: function () {
return { x: this.x, y: this.y };
},
hasValue: function () {
return f(this.value);
},
}),
(e.Element.extend = r),
(e.Point = e.Element.extend({
display: !0,
inRange: function (t, i) {
var e = this.hitDetectionRadius + this.radius;
return (
Math.pow(t - this.x, 2) + Math.pow(i - this.y, 2) < Math.pow(e, 2)
);
},
draw: function () {
if (this.display) {
var t = this.ctx;
t.beginPath(),
t.arc(this.x, this.y, this.radius, 0, 2 * Math.PI),
t.closePath(),
(t.strokeStyle = this.strokeColor),
(t.lineWidth = this.strokeWidth),
(t.fillStyle = this.fillColor),
t.fill(),
t.stroke();
}
},
})),
(e.Arc = e.Element.extend({
inRange: function (t, i) {
var e = s.getAngleFromPoint(this, { x: t, y: i }),
n = e.angle >= this.startAngle && e.angle <= this.endAngle,
o = e.distance >= this.innerRadius && e.distance <= this.outerRadius;
return n && o;
},
tooltipPosition: function () {
var t = this.startAngle + (this.endAngle - this.startAngle) / 2,
i = (this.outerRadius - this.innerRadius) / 2 + this.innerRadius;
return { x: this.x + Math.cos(t) * i, y: this.y + Math.sin(t) * i };
},
draw: function (t) {
var i = this.ctx;
i.beginPath(),
i.arc(
this.x,
this.y,
this.outerRadius,
this.startAngle,
this.endAngle
),
i.arc(
this.x,
this.y,
this.innerRadius,
this.endAngle,
this.startAngle,
!0
),
i.closePath(),
(i.strokeStyle = this.strokeColor),
(i.lineWidth = this.strokeWidth),
(i.fillStyle = this.fillColor),
i.fill(),
(i.lineJoin = "bevel"),
this.showStroke && i.stroke();
},
})),
(e.Rectangle = e.Element.extend({
draw: function () {
var t = this.ctx,
i = this.width / 2,
e = this.x - i,
s = this.x + i,
n = this.base - (this.base - this.y),
o = this.strokeWidth / 2;
this.showStroke && ((e += o), (s -= o), (n += o)),
t.beginPath(),
(t.fillStyle = this.fillColor),
(t.strokeStyle = this.strokeColor),
(t.lineWidth = this.strokeWidth),
t.moveTo(e, this.base),
t.lineTo(e, n),
t.lineTo(s, n),
t.lineTo(s, this.base),
t.fill(),
this.showStroke && t.stroke();
},
height: function () {
return this.base - this.y;
},
inRange: function (t, i) {
return (
t >= this.x - this.width / 2 &&
t <= this.x + this.width / 2 &&
i >= this.y &&
i <= this.base
);
},
})),
(e.Tooltip = e.Element.extend({
draw: function () {
var t = this.chart.ctx;
(t.font = W(this.fontSize, this.fontStyle, this.fontFamily)),
(this.xAlign = "center"),
(this.yAlign = "above");
var i = (this.caretPadding = 2),
e = t.measureText(this.text).width + 2 * this.xPadding,
s = this.fontSize + 2 * this.yPadding,
n = s + this.caretHeight + i;
this.x + e / 2 > this.chart.width
? (this.xAlign = "left")
: this.x - e / 2 < 0 && (this.xAlign = "right"),
this.y - n < 0 && (this.yAlign = "below");
var o = this.x - e / 2,
a = this.y - n;
if (((t.fillStyle = this.fillColor), this.custom)) this.custom(this);
else {
switch (this.yAlign) {
case "above":
t.beginPath(),
t.moveTo(this.x, this.y - i),
t.lineTo(
this.x + this.caretHeight,
this.y - (i + this.caretHeight)
),
t.lineTo(
this.x - this.caretHeight,
this.y - (i + this.caretHeight)
),
t.closePath(),
t.fill();
break;
case "below":
(a = this.y + i + this.caretHeight),
t.beginPath(),
t.moveTo(this.x, this.y + i),
t.lineTo(
this.x + this.caretHeight,
this.y + i + this.caretHeight
),
t.lineTo(
this.x - this.caretHeight,
this.y + i + this.caretHeight
),
t.closePath(),
t.fill();
}
switch (this.xAlign) {
case "left":
o = this.x - e + (this.cornerRadius + this.caretHeight);
break;
case "right":
o = this.x - (this.cornerRadius + this.caretHeight);
}
B(t, o, a, e, s, this.cornerRadius),
t.fill(),
(t.fillStyle = this.textColor),
(t.textAlign = "center"),
(t.textBaseline = "middle"),
t.fillText(this.text, o + e / 2, a + s / 2);
}
},
})),
(e.MultiTooltip = e.Element.extend({
initialize: function () {
(this.font = W(this.fontSize, this.fontStyle, this.fontFamily)),
(this.titleFont = W(
this.titleFontSize,
this.titleFontStyle,
this.titleFontFamily
)),
(this.height =
this.labels.length * this.fontSize +
(this.labels.length - 1) * (this.fontSize / 2) +
2 * this.yPadding +
1.5 * this.titleFontSize),
(this.ctx.font = this.titleFont);
var t = this.ctx.measureText(this.title).width,
i = z(this.ctx, this.font, this.labels) + this.fontSize + 3,
e = g([i, t]);
this.width = e + 2 * this.xPadding;
var s = this.height / 2;
this.y - s < 0
? (this.y = s)
: this.y + s > this.chart.height && (this.y = this.chart.height - s),
this.x > this.chart.width / 2
? (this.x -= this.xOffset + this.width)
: (this.x += this.xOffset);
},
getLineHeight: function (t) {
var i = this.y - this.height / 2 + this.yPadding,
e = t - 1;
return 0 === t
? i + this.titleFontSize / 2
: i +
(1.5 * this.fontSize * e + this.fontSize / 2) +
1.5 * this.titleFontSize;
},
draw: function () {
if (this.custom) this.custom(this);
else {
B(
this.ctx,
this.x,
this.y - this.height / 2,
this.width,
this.height,
this.cornerRadius
);
var t = this.ctx;
(t.fillStyle = this.fillColor),
t.fill(),
t.closePath(),
(t.textAlign = "left"),
(t.textBaseline = "middle"),
(t.fillStyle = this.titleTextColor),
(t.font = this.titleFont),
t.fillText(
this.title,
this.x + this.xPadding,
this.getLineHeight(0)
),
(t.font = this.font),
s.each(
this.labels,
function (i, e) {
(t.fillStyle = this.textColor),
t.fillText(
i,
this.x + this.xPadding + this.fontSize + 3,
this.getLineHeight(e + 1)
),
(t.fillStyle = this.legendColorBackground),
t.fillRect(
this.x + this.xPadding,
this.getLineHeight(e + 1) - this.fontSize / 2,
this.fontSize,
this.fontSize
),
(t.fillStyle = this.legendColors[e].fill),
t.fillRect(
this.x + this.xPadding,
this.getLineHeight(e + 1) - this.fontSize / 2,
this.fontSize,
this.fontSize
);
},
this
);
}
},
})),
(e.Scale = e.Element.extend({
initialize: function () {
this.fit();
},
buildYLabels: function () {
this.yLabels = [];
for (var t = v(this.stepValue), i = 0; i <= this.steps; i++)
this.yLabels.push(
C(this.templateString, {
value: (this.min + i * this.stepValue).toFixed(t),
})
);
this.yLabelWidth =
this.display && this.showLabels
? z(this.ctx, this.font, this.yLabels)
: 0;
},
addXLabel: function (t) {
this.xLabels.push(t), this.valuesCount++, this.fit();
},
removeXLabel: function () {
this.xLabels.shift(), this.valuesCount--, this.fit();
},
fit: function () {
(this.startPoint = this.display ? this.fontSize : 0),
(this.endPoint = this.display
? this.height - 1.5 * this.fontSize - 5
: this.height),
(this.startPoint += this.padding),
(this.endPoint -= this.padding);
var t,
i = this.endPoint - this.startPoint;
for (
this.calculateYRange(i),
this.buildYLabels(),
this.calculateXLabelRotation();
i > this.endPoint - this.startPoint;
)
(i = this.endPoint - this.startPoint),
(t = this.yLabelWidth),
this.calculateYRange(i),
this.buildYLabels(),
t < this.yLabelWidth && this.calculateXLabelRotation();
},
calculateXLabelRotation: function () {
this.ctx.font = this.font;
var t,
i,
e = this.ctx.measureText(this.xLabels[0]).width,
s = this.ctx.measureText(this.xLabels[this.xLabels.length - 1]).width;
if (
((this.xScalePaddingRight = s / 2 + 3),
(this.xScalePaddingLeft =
e / 2 > this.yLabelWidth + 10 ? e / 2 : this.yLabelWidth + 10),
(this.xLabelRotation = 0),
this.display)
) {
var n,
o = z(this.ctx, this.font, this.xLabels);
this.xLabelWidth = o;
for (
var a = Math.floor(this.calculateX(1) - this.calculateX(0)) - 6;
(this.xLabelWidth > a && 0 === this.xLabelRotation) ||
(this.xLabelWidth > a &&
this.xLabelRotation <= 90 &&
this.xLabelRotation > 0);
)
(n = Math.cos(S(this.xLabelRotation))),
(t = n * e),
(i = n * s),
t + this.fontSize / 2 > this.yLabelWidth + 8 &&
(this.xScalePaddingLeft = t + this.fontSize / 2),
(this.xScalePaddingRight = this.fontSize / 2),
this.xLabelRotation++,
(this.xLabelWidth = n * o);
this.xLabelRotation > 0 &&
(this.endPoint -= Math.sin(S(this.xLabelRotation)) * o + 3);
} else
(this.xLabelWidth = 0),
(this.xScalePaddingRight = this.padding),
(this.xScalePaddingLeft = this.padding);
},
calculateYRange: c,
drawingArea: function () {
return this.startPoint - this.endPoint;
},
calculateY: function (t) {
var i = this.drawingArea() / (this.min - this.max);
return this.endPoint - i * (t - this.min);
},
calculateX: function (t) {
var i =
(this.xLabelRotation > 0,
this.width - (this.xScalePaddingLeft + this.xScalePaddingRight)),
e =
i / Math.max(this.valuesCount - (this.offsetGridLines ? 0 : 1), 1),
s = e * t + this.xScalePaddingLeft;
return this.offsetGridLines && (s += e / 2), Math.round(s);
},
update: function (t) {
s.extend(this, t), this.fit();
},
draw: function () {
var t = this.ctx,
i = (this.endPoint - this.startPoint) / this.steps,
e = Math.round(this.xScalePaddingLeft);
this.display &&
((t.fillStyle = this.textColor),
(t.font = this.font),
n(
this.yLabels,
function (n, o) {
var a = this.endPoint - i * o,
h = Math.round(a),
l = this.showHorizontalLines;
(t.textAlign = "right"),
(t.textBaseline = "middle"),
this.showLabels && t.fillText(n, e - 10, a),
0 !== o || l || (l = !0),
l && t.beginPath(),
o > 0
? ((t.lineWidth = this.gridLineWidth),
(t.strokeStyle = this.gridLineColor))
: ((t.lineWidth = this.lineWidth),
(t.strokeStyle = this.lineColor)),
(h += s.aliasPixel(t.lineWidth)),
l &&
(t.moveTo(e, h),
t.lineTo(this.width, h),
t.stroke(),
t.closePath()),
(t.lineWidth = this.lineWidth),
(t.strokeStyle = this.lineColor),
t.beginPath(),
t.moveTo(e - 5, h),
t.lineTo(e, h),
t.stroke(),
t.closePath();
},
this
),
n(
this.xLabels,
function (i, e) {
var s = this.calculateX(e) + x(this.lineWidth),
n =
this.calculateX(e - (this.offsetGridLines ? 0.5 : 0)) +
x(this.lineWidth),
o = this.xLabelRotation > 0,
a = this.showVerticalLines;
0 !== e || a || (a = !0),
a && t.beginPath(),
e > 0
? ((t.lineWidth = this.gridLineWidth),
(t.strokeStyle = this.gridLineColor))
: ((t.lineWidth = this.lineWidth),
(t.strokeStyle = this.lineColor)),
a &&
(t.moveTo(n, this.endPoint),
t.lineTo(n, this.startPoint - 3),
t.stroke(),
t.closePath()),
(t.lineWidth = this.lineWidth),
(t.strokeStyle = this.lineColor),
t.beginPath(),
t.moveTo(n, this.endPoint),
t.lineTo(n, this.endPoint + 5),
t.stroke(),
t.closePath(),
t.save(),
t.translate(s, o ? this.endPoint + 12 : this.endPoint + 8),
t.rotate(-1 * S(this.xLabelRotation)),
(t.font = this.font),
(t.textAlign = o ? "right" : "center"),
(t.textBaseline = o ? "middle" : "top"),
t.fillText(i, 0, 0),
t.restore();
},
this
));
},
})),
(e.RadialScale = e.Element.extend({
initialize: function () {
(this.size = m([this.height, this.width])),
(this.drawingArea = this.display
? this.size / 2 - (this.fontSize / 2 + this.backdropPaddingY)
: this.size / 2);
},
calculateCenterOffset: function (t) {
var i = this.drawingArea / (this.max - this.min);
return (t - this.min) * i;
},
update: function () {
this.lineArc
? (this.drawingArea = this.display
? this.size / 2 - (this.fontSize / 2 + this.backdropPaddingY)
: this.size / 2)
: this.setScaleSize(),
this.buildYLabels();
},
buildYLabels: function () {
this.yLabels = [];
for (var t = v(this.stepValue), i = 0; i <= this.steps; i++)
this.yLabels.push(
C(this.templateString, {
value: (this.min + i * this.stepValue).toFixed(t),
})
);
},
getCircumference: function () {
return (2 * Math.PI) / this.valuesCount;
},
setScaleSize: function () {
var t,
i,
e,
s,
n,
o,
a,
h,
l,
r,
c,
u,
d = m([
this.height / 2 - this.pointLabelFontSize - 5,
this.width / 2,
]),
p = this.width,
g = 0;
for (
this.ctx.font = W(
this.pointLabelFontSize,
this.pointLabelFontStyle,
this.pointLabelFontFamily
),
i = 0;
i < this.valuesCount;
i++
)
(t = this.getPointPosition(i, d)),
(e =
this.ctx.measureText(
C(this.templateString, { value: this.labels[i] })
).width + 5),
0 === i || i === this.valuesCount / 2
? ((s = e / 2),
t.x + s > p && ((p = t.x + s), (n = i)),
t.x - s < g && ((g = t.x - s), (a = i)))
: i < this.valuesCount / 2
? t.x + e > p && ((p = t.x + e), (n = i))
: i > this.valuesCount / 2 &&
t.x - e < g &&
((g = t.x - e), (a = i));
(l = g),
(r = Math.ceil(p - this.width)),
(o = this.getIndexAngle(n)),
(h = this.getIndexAngle(a)),
(c = r / Math.sin(o + Math.PI / 2)),
(u = l / Math.sin(h + Math.PI / 2)),
(c = f(c) ? c : 0),
(u = f(u) ? u : 0),
(this.drawingArea = d - (u + c) / 2),
this.setCenterPoint(u, c);
},
setCenterPoint: function (t, i) {
var e = this.width - i - this.drawingArea,
s = t + this.drawingArea;
(this.xCenter = (s + e) / 2), (this.yCenter = this.height / 2);
},
getIndexAngle: function (t) {
var i = (2 * Math.PI) / this.valuesCount;
return t * i - Math.PI / 2;
},
getPointPosition: function (t, i) {
var e = this.getIndexAngle(t);
return {
x: Math.cos(e) * i + this.xCenter,
y: Math.sin(e) * i + this.yCenter,
};
},
draw: function () {
if (this.display) {
var t = this.ctx;
if (
(n(
this.yLabels,
function (i, e) {
if (e > 0) {
var s,
n = e * (this.drawingArea / this.steps),
o = this.yCenter - n;
if (this.lineWidth > 0)
if (
((t.strokeStyle = this.lineColor),
(t.lineWidth = this.lineWidth),
this.lineArc)
)
t.beginPath(),
t.arc(this.xCenter, this.yCenter, n, 0, 2 * Math.PI),
t.closePath(),
t.stroke();
else {
t.beginPath();
for (var a = 0; a < this.valuesCount; a++)
(s = this.getPointPosition(
a,
this.calculateCenterOffset(
this.min + e * this.stepValue
)
)),
0 === a ? t.moveTo(s.x, s.y) : t.lineTo(s.x, s.y);
t.closePath(), t.stroke();
}
if (this.showLabels) {
if (
((t.font = W(
this.fontSize,
this.fontStyle,
this.fontFamily
)),
this.showLabelBackdrop)
) {
var h = t.measureText(i).width;
(t.fillStyle = this.backdropColor),
t.fillRect(
this.xCenter - h / 2 - this.backdropPaddingX,
o - this.fontSize / 2 - this.backdropPaddingY,
h + 2 * this.backdropPaddingX,
this.fontSize + 2 * this.backdropPaddingY
);
}
(t.textAlign = "center"),
(t.textBaseline = "middle"),
(t.fillStyle = this.fontColor),
t.fillText(i, this.xCenter, o);
}
}
},
this
),
!this.lineArc)
) {
(t.lineWidth = this.angleLineWidth),
(t.strokeStyle = this.angleLineColor);
for (var i = this.valuesCount - 1; i >= 0; i--) {
if (this.angleLineWidth > 0) {
var e = this.getPointPosition(
i,
this.calculateCenterOffset(this.max)
);
t.beginPath(),
t.moveTo(this.xCenter, this.yCenter),
t.lineTo(e.x, e.y),
t.stroke(),
t.closePath();
}
var s = this.getPointPosition(
i,
this.calculateCenterOffset(this.max) + 5
);
(t.font = W(
this.pointLabelFontSize,
this.pointLabelFontStyle,
this.pointLabelFontFamily
)),
(t.fillStyle = this.pointLabelFontColor);
var o = this.labels.length,
a = this.labels.length / 2,
h = a / 2,
l = h > i || i > o - h,
r = i === h || i === o - h;
(t.textAlign =
0 === i
? "center"
: i === a
? "center"
: a > i
? "left"
: "right"),
(t.textBaseline = r ? "middle" : l ? "bottom" : "top"),
t.fillText(this.labels[i], s.x, s.y);
}
}
}
},
})),
s.addEvent(
window,
"resize",
(function () {
var t;
return function () {
clearTimeout(t),
(t = setTimeout(function () {
n(e.instances, function (t) {
t.options.responsive && t.resize(t.render, !0);
});
}, 50));
};
})()
),
p
? define(function () {
return e;
})
: "object" == typeof module && module.exports && (module.exports = e),
(t.Chart = e),
(e.noConflict = function () {
return (t.Chart = i), e;
});
}.call(this),
function () {
"use strict";
var t = this,
i = t.Chart,
e = i.helpers,
s = {
scaleBeginAtZero: !0,
scaleShowGridLines: !0,
scaleGridLineColor: "rgba(0,0,0,.05)",
scaleGridLineWidth: 1,
scaleShowHorizontalLines: !0,
scaleShowVerticalLines: !0,
barShowStroke: !0,
barStrokeWidth: 2,
barValueSpacing: 5,
barDatasetSpacing: 1,
legendTemplate:
'<% for (var i=0; i- <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
<%}%>
',
};
i.Type.extend({
name: "Bar",
defaults: s,
initialize: function (t) {
var s = this.options;
(this.ScaleClass = i.Scale.extend({
offsetGridLines: !0,
calculateBarX: function (t, i, e) {
var n = this.calculateBaseWidth(),
o = this.calculateX(e) - n / 2,
a = this.calculateBarWidth(t);
return o + a * i + i * s.barDatasetSpacing + a / 2;
},
calculateBaseWidth: function () {
return (
this.calculateX(1) - this.calculateX(0) - 2 * s.barValueSpacing
);
},
calculateBarWidth: function (t) {
var i = this.calculateBaseWidth() - (t - 1) * s.barDatasetSpacing;
return i / t;
},
})),
(this.datasets = []),
this.options.showTooltips &&
e.bindEvents(this, this.options.tooltipEvents, function (t) {
var i = "mouseout" !== t.type ? this.getBarsAtEvent(t) : [];
this.eachBars(function (t) {
t.restore(["fillColor", "strokeColor"]);
}),
e.each(i, function (t) {
(t.fillColor = t.highlightFill),
(t.strokeColor = t.highlightStroke);
}),
this.showTooltip(i);
}),
(this.BarClass = i.Rectangle.extend({
strokeWidth: this.options.barStrokeWidth,
showStroke: this.options.barShowStroke,
ctx: this.chart.ctx,
})),
e.each(
t.datasets,
function (i) {
var s = {
label: i.label || null,
fillColor: i.fillColor,
strokeColor: i.strokeColor,
bars: [],
};
this.datasets.push(s),
e.each(
i.data,
function (e, n) {
s.bars.push(
new this.BarClass({
value: e,
label: t.labels[n],
datasetLabel: i.label,
strokeColor: i.strokeColor,
fillColor: i.fillColor,
highlightFill: i.highlightFill || i.fillColor,
highlightStroke: i.highlightStroke || i.strokeColor,
})
);
},
this
);
},
this
),
this.buildScale(t.labels),
(this.BarClass.prototype.base = this.scale.endPoint),
this.eachBars(function (t, i, s) {
e.extend(t, {
width: this.scale.calculateBarWidth(this.datasets.length),
x: this.scale.calculateBarX(this.datasets.length, s, i),
y: this.scale.endPoint,
}),
t.save();
}, this),
this.render();
},
update: function () {
this.scale.update(),
e.each(this.activeElements, function (t) {
t.restore(["fillColor", "strokeColor"]);
}),
this.eachBars(function (t) {
t.save();
}),
this.render();
},
eachBars: function (t) {
e.each(
this.datasets,
function (i, s) {
e.each(i.bars, t, this, s);
},
this
);
},
getBarsAtEvent: function (t) {
for (
var i,
s = [],
n = e.getRelativePosition(t),
o = function (t) {
s.push(t.bars[i]);
},
a = 0;
a < this.datasets.length;
a++
)
for (i = 0; i < this.datasets[a].bars.length; i++)
if (this.datasets[a].bars[i].inRange(n.x, n.y))
return e.each(this.datasets, o), s;
return s;
},
buildScale: function (t) {
var i = this,
s = function () {
var t = [];
return (
i.eachBars(function (i) {
t.push(i.value);
}),
t
);
},
n = {
templateString: this.options.scaleLabel,
height: this.chart.height,
width: this.chart.width,
ctx: this.chart.ctx,
textColor: this.options.scaleFontColor,
fontSize: this.options.scaleFontSize,
fontStyle: this.options.scaleFontStyle,
fontFamily: this.options.scaleFontFamily,
valuesCount: t.length,
beginAtZero: this.options.scaleBeginAtZero,
integersOnly: this.options.scaleIntegersOnly,
calculateYRange: function (t) {
var i = e.calculateScaleRange(
s(),
t,
this.fontSize,
this.beginAtZero,
this.integersOnly
);
e.extend(this, i);
},
xLabels: t,
font: e.fontString(
this.options.scaleFontSize,
this.options.scaleFontStyle,
this.options.scaleFontFamily
),
lineWidth: this.options.scaleLineWidth,
lineColor: this.options.scaleLineColor,
showHorizontalLines: this.options.scaleShowHorizontalLines,
showVerticalLines: this.options.scaleShowVerticalLines,
gridLineWidth: this.options.scaleShowGridLines
? this.options.scaleGridLineWidth
: 0,
gridLineColor: this.options.scaleShowGridLines
? this.options.scaleGridLineColor
: "rgba(0,0,0,0)",
padding: this.options.showScale
? 0
: this.options.barShowStroke
? this.options.barStrokeWidth
: 0,
showLabels: this.options.scaleShowLabels,
display: this.options.showScale,
};
this.options.scaleOverride &&
e.extend(n, {
calculateYRange: e.noop,
steps: this.options.scaleSteps,
stepValue: this.options.scaleStepWidth,
min: this.options.scaleStartValue,
max:
this.options.scaleStartValue +
this.options.scaleSteps * this.options.scaleStepWidth,
}),
(this.scale = new this.ScaleClass(n));
},
addData: function (t, i) {
e.each(
t,
function (t, e) {
this.datasets[e].bars.push(
new this.BarClass({
value: t,
label: i,
x: this.scale.calculateBarX(
this.datasets.length,
e,
this.scale.valuesCount + 1
),
y: this.scale.endPoint,
width: this.scale.calculateBarWidth(this.datasets.length),
base: this.scale.endPoint,
strokeColor: this.datasets[e].strokeColor,
fillColor: this.datasets[e].fillColor,
})
);
},
this
),
this.scale.addXLabel(i),
this.update();
},
removeData: function () {
this.scale.removeXLabel(),
e.each(
this.datasets,
function (t) {
t.bars.shift();
},
this
),
this.update();
},
reflow: function () {
e.extend(this.BarClass.prototype, {
y: this.scale.endPoint,
base: this.scale.endPoint,
});
var t = e.extend({
height: this.chart.height,
width: this.chart.width,
});
this.scale.update(t);
},
draw: function (t) {
var i = t || 1;
this.clear();
this.chart.ctx;
this.scale.draw(i),
e.each(
this.datasets,
function (t, s) {
e.each(
t.bars,
function (t, e) {
t.hasValue() &&
((t.base = this.scale.endPoint),
t
.transition(
{
x: this.scale.calculateBarX(
this.datasets.length,
s,
e
),
y: this.scale.calculateY(t.value),
width: this.scale.calculateBarWidth(
this.datasets.length
),
},
i
)
.draw());
},
this
);
},
this
);
},
});
}.call(this),
function () {
"use strict";
var t = this,
i = t.Chart,
e = i.helpers,
s = {
segmentShowStroke: !0,
segmentStrokeColor: "#fff",
segmentStrokeWidth: 2,
percentageInnerCutout: 50,
animationSteps: 100,
animationEasing: "easeOutBounce",
animateRotate: !0,
animateScale: !1,
legendTemplate:
'<% for (var i=0; i- <%if(segments[i].label){%><%=segments[i].label%><%}%>
<%}%>
',
};
i.Type.extend({
name: "Doughnut",
defaults: s,
initialize: function (t) {
(this.segments = []),
(this.outerRadius =
(e.min([this.chart.width, this.chart.height]) -
this.options.segmentStrokeWidth / 2) /
2),
(this.SegmentArc = i.Arc.extend({
ctx: this.chart.ctx,
x: this.chart.width / 2,
y: this.chart.height / 2,
})),
this.options.showTooltips &&
e.bindEvents(this, this.options.tooltipEvents, function (t) {
var i = "mouseout" !== t.type ? this.getSegmentsAtEvent(t) : [];
e.each(this.segments, function (t) {
t.restore(["fillColor"]);
}),
e.each(i, function (t) {
t.fillColor = t.highlightColor;
}),
this.showTooltip(i);
}),
this.calculateTotal(t),
e.each(
t,
function (t, i) {
this.addData(t, i, !0);
},
this
),
this.render();
},
getSegmentsAtEvent: function (t) {
var i = [],
s = e.getRelativePosition(t);
return (
e.each(
this.segments,
function (t) {
t.inRange(s.x, s.y) && i.push(t);
},
this
),
i
);
},
addData: function (t, i, e) {
var s = i || this.segments.length;
this.segments.splice(
s,
0,
new this.SegmentArc({
value: t.value,
outerRadius: this.options.animateScale ? 0 : this.outerRadius,
innerRadius: this.options.animateScale
? 0
: (this.outerRadius / 100) * this.options.percentageInnerCutout,
fillColor: t.color,
highlightColor: t.highlight || t.color,
showStroke: this.options.segmentShowStroke,
strokeWidth: this.options.segmentStrokeWidth,
strokeColor: this.options.segmentStrokeColor,
startAngle: 1.5 * Math.PI,
circumference: this.options.animateRotate
? 0
: this.calculateCircumference(t.value),
label: t.label,
})
),
e || (this.reflow(), this.update());
},
calculateCircumference: function (t) {
return 2 * Math.PI * (Math.abs(t) / this.total);
},
calculateTotal: function (t) {
(this.total = 0),
e.each(
t,
function (t) {
this.total += Math.abs(t.value);
},
this
);
},
update: function () {
this.calculateTotal(this.segments),
e.each(this.activeElements, function (t) {
t.restore(["fillColor"]);
}),
e.each(this.segments, function (t) {
t.save();
}),
this.render();
},
removeData: function (t) {
var i = e.isNumber(t) ? t : this.segments.length - 1;
this.segments.splice(i, 1), this.reflow(), this.update();
},
reflow: function () {
e.extend(this.SegmentArc.prototype, {
x: this.chart.width / 2,
y: this.chart.height / 2,
}),
(this.outerRadius =
(e.min([this.chart.width, this.chart.height]) -
this.options.segmentStrokeWidth / 2) /
2),
e.each(
this.segments,
function (t) {
t.update({
outerRadius: this.outerRadius,
innerRadius:
(this.outerRadius / 100) * this.options.percentageInnerCutout,
});
},
this
);
},
draw: function (t) {
var i = t ? t : 1;
this.clear(),
e.each(
this.segments,
function (t, e) {
t.transition(
{
circumference: this.calculateCircumference(t.value),
outerRadius: this.outerRadius,
innerRadius:
(this.outerRadius / 100) *
this.options.percentageInnerCutout,
},
i
),
(t.endAngle = t.startAngle + t.circumference),
t.draw(),
0 === e && (t.startAngle = 1.5 * Math.PI),
e < this.segments.length - 1 &&
(this.segments[e + 1].startAngle = t.endAngle);
},
this
);
},
}),
i.types.Doughnut.extend({
name: "Pie",
defaults: e.merge(s, { percentageInnerCutout: 0 }),
});
}.call(this),
function () {
"use strict";
var t = this,
i = t.Chart,
e = i.helpers,
s = {
scaleShowGridLines: !0,
scaleGridLineColor: "rgba(0,0,0,.05)",
scaleGridLineWidth: 1,
scaleShowHorizontalLines: !0,
scaleShowVerticalLines: !0,
bezierCurve: !0,
bezierCurveTension: 0.4,
pointDot: !0,
pointDotRadius: 4,
pointDotStrokeWidth: 1,
pointHitDetectionRadius: 20,
datasetStroke: !0,
datasetStrokeWidth: 2,
datasetFill: !0,
legendTemplate:
'<% for (var i=0; i- <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
<%}%>
',
};
i.Type.extend({
name: "Line",
defaults: s,
initialize: function (t) {
(this.PointClass = i.Point.extend({
strokeWidth: this.options.pointDotStrokeWidth,
radius: this.options.pointDotRadius,
display: this.options.pointDot,
hitDetectionRadius: this.options.pointHitDetectionRadius,
ctx: this.chart.ctx,
inRange: function (t) {
return (
Math.pow(t - this.x, 2) <
Math.pow(this.radius + this.hitDetectionRadius, 2)
);
},
})),
(this.datasets = []),
this.options.showTooltips &&
e.bindEvents(this, this.options.tooltipEvents, function (t) {
var i = "mouseout" !== t.type ? this.getPointsAtEvent(t) : [];
this.eachPoints(function (t) {
t.restore(["fillColor", "strokeColor"]);
}),
e.each(i, function (t) {
(t.fillColor = t.highlightFill),
(t.strokeColor = t.highlightStroke);
}),
this.showTooltip(i);
}),
e.each(
t.datasets,
function (i) {
var s = {
label: i.label || null,
fillColor: i.fillColor,
strokeColor: i.strokeColor,
pointColor: i.pointColor,
pointStrokeColor: i.pointStrokeColor,
points: [],
};
this.datasets.push(s),
e.each(
i.data,
function (e, n) {
s.points.push(
new this.PointClass({
value: e,
label: t.labels[n],
datasetLabel: i.label,
strokeColor: i.pointStrokeColor,
fillColor: i.pointColor,
highlightFill: i.pointHighlightFill || i.pointColor,
highlightStroke:
i.pointHighlightStroke || i.pointStrokeColor,
})
);
},
this
),
this.buildScale(t.labels),
this.eachPoints(function (t, i) {
e.extend(t, {
x: this.scale.calculateX(i),
y: this.scale.endPoint,
}),
t.save();
}, this);
},
this
),
this.render();
},
update: function () {
this.scale.update(),
e.each(this.activeElements, function (t) {
t.restore(["fillColor", "strokeColor"]);
}),
this.eachPoints(function (t) {
t.save();
}),
this.render();
},
eachPoints: function (t) {
e.each(
this.datasets,
function (i) {
e.each(i.points, t, this);
},
this
);
},
getPointsAtEvent: function (t) {
var i = [],
s = e.getRelativePosition(t);
return (
e.each(
this.datasets,
function (t) {
e.each(t.points, function (t) {
t.inRange(s.x, s.y) && i.push(t);
});
},
this
),
i
);
},
buildScale: function (t) {
var s = this,
n = function () {
var t = [];
return (
s.eachPoints(function (i) {
t.push(i.value);
}),
t
);
},
o = {
templateString: this.options.scaleLabel,
height: this.chart.height,
width: this.chart.width,
ctx: this.chart.ctx,
textColor: this.options.scaleFontColor,
fontSize: this.options.scaleFontSize,
fontStyle: this.options.scaleFontStyle,
fontFamily: this.options.scaleFontFamily,
valuesCount: t.length,
beginAtZero: this.options.scaleBeginAtZero,
integersOnly: this.options.scaleIntegersOnly,
calculateYRange: function (t) {
var i = e.calculateScaleRange(
n(),
t,
this.fontSize,
this.beginAtZero,
this.integersOnly
);
e.extend(this, i);
},
xLabels: t,
font: e.fontString(
this.options.scaleFontSize,
this.options.scaleFontStyle,
this.options.scaleFontFamily
),
lineWidth: this.options.scaleLineWidth,
lineColor: this.options.scaleLineColor,
showHorizontalLines: this.options.scaleShowHorizontalLines,
showVerticalLines: this.options.scaleShowVerticalLines,
gridLineWidth: this.options.scaleShowGridLines
? this.options.scaleGridLineWidth
: 0,
gridLineColor: this.options.scaleShowGridLines
? this.options.scaleGridLineColor
: "rgba(0,0,0,0)",
padding: this.options.showScale
? 0
: this.options.pointDotRadius + this.options.pointDotStrokeWidth,
showLabels: this.options.scaleShowLabels,
display: this.options.showScale,
};
this.options.scaleOverride &&
e.extend(o, {
calculateYRange: e.noop,
steps: this.options.scaleSteps,
stepValue: this.options.scaleStepWidth,
min: this.options.scaleStartValue,
max:
this.options.scaleStartValue +
this.options.scaleSteps * this.options.scaleStepWidth,
}),
(this.scale = new i.Scale(o));
},
addData: function (t, i) {
e.each(
t,
function (t, e) {
this.datasets[e].points.push(
new this.PointClass({
value: t,
label: i,
x: this.scale.calculateX(this.scale.valuesCount + 1),
y: this.scale.endPoint,
strokeColor: this.datasets[e].pointStrokeColor,
fillColor: this.datasets[e].pointColor,
})
);
},
this
),
this.scale.addXLabel(i),
this.update();
},
removeData: function () {
this.scale.removeXLabel(),
e.each(
this.datasets,
function (t) {
t.points.shift();
},
this
),
this.update();
},
reflow: function () {
var t = e.extend({
height: this.chart.height,
width: this.chart.width,
});
this.scale.update(t);
},
draw: function (t) {
var i = t || 1;
this.clear();
var s = this.chart.ctx,
n = function (t) {
return null !== t.value;
},
o = function (t, i, s) {
return e.findNextWhere(i, n, s) || t;
},
a = function (t, i, s) {
return e.findPreviousWhere(i, n, s) || t;
};
this.scale.draw(i),
e.each(
this.datasets,
function (t) {
var h = e.where(t.points, n);
e.each(
t.points,
function (t, e) {
t.hasValue() &&
t.transition(
{
y: this.scale.calculateY(t.value),
x: this.scale.calculateX(e),
},
i
);
},
this
),
this.options.bezierCurve &&
e.each(
h,
function (t, i) {
var s =
i > 0 && i < h.length - 1
? this.options.bezierCurveTension
: 0;
(t.controlPoints = e.splineCurve(
a(t, h, i),
t,
o(t, h, i),
s
)),
t.controlPoints.outer.y > this.scale.endPoint
? (t.controlPoints.outer.y = this.scale.endPoint)
: t.controlPoints.outer.y < this.scale.startPoint &&
(t.controlPoints.outer.y = this.scale.startPoint),
t.controlPoints.inner.y > this.scale.endPoint
? (t.controlPoints.inner.y = this.scale.endPoint)
: t.controlPoints.inner.y < this.scale.startPoint &&
(t.controlPoints.inner.y = this.scale.startPoint);
},
this
),
(s.lineWidth = this.options.datasetStrokeWidth),
(s.strokeStyle = t.strokeColor),
s.beginPath(),
e.each(
h,
function (t, i) {
if (0 === i) s.moveTo(t.x, t.y);
else if (this.options.bezierCurve) {
var e = a(t, h, i);
s.bezierCurveTo(
e.controlPoints.outer.x,
e.controlPoints.outer.y,
t.controlPoints.inner.x,
t.controlPoints.inner.y,
t.x,
t.y
);
} else s.lineTo(t.x, t.y);
},
this
),
s.stroke(),
this.options.datasetFill &&
h.length > 0 &&
(s.lineTo(h[h.length - 1].x, this.scale.endPoint),
s.lineTo(h[0].x, this.scale.endPoint),
(s.fillStyle = t.fillColor),
s.closePath(),
s.fill()),
e.each(h, function (t) {
t.draw();
});
},
this
);
},
});
}.call(this),
function () {
"use strict";
var t = this,
i = t.Chart,
e = i.helpers,
s = {
scaleShowLabelBackdrop: !0,
scaleBackdropColor: "rgba(255,255,255,0.75)",
scaleBeginAtZero: !0,
scaleBackdropPaddingY: 2,
scaleBackdropPaddingX: 2,
scaleShowLine: !0,
segmentShowStroke: !0,
segmentStrokeColor: "#fff",
segmentStrokeWidth: 2,
animationSteps: 100,
animationEasing: "easeOutBounce",
animateRotate: !0,
animateScale: !1,
legendTemplate:
'<% for (var i=0; i- <%if(segments[i].label){%><%=segments[i].label%><%}%>
<%}%>
',
};
i.Type.extend({
name: "PolarArea",
defaults: s,
initialize: function (t) {
(this.segments = []),
(this.SegmentArc = i.Arc.extend({
showStroke: this.options.segmentShowStroke,
strokeWidth: this.options.segmentStrokeWidth,
strokeColor: this.options.segmentStrokeColor,
ctx: this.chart.ctx,
innerRadius: 0,
x: this.chart.width / 2,
y: this.chart.height / 2,
})),
(this.scale = new i.RadialScale({
display: this.options.showScale,
fontStyle: this.options.scaleFontStyle,
fontSize: this.options.scaleFontSize,
fontFamily: this.options.scaleFontFamily,
fontColor: this.options.scaleFontColor,
showLabels: this.options.scaleShowLabels,
showLabelBackdrop: this.options.scaleShowLabelBackdrop,
backdropColor: this.options.scaleBackdropColor,
backdropPaddingY: this.options.scaleBackdropPaddingY,
backdropPaddingX: this.options.scaleBackdropPaddingX,
lineWidth: this.options.scaleShowLine
? this.options.scaleLineWidth
: 0,
lineColor: this.options.scaleLineColor,
lineArc: !0,
width: this.chart.width,
height: this.chart.height,
xCenter: this.chart.width / 2,
yCenter: this.chart.height / 2,
ctx: this.chart.ctx,
templateString: this.options.scaleLabel,
valuesCount: t.length,
})),
this.updateScaleRange(t),
this.scale.update(),
e.each(
t,
function (t, i) {
this.addData(t, i, !0);
},
this
),
this.options.showTooltips &&
e.bindEvents(this, this.options.tooltipEvents, function (t) {
var i = "mouseout" !== t.type ? this.getSegmentsAtEvent(t) : [];
e.each(this.segments, function (t) {
t.restore(["fillColor"]);
}),
e.each(i, function (t) {
t.fillColor = t.highlightColor;
}),
this.showTooltip(i);
}),
this.render();
},
getSegmentsAtEvent: function (t) {
var i = [],
s = e.getRelativePosition(t);
return (
e.each(
this.segments,
function (t) {
t.inRange(s.x, s.y) && i.push(t);
},
this
),
i
);
},
addData: function (t, i, e) {
var s = i || this.segments.length;
this.segments.splice(
s,
0,
new this.SegmentArc({
fillColor: t.color,
highlightColor: t.highlight || t.color,
label: t.label,
value: t.value,
outerRadius: this.options.animateScale
? 0
: this.scale.calculateCenterOffset(t.value),
circumference: this.options.animateRotate
? 0
: this.scale.getCircumference(),
startAngle: 1.5 * Math.PI,
})
),
e || (this.reflow(), this.update());
},
removeData: function (t) {
var i = e.isNumber(t) ? t : this.segments.length - 1;
this.segments.splice(i, 1), this.reflow(), this.update();
},
calculateTotal: function (t) {
(this.total = 0),
e.each(
t,
function (t) {
this.total += t.value;
},
this
),
(this.scale.valuesCount = this.segments.length);
},
updateScaleRange: function (t) {
var i = [];
e.each(t, function (t) {
i.push(t.value);
});
var s = this.options.scaleOverride
? {
steps: this.options.scaleSteps,
stepValue: this.options.scaleStepWidth,
min: this.options.scaleStartValue,
max:
this.options.scaleStartValue +
this.options.scaleSteps * this.options.scaleStepWidth,
}
: e.calculateScaleRange(
i,
e.min([this.chart.width, this.chart.height]) / 2,
this.options.scaleFontSize,
this.options.scaleBeginAtZero,
this.options.scaleIntegersOnly
);
e.extend(this.scale, s, {
size: e.min([this.chart.width, this.chart.height]),
xCenter: this.chart.width / 2,
yCenter: this.chart.height / 2,
});
},
update: function () {
this.calculateTotal(this.segments),
e.each(this.segments, function (t) {
t.save();
}),
this.reflow(),
this.render();
},
reflow: function () {
e.extend(this.SegmentArc.prototype, {
x: this.chart.width / 2,
y: this.chart.height / 2,
}),
this.updateScaleRange(this.segments),
this.scale.update(),
e.extend(this.scale, {
xCenter: this.chart.width / 2,
yCenter: this.chart.height / 2,
}),
e.each(
this.segments,
function (t) {
t.update({
outerRadius: this.scale.calculateCenterOffset(t.value),
});
},
this
);
},
draw: function (t) {
var i = t || 1;
this.clear(),
e.each(
this.segments,
function (t, e) {
t.transition(
{
circumference: this.scale.getCircumference(),
outerRadius: this.scale.calculateCenterOffset(t.value),
},
i
),
(t.endAngle = t.startAngle + t.circumference),
0 === e && (t.startAngle = 1.5 * Math.PI),
e < this.segments.length - 1 &&
(this.segments[e + 1].startAngle = t.endAngle),
t.draw();
},
this
),
this.scale.draw();
},
});
}.call(this),
function () {
"use strict";
var t = this,
i = t.Chart,
e = i.helpers;
i.Type.extend({
name: "Radar",
defaults: {
scaleShowLine: !0,
angleShowLineOut: !0,
scaleShowLabels: !1,
scaleBeginAtZero: !0,
angleLineColor: "rgba(0,0,0,.1)",
angleLineWidth: 1,
pointLabelFontFamily: "'Arial'",
pointLabelFontStyle: "normal",
pointLabelFontSize: 10,
pointLabelFontColor: "#666",
pointDot: !0,
pointDotRadius: 3,
pointDotStrokeWidth: 1,
pointHitDetectionRadius: 20,
datasetStroke: !0,
datasetStrokeWidth: 2,
datasetFill: !0,
legendTemplate:
'<% for (var i=0; i- <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
<%}%>
',
},
initialize: function (t) {
(this.PointClass = i.Point.extend({
strokeWidth: this.options.pointDotStrokeWidth,
radius: this.options.pointDotRadius,
display: this.options.pointDot,
hitDetectionRadius: this.options.pointHitDetectionRadius,
ctx: this.chart.ctx,
})),
(this.datasets = []),
this.buildScale(t),
this.options.showTooltips &&
e.bindEvents(this, this.options.tooltipEvents, function (t) {
var i = "mouseout" !== t.type ? this.getPointsAtEvent(t) : [];
this.eachPoints(function (t) {
t.restore(["fillColor", "strokeColor"]);
}),
e.each(i, function (t) {
(t.fillColor = t.highlightFill),
(t.strokeColor = t.highlightStroke);
}),
this.showTooltip(i);
}),
e.each(
t.datasets,
function (i) {
var s = {
label: i.label || null,
fillColor: i.fillColor,
strokeColor: i.strokeColor,
pointColor: i.pointColor,
pointStrokeColor: i.pointStrokeColor,
points: [],
};
this.datasets.push(s),
e.each(
i.data,
function (e, n) {
var o;
this.scale.animation ||
(o = this.scale.getPointPosition(
n,
this.scale.calculateCenterOffset(e)
)),
s.points.push(
new this.PointClass({
value: e,
label: t.labels[n],
datasetLabel: i.label,
x: this.options.animation ? this.scale.xCenter : o.x,
y: this.options.animation ? this.scale.yCenter : o.y,
strokeColor: i.pointStrokeColor,
fillColor: i.pointColor,
highlightFill: i.pointHighlightFill || i.pointColor,
highlightStroke:
i.pointHighlightStroke || i.pointStrokeColor,
})
);
},
this
);
},
this
),
this.render();
},
eachPoints: function (t) {
e.each(
this.datasets,
function (i) {
e.each(i.points, t, this);
},
this
);
},
getPointsAtEvent: function (t) {
var i = e.getRelativePosition(t),
s = e.getAngleFromPoint(
{ x: this.scale.xCenter, y: this.scale.yCenter },
i
),
n = (2 * Math.PI) / this.scale.valuesCount,
o = Math.round((s.angle - 1.5 * Math.PI) / n),
a = [];
return (
(o >= this.scale.valuesCount || 0 > o) && (o = 0),
s.distance <= this.scale.drawingArea &&
e.each(this.datasets, function (t) {
a.push(t.points[o]);
}),
a
);
},
buildScale: function (t) {
(this.scale = new i.RadialScale({
display: this.options.showScale,
fontStyle: this.options.scaleFontStyle,
fontSize: this.options.scaleFontSize,
fontFamily: this.options.scaleFontFamily,
fontColor: this.options.scaleFontColor,
showLabels: this.options.scaleShowLabels,
showLabelBackdrop: this.options.scaleShowLabelBackdrop,
backdropColor: this.options.scaleBackdropColor,
backdropPaddingY: this.options.scaleBackdropPaddingY,
backdropPaddingX: this.options.scaleBackdropPaddingX,
lineWidth: this.options.scaleShowLine
? this.options.scaleLineWidth
: 0,
lineColor: this.options.scaleLineColor,
angleLineColor: this.options.angleLineColor,
angleLineWidth: this.options.angleShowLineOut
? this.options.angleLineWidth
: 0,
pointLabelFontColor: this.options.pointLabelFontColor,
pointLabelFontSize: this.options.pointLabelFontSize,
pointLabelFontFamily: this.options.pointLabelFontFamily,
pointLabelFontStyle: this.options.pointLabelFontStyle,
height: this.chart.height,
width: this.chart.width,
xCenter: this.chart.width / 2,
yCenter: this.chart.height / 2,
ctx: this.chart.ctx,
templateString: this.options.scaleLabel,
labels: t.labels,
valuesCount: t.datasets[0].data.length,
})),
this.scale.setScaleSize(),
this.updateScaleRange(t.datasets),
this.scale.buildYLabels();
},
updateScaleRange: function (t) {
var i = (function () {
var i = [];
return (
e.each(t, function (t) {
t.data
? (i = i.concat(t.data))
: e.each(t.points, function (t) {
i.push(t.value);
});
}),
i
);
})(),
s = this.options.scaleOverride
? {
steps: this.options.scaleSteps,
stepValue: this.options.scaleStepWidth,
min: this.options.scaleStartValue,
max:
this.options.scaleStartValue +
this.options.scaleSteps * this.options.scaleStepWidth,
}
: e.calculateScaleRange(
i,
e.min([this.chart.width, this.chart.height]) / 2,
this.options.scaleFontSize,
this.options.scaleBeginAtZero,
this.options.scaleIntegersOnly
);
e.extend(this.scale, s);
},
addData: function (t, i) {
this.scale.valuesCount++,
e.each(
t,
function (t, e) {
var s = this.scale.getPointPosition(
this.scale.valuesCount,
this.scale.calculateCenterOffset(t)
);
this.datasets[e].points.push(
new this.PointClass({
value: t,
label: i,
x: s.x,
y: s.y,
strokeColor: this.datasets[e].pointStrokeColor,
fillColor: this.datasets[e].pointColor,
})
);
},
this
),
this.scale.labels.push(i),
this.reflow(),
this.update();
},
removeData: function () {
this.scale.valuesCount--,
this.scale.labels.shift(),
e.each(
this.datasets,
function (t) {
t.points.shift();
},
this
),
this.reflow(),
this.update();
},
update: function () {
this.eachPoints(function (t) {
t.save();
}),
this.reflow(),
this.render();
},
reflow: function () {
e.extend(this.scale, {
width: this.chart.width,
height: this.chart.height,
size: e.min([this.chart.width, this.chart.height]),
xCenter: this.chart.width / 2,
yCenter: this.chart.height / 2,
}),
this.updateScaleRange(this.datasets),
this.scale.setScaleSize(),
this.scale.buildYLabels();
},
draw: function (t) {
var i = t || 1,
s = this.chart.ctx;
this.clear(),
this.scale.draw(),
e.each(
this.datasets,
function (t) {
e.each(
t.points,
function (t, e) {
t.hasValue() &&
t.transition(
this.scale.getPointPosition(
e,
this.scale.calculateCenterOffset(t.value)
),
i
);
},
this
),
(s.lineWidth = this.options.datasetStrokeWidth),
(s.strokeStyle = t.strokeColor),
s.beginPath(),
e.each(
t.points,
function (t, i) {
0 === i ? s.moveTo(t.x, t.y) : s.lineTo(t.x, t.y);
},
this
),
s.closePath(),
s.stroke(),
(s.fillStyle = t.fillColor),
s.fill(),
e.each(t.points, function (t) {
t.hasValue() && t.draw();
});
},
this
);
},
});
}.call(this));
/*!
* chaffle v1.0.0
*
* Licensed under MIT
* Author : blivesta
*
*/
(function ($) {
var namespace = "chaffle";
var methods = {
init: function (options) {
options = $.extend({ speed: 20, time: 140 }, options);
return this.each(function () {
var _this = this;
var $this = $(this);
var data = $this.data(namespace);
if (!data) {
options = $.extend({}, options);
$this.data(namespace, { options: options });
}
var $text = $this.text();
var substitution;
var shuffle_timer;
var shuffle_timer_delay;
var shuffle = function () {
$this.text(substitution);
if ($text.length - substitution.length > 0) {
for (i = 0; i < $text.length - substitution.length; i++) {
var shuffleStr = random_text.call();
$this.append(shuffleStr);
}
} else {
clearInterval(shuffle_timer);
}
};
var shuffle_delay = function () {
if (substitution.length < $text.length) {
substitution = $text.substr(0, substitution.length + 1);
} else {
clearInterval(shuffle_timer_delay);
}
};
var random_text = function () {
var str;
var lang = $this.data("lang");
switch (lang) {
case "en":
str = String.fromCharCode(33 + Math.round(Math.random() * 99));
break;
case "ja":
str = String.fromCharCode(19968 + Math.round(Math.random() * 80));
break;
case "ja-hiragana":
str = String.fromCharCode(12352 + Math.round(Math.random() * 50));
break;
case "ja-katakana":
str = String.fromCharCode(12448 + Math.round(Math.random() * 84));
break;
}
return str;
};
var start = function () {
substitution = "";
clearInterval(shuffle_timer);
clearInterval(shuffle_timer_delay);
shuffle_timer = setInterval(function () {
shuffle.call(_this);
}, options.speed);
shuffle_timer_delay = setInterval(function () {
shuffle_delay.call(this);
}, options.time);
};
$this
.unbind("mouseover." + namespace)
.bind("mouseover." + namespace, function () {
start.call(_this);
});
});
},
destroy: function () {
return this.each(function () {
var $this = $(this);
$(window).unbind("." + namespace);
$this.removeData(namespace);
});
},
};
$.fn.chaffle = function (method) {
if (methods[method]) {
return methods[method].apply(
this,
Array.prototype.slice.call(arguments, 1)
);
} else if (typeof method === "object" || !method) {
return methods.init.apply(this, arguments);
} else {
$.error("Method " + method + " does not exist on jQuery." + namespace);
}
};
})(jQuery);
/*jshint browser:true */
/*!
* FitVids 1.1
*
* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
* Released under the WTFPL license - http://sam.zoy.org/wtfpl/
*
*/
(function ($) {
"use strict";
$.fn.fitVids = function (options) {
var settings = {
customSelector: null,
ignore: null,
};
if (!document.getElementById("fit-vids-style")) {
// appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js
var head = document.head || document.getElementsByTagName("head")[0];
var css =
".fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}";
var div = document.createElement("div");
div.innerHTML = 'x
";
head.appendChild(div.childNodes[1]);
}
if (options) {
$.extend(settings, options);
}
return this.each(function () {
var selectors = [
'iframe[src*="player.vimeo.com"]',
'iframe[src*="youtube.com"]',
'iframe[src*="youtube-nocookie.com"]',
'iframe[src*="kickstarter.com"][src*="video.html"]',
"object",
"embed",
];
if (settings.customSelector) {
selectors.push(settings.customSelector);
}
var ignoreList = ".fitvidsignore";
if (settings.ignore) {
ignoreList = ignoreList + ", " + settings.ignore;
}
var $allVideos = $(this).find(selectors.join(","));
$allVideos = $allVideos.not("object object"); // SwfObj conflict patch
$allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.
$allVideos.each(function (count) {
var $this = $(this);
if ($this.parents(ignoreList).length > 0) {
return; // Disable FitVids on this video.
}
if (
(this.tagName.toLowerCase() === "embed" &&
$this.parent("object").length) ||
$this.parent(".fluid-width-video-wrapper").length
) {
return;
}
if (
!$this.css("height") &&
!$this.css("width") &&
(isNaN($this.attr("height")) || isNaN($this.attr("width")))
) {
$this.attr("height", 9);
$this.attr("width", 16);
}
var height =
this.tagName.toLowerCase() === "object" ||
($this.attr("height") && !isNaN(parseInt($this.attr("height"), 10)))
? parseInt($this.attr("height"), 10)
: $this.height(),
width = !isNaN(parseInt($this.attr("width"), 10))
? parseInt($this.attr("width"), 10)
: $this.width(),
aspectRatio = height / width;
if (!$this.attr("id")) {
var videoID = "fitvid" + count;
$this.attr("id", videoID);
}
$this
.wrap('')
.parent(".fluid-width-video-wrapper")
.css("padding-top", aspectRatio * 100 + "%");
$this.removeAttr("height").removeAttr("width");
});
});
};
// Works with either jQuery or Zepto
})(window.jQuery || window.Zepto);
/*!
* The Final Countdown for jQuery v2.1.0 (http://hilios.github.io/jQuery.countdown/)
* Copyright (c) 2015 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; g > f; ++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 && 10 > m && (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]))),
1 === Math.abs(b) ? d : c
);
}
var f = [],
g = [],
h = { precision: 100, elapse: !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",
w: "weeks",
d: "daysToWeek",
D: "totalDays",
H: "hours",
M: "minutes",
S: "seconds",
},
j = function (b, c, d) {
(this.el = b),
(this.$el = a(b)),
(this.interval = null),
(this.offset = {}),
(this.options = a.extend({}, h)),
(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.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 b,
c = void 0 !== a._data(this.el, "events"),
d = new Date();
(b = this.finalDate.getTime() - d.getTime()),
(b = Math.ceil(b / 1e3)),
(b = !this.options.elapse && 0 > b ? 0 : Math.abs(b)),
this.totalSecsLeft !== b &&
c &&
((this.totalSecsLeft = b),
(this.elapsed = d >= 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
),
totalDays: Math.floor(this.totalSecsLeft / 60 / 60 / 24),
weeks: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 7),
months: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 30.4368),
years: Math.abs(this.finalDate.getFullYear() - d.getFullYear()),
}),
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(document).ready(function ($) {
"use-strict";
var $window = $(window);
/**
* Count To
* @constructor
*/
function OScountTo() {
$(".counter-group").each(function (index) {
var $this = $(this);
var waypoint = $this.waypoint({
handler: function (direction) {
$this.find(".timer:not(.counted)").countTo().addClass("counted");
this.destroy();
},
offset: "90%",
});
});
}
OScountTo();
/**
* Browser Detection
* @constructor
*/
function OsBrowserDetect() {
var browser = "";
var nAgt = navigator.userAgent;
if ((verOffset = nAgt.indexOf("OPR/")) != -1) {
browser = "opera";
} else if ((verOffset = nAgt.indexOf("MSIE")) != -1) {
browser = "ie";
} else if ((verOffset = nAgt.indexOf("Chrome")) != -1) {
browser = "chrome";
} else if ((verOffset = nAgt.indexOf("Safari")) != -1) {
browser = "safari";
} else if ((verOffset = nAgt.indexOf("Firefox")) != -1) {
browser = "firefox";
}
$("html").addClass(browser);
}
OsBrowserDetect();
/**
* OS Detection
* @constructor
*/
function OsOSDetect() {
$("html").addClass(window.navigator.platform);
}
OsOSDetect();
/**
* Parallax background
* @constructor
*/
function OsParallax() {
var ParallaxBreakPoint = 768;
if ($("[data-stellar-background-ratio]").length > 0) {
$(window).on("resize load", function () {
if (window.innerWidth < ParallaxBreakPoint) {
$("html").removeClass("parallax-on");
$.stellar("destroy");
} else {
$("html").addClass("parallax-on");
$.stellar({
scrollProperty: "scroll",
horizontalScrolling: false,
verticalScrolling: Modernizr.csstransitions,
responsive: true,
parallaxBackgrounds: true,
});
}
});
}
}
OsParallax();
/**
* Shuffle text
* @constructor
*/
function OsShuffleText() {
$(".chaffle").each(function () {
$(this).chaffle({
speed: 20,
time: 60,
});
});
}
OsShuffleText();
/**
* OsSlider use for many purpose
* @constructor
*/
function OsSlider() {
$(".slider").each(function () {
var option = {
autoplay: !$(this).hasClass("no-autoplay"),
fade: !$(this).hasClass("slide"),
speed: $(this).data("animation-speed") || 400,
dots: $(this).hasClass("control-nav"),
arrows: $(this).hasClass("direction-nav") ? true : false,
autoplaySpeed: $(this).data("autoplay-speed") || 5000,
adaptiveHeight: $(this).hasClass("auto-height") ? true : false,
swipeToSlide: $(this).hasClass("swipe-to-slide") ? true : false,
infinite: $(this).hasClass("no-loop") ? false : true,
};
if ($(this).data("item-width")) {
var CarouselBaseWidth = parseInt($(this).data("item-width"), 10);
option.respondTo = "slider";
if ($(this).hasClass("slide-all")) {
option.responsive = OsCarouselResponsiveCalculator(
CarouselBaseWidth,
true
);
} else {
option.responsive = OsCarouselResponsiveCalculator(CarouselBaseWidth);
}
}
if ($(this).hasClass("caption-slider")) {
//on start
$(this).on("init", function (event, slick) {
OsSliderCaptionInit($(this));
OsSliderCaptionShow($(this));
});
//on before slide
$(this).on("beforeChange", function (
event,
slick,
currentSlide,
nextSlide
) {
OsSliderCaptionHide($(this));
});
//on after slide done
$(this).on("afterChange", function (event, slick, currentSlide) {
OsSliderCaptionShow($(this));
});
}
$(this).slick(option);
//Caption slider support function
function OsSliderCaptionInit(container) {
var $sliderElement = container.find(".caption");
$sliderElement.each(function () {
var $captionAnimation = $(this);
var animationDuration = "1000ms";
if ($(this).data("animation-duration")) {
animationDuration = $(this).data("animation-duration") + "ms";
}
$(this).css("animation-duration", animationDuration);
$captionAnimation.addClass("caption-hide");
});
}
function OsSliderCaptionShow(container) {
var $sliderElement = container.find(".slick-active .caption");
$sliderElement.each(function (index) {
var $captionAnimation = $(this);
var delayTime = $(this).data("caption-delay") || index * 350 + 400;
var captionAnimationData =
$captionAnimation.data("caption-animation") || "fadeInUp";
setTimeout(function () {
$captionAnimation
.removeClass("caption-hide")
.addClass(captionAnimationData);
}, delayTime);
});
}
function OsSliderCaptionHide(container) {
var $sliderElement = container.find(".slick-active .caption");
$sliderElement.each(function () {
var $captionAnimation = $(this);
var captionAnimationData =
$captionAnimation.data("caption-animation") || "fadeInUp";
$captionAnimation
.removeClass(captionAnimationData)
.addClass("caption-hide");
});
}
});
/**
* Calculator for support OsSlider
* @param CarouselBaseWidth
* @returns {Array}
* @constructor
*/
function OsCarouselResponsiveCalculator(CarouselBaseWidth, slideAll) {
var CarouselMaxWidth = 1920;
var CarouselNumberBreakppoint = Math.floor(
CarouselMaxWidth / CarouselBaseWidth
);
var CarouselBreakpoint = [];
for (var i = 1; i < CarouselNumberBreakppoint + 1; i++) {
CarouselBreakpoint.push({
breakpoint: CarouselBaseWidth * i,
settings: {
slidesToShow: i,
slidesToScroll: slideAll === true ? i : 1,
},
});
}
CarouselBreakpoint.push({
breakpoint: 9999,
settings: {
slidesToShow: CarouselNumberBreakppoint + 1,
slidesToScroll: slideAll === true ? i : 1,
},
});
return CarouselBreakpoint;
}
}
OsSlider();
/**
* Product thumbnail slider
* @constructor
*/
function OsProductThumbnailSlider() {
$(".product-thumbnail-slider").each(function () {
var $this = $(this),
$slider01 = $this.find(".syn-slider-1"),
$slider02 = $this.find(".syn-slider-2");
$slider01.slick({
infinite: false,
fade: $slider01.hasClass("animation-fade") ? true : false,
speed: 400,
adaptiveHeight: $slider01.hasClass("height-auto") ? true : false,
arrows: $slider01.hasClass("dir-nav") ? true : false,
dots: $slider01.hasClass("control-nav") ? true : false,
});
$slider01.on("beforeChange", function (
event,
slick,
currentSlide,
nextSlide
) {
syncPosition(nextSlide);
});
var visibleItems = [];
var option = 0;
$slider02.on("init", function (event, slick) {
$(this).find(".slick-slide").eq(0).addClass("synced");
var WW = window.innerWidth;
if (WW >= 1020) {
option = 4;
}
if (WW < 1020) {
option = 3;
}
for (var i = 0; i < option; i++) {
visibleItems.push(i);
}
});
$window.on("resize load", function (event) {
var WW = window.innerWidth;
if (WW >= 1020) {
option = 4;
}
if (WW < 1020) {
option = 3;
}
return option;
});
$slider02.on("afterChange", function (event, slick, currentSlide) {
visibleItems.length = 0;
for (var i = currentSlide; i < currentSlide + option; i++) {
visibleItems.push(i);
}
});
$slider02.slick({
swipeToSlide: true,
infinite: false,
slidesToShow: 4,
slidesToScroll: 1,
speed: 400,
arrows: $slider02.hasClass("direction-nav") ? true : false,
centerPadding: "0px",
vertical: $slider02.hasClass("v-mode") ? true : false,
verticalSwiping: $slider02.hasClass("v-mode") ? true : false,
responsive: [
{
breakpoint: 1230,
settings: {
slidesToShow: 4,
vertical: false,
verticalSwiping: false,
},
},
{
breakpoint: 1020,
settings: {
slidesToShow: 3,
vertical: false,
verticalSwiping: false,
},
},
],
});
function syncPosition(value) {
var current = value;
$slider02
.find(".slick-slide")
.removeClass("synced")
.eq(current)
.addClass("synced");
center(current);
}
$slider02.on("click", ".slick-slide", function (e) {
e.preventDefault();
var number = $(this).data("slick-index");
$slider01.slick("slickGoTo", number);
});
function center(number) {
var num = number;
var found = false;
var lastSlideIndex = $slider02.find(".slick-slide:last").index();
for (var i in visibleItems) {
if (num === visibleItems[i]) {
var found = true;
}
}
if (found === false) {
if (num > visibleItems[visibleItems.length - 1]) {
if (num == lastSlideIndex) {
$slider02.slick("slickGoTo", num - visibleItems.length + 1);
} else {
$slider02.slick("slickGoTo", num - visibleItems.length + 2);
}
} else {
if (num - 1 === -1) {
$slider02.slick("slickGoTo", 0);
} else {
$slider02.slick("slickGoTo", num - 1);
}
}
} else if (num === visibleItems[visibleItems.length - 1]) {
$slider02.slick("slickGoTo", visibleItems[1]);
} else if (num === visibleItems[0]) {
$slider02.slick("slickGoTo", num - 1);
}
}
});
}
OsProductThumbnailSlider();
/**
* Isotope
* @constructor
*/
function OsIsotop() {
$(".isotope-container").each(function () {
var $this = $(this);
var option = {
layoutMode: "masonry",
itemSelector: ".grid-item",
transitionDuration: "0.3s",
};
if ($this.find(".grid-sizer").length > 0) {
option.masonry = {};
option.masonry.columnWidth = ".grid-sizer";
}
var $grid = $this.find(".isotope-grid").isotope(option);
// Build layout when image is loaded
$grid.imagesLoaded().progress(function () {
$grid.isotope("layout");
});
// Isotope filter
var $Filter = $this.find(".portfolio-filter");
$Filter.find(".filter-button").on("click", function (event) {
event.preventDefault();
$grid.isotope({ filter: $(this).attr("data-filter") });
$(this).siblings().removeClass("is-checked");
$(this).addClass("is-checked");
});
//Fix parallax background
$grid.on("layoutComplete", function () {
$(window).trigger("resize.px.parallax");
});
});
}
OsIsotop();
/**
* Masonry with responsive with based on base width
* @constructor
*/
function OsMasonryFlex() {
$(".masonry-container").each(function () {
var minwidth = parseInt($(this).data("masonry-grid-width"), 10) || 370;
var $container = $(this);
var oldWidth = $container.innerWidth();
var oldRatio = oldWidth / minwidth;
var $masonryOpt = { itemSelector: ".masonry-item" };
var $masonry = $container.masonry($masonryOpt);
function ResizeItem(containerWidth) {
var Ratio = Math.floor(containerWidth / minwidth);
if (Ratio === 0) {
Ratio = 1;
} else if (Ratio != oldRatio) {
var itemWidth = 1 / Ratio;
$container
.children(".masonry-item")
.css({ width: itemWidth * 100 + "%" });
}
}
ResizeItem(oldWidth);
// On ImagesLoaded
$masonry.imagesLoaded().progress(function () {
$masonry.masonry("layout");
});
// Window on resize
$(window).on("resize", function () {
var newWidth = $container.innerWidth();
if (newWidth != oldWidth) {
ResizeItem(newWidth);
oldWidth = newWidth;
}
});
//Fix parallax background
$masonry.on("layoutComplete", function () {
$(window).trigger("resize.px.parallax");
});
});
}
OsMasonryFlex();
/**
* Portfolio Images Galley with magnific popup
* @constructor
*/
function OsPortfolioZoomedGallery() {
$(".group-portfolio , .magnific-gallery").each(function () {
$(this).magnificPopup({
delegate: ".zoom-button", // the selector for gallery item
type: "image",
gallery: {
enabled: true,
},
mainClass: "mfp-fade",
zoom: {
enabled: $(this).hasClass("no-zoom-effect") ? false : true,
duration: 300,
easing: "ease-in-out",
opener: function (openerElement) {
if (openerElement.hasClass("img-wrapper")) {
return openerElement.find("img");
} else {
return openerElement.parents(".overlay");
}
},
},
});
});
}
OsPortfolioZoomedGallery();
/**
* Progress bar
* @constructor
*/
function OsProgressbar() {
$(".group-progressbar").each(function () {
var $this = $(this);
var waypoint = $this.waypoint({
handler: function (direction) {
$this.find(".progressbar").progressbar({ display_text: "center" });
this.destroy();
},
offset: "80%",
});
});
}
OsProgressbar();
/**
* Piechart and doughnut chart
* @constructor
*/
function OsPiechart() {
$(".piechart").each(function () {
var option = { segmentShowStroke: false, responsive: true };
var data = [];
$(this)
.children(".pie-legend")
.children("li")
.each(function () {
var temp = {};
var $this = $(this);
temp.value = $this.data("value");
temp.color = $this.children(".__color").css("background-color");
temp.label = $this.children(".__legend").html();
data.push(temp);
});
if ($(this).hasClass("doughnut")) {
option.percentageInnerCutout = 55;
}
var ctx = $(this)
.children(".chart")
.children("canvas")
.get(0)
.getContext("2d");
var PieChart = new Chart(ctx).Pie(data, option);
});
}
OsPiechart();
/**
* Piechart
* @constructor
*/
function OsEasyPiechart() {
$(".easy-piechart").each(function () {
var $this = $(this);
var value = Number($this.data("value")) / 100;
var option = {
strokeWidth: 5,
trailWidth: 5,
duration: 1500,
easing: "bounce",
text: {
value: "0%",
},
step: function (state, bar) {
bar.setText((bar.value() * 100).toFixed(0) + "%");
},
};
var circle = new ProgressBar.Circle($(this)[0], option);
$this.waypoint({
handler: function (direction) {
circle.animate(value);
this.destroy();
},
offset: "68%",
});
});
}
OsEasyPiechart();
/**
* Coverbox
* @param $selector
* @constructor
*/
function OsCoverBox($selector) {
$children = $selector.children(".cover-box");
var oldCol = 0;
// reinit cover box if number col change , change to normal style if data-* in current window screen was not set
$(window).on("resize load", function () {
var numCol = returnNumcol($selector);
if (numCol === 0) {
$children.removeClass("active").addClass("normal-style").css({
width: "100%",
"margin-right": "0%",
});
oldCol = numCol;
} else if (!(numCol === oldCol)) {
//Active all child if has only one col
if (numCol === 1) {
$children.initBox(numCol);
$children.activeBox(numCol);
} else {
$children.initBox(numCol);
$children
.filter(function (index) {
// Return caro layout
return (
(index % numCol === 0 && (index / numCol) % 2 === 0) ||
((index - 1) % numCol === 0 && ((index - 1) / numCol) % 2 === 1)
);
})
.activeBox(numCol);
}
oldCol = numCol;
}
});
//switch class active in row of coverbox
$children.on("mouseover", function () {
var numCol = returnNumcol($selector);
if (numCol > 0 && !$(this).hasClass("active")) {
var From = parseInt($(this).index() / numCol, 10) * numCol;
$children.slice(From, From + numCol).deactiveBox();
$(this).activeBox(numCol);
}
});
function returnNumcol($elem) {
var WW = window.innerWidth;
var numCol = 0;
if (WW >= 480) {
numCol = $elem.data("xs") || numCol;
}
if (WW >= 768) {
numCol = $elem.data("sm") || numCol;
}
if (WW >= 1020) {
numCol = $elem.data("md") || numCol;
}
if (WW >= 1230) {
numCol = $elem.data("lg") || numCol;
}
if (WW >= 1400) {
numCol = $elem.data("xlg") || numCol;
}
return numCol;
}
$.fn.initBox = function (numCol) {
$(this).removeClass("active normal-style");
$(this).css({
width: 100 / (numCol + 1) + "%",
"margin-right": "0%",
});
};
$.fn.activeBox = function (numCol) {
$(this).addClass("active");
$(this).css("margin-right", 100 / (numCol + 1) + "%");
};
$.fn.deactiveBox = function () {
$(this).removeClass("active");
$(this).css("margin-right", "0");
};
}
/**
* Active Coverbox
* @constructor
*/
function OsCoverBoxActive() {
$(".cover-box-container").each(function () {
OsCoverBox($(this));
});
}
OsCoverBoxActive();
function OsGoogleMap() {
// When the window has finished loading create our google map below
var marker_image = "assets/images/logo/map-marker.png";
if ($("#map").length > 0) {
if ($("#map").attr("data-marker-image") != undefined) {
marker_image = $("#map").attr("data-marker-image");
}
google.maps.event.addDomListener(window, "load", init);
}
function init() {
// Basic options for a simple Google Map
// For more options see: https://developers.google.com/maps/documentation/javascript/reference#MapOptions
var mapOptions = {
// How zoomed in you want the map to start at (always required)
zoom: 11,
scrollwheel: false,
// The latitude and longitude to center the map (always required)
center: new google.maps.LatLng(40.67, -73.94), // New York
// How you would like to style the map.
// This is where you would paste any style found on Snazzy Maps.
styles: [
{
featureType: "water",
elementType: "geometry.fill",
stylers: [{ color: "#d3d3d3" }],
},
{
featureType: "transit",
stylers: [{ color: "#808080" }, { visibility: "off" }],
},
{
featureType: "road.highway",
elementType: "geometry.stroke",
stylers: [{ visibility: "on" }, { color: "#b3b3b3" }],
},
{
featureType: "road.highway",
elementType: "geometry.fill",
stylers: [{ color: "#ffffff" }],
},
{
featureType: "road.local",
elementType: "geometry.fill",
stylers: [
{ visibility: "on" },
{ color: "#ffffff" },
{ weight: 1.8 },
],
},
{
featureType: "road.local",
elementType: "geometry.stroke",
stylers: [{ color: "#d7d7d7" }],
},
{
featureType: "poi",
elementType: "geometry.fill",
stylers: [{ visibility: "on" }, { color: "#ebebeb" }],
},
{
featureType: "administrative",
elementType: "geometry",
stylers: [{ color: "#a7a7a7" }],
},
{
featureType: "road.arterial",
elementType: "geometry.fill",
stylers: [{ color: "#ffffff" }],
},
{
featureType: "road.arterial",
elementType: "geometry.fill",
stylers: [{ color: "#ffffff" }],
},
{
featureType: "landscape",
elementType: "geometry.fill",
stylers: [{ visibility: "on" }, { color: "#efefef" }],
},
{
featureType: "road",
elementType: "labels.text.fill",
stylers: [{ color: "#696969" }],
},
{
featureType: "administrative",
elementType: "labels.text.fill",
stylers: [{ visibility: "on" }, { color: "#737373" }],
},
{
featureType: "poi",
elementType: "labels.icon",
stylers: [{ visibility: "off" }],
},
{
featureType: "poi",
elementType: "labels",
stylers: [{ visibility: "off" }],
},
{
featureType: "road.arterial",
elementType: "geometry.stroke",
stylers: [{ color: "#d6d6d6" }],
},
{
featureType: "road",
elementType: "labels.icon",
stylers: [{ visibility: "off" }],
},
{},
{
featureType: "poi",
elementType: "geometry.fill",
stylers: [{ color: "#dadada" }],
},
],
};
// Get the HTML DOM element that will contain your map
// We are using a div with id="map" seen below in the
var mapElement = document.getElementById("map");
// Create the Google Map using our element and options defined above
var map = new google.maps.Map(mapElement, mapOptions);
// Let's also add a marker while we're at it
var marker = new google.maps.Marker({
position: new google.maps.LatLng(40.6, -73.94),
map: map,
title: "Megatron",
icon: marker_image,
});
var marker2 = new google.maps.Marker({
position: new google.maps.LatLng(40.68, -73.8),
map: map,
title: "Megatron",
icon: marker_image,
});
var marker3 = new google.maps.Marker({
position: new google.maps.LatLng(40.73, -74.128),
map: map,
title: "Megatron",
icon: marker_image,
});
}
}
OsGoogleMap();
/**
* Add info for main nav
* @constructor
*/
function OsNavAdditionInfo() {
$('.os-menu a[href="#"]').on("click", function (event) {
event.preventDefault();
});
$(".os-menu li").has("ul").addClass("li-node").parent().addClass("ul-node");
//$('.os-menu .mega-menu:not(.menu-fullwidth)').parent().css('position', 'relative')
}
OsNavAdditionInfo();
function OsBackToTop() {
if ($("#back-to-top-btn").length > 0) {
$("#back-to-top-btn").on("click", function () {
$("html,body").animate(
{
scrollTop: 0,
},
400
);
});
$(window).on("scroll", function () {
if ($(this).scrollTop() >= $("#page-body").position().top) {
$("#back-to-top-btn").addClass("show-this");
} else {
$("#back-to-top-btn").removeClass("show-this");
}
});
}
}
OsBackToTop();
/**
* Action with nav fixed
* @constructor
*/
function OsNavFixed() {
if ($(".nav-fixed").length > 0) {
var $body = $("body");
var $appear_target = $("#page-body");
$(window).on("scroll , load", function () {
var windowToTop = $(this).scrollTop();
if (windowToTop > 1 && !$body.hasClass("$body")) {
$body.addClass("nav-fixed-transformed");
} else {
$body.removeClass("nav-fixed-transformed");
}
if (windowToTop >= $appear_target.position().top) {
$body.addClass("nav-fixed-appeared");
} else {
$body.removeClass("nav-fixed-appeared");
}
});
}
}
OsNavFixed();
/**
* Smooth scroll when click a link to internal object
* @constructor
*/
function OsEasingClick() {
$('.easing-link-group a[href^="#"] , a.easing-link[href^="#"]')
.not('[href="#"]')
.on("click", function (event) {
event.preventDefault();
var $this = $(this);
var elementPostion = $($this.attr("href")).offset().top;
$("html,body").animate(
{
scrollTop: elementPostion,
},
400,
function () {
$("body").removeClass("mobile-nav-open");
}
);
});
}
OsEasingClick();
/**
* Sticky nav
* @constructor
*/
function OsStickyNav() {
$(".nav-sticky").each(function () {
var sticky = new Waypoint.Sticky({
element: $(this)[0],
});
});
}
OsStickyNav();
/**
* Selectmenu with Jquery UI
* @constructor
*/
function OsSelectMenu() {
$(".select-menu").each(function () {
$(this).selectmenu();
});
}
OsSelectMenu();
/**
* Mobile Menu
* @constructor
*/
function OsMobileMenu() {
// === Moblie Menu Layout ===
var $Menu = $(".mobile-menu");
var $ActiveLink = $Menu.find("li").has("ul").children("a");
var $MenuChildUl = $Menu.find("li ul");
// Prevent default action of link href="#"
// Active menu when click link on li
$ActiveLink.on("click", function () {
$(this).closest("li").addClass("active");
$(this).closest("ul").addClass("active");
});
// Add back button and select it
$MenuChildUl.prepend(
'' + 'BACK' + ""
);
// Add event to back button
$MenuChildUl.find(".__back a").on("click", function (event) {
event.preventDefault();
$(this).closest("li.active").removeClass("active");
$(this).closest("ul.active").removeClass("active");
});
// Close Menu
function CloseMenu() {
$("body").removeClass("mobile-nav-open");
//Reset to init
setTimeout(function () {
$Menu.find("li.active").removeClass("active");
}, 300);
}
// === Moblie Menu Action ===
$(".mobile-nav-toggle").on("click", function (event) {
event.preventDefault();
if ($("body").hasClass("mobile-nav-open")) {
CloseMenu();
} else {
$("body").addClass("mobile-nav-open");
}
});
$(window).on("resize", function () {
if (window.innerWidth >= 992) {
$("body").removeClass("mobile-nav-open");
}
});
}
OsMobileMenu();
/**
* Offcanvas nav
* @constructor
*/
function OsOffcanvas() {
$(".offcanvas-nav-toggle").on("click", function (event) {
event.preventDefault();
$("body").toggleClass("offcanvas-nav-open");
});
$(window).on("resize", function () {
if (window.innerWidth < 1230) {
$("body").removeClass("offcanvas-nav-open");
}
});
}
OsOffcanvas();
/**
* Shop side bar offcanvas
* @constructor
*/
function OsShopSidebarOffcanvas() {
$(".shop-sidebar-toggle").each(function () {
$(this).on("click", function (event) {
event.preventDefault();
$("body").toggleClass("shop-sidebar-open");
});
$(window).on("resize", function () {
if (window.innerWidth < 1230) {
$("body").removeClass("shop-sidebar-open");
}
});
});
}
OsShopSidebarOffcanvas();
/**
* Nav Popup
* @constructor
*/
function OsNavPopup() {
$(".nav-menu-popup").hide();
$(".nav-menu-popup-trigger").each(function () {
$(this).on("click", function () {
event.preventDefault(event);
$("body").toggleClass("nav-menu-popup-open");
$(".nav-menu-popup").fadeToggle();
});
});
}
OsNavPopup();
/**
* Accordion
* @constructor
*/
function OsAccordion() {
$(".accordion").each(function () {
var $accordion = $(this);
$accordion.accordion({
active: $accordion.data("ui-active") || 0,
animate: $accordion.data("ui-animate") || 300,
collapsible: true,
header: ".accordion-header",
heightStyle: $accordion.data("ui-height-style") || "auto",
icons: false,
});
$(window).on("resize load", function () {
$accordion.accordion("refresh");
});
});
}
OsAccordion();
/**
* Expendable Section
* @constructor
*/
function OsExpendableSection() {
$(".expendable-section").each(function () {
var $container = $(this),
$header = $(this).children(".expendable-section-header");
if (!$header.hasClass("header-active")) {
$header.next(".expendable-section-body").hide();
}
$header.on("click", function (event) {
event.preventDefault();
var $content = $(this).next(".expendable-section-body");
if ($(this).hasClass("header-active") && $content.is(":visible")) {
$(this).removeClass("header-active");
$content.slideUp(400);
} else {
$(this).addClass("header-active");
$content.slideDown(400);
}
});
});
}
OsExpendableSection();
/**
* Toggle block
* @constructor
*/
function OsToggleBlock() {
$(".toggle-block-container").each(function () {
var $container = $(this);
var $target = $container.find(".toggle-block-target");
$target.hide();
$container.find(".toggle-block-trigger").on("click", function (event) {
event.preventDefault();
$target.slideToggle(300);
});
});
}
OsToggleBlock();
/**
* Price Filter
* @constructor
*/
/*function OsPriceFilter() {
$(".price-filter").each(function () {
String.prototype.toDec = function () {
return parseInt(this, 10);
};
var $sliderRange = $(this).find('.price-slider-range'),
$valueFrom = $(this).find('span.from'),
$valueTo = $(this).find('span.to'),
minprice = $(this).data('min') || 0,
maxprice = $(this).data('max') || 400,
from = $(this).data('from') || 1,
to = $(this).data('to') || 200;
$sliderRange.slider({
range: true,
min: minprice,
max: maxprice,
values: [from, to],
slide: function (event, ui) {
$valueFrom.text(ui.values[0]);
$valueTo.text(ui.values[1]);
}
});
$valueFrom.text($sliderRange.slider("values", 0));
$valueTo.text($sliderRange.slider("values", 1));
});
}*/
//OsPriceFilter();
/**
* Count Down
* @constructor
*/
function OsCountDown() {
$(".countdown-clock").each(function () {
var FinalTime = $(this).data("final-time");
$(this).countdown(FinalTime, function (event) {
$(this).html(
event.strftime(
"" +
"%mMonths
" +
"%dDays
" +
"%HHours
" +
"%MMinutes
" +
"%SSeconds
"
)
);
});
});
}
OsCountDown();
function OsModal() {
if ($.modal) {
$.modal.defaults = {
overlay: "#000", // Overlay color
opacity: 0.7, // Overlay opacity
zIndex: 1140, // Overlay z-index.
escapeClose: true, // Allows the user to close the modal by pressing `ESC`
clickClose: true, // Allows the user to close the modal by clicking the overlay
closeText: "Close", // Text content for the close tag.
closeClass: "", // Add additional class(es) to the close tag.
showClose: true, // Shows a (X) icon/link in the top-right corner
modalClass: "modal", // CSS class added to the element being displayed in the modal.
spinnerHtml: '', // HTML appended to the default spinner during AJAX requests.
showSpinner: true, // Enable/disable the default spinner during AJAX requests.
fadeDuration: 300, // Number of milliseconds the fade transition takes (null means no transition)
fadeDelay: 0, // Point during the overlay's fade-in that the modal begins to fade in (.5 = 50%, 1.5 = 150%, etc.)
};
function page_disable_scrolling(event, modal) {
var ScrollBarWidth = window.innerWidth - $(window).width();
$("html").css({
overflow: "hidden",
"padding-right": ScrollBarWidth + "px",
});
if ($(".product-thumbnail-slider").length > 0) {
$(".product-thumbnail-slider .syn-slider-1").slick("setDimensions");
$(".product-thumbnail-slider .syn-slider-2").slick("setDimensions");
}
if ($(".modal").length > 0) {
$(".modal").on("mousewheel", function (e) {
var event = e.originalEvent,
d = event.wheelDelta || -event.detail;
this.scrollTop += (d < 0 ? 1 : -1) * 30;
e.preventDefault();
});
}
if ($(".jquery-modal.blocker").length > 0) {
$(".jquery-modal.blocker").on("mousewheel", function (e) {
e.preventDefault();
});
}
}
function page_enable_scrolling(event, modal) {
$("html").css({ overflow: "", "padding-right": "" });
}
$(document).on($.modal.OPEN, page_disable_scrolling);
$(document).on($.modal.CLOSE, page_enable_scrolling);
$(window).on("resize", function () {
$.modal.resize();
});
}
//- Call modal with link
$("a[data-modal-open]").on("click", function (event) {
event.preventDefault();
$(this).modal();
});
$("a[data-modal-close]").on("click", function () {
$.modal.close();
return false;
});
}
OsModal();
/**
* Rating star
* @constructor
*/
function OsRatingStar() {
$(".star-ratings").each(function () {
var point = parseInt($(this).attr("data-rating"), 10);
if (point === 5) {
$(this).children("span").addClass("rated");
} else {
$(this).children().eq(point).prevAll().addClass("rated");
}
});
}
OsRatingStar();
/**
* Tabs
* @constructor
*/
function OsTabs() {
$(".tabs").each(function () {
var $this = $(this);
if (!($(this).data("ui-disable") == null)) {
var data_disable = $(this)
.data("ui-disable")
.split(",")
.map(function (e) {
return parseInt(e, 10);
});
}
$this.tabs({
active: $this.data("active") || 0,
hide: { effect: "fadeOut", duration: 100 },
show: { effect: "fadeIn", duration: 100 },
disabled: data_disable,
});
});
}
//OsTabs();
/**
* Quantity Input
* @constructor
*/
function OsQuantityInput() {
$(".quantity-input").each(function () {
$(this)
.find("button")
.on("click", function (event) {
event.preventDefault();
var $button = $(this);
var oldValue = $button
.parents(".quantity-input")
.find("input.number")
.val();
if ($button.hasClass("add")) {
var newVal = parseFloat(oldValue) + 1;
}
if ($button.hasClass("subract")) {
if (oldValue > 0) {
var newVal = parseFloat(oldValue) - 1;
} else {
newVal = 0;
}
}
$button.parents(".quantity-input").find("input.number").val(newVal);
});
});
}
OsQuantityInput();
/**
* Select Menu
* @constructor
*/
function OsSelectMenu() {
$(".select-menu").each(function () {
var $seclectMenu = $(this);
var menuClass = $seclectMenu.parent(".select-wrapper").data("menu-class");
$seclectMenu.selectmenu({
icons: { button: $(this).data("ui-icon") || "icon-down-open-big" },
});
if (!(menuClass === undefined)) {
$seclectMenu.selectmenu("menuWidget").addClass(menuClass);
}
$(window).on("resize load", function () {
$seclectMenu.selectmenu("refresh");
});
});
}
OsSelectMenu();
/**
* Use wow to put animation when scrolling
* @constructor
*/
function OsAnimation() {
wow = new WOW({
boxClass: "wow", // default
animateClass: "animated", // default
offset: 0, // default
mobile: true, // default
live: true, // default
});
wow.init();
}
OsAnimation();
/**
* Submit contact form with ajax
* @constructor
*/
function OsContactSubmit() {
$("#contact_form").on("submit", function (event) {
event.preventDefault();
var $submit_button = $(this).find('button[type="submit"]');
var backup_button = $submit_button.html();
var data = $(this).serialize();
$submit_button.html("PROCESSING").attr("disabled", "disabled");
$.ajax({
type: "POST",
url: "phpscript/contact.php",
data: data,
success: function (result) {
$submit_button.html('SUCCESSFUL ');
setTimeout(function () {
$submit_button.removeAttr("disabled").html(backup_button);
}, 2000);
},
});
});
}
OsContactSubmit();
/**
* Add particle background effect
* @constructor
*/
function OsParticleEffect() {
if ($("#particles-js").length > 0) {
particlesJS("particles-js", {
particles: {
number: {
value: 80,
density: {
enable: true,
value_area: 800,
},
},
color: {
value: "#ffffff",
},
shape: {
type: "circle",
stroke: {
width: 0,
color: "#000000",
},
polygon: {
nb_sides: 5,
},
image: {
src: "img/github.svg",
width: 100,
height: 100,
},
},
opacity: {
value: 0.5,
random: false,
anim: {
enable: false,
speed: 1,
opacity_min: 0.1,
sync: false,
},
},
size: {
value: 3,
random: true,
anim: {
enable: false,
speed: 40,
size_min: 0.1,
sync: false,
},
},
line_linked: {
enable: true,
distance: 150,
color: "#ffffff",
opacity: 0.4,
width: 1,
},
move: {
enable: true,
speed: 6,
direction: "none",
random: false,
straight: false,
out_mode: "out",
bounce: false,
attract: {
enable: false,
rotateX: 600,
rotateY: 1200,
},
},
},
interactivity: {
detect_on: "canvas",
events: {
onhover: {
enable: true,
mode: "grab",
},
onclick: {
enable: true,
mode: "push",
},
resize: true,
},
modes: {
grab: {
distance: 140,
line_linked: {
opacity: 1,
},
},
bubble: {
distance: 400,
size: 40,
duration: 2,
opacity: 8,
speed: 3,
},
repulse: {
distance: 200,
duration: 0.4,
},
push: {
particles_nb: 4,
},
remove: {
particles_nb: 2,
},
},
},
retina_detect: true,
});
}
}
OsParticleEffect();
//FitVids
$(".post .__header").fitVids();
//Mobile Menu
//$(".mobile-menu > ul > li.li-node.menu-item--expanded > a").attr("href", "#");
//$(".mobile-menu > ul > li.li-node.menu-item--expanded > ul > li.li-node > a").attr("href", "#");
//Modal
$("#modal-login .register-btn").on("click", function () {
$("#modal-login .close").trigger("click");
});
if ($(".left-nav-wrapper").length > 0) {
$("body").addClass("homepage-leftmenu");
}
//Tootip
$('[data-toggle="tooltip"]').tooltip();
//Resize Slick Slider when Popup
$(".modal").on("shown.bs.modal", function (e) {
$(".syn-slider-1").slick("setPosition", 0);
$(".syn-slider-2").slick("setPosition", 0);
});
$("#edit-mail-wrapper .form-email").attr(
"placeholder",
"Enter your email..."
);
if ($(".block-page-title-block h1.page-title > span").length > 0) {
$("h1.text-responsive.page-title").text(
$(".block-page-title-block h1.page-title > span").text()
);
} else {
$("h1.text-responsive.page-title").text(
$(".block-page-title-block h1.page-title").text()
);
}
});
jQuery(document).ajaxComplete(function () {
//alert(jQuery('input[name="product_id"]').attr("value"));
jQuery(".__price .product-price").removeClass("display");
jQuery(".__price .product-price").each(function () {
if (
jQuery('input[name="product_id"]').attr("value") ==
jQuery(this).attr("data-id")
) {
jQuery(this).addClass("display");
}
});
});
/**
* DO NOT EDIT THIS FILE.
* See the following change record for more information,
* https://www.drupal.org/node/2815083
* @preserve
**/
Drupal.debounce = function (func, wait, immediate) {
var timeout = void 0;
var result = void 0;
return function () {
for (
var _len = arguments.length, args = Array(_len), _key = 0;
_key < _len;
_key++
) {
args[_key] = arguments[_key];
}
var context = this;
var later = function later() {
timeout = null;
if (!immediate) {
result = func.apply(context, args);
}
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) {
result = func.apply(context, args);
}
return result;
};
};
/**
* DO NOT EDIT THIS FILE.
* See the following change record for more information,
* https://www.drupal.org/node/2815083
* @preserve
**/
(function ($, Drupal, debounce) {
$.fn.drupalGetSummary = function () {
var callback = this.data("summaryCallback");
return this[0] && callback ? $.trim(callback(this[0])) : "";
};
$.fn.drupalSetSummary = function (callback) {
var self = this;
if (typeof callback !== "function") {
var val = callback;
callback = function callback() {
return val;
};
}
return this.data("summaryCallback", callback)
.off("formUpdated.summary")
.on("formUpdated.summary", function () {
self.trigger("summaryUpdated");
})
.trigger("summaryUpdated");
};
Drupal.behaviors.formSingleSubmit = {
attach: function attach() {
function onFormSubmit(e) {
var $form = $(e.currentTarget);
var formValues = $form.serialize();
var previousValues = $form.attr("data-drupal-form-submit-last");
if (previousValues === formValues) {
e.preventDefault();
} else {
$form.attr("data-drupal-form-submit-last", formValues);
}
}
$("body")
.once("form-single-submit")
.on("submit.singleSubmit", 'form:not([method~="GET"])', onFormSubmit);
},
};
function triggerFormUpdated(element) {
$(element).trigger("formUpdated");
}
function fieldsList(form) {
var $fieldList = $(form)
.find("[name]")
.map(function (index, element) {
return element.getAttribute("id");
});
return $.makeArray($fieldList);
}
Drupal.behaviors.formUpdated = {
attach: function attach(context) {
var $context = $(context);
var contextIsForm = $context.is("form");
var $forms = (contextIsForm ? $context : $context.find("form")).once(
"form-updated"
);
var formFields = void 0;
if ($forms.length) {
$.makeArray($forms).forEach(function (form) {
var events = "change.formUpdated input.formUpdated ";
var eventHandler = debounce(function (event) {
triggerFormUpdated(event.target);
}, 300);
formFields = fieldsList(form).join(",");
form.setAttribute("data-drupal-form-fields", formFields);
$(form).on(events, eventHandler);
});
}
if (contextIsForm) {
formFields = fieldsList(context).join(",");
var currentFields = $(context).attr("data-drupal-form-fields");
if (formFields !== currentFields) {
triggerFormUpdated(context);
}
}
},
detach: function detach(context, settings, trigger) {
var $context = $(context);
var contextIsForm = $context.is("form");
if (trigger === "unload") {
var $forms = (contextIsForm
? $context
: $context.find("form")
).removeOnce("form-updated");
if ($forms.length) {
$.makeArray($forms).forEach(function (form) {
form.removeAttribute("data-drupal-form-fields");
$(form).off(".formUpdated");
});
}
}
},
};
Drupal.behaviors.fillUserInfoFromBrowser = {
attach: function attach(context, settings) {
var userInfo = ["name", "mail", "homepage"];
var $forms = $("[data-user-info-from-browser]").once(
"user-info-from-browser"
);
if ($forms.length) {
userInfo.forEach(function (info) {
var $element = $forms.find("[name=" + info + "]");
var browserData = localStorage.getItem("Drupal.visitor." + info);
var emptyOrDefault =
$element.val() === "" ||
$element.attr("data-drupal-default-value") === $element.val();
if ($element.length && emptyOrDefault && browserData) {
$element.val(browserData);
}
});
}
$forms.on("submit", function () {
userInfo.forEach(function (info) {
var $element = $forms.find("[name=" + info + "]");
if ($element.length) {
localStorage.setItem("Drupal.visitor." + info, $element.val());
}
});
});
},
};
var handleFragmentLinkClickOrHashChange = function handleFragmentLinkClickOrHashChange(
e
) {
var url = void 0;
if (e.type === "click") {
url = e.currentTarget.location
? e.currentTarget.location
: e.currentTarget;
} else {
url = window.location;
}
var hash = url.hash.substr(1);
if (hash) {
var $target = $("#" + hash);
$("body").trigger("formFragmentLinkClickOrHashChange", [$target]);
setTimeout(function () {
return $target.trigger("focus");
}, 300);
}
};
var debouncedHandleFragmentLinkClickOrHashChange = debounce(
handleFragmentLinkClickOrHashChange,
300,
true
);
$(window).on(
"hashchange.form-fragment",
debouncedHandleFragmentLinkClickOrHashChange
);
$(document).on(
"click.form-fragment",
'a[href*="#"]',
debouncedHandleFragmentLinkClickOrHashChange
);
})(jQuery, Drupal, Drupal.debounce);