/*! sidr - v2.2.1 - 2016-02-17
* http://www.berriart.com/sidr/
* Copyright (c) 2013-2016 Alberto Varela; Licensed MIT */
!function () {
"use strict";
function a(a, b, c) {
var d = new o(b);
switch (a) {
case"open":
d.open(c);
break;
case"close":
d.close(c);
break;
case"toggle":
d.toggle(c);
break;
default:
p.error("Method " + a + " does not exist on jQuery.sidr")
}
}
function b(a) {
return "status" === a ? h : s[a] ? s[a].apply(this, Array.prototype.slice.call(arguments, 1)) : "function" != typeof a && "string" != typeof a && a ? void q.error("Method " + a + " does not exist on jQuery.sidr") : s.toggle.apply(this, arguments)
}
function c(a, b) {
if ("function" == typeof b.source) {
var c = b.source(name);
a.html(c)
} else if ("string" == typeof b.source && i.isUrl(b.source))u.get(b.source, function (b) {
a.html(b)
}); else if ("string" == typeof b.source) {
var d = "", e = b.source.split(",");
if (u.each(e, function (a, b) {
d += '
' + u(b).html() + "
"
}), b.renaming) {
var f = u("").html(d);
f.find("*").each(function (a, b) {
var c = u(b);
i.addPrefixes(c)
}), d = f.html()
}
a.html(d)
} else null !== b.source && u.error("Invalid Sidr Source");
return a
}
function d(a) {
var d = i.transitions, e = u.extend({
name: "sidr",
speed: 200,
side: "left",
source: null,
renaming: !0,
body: "body",
displace: !0,
timing: "ease",
method: "toggle",
bind: "touchstart click",
onOpen: function () {
},
onClose: function () {
},
onOpenEnd: function () {
},
onCloseEnd: function () {
}
}, a), f = e.name, g = u("#" + f);
return 0 === g.length && (g = u("").attr("id", f).appendTo(u("body"))), d.supported && g.css(d.property, e.side + " " + e.speed / 1e3 + "s " + e.timing), g.addClass("sidr").addClass(e.side).data({
speed: e.speed,
side: e.side,
body: e.body,
displace: e.displace,
timing: e.timing,
method: e.method,
onOpen: e.onOpen,
onClose: e.onClose,
onOpenEnd: e.onOpenEnd,
onCloseEnd: e.onCloseEnd
}), g = c(g, e), this.each(function () {
var a = u(this), c = a.data("sidr"), d = !1;
c || (h.moving = !1, h.opened = !1, a.data("sidr", f), a.bind(e.bind, function (a) {
a.preventDefault(), d || (d = !0, b(e.method, f), setTimeout(function () {
d = !1
}, 100))
}))
})
}
var e = {};
e.classCallCheck = function (a, b) {
if (!(a instanceof b))throw new TypeError("Cannot call a class as a function")
}, e.createClass = function () {
function a(a, b) {
for (var c = 0; c < b.length; c++) {
var d = b[c];
d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d)
}
}
return function (b, c, d) {
return c && a(b.prototype, c), d && a(b, d), b
}
}();
var f, g, h = {moving: !1, opened: !1}, i = {
isUrl: function (a) {
var b = new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$", "i");
return b.test(a) ? !0 : !1
}, addPrefixes: function (a) {
this.addPrefix(a, "id"), this.addPrefix(a, "class"), a.removeAttr("style")
}, addPrefix: function (a, b) {
var c = a.attr(b);
"string" == typeof c && "" !== c && "sidr-inner" !== c && a.attr(b, c.replace(/([A-Za-z0-9_.\-]+)/g, "sidr-" + b + "-$1"))
}, transitions: function () {
var a = document.body || document.documentElement, b = a.style, c = !1, d = "transition";
return d in b ? c = !0 : !function () {
var a = ["moz", "webkit", "o", "ms"], e = void 0, f = void 0;
d = d.charAt(0).toUpperCase() + d.substr(1), c = function () {
for (f = 0; f < a.length; f++)if (e = a[f], e + d in b)return !0;
return !1
}(), d = c ? "-" + e.toLowerCase() + "-" + d.toLowerCase() : null
}(), {supported: c, property: d}
}()
}, j = jQuery, k = "sidr-animating", l = "open", m = "close", n = "webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend", o = function () {
function a(b) {
e.classCallCheck(this, a), this.name = b, this.item = j("#" + b), this.openClass = "sidr" === b ? "sidr-open" : "sidr-open " + b + "-open", this.menuWidth = this.item.outerWidth(!0), this.speed = this.item.data("speed"), this.side = this.item.data("side"), this.displace = this.item.data("displace"), this.timing = this.item.data("timing"), this.method = this.item.data("method"), this.onOpenCallback = this.item.data("onOpen"), this.onCloseCallback = this.item.data("onClose"), this.onOpenEndCallback = this.item.data("onOpenEnd"), this.onCloseEndCallback = this.item.data("onCloseEnd"), this.body = j(this.item.data("body"))
}
return e.createClass(a, [{
key: "getAnimation", value: function (a, b) {
var c = {}, d = this.side;
return "open" === a && "body" === b ? c[d] = this.menuWidth + "px" : "close" === a && "menu" === b ? c[d] = "-" + this.menuWidth + "px" : c[d] = 0, c
}
}, {
key: "prepareBody", value: function (a) {
var b = "open" === a ? "hidden" : "";
if (this.body.is("body")) {
var c = j("html"), d = c.scrollTop();
c.css("overflow-x", b).scrollTop(d)
}
}
}, {
key: "openBody", value: function () {
if (this.displace) {
var a = i.transitions, b = this.body;
if (a.supported)b.css(a.property, this.side + " " + this.speed / 1e3 + "s " + this.timing).css(this.side, 0).css({
width: b.width(),
position: "absolute"
}), b.css(this.side, this.menuWidth + "px"); else {
var c = this.getAnimation(l, "body");
b.css({width: b.width(), position: "absolute"}).animate(c, {queue: !1, duration: this.speed})
}
}
}
}, {
key: "onCloseBody", value: function () {
var a = i.transitions, b = {width: "", position: "", right: "", left: ""};
a.supported && (b[a.property] = ""), this.body.css(b).unbind(n)
}
}, {
key: "closeBody", value: function () {
var a = this;
if (this.displace)if (i.transitions.supported)this.body.css(this.side, 0).one(n, function () {
a.onCloseBody()
}); else {
var b = this.getAnimation(m, "body");
this.body.animate(b, {
queue: !1, duration: this.speed, complete: function () {
a.onCloseBody()
}
})
}
}
}, {
key: "moveBody", value: function (a) {
a === l ? this.openBody() : this.closeBody()
}
}, {
key: "onOpenMenu", value: function (a) {
var b = this.name;
h.moving = !1, h.opened = b, this.item.unbind(n), this.body.removeClass(k).addClass(this.openClass), this.onOpenEndCallback(), "function" == typeof a && a(b)
}
}, {
key: "openMenu", value: function (a) {
var b = this, c = this.item;
if (i.transitions.supported)c.css(this.side, 0).one(n, function () {
b.onOpenMenu(a)
}); else {
var d = this.getAnimation(l, "menu");
c.css("display", "block").animate(d, {
queue: !1, duration: this.speed, complete: function () {
b.onOpenMenu(a)
}
})
}
}
}, {
key: "onCloseMenu", value: function (a) {
this.item.css({
left: "",
right: ""
}).unbind(n), j("html").css("overflow-x", ""), h.moving = !1, h.opened = !1, this.body.removeClass(k).removeClass(this.openClass), this.onCloseEndCallback(), "function" == typeof a && a(name)
}
}, {
key: "closeMenu", value: function (a) {
var b = this, c = this.item;
if (i.transitions.supported)c.css(this.side, "").one(n, function () {
b.onCloseMenu(a)
}); else {
var d = this.getAnimation(m, "menu");
c.animate(d, {
queue: !1, duration: this.speed, complete: function () {
b.onCloseMenu()
}
})
}
}
}, {
key: "moveMenu", value: function (a, b) {
this.body.addClass(k), a === l ? this.openMenu(b) : this.closeMenu(b)
}
}, {
key: "move", value: function (a, b) {
h.moving = !0, this.prepareBody(a), this.moveBody(a), this.moveMenu(a, b)
}
}, {
key: "open", value: function (b) {
var c = this;
if (h.opened !== this.name && !h.moving) {
if (h.opened !== !1) {
var d = new a(h.opened);
return void d.close(function () {
c.open(b)
})
}
this.move("open", b), this.onOpenCallback()
}
}
}, {
key: "close", value: function (a) {
h.opened !== this.name || h.moving || (this.move("close", a), this.onCloseCallback())
}
}, {
key: "toggle", value: function (a) {
h.opened === this.name ? this.close(a) : this.open(a)
}
}]), a
}(), p = jQuery, q = jQuery, r = ["open", "close", "toggle"], s = {}, t = function (b) {
return function (c, d) {
"function" == typeof c ? (d = c, c = "sidr") : c || (c = "sidr"), a(b, c, d)
}
};
for (f = 0; f < r.length; f++)g = r[f], s[g] = t(g);
var u = jQuery;
jQuery.sidr = b, jQuery.fn.sidr = d
}();