whitesource
Version:
whitesource node module
2 lines • 9.8 kB
JavaScript
/** UI-Router Extras v.0.0.14 Module: sticky http://christopherthielen.github.io/ui-router-extras/ - MIT License */
!function(e,t){"use strict";function n(t,n){var a=n,r=a.inheritParams,s=(a.objectKeys,a.protoKeys),o=a.forEach,i=a.map,l={},c={},f=!1;this.registerStickyState=function(e){c[e.name]=e},this.enableDebug=this.debugMode=function(t){return e.isDefined(t)&&(f=t),f},this.$get=["$rootScope","$state","$stateParams","$injector","$log",function(t,n,a,c,v){function d(){var t={};return e.forEach(l,function(e,n){for(var a=m(e),r=0;r<a.length;r++){var s=a[r].parent;t[s.name]=t[s.name]||[],t[s.name].push(e)}t[""]&&(t.__inactives=t[""])}),t}function h(){var e={};return o(l,function(t){o(t.path,function(n){n!==t&&(e[n.name]=e[n.name]||[],e[n.name].push(t))})}),e}function m(e){var t=[];if(!e)return t;do e.sticky&&t.push(e),e=e.parent;while(e);return t.reverse(),t}function p(e,t,n){if(e[n]===t[n])return{from:!1,to:!1};var a=n<e.length&&e[n].self.sticky,r=n<t.length&&t[n].self.sticky;return{from:a,to:r}}function g(e,t,n,a){if(a)return"updateStateParams";var r=l[e.self.name];if(!r)return"enter";if(e.self===n)return"updateStateParams";var s=x(t,r.locals.globals.$stateParams,e.ownParams);return s?"reactivate":"updateStateParams"}function $(e,t){var n=l[e.name];if(!n)return null;if(!t)return n;var a=x(t,n.locals.globals.$stateParams,e.ownParams);return a?n:null}function x(t,n,a){if(!e.isArray(a)&&e.isObject(a)&&(a=s(a,["$$keys","$$values","$$equals","$$validates","$$new","$$parent"])),!a){a=[];for(var r in t)a.push(r)}for(var o=0;o<a.length;o++){var i=a[o];if(t[i]!=n[i])return!1}return!0}var S={getInactiveStates:function(){var t=[];return e.forEach(l,function(e){t.push(e)}),t},getInactiveStatesByParent:function(){return d()},processTransition:function(t){var s={inactives:[],enter:[],exit:[],keep:0},u=t.fromState.path,c=t.fromParams,f=t.toState.path,v=t.toParams,d=t.reloadStateTree,m=t.options,$=0,S=f[$];for(m.inherit&&(v=r(a,v||{},n.$current,t.toState));S&&S===u[$]&&x(v,c,S.ownParams);)S=f[++$];s.keep=$;var E,P,b,k={},y=p(u,f,$),w=!!m.reload,R=[],F=[],T=[],_=[];for(E=$;E<u.length;E++)y.from?(s.inactives.push(u[E]),R.push(u[E]),s.exit[E]="inactivate"):(_.push(u[E]),s.exit[E]="exit");for(E=$;E<f.length;E++){var I=y.to?g(f[E],v,d,w):"enter";w=w||"updateStateParams"==I,s.enter[E]=I,"reactivate"==I?(F.push(f[E]),b=k[f[E].name]=f[E]):"updateStateParams"==I&&(P=k[f[E].name]=f[E]),T.push(f[E])}var j=h(),C=[];b===t.toState&&(C=j[b.name]||[]),_=_.concat(C);var O=i(_,function(e){return j[e.name]||[]});return o(O,function(e){_=_.concat(e)}),R=R.concat(i(l,e.identity)),R=R.filter(function(e){return-1===_.indexOf(e)&&-1===T.indexOf(e)}),s.inactives=R,s.reactivatingStates=F,s.deepestReactivateChildren=C,s},stateInactivated:function(e){l[e.self.name]=e,e.self.status="inactive",e.self.onInactivate&&c.invoke(e.self.onInactivate,e.self,e.locals.globals)},stateReactivated:function(e){l[e.self.name]&&delete l[e.self.name],e.self.status="entered",e.self.onReactivate&&c.invoke(e.self.onReactivate,e.self,e.locals.globals)},stateExiting:function(t,n,a){var r={};e.forEach(n,function(e){r[e.self.name]=!0}),e.forEach(l,function(n,a){!r[a]&&n.includes[t.name]&&(f&&v.debug("Exiting "+a+" because it's a substate of "+t.name+" and wasn't found in ",r),n.self.onExit&&c.invoke(n.self.onExit,n.self,n.locals.globals),e.forEach(n.locals,function(e,t){delete u.locals[t]}),n.locals=null,n.self.status="exited",delete l[a])}),a&&c.invoke(a,t.self,t.locals.globals),t.locals=null,t.self.status="exited",delete l[t.self.name]},stateEntering:function(e,t,n,a){var r=$(e);if(r&&(a||!$(e,t))){var s=e.locals;this.stateExiting(r),e.locals=s}e.self.status="entered",n&&c.invoke(n,e.self,e.locals.globals)},reset:function(a,r){function s(e){S.reset(e)}if("*"===a)return e.forEach(S.getInactiveStates(),s),!0;var o=n.get(a);if(!o)return!1;var i=$(o,r);return i?(S.stateExiting(i),t.$broadcast("$viewContentLoading"),!0):!1}};return S}]}function a(e){return{resolve:{},locals:{globals:o&&o.locals&&o.locals.globals},views:{},self:{},params:{},ownParams:f.hasParamSet?{$$equals:function(){return!0}}:[],surrogateType:e}}e.module("ct.ui.router.extras.sticky",["ct.ui.router.extras.core"]);var r=e.module("ct.ui.router.extras.sticky");n.$inject=["$stateProvider","uirextras_coreProvider"],r.provider("$stickyState",n);var s,o,i,u,l=[],c={},f={hasParamSet:!1};e.module("ct.ui.router.extras.sticky").run(["$stickyState",function(e){s=e}]),e.module("ct.ui.router.extras.sticky").config(["$provide","$stateProvider","$stickyStateProvider","$urlMatcherFactoryProvider","uirextras_coreProvider",function(n,r,v,d,h){function m(t,n,a){function r(e,t,n){return e[t]?e[t].toUpperCase()+": "+n.self.name:"("+n.self.name+")"}var o=E(a.inactives,function(e){return e.self.name}),i=E(n.toState.path,function(e,t){return r(a.enter,t,e)}),u=E(n.fromState.path,function(e,t){return r(a.exit,t,e)}),l=n.fromState.self.name+": "+e.toJson(n.fromParams)+": -> "+n.toState.self.name+": "+e.toJson(n.toParams);t.debug(" Current transition: ",l),t.debug("Before transition, inactives are: : ",E(s.getInactiveStates(),function(e){return e.self.name})),t.debug("After transition, inactives will be: ",o),t.debug("Transition will exit: ",u),t.debug("Transition will enter: ",i)}function p(e,t,n){e.debug("Current state: "+t.self.name+", inactive states: ",E(s.getInactiveStates(),function(e){return e.self.name}));for(var a=function(e,t){return"'"+t+"' ("+e.$$state.name+")"},r=function(e,t){return"globals"!=t&&"resolve"!=t},o=function(e){var t=E(P(e.locals,r),a).join(", ");return"("+(e.self.name?e.self.name:"root")+".locals"+(t.length?": "+t:"")+")"},i=o(t),u=t.parent;u&&u!==t;)""===u.self.name&&(i=o(n.$current.path[0])+" / "+i),i=o(u)+" / "+i,t=u,u=t.parent;e.debug("Views: "+i)}var g=h,$=g.internalStates,x=g.inherit,S=(g.inheritParams,g.forEach),E=g.map,P=g.filterObj;f.hasParamSet=!!d.ParamSet,u=e.extend(new a("__inactives"),{self:{name:"__inactives"}}),o=i=t,l=[],h.onStateRegistered(function(e){e.self.sticky===!0&&v.registerStickyState(e.self)});var b;n.decorator("$state",["$delegate","$log","$q",function(n,r,h){return o=n.$current,$[""]=o,o.parent=u,u.parent=t,u.locals=x(c,u.locals),o.locals=x(u.locals,o.locals),delete u.locals.globals,b=n.transitionTo,n.transitionTo=function(t,g,x){function P(t){var n=e.extend(new a("reactivate_phase1"),{locals:t.locals});return n.self=e.extend({},t.self),n}function k(t){var n=e.extend(new a("reactivate_phase2"),t),r=n.self.onEnter;return n.resolve={},n.views={},n.self.onEnter=function(){n.locals=t.locals,s.stateReactivated(t)},L.addRestoreFunction(function(){t.self.onEnter=r}),n}function y(e){var t=new a("inactivate");t.self=e.self;var n=e.self.onExit;return t.self.onExit=function(){s.stateInactivated(e)},L.addRestoreFunction(function(){e.self.onExit=n}),t}function w(e,t){var n=e.self.onEnter;return e.self.onEnter=function(){s.stateEntering(e,t,n)},L.addRestoreFunction(function(){e.self.onEnter=n}),e}function R(e,t){var n=e.self.onEnter;return e.self.onEnter=function(){s.stateEntering(e,t,n,!0)},L.addRestoreFunction(function(){e.self.onEnter=n}),e}function F(e){var t=e.self.onExit;return e.self.onExit=function(){s.stateExiting(e,J,t)},L.addRestoreFunction(function(){e.self.onExit=t}),e}var T=v.debugMode();u.locals||(u.locals=o.locals);var _=l.length;i&&(i(),T&&r.debug("Restored paths from pending transition"));var I,j,C,O,M=n.$current,q=n.params,A=x&&x.relative||n.$current,B=n.get(t,A),D=[],J=[];g=g||{},arguments[1]=g;var K=function(){},L=function(){I&&(U.path=I,I=null),j&&(M.path=j,j=null),e.forEach(L.restoreFunctions,function(e){e()}),L=K,i=null,l.splice(_,1)};if(L.restoreFunctions=[],L.addRestoreFunction=function(e){this.restoreFunctions.push(e)},B){var U=$[B.name];if(U){I=U.path,j=M.path;var V=x&&x.reload||!1,z=V&&(V===!0?I[0].self:n.get(V,A));x&&V&&V!==!0&&delete x.reload;var G={toState:U,toParams:g||{},fromState:M,fromParams:q||{},options:x,reloadStateTree:z};if(l.push(G),i=L,z){G.toParams.$$uirouterextrasreload=Math.random();var H=z.$$state().params,N=z.$$state().ownParams;if(f.hasParamSet){var Q=new d.Param("$$uirouterextrasreload");H.$$uirouterextrasreload=N.$$uirouterextrasreload=Q,L.restoreFunctions.push(function(){delete H.$$uirouterextrasreload,delete N.$$uirouterextrasreload})}else H.push("$$uirouterextrasreload"),N.push("$$uirouterextrasreload"),L.restoreFunctions.push(function(){H.length=H.length-1,N.length=N.length-1})}C=s.processTransition(G),T&&m(r,G,C);var W=U.path.slice(0,C.keep),X=M.path.slice(0,C.keep);e.forEach(u.locals,function(e,t){-1!=t.indexOf("@")&&delete u.locals[t]});var Y=function(e){return function(t,n){-1!==n.indexOf("@")&&(e[n]=t)}};S(C.inactives,function(e){S(e.locals,Y(u.locals))}),S(C.reactivatingStates,function(e){S(e.locals,Y(c))}),L.addRestoreFunction(function(){S(c,function(e,t){delete c[t]})}),e.forEach(C.enter,function(e,t){var n,a=U.path[t];"reactivate"===e?(n=P(a),W.push(n),X.push(n),D.push(k(a)),O=a):"updateStateParams"===e?(W.push(R(a)),O=a):"enter"===e&&W.push(w(a))}),e.forEach(C.exit,function(e,t){var n=M.path[t];"inactivate"===e?(X.push(y(n)),J.push(n)):"exit"===e&&(X.push(F(n)),J.push(n))}),D.length&&e.forEach(D,function(e){W.push(e)});var Z=C.deepestReactivateChildren;X=X.concat(E(C.deepestReactivateChildren,function(e){return F(e)})),J=J.concat(Z),M.path=X,U.path=W;var ee=function(e){return(e.surrogateType?e.surrogateType+":":"")+e.self.name};T&&r.debug("SurrogateFromPath: ",E(X,ee)),T&&r.debug("SurrogateToPath: ",E(W,ee))}}var te=b.apply(n,arguments);return te.then(function(e){return L(),T&&p(r,$[e.name],n),e.status="active",e},function(e){return L(),T&&"transition prevented"!==e.message&&"transition aborted"!==e.message&&"transition superseded"!==e.message&&(r.debug("transition failed",e),r.debug(e.stack)),h.reject(e)})},n}])}])}(angular);