/*!
* animsition v4.0.1
* A simple and easy jQuery plugin for CSS animated page transitions.
* http://blivesta.github.io/animsition
* License : MIT
* Author : blivesta (http://blivesta.com/)
*/ !(function (t) {
"use strict";
"function" == typeof define && define.amd
? define(["jquery"], t)
: "object" == typeof exports
? (module.exports = t(require("jquery")))
: t(jQuery);
})(function (t) {
"use strict";
var n = "animsition",
i = {
init: function (a) {
(a = t.extend(
{
inClass: "fade-in",
outClass: "fade-out",
inDuration: 1500,
outDuration: 800,
linkElement: ".animsition-link",
loading: !0,
loadingParentElement: "body",
loadingClass: "animsition-loading",
loadingInner: "",
timeout: !1,
timeoutCountdown: 5e3,
onLoadEvent: !0,
browser: ["animation-duration", "-webkit-animation-duration"],
overlay: !1,
overlayClass: "animsition-overlay-slide",
overlayParentElement: "body",
transition: function (t) {
window.location.href = t;
},
},
a
)),
(i.settings = {
timer: !1,
data: {
inClass: "animsition-in-class",
inDuration: "animsition-in-duration",
outClass: "animsition-out-class",
outDuration: "animsition-out-duration",
overlay: "animsition-overlay",
},
events: {
inStart: "animsition.inStart",
inEnd: "animsition.inEnd",
outStart: "animsition.outStart",
outEnd: "animsition.outEnd",
},
});
var o = i.supportCheck.call(this, a);
if (!o && a.browser.length > 0 && (!o || !this.length))
return (
"console" in window ||
((window.console = {}),
(window.console.log = function (t) {
return t;
})),
this.length ||
console.log("Animsition: Element does not exist on page."),
o || console.log("Animsition: Does not support this browser."),
i.destroy.call(this)
);
var e = i.optionCheck.call(this, a);
return (
e && i.addOverlay.call(this, a),
a.loading && i.addLoading.call(this, a),
this.each(function () {
var o = this,
e = t(this),
s = t(window),
r = t(document),
l = e.data(n);
l ||
((a = t.extend({}, a)),
e.data(n, { options: a }),
a.timeout && i.addTimer.call(o),
a.onLoadEvent &&
s.on("load." + n, function () {
i.settings.timer && clearTimeout(i.settings.timer),
i["in"].call(o);
}),
s.on("pageshow." + n, function (t) {
t.originalEvent.persisted && i["in"].call(o);
}),
s.on("unload." + n, function () {}),
r.on("click." + n, a.linkElement, function (n) {
n.preventDefault();
var a = t(this),
e = a.attr("href");
2 === n.which ||
n.metaKey ||
n.shiftKey ||
(-1 !== navigator.platform.toUpperCase().indexOf("WIN") &&
n.ctrlKey)
? window.open(e, "_blank")
: i.out.call(o, a, e);
}));
})
);
},
addOverlay: function (n) {
t(n.overlayParentElement).prepend(
'
'
);
},
addLoading: function (n) {
t(n.loadingParentElement).append(
'' + n.loadingInner + "
"
);
},
removeLoading: function () {
var i = t(this),
a = i.data(n).options,
o = t(a.loadingParentElement).children("." + a.loadingClass);
o.fadeOut().remove();
},
addTimer: function () {
var a = this,
o = t(this),
e = o.data(n).options;
i.settings.timer = setTimeout(function () {
i["in"].call(a), t(window).off("load." + n);
}, e.timeoutCountdown);
},
supportCheck: function (n) {
var i = t(this),
a = n.browser,
o = a.length,
e = !1;
0 === o && (e = !0);
for (var s = 0; o > s; s++)
if ("string" == typeof i.css(a[s])) {
e = !0;
break;
}
return e;
},
optionCheck: function (n) {
var a,
o = t(this);
return (a = n.overlay || o.data(i.settings.data.overlay) ? !0 : !1);
},
animationCheck: function (i, a, o) {
var e = t(this),
s = e.data(n).options,
r = typeof i,
l = !a && "number" === r,
d = a && "string" === r && i.length > 0;
return (
l || d
? (i = i)
: a && o
? (i = s.inClass)
: !a && o
? (i = s.inDuration)
: a && !o
? (i = s.outClass)
: a || o || (i = s.outDuration),
i
);
},
in: function () {
var a = this,
o = t(this),
e = o.data(n).options,
s = o.data(i.settings.data.inDuration),
r = o.data(i.settings.data.inClass),
l = i.animationCheck.call(a, s, !1, !0),
d = i.animationCheck.call(a, r, !0, !0),
u = i.optionCheck.call(a, e),
c = o.data(n).outClass;
e.loading && i.removeLoading.call(a),
c && o.removeClass(c),
u ? i.inOverlay.call(a, d, l) : i.inDefault.call(a, d, l);
},
inDefault: function (n, a) {
var o = t(this);
o.css({ "animation-duration": a + "ms" })
.addClass(n)
.trigger(i.settings.events.inStart)
.animateCallback(function () {
o.removeClass(n)
.css({ opacity: 1 })
.trigger(i.settings.events.inEnd);
});
},
inOverlay: function (a, o) {
var e = t(this),
s = e.data(n).options;
e.css({ opacity: 1 }).trigger(i.settings.events.inStart),
t(s.overlayParentElement)
.children("." + s.overlayClass)
.css({ "animation-duration": o + "ms" })
.addClass(a)
.animateCallback(function () {
e.trigger(i.settings.events.inEnd);
});
},
out: function (a, o) {
var e = this,
s = t(this),
r = s.data(n).options,
l = a.data(i.settings.data.outClass),
d = s.data(i.settings.data.outClass),
u = a.data(i.settings.data.outDuration),
c = s.data(i.settings.data.outDuration),
m = l ? l : d,
g = u ? u : c,
f = i.animationCheck.call(e, m, !0, !1),
v = i.animationCheck.call(e, g, !1, !1),
h = i.optionCheck.call(e, r);
(s.data(n).outClass = f),
h ? i.outOverlay.call(e, f, v, o) : i.outDefault.call(e, f, v, o);
},
outDefault: function (a, o, e) {
var s = t(this),
r = s.data(n).options;
s.css({ "animation-duration": o + 1 + "ms" })
.addClass(a)
.trigger(i.settings.events.outStart)
.animateCallback(function () {
s.trigger(i.settings.events.outEnd), r.transition(e);
});
},
outOverlay: function (a, o, e) {
var s = this,
r = t(this),
l = r.data(n).options,
d = r.data(i.settings.data.inClass),
u = i.animationCheck.call(s, d, !0, !0);
t(l.overlayParentElement)
.children("." + l.overlayClass)
.css({ "animation-duration": o + 1 + "ms" })
.removeClass(u)
.addClass(a)
.trigger(i.settings.events.outStart)
.animateCallback(function () {
r.trigger(i.settings.events.outEnd), l.transition(e);
});
},
destroy: function () {
return this.each(function () {
var i = t(this);
t(window).off("." + n), i.css({ opacity: 1 }).removeData(n);
});
},
};
(t.fn.animateCallback = function (n) {
var i = "animationend webkitAnimationEnd";
return this.each(function () {
var a = t(this);
a.on(i, function () {
return a.off(i), n.call(this);
});
});
}),
(t.fn.animsition = function (a) {
return i[a]
? i[a].apply(this, Array.prototype.slice.call(arguments, 1))
: "object" != typeof a && a
? void t.error("Method " + a + " does not exist on jQuery." + n)
: i.init.apply(this, arguments);
});
});