diff --git a/admin/vendor/animsition/js/animsition.js b/admin/vendor/animsition/js/animsition.js
index 8b13789..a3134df 100644
--- a/admin/vendor/animsition/js/animsition.js
+++ b/admin/vendor/animsition/js/animsition.js
@@ -1 +1,361 @@
+/*!
+ * animsition v4.0.2
+ * A simple and easy jQuery plugin for CSS animated page transitions.
+ * http://blivesta.github.io/animsition
+ * License : MIT
+ * Author : blivesta (http://blivesta.com/)
+ */
+;(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof exports === 'object') {
+ module.exports = factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function ($) {
+ 'use strict';
+ var namespace = 'animsition';
+ var __ = {
+ init: function(options){
+ options = $.extend({
+ inClass : 'fade-in',
+ outClass : 'fade-out',
+ inDuration : 1500,
+ outDuration : 800,
+ linkElement : '.animsition-link',
+ // e.g. linkElement : 'a:not([target="_blank"]):not([href^="#"])'
+ loading : true,
+ loadingParentElement : 'body', //animsition wrapper element
+ loadingClass : 'animsition-loading',
+ loadingInner : '', // e.g '
'
+ timeout : false,
+ timeoutCountdown : 5000,
+ onLoadEvent : true,
+ browser : [ 'animation-duration', '-webkit-animation-duration'],
+ // "browser" option allows you to disable the "animsition" in case the css property in the array is not supported by your browser.
+ // The default setting is to disable the "animsition" in a browser that does not support "animation-duration".
+ overlay : false,
+ overlayClass : 'animsition-overlay-slide',
+ overlayParentElement : 'body',
+ transition : function(url){ window.location.href = url; }
+ }, options);
+ __.settings = {
+ timer: false,
+ 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'
+ }
+ };
+
+ // Remove the "Animsition" in a browser
+ // that does not support the "animaition-duration".
+ var support = __.supportCheck.call(this, options);
+
+ if(!support && options.browser.length > 0){
+ if(!support || !this.length){
+ // If do not have a console object to object window
+ if (!('console' in window)) {
+ window.console = {};
+ window.console.log = function(str){ return str; };
+ }
+ if(!this.length) console.log('Animsition: Element does not exist on page.');
+ if(!support) console.log('Animsition: Does not support this browser.');
+ return __.destroy.call(this);
+ }
+ }
+
+ var overlayMode = __.optionCheck.call(this, options);
+
+ if (overlayMode && $('.' + options.overlayClass).length <= 0) {
+ __.addOverlay.call(this, options);
+ }
+
+ if (options.loading && $('.' + options.loadingClass).length <= 0) {
+ __.addLoading.call(this, options);
+ }
+
+ return this.each(function(){
+ var _this = this;
+ var $this = $(this);
+ var $window = $(window);
+ var $document = $(document);
+ var data = $this.data(namespace);
+
+ if (!data) {
+ options = $.extend({}, options);
+
+ $this.data(namespace, { options: options });
+
+ if(options.timeout) __.addTimer.call(_this);
+
+ if(options.onLoadEvent) {
+ $window.on('load.' + namespace, function() {
+ if(__.settings.timer) clearTimeout(__.settings.timer);
+ __.in.call(_this);
+ });
+ }
+
+ $window.on('pageshow.' + namespace, function(event) {
+ if(event.originalEvent.persisted) __.in.call(_this);
+ });
+
+ // Firefox back button issue #4
+ $window.on('unload.' + namespace, function() { });
+
+ $document.on('click.' + namespace, options.linkElement, function(event) {
+ event.preventDefault();
+ var $self = $(this);
+ var url = $self.attr('href');
+
+ // middle mouse button issue #24
+ // if(middle mouse button || command key || shift key || win control key)
+ if (event.which === 2 || event.metaKey || event.shiftKey || navigator.platform.toUpperCase().indexOf('WIN') !== -1 && event.ctrlKey) {
+ window.open(url, '_blank');
+ } else {
+ __.out.call(_this, $self, url);
+ }
+
+ });
+ }
+ }); // end each
+ },
+
+ addOverlay: function(options){
+ $(options.overlayParentElement)
+ .prepend('
');
+ },
+
+ addLoading: function(options){
+ $(options.loadingParentElement)
+ .append('' + options.loadingInner + '
');
+ },
+
+ removeLoading: function(){
+ var $this = $(this);
+ var options = $this.data(namespace).options;
+ var $loading = $(options.loadingParentElement).children('.' + options.loadingClass);
+
+ $loading.fadeOut().remove();
+ },
+
+ addTimer: function(){
+ var _this = this;
+ var $this = $(this);
+ var options = $this.data(namespace).options;
+
+ __.settings.timer = setTimeout(function(){
+ __.in.call(_this);
+ $(window).off('load.' + namespace);
+ }, options.timeoutCountdown);
+ },
+
+ supportCheck: function(options){
+ var $this = $(this);
+ var props = options.browser;
+ var propsNum = props.length;
+ var support = false;
+
+ if (propsNum === 0) {
+ support = true;
+ }
+ for (var i = 0; i < propsNum; i++) {
+ if (typeof $this.css(props[i]) === 'string') {
+ support = true;
+ break;
+ }
+ }
+ return support;
+ },
+
+ optionCheck: function(options){
+ var $this = $(this);
+ var overlayMode;
+ if(options.overlay || $this.data(__.settings.data.overlay)){
+ overlayMode = true;
+ } else {
+ overlayMode = false;
+ }
+ return overlayMode;
+ },
+
+ animationCheck : function(data, stateClass, stateIn){
+ var $this = $(this);
+ var options = $this.data(namespace).options;
+ var dataType = typeof data;
+ var dataDuration = !stateClass && dataType === 'number';
+ var dataClass = stateClass && dataType === 'string' && data.length > 0;
+
+ if(dataDuration || dataClass){
+ data = data;
+ } else if(stateClass && stateIn) {
+ data = options.inClass;
+ } else if(!stateClass && stateIn) {
+ data = options.inDuration;
+ } else if(stateClass && !stateIn) {
+ data = options.outClass;
+ } else if(!stateClass && !stateIn) {
+ data = options.outDuration;
+ }
+ return data;
+ },
+
+ in: function(){
+ var _this = this;
+ var $this = $(this);
+ var options = $this.data(namespace).options;
+ var thisInDuration = $this.data(__.settings.data.inDuration);
+ var thisInClass = $this.data(__.settings.data.inClass);
+ var inDuration = __.animationCheck.call(_this, thisInDuration, false, true);
+ var inClass = __.animationCheck.call(_this, thisInClass, true, true);
+ var overlayMode = __.optionCheck.call(_this, options);
+ var outClass = $this.data(namespace).outClass;
+
+ if(options.loading) __.removeLoading.call(_this);
+
+ if(outClass) $this.removeClass(outClass);
+
+ if(overlayMode) {
+ __.inOverlay.call(_this, inClass, inDuration);
+ } else {
+ __.inDefault.call(_this, inClass, inDuration);
+ }
+ },
+
+ inDefault: function(inClass, inDuration){
+ var $this = $(this);
+
+ $this
+ .css({ 'animation-duration' : inDuration + 'ms' })
+ .addClass(inClass)
+ .trigger(__.settings.events.inStart)
+ .animateCallback(function(){
+ $this
+ .removeClass(inClass)
+ .css({ 'opacity' : 1 })
+ .trigger(__.settings.events.inEnd);
+ });
+ },
+
+ inOverlay: function(inClass, inDuration){
+ var $this = $(this);
+ var options = $this.data(namespace).options;
+
+ $this
+ .css({ 'opacity' : 1 })
+ .trigger(__.settings.events.inStart);
+
+ $(options.overlayParentElement)
+ .children('.' + options.overlayClass)
+ .css({ 'animation-duration' : inDuration + 'ms' })
+ .addClass(inClass)
+ .animateCallback(function(){
+ $this
+ .trigger(__.settings.events.inEnd);
+ });
+ },
+
+ out: function($self, url){
+ var _this = this;
+ var $this = $(this);
+ var options = $this.data(namespace).options;
+ var selfOutClass = $self.data(__.settings.data.outClass);
+ var thisOutClass = $this.data(__.settings.data.outClass);
+ var selfOutDuration = $self.data(__.settings.data.outDuration);
+ var thisOutDuration = $this.data(__.settings.data.outDuration);
+ var isOutClass = selfOutClass ? selfOutClass : thisOutClass;
+ var isOutDuration = selfOutDuration ? selfOutDuration : thisOutDuration;
+ var outClass = __.animationCheck.call(_this, isOutClass, true, false);
+ var outDuration = __.animationCheck.call(_this, isOutDuration, false, false);
+ var overlayMode = __.optionCheck.call(_this, options);
+
+ $this.data(namespace).outClass = outClass;
+
+ if(overlayMode) {
+ __.outOverlay.call(_this, outClass, outDuration, url);
+ } else {
+ __.outDefault.call(_this, outClass, outDuration, url);
+ }
+ },
+
+ outDefault: function(outClass, outDuration, url){
+ var $this = $(this);
+ var options = $this.data(namespace).options;
+
+ // (outDuration + 1) | #55 outDuration: 0 crashes on Safari only
+ $this
+ .css({ 'animation-duration' : (outDuration + 1) + 'ms' })
+ .addClass(outClass)
+ .trigger(__.settings.events.outStart)
+ .animateCallback(function(){
+ $this.trigger(__.settings.events.outEnd);
+ options.transition(url);
+ });
+ },
+
+
+ outOverlay: function(outClass, outDuration, url){
+ var _this = this;
+ var $this = $(this);
+ var options = $this.data(namespace).options;
+ var thisInClass = $this.data(__.settings.data.inClass);
+ var inClass = __.animationCheck.call(_this, thisInClass, true, true);
+
+ // (outDuration + 1) | #55 outDuration: 0 crashes animsition on Safari only
+ $(options.overlayParentElement)
+ .children('.' + options.overlayClass)
+ .css({ 'animation-duration' : (outDuration + 1) + 'ms' })
+ .removeClass(inClass)
+ .addClass(outClass)
+ .trigger(__.settings.events.outStart)
+ .animateCallback(function(){
+ $this.trigger(__.settings.events.outEnd);
+ options.transition(url);
+ });
+ },
+
+ destroy: function(){
+ return this.each(function(){
+ var $this = $(this);
+ $(window).off('.'+ namespace);
+ $this
+ .css({'opacity': 1})
+ .removeData(namespace);
+ });
+ }
+
+ };
+
+ $.fn.animateCallback = function(callback){
+ var end = 'animationend webkitAnimationEnd';
+ return this.each(function() {
+ var $this = $(this);
+ $this.on(end, function(){
+ $this.off(end);
+ return callback.call(this);
+ });
+ });
+ };
+
+ $.fn.animsition = function(method){
+ if ( __[method] ) {
+ return __[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
+ } else if ( typeof method === 'object' || ! method ) {
+ return __.init.apply( this, arguments );
+ } else {
+ $.error( 'Method ' + method + ' does not exist on jQuery.'+namespace);
+ }
+ };
+
+}));
diff --git a/admin/vendor/animsition/js/animsition.min.js b/admin/vendor/animsition/js/animsition.min.js
new file mode 100644
index 0000000..64a143a
--- /dev/null
+++ b/admin/vendor/animsition/js/animsition.min.js
@@ -0,0 +1,8 @@
+/*!
+ * animsition v4.0.2
+ * 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&&t("."+a.overlayClass).length<=0&&i.addOverlay.call(this,a),a.loading&&t("."+a.loadingClass).length<=0&&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)}});
\ No newline at end of file