UNPKG

cordova-plugin-nativepagetransitions

Version:

Slide out the current page to reveal the next one. By a native transitions.

1 lines 3.83 kB
(function(){"use strict";var t=[],n=null,i,r;ionic.on("click",function(){setTimeout(function(){window.NativePageTransitionsIonicAdapter.apply()},400)});i=function(){window.NativePageTransitionsIonicAdapter=this};i.prototype={enhanceBackbuttons:function(n){for(var i,r,f,e=document.querySelectorAll("button.back-button"),u=0;u<e.length;u++)i=e[u],i.getAttribute("animation-native")!=="false"&&(r=t.pop()||"slide:right",f=r.substring(r.indexOf(":")+1),r.indexOf("flip")>-1?(i.setAttribute("onclick","event.preventDefault ? event.preventDefault() : event.returnValue = false;"),i.setAttribute("ontouchend",'event.preventDefault ? event.preventDefault() : event.returnValue = false; setTimeout(function(){window.kendo.mobile.application.pane.navigate("#:back")},20); window.NativePageTransitionsIonicAdapter.flip(\''+f+"', '"+n+"', '100', '100')")):(i.setAttribute("onclick","event.stopPropagation(); event.preventDefault ? event.preventDefault() : event.returnValue = false;"),i.setAttribute("ontouchend","event.preventDefault ? event.preventDefault() : event.returnValue = false; window.NativePageTransitionsIonicAdapter.slide('"+f+"', '"+n+"', '140', '140')")))},apply:function(){var r,e,o,c,s,t,i,h,u,f;if(n==null&&(n=document.body.getAttribute("animation"),n==null&&(n="none")),n=="none")r=document.querySelectorAll("a[animation]");else for(r=document.querySelectorAll("a[href]:not([data-rel])"),e=0;e<r.length;e++)o=r[e],c=o.getAttribute("href").toLowerCase(),c.indexOf("window.open")==-1&&c.indexOf("url.loadurl")==-1&&(o.hasAttribute("animation")||o.setAttribute("animation",n));for(s=0;s<r.length;s++)if(t=r[s],t.getAttribute("animation-native")!=="false"&&(i=t.getAttribute("animation"),i!=null&&i!="none")){if(h=t.getAttribute("href"),u=t.getAttribute("animation-native-androiddelay"),u==null&&(u=100),f=t.getAttribute("animation-native-iosdelay"),f==null&&(f=100),i.indexOf("slide")>-1)this._addSlideEvent(t,i,h,u,f);else if(i.indexOf("flip")>-1)this._addFlipEvent(t,i,h,u,f);else continue;t.removeAttribute("animation");h!=null&&t.removeAttribute("href")}},_addSlideEvent:function(n,t,i,r,u){var f="left";t.indexOf("slide-right")>-1?f="right":t.indexOf("slide-up")>-1?f="up":t.indexOf("slide-down")>-1&&(f="down");n.setAttribute("onclick","window.NativePageTransitionsIonicAdapter.slide('"+f+"', '"+i+"', '"+r+"', '"+u+"')")},_addFlipEvent:function(n,t,i,r,u){var f="left";t.indexOf("flip-right")>-1?f="right":t.indexOf("flip-up")>-1?f="up":t.indexOf("flip-down")>-1&&(f="down");n.setAttribute("onclick","window.NativePageTransitionsIonicAdapter.flip('"+f+"', '"+i+"', '"+r+"', '"+u+"')")},getOppositeDirection:function(n){return n=="right"?"left":n=="up"?"down":n=="down"?"up":"right"},slide:function(n,i,r,u){event.preventDefault?event.preventDefault():event.returnValue=!1;t.push("slide:"+this.getOppositeDirection(n));window.plugins.nativepagetransitions.slide({direction:n,androiddelay:r,iosdelay:u,href:i},function(){console.log("slide transition finished")},function(n){console.log("slide transition failed: "+n)})},flip:function(n,i,r,u){event.preventDefault?event.preventDefault():event.returnValue=!1;t.push("flip:"+this.getOppositeDirection(n));window.plugins.nativepagetransitions.flip({direction:n,androiddelay:r,iosdelay:u,href:i},function(){console.log("flip transition finished")},function(n){console.log("flip transition failed: "+n)})}};r=new i;document.addEventListener("deviceready",function(){if(window.ionic&&window.plugins&&window.plugins.nativepagetransitions){r.apply();r.enhanceBackbuttons();window.ionic.on("hashchange",function(n){var t=n.oldURL.substring(n.oldURL.indexOf("#"));setTimeout(function(){window.NativePageTransitionsIonicAdapter.enhanceBackbuttons(t)},100)})}else console.log("window.plugins.nativepagetransitions is not available, so no native transitions will be applied")},!1)})();