whitesource
Version:
whitesource node module
2 lines • 22.7 kB
JavaScript
/** UI-Router Extras v.0.0.14 Monolithic build (all modules) http://christopherthielen.github.io/ui-router-extras/ - MIT License */
!function(t,e){"use strict";"function"==typeof define&&define.amd?define(["angular"],function(t){e(t)}):e("object"==typeof exports?require("angular"):t.angular)}(this,function(t,e){function r(t,e){var r=[];for(var n in t.path){if(t.path[n]!==e.path[n])break;r.push(t.path[n])}return r}function n(e){if(Object.keys)return Object.keys(e);var r=[];return t.forEach(e,function(t,e){r.push(e)}),r}function a(t,e){var r=[];for(var n in t)e&&-1!==e.indexOf(n)||r.push(n);return r}function o(t,e){if(Array.prototype.indexOf)return t.indexOf(e,Number(arguments[2])||0);var r=t.length>>>0,n=Number(arguments[2])||0;for(n=0>n?Math.ceil(n):Math.floor(n),0>n&&(n+=r);r>n;n++)if(n in t&&t[n]===e)return n;return-1}function i(t,e,a,i){var u,s=r(a,i),c={},f=[];for(var l in s)if(s[l].params&&(u=$(s[l].params)?s[l].params:n(s[l].params),u.length))for(var v in u)o(f,u[v])>=0||(f.push(u[v]),c[u[v]]=t[u[v]]);return h({},c,e)}function u(t,e){return h(new(h(function(){},{prototype:t})),e)}function s(t){d.push(t)}function c(){b=e}function f(e,r){var n=r,a=n.inheritParams,o=(n.objectKeys,n.protoKeys),i=n.forEach,u=n.map,s={},c={},f=!1;this.registerStickyState=function(t){c[t.name]=t},this.enableDebug=this.debugMode=function(e){return t.isDefined(e)&&(f=e),f},this.$get=["$rootScope","$state","$stateParams","$injector","$log",function(e,r,n,c,l){function v(){var e={};return t.forEach(s,function(t,r){for(var n=d(t),a=0;a<n.length;a++){var o=n[a].parent;e[o.name]=e[o.name]||[],e[o.name].push(t)}e[""]&&(e.__inactives=e[""])}),e}function p(){var t={};return i(s,function(e){i(e.path,function(r){r!==e&&(t[r.name]=t[r.name]||[],t[r.name].push(e))})}),t}function d(t){var e=[];if(!t)return e;do t.sticky&&e.push(t),t=t.parent;while(t);return e.reverse(),e}function m(t,e,r){if(t[r]===e[r])return{from:!1,to:!1};var n=r<t.length&&t[r].self.sticky,a=r<e.length&&e[r].self.sticky;return{from:n,to:a}}function h(t,e,r,n){if(n)return"updateStateParams";var a=s[t.self.name];if(!a)return"enter";if(t.self===r)return"updateStateParams";var o=g(e,a.locals.globals.$stateParams,t.ownParams);return o?"reactivate":"updateStateParams"}function $(t,e){var r=s[t.name];if(!r)return null;if(!e)return r;var n=g(e,r.locals.globals.$stateParams,t.ownParams);return n?r:null}function g(e,r,n){if(!t.isArray(n)&&t.isObject(n)&&(n=o(n,["$$keys","$$values","$$equals","$$validates","$$new","$$parent"])),!n){n=[];for(var a in e)n.push(a)}for(var i=0;i<n.length;i++){var u=n[i];if(e[u]!=r[u])return!1}return!0}var x={getInactiveStates:function(){var e=[];return t.forEach(s,function(t){e.push(t)}),e},getInactiveStatesByParent:function(){return v()},processTransition:function(e){var o={inactives:[],enter:[],exit:[],keep:0},c=e.fromState.path,f=e.fromParams,l=e.toState.path,v=e.toParams,d=e.reloadStateTree,$=e.options,x=0,y=l[x];for($.inherit&&(v=a(n,v||{},r.$current,e.toState));y&&y===c[x]&&g(v,f,y.ownParams);)y=l[++x];o.keep=x;var S,b,E,P={},k=m(c,l,x),w=!!$.reload,R=[],j=[],F=[],A=[];for(S=x;S<c.length;S++)k.from?(o.inactives.push(c[S]),R.push(c[S]),o.exit[S]="inactivate"):(A.push(c[S]),o.exit[S]="exit");for(S=x;S<l.length;S++){var O=k.to?h(l[S],v,d,w):"enter";w=w||"updateStateParams"==O,o.enter[S]=O,"reactivate"==O?(j.push(l[S]),E=P[l[S].name]=l[S]):"updateStateParams"==O&&(b=P[l[S].name]=l[S]),F.push(l[S])}var T=p(),C=[];E===e.toState&&(C=T[E.name]||[]),A=A.concat(C);var _=u(A,function(t){return T[t.name]||[]});return i(_,function(t){A=A.concat(t)}),R=R.concat(u(s,t.identity)),R=R.filter(function(t){return-1===A.indexOf(t)&&-1===F.indexOf(t)}),o.inactives=R,o.reactivatingStates=j,o.deepestReactivateChildren=C,o},stateInactivated:function(t){s[t.self.name]=t,t.self.status="inactive",t.self.onInactivate&&c.invoke(t.self.onInactivate,t.self,t.locals.globals)},stateReactivated:function(t){s[t.self.name]&&delete s[t.self.name],t.self.status="entered",t.self.onReactivate&&c.invoke(t.self.onReactivate,t.self,t.locals.globals)},stateExiting:function(e,r,n){var a={};t.forEach(r,function(t){a[t.self.name]=!0}),t.forEach(s,function(r,n){!a[n]&&r.includes[e.name]&&(f&&l.debug("Exiting "+n+" because it's a substate of "+e.name+" and wasn't found in ",a),r.self.onExit&&c.invoke(r.self.onExit,r.self,r.locals.globals),t.forEach(r.locals,function(t,e){delete R.locals[e]}),r.locals=null,r.self.status="exited",delete s[n])}),n&&c.invoke(n,e.self,e.locals.globals),e.locals=null,e.self.status="exited",delete s[e.self.name]},stateEntering:function(t,e,r,n){var a=$(t);if(a&&(n||!$(t,e))){var o=t.locals;this.stateExiting(a),t.locals=o}t.self.status="entered",r&&c.invoke(r,t.self,t.locals.globals)},reset:function(n,a){function o(t){x.reset(t)}if("*"===n)return t.forEach(x.getInactiveStates(),o),!0;var i=r.get(n);if(!i)return!1;var u=$(i,a);return u?(x.stateExiting(u),e.$broadcast("$viewContentLoading"),!0):!1}};return x}]}function l(t){return{resolve:{},locals:{globals:k&&k.locals&&k.locals.globals},views:{},self:{},params:{},ownParams:A.hasParamSet?{$$equals:function(){return!0}}:[],surrogateType:t}}var v=t.module("ct.ui.router.extras.core",["ui.router"]),p={},d=[];v.config(["$stateProvider","$injector",function(e,r){e.decorator("parent",function(e,r){return p[e.self.name]=e,e.self.$$state=function(){return p[e.self.name]},t.forEach(d,function(t){t(e)}),r(e)})}]);var m=t.forEach,h=t.extend,$=t.isArray,g=function(t,e){"use strict";var r=[];return m(t,function(t,n){r.push(e(t,n))}),r},x=function(t){"use strict";return g(t,function(t,e){return e})},y=function(t,e){"use strict";var r=[];return m(t,function(t,n){e(t,n)&&r.push(t)}),r},S=function(t,e){"use strict";var r={};return m(t,function(t,n){e(t,n)&&(r[n]=t)}),r};v.provider("uirextras_core",function(){var e={internalStates:p,onStateRegistered:s,forEach:m,extend:h,isArray:$,map:g,keys:x,filter:y,filterObj:S,ancestors:r,objectKeys:n,protoKeys:a,arraySearch:o,inheritParams:i,inherit:u};t.extend(this,e),this.$get=function(){return e}});var b;t.module("ct.ui.router.extras.dsr",["ct.ui.router.extras.core"]).config(["$provide",function(t){var e;t.decorator("$state",["$delegate","$q",function(t,r){return e=t.transitionTo,t.transitionTo=function(n,a,o){return o.ignoreDsr&&(b=o.ignoreDsr),e.apply(t,arguments).then(function(t){return c(),t},function(t){return c(),r.reject(t)})},t}])}]),t.module("ct.ui.router.extras.dsr").service("$deepStateRedirect",["$rootScope","$state","$injector",function(r,n,a){function o(t){var e=t.name;return l.hasOwnProperty(e)?l[e]:void u(e)}function i(e){var r=e.deepStateRedirect||e.dsr;if(!r)return{dsr:!1};var n={dsr:!0};return t.isFunction(r)?n.fn=r:t.isObject(r)&&(n=t.extend(n,r)),t.isString(n["default"])&&(n["default"]={state:n["default"]}),n.fn||(n.fn=["$dsr$",function(t){return t.redirect.state!=t.to.state}]),n}function u(t){var r=n.get(t);if(!r)return!1;var a=i(r);a.dsr&&(l[r.name]=v,f[t]===e&&(f[t]={}));var o=r.$$state&&r.$$state().parent;if(o){var s=u(o.self.name);s&&l[r.name]===e&&(l[r.name]=p)}return l[r.name]||!1}function s(r,n){n===!0&&(n=Object.keys(r)),(null===n||n===e)&&(n=[]);var a={};return t.forEach(n.sort(),function(t){a[t]=r[t]}),a}function c(e,r){function n(t){return t?t.toString():t}var a=s(e,r),o={};return t.forEach(a,function(t,e){o[e]=n(t)}),t.toJson(o)}var f={},l={},v="Redirect",p="AncestorRedirect";return r.$on("$stateChangeStart",function(e,r,u,l,p){var d=i(r);if(!b&&(o(r)===v||d["default"])){var m=c(u,d.params),h=f[r.name][m]||d["default"];if(h){var $={redirect:{state:h.state,params:h.params},to:{state:r.name,params:u}},g=a.invoke(d.fn,r,{$dsr$:$});if(g){g.state&&(h=g),e.preventDefault();var x=s(u,d.params);n.go(h.state,t.extend(x,h.params))}}}}),r.$on("$stateChangeSuccess",function(e,r,a,u,s){var l=o(r);if(l){var v=r.name;t.forEach(f,function(e,o){var u=i(n.get(o)),s=c(a,u.params);r.$$state().includes[o]&&(f[o][s]={state:v,params:t.copy(a)})})}}),{getRedirect:function(t,e){var r=n.get(t);o(r);var a=i(r),u=c(e,a.params),s=f[r.name][u]||a["default"];return s},reset:function(e,r){if(e){var a=n.get(e);if(!a)throw new Error("Unknown state: "+e);if(f[a.name])if(r){var o=c(r,i(a).params);delete f[a.name][o]}else f[a.name]={}}else t.forEach(f,function(t,e){f[e]={}})}}}]),t.module("ct.ui.router.extras.dsr").run(["$deepStateRedirect",function(t){}]),t.module("ct.ui.router.extras.sticky",["ct.ui.router.extras.core"]);var E=t.module("ct.ui.router.extras.sticky");f.$inject=["$stateProvider","uirextras_coreProvider"],E.provider("$stickyState",f);var P,k,w,R,p={},j=[],F={},A={hasParamSet:!1};t.module("ct.ui.router.extras.sticky").run(["$stickyState",function(t){P=t}]),t.module("ct.ui.router.extras.sticky").config(["$provide","$stateProvider","$stickyStateProvider","$urlMatcherFactoryProvider","uirextras_coreProvider",function(r,n,a,o,i){function u(e,r,n){function a(t,e,r){return t[e]?t[e].toUpperCase()+": "+r.self.name:"("+r.self.name+")"}var o=d(n.inactives,function(t){return t.self.name}),i=d(r.toState.path,function(t,e){return a(n.enter,e,t)}),u=d(r.fromState.path,function(t,e){return a(n.exit,e,t)}),s=r.fromState.self.name+": "+t.toJson(r.fromParams)+": -> "+r.toState.self.name+": "+t.toJson(r.toParams);e.debug(" Current transition: ",s),e.debug("Before transition, inactives are: : ",d(P.getInactiveStates(),function(t){return t.self.name})),e.debug("After transition, inactives will be: ",o),e.debug("Transition will exit: ",u),e.debug("Transition will enter: ",i)}function s(t,e,r){t.debug("Current state: "+e.self.name+", inactive states: ",d(P.getInactiveStates(),function(t){return t.self.name}));for(var n=function(t,e){return"'"+e+"' ("+t.$$state.name+")"},a=function(t,e){return"globals"!=e&&"resolve"!=e},o=function(t){var e=d(m(t.locals,a),n).join(", ");return"("+(t.self.name?t.self.name:"root")+".locals"+(e.length?": "+e:"")+")"},i=o(e),u=e.parent;u&&u!==e;)""===u.self.name&&(i=o(r.$current.path[0])+" / "+i),i=o(u)+" / "+i,e=u,u=e.parent;t.debug("Views: "+i)}var c=i,f=c.internalStates,v=c.inherit,p=(c.inheritParams,c.forEach),d=c.map,m=c.filterObj;A.hasParamSet=!!o.ParamSet,R=t.extend(new l("__inactives"),{self:{name:"__inactives"}}),k=w=e,j=[],i.onStateRegistered(function(t){t.self.sticky===!0&&a.registerStickyState(t.self)});var h;r.decorator("$state",["$delegate","$log","$q",function(r,n,i){return k=r.$current,f[""]=k,k.parent=R,R.parent=e,R.locals=v(F,R.locals),k.locals=v(R.locals,k.locals),delete R.locals.globals,h=r.transitionTo,r.transitionTo=function(e,c,v){function m(e){var r=t.extend(new l("reactivate_phase1"),{locals:e.locals});return r.self=t.extend({},e.self),r}function $(e){var r=t.extend(new l("reactivate_phase2"),e),n=r.self.onEnter;return r.resolve={},r.views={},r.self.onEnter=function(){r.locals=e.locals,P.stateReactivated(e)},J.addRestoreFunction(function(){e.self.onEnter=n}),r}function g(t){var e=new l("inactivate");e.self=t.self;var r=t.self.onExit;return e.self.onExit=function(){P.stateInactivated(t)},J.addRestoreFunction(function(){t.self.onExit=r}),e}function x(t,e){var r=t.self.onEnter;return t.self.onEnter=function(){P.stateEntering(t,e,r)},J.addRestoreFunction(function(){t.self.onEnter=r}),t}function y(t,e){var r=t.self.onEnter;return t.self.onEnter=function(){P.stateEntering(t,e,r,!0)},J.addRestoreFunction(function(){t.self.onEnter=r}),t}function S(t){var e=t.self.onExit;return t.self.onExit=function(){P.stateExiting(t,K,e)},J.addRestoreFunction(function(){t.self.onExit=e}),t}var b=a.debugMode();R.locals||(R.locals=k.locals);var E=j.length;w&&(w(),b&&n.debug("Restored paths from pending transition"));var O,T,C,_,I=r.$current,M=r.params,D=v&&v.relative||r.$current,N=r.get(e,D),q=[],K=[];c=c||{},arguments[1]=c;var z=function(){},J=function(){O&&(L.path=O,O=null),T&&(I.path=T,T=null),t.forEach(J.restoreFunctions,function(t){t()}),J=z,w=null,j.splice(E,1)};if(J.restoreFunctions=[],J.addRestoreFunction=function(t){this.restoreFunctions.push(t)},N){var L=f[N.name];if(L){O=L.path,T=I.path;var B=v&&v.reload||!1,H=B&&(B===!0?O[0].self:r.get(B,D));v&&B&&B!==!0&&delete v.reload;var U={toState:L,toParams:c||{},fromState:I,fromParams:M||{},options:v,reloadStateTree:H};if(j.push(U),w=J,H){U.toParams.$$uirouterextrasreload=Math.random();var V=H.$$state().params,W=H.$$state().ownParams;if(A.hasParamSet){var Y=new o.Param("$$uirouterextrasreload");V.$$uirouterextrasreload=W.$$uirouterextrasreload=Y,J.restoreFunctions.push(function(){delete V.$$uirouterextrasreload,delete W.$$uirouterextrasreload})}else V.push("$$uirouterextrasreload"),W.push("$$uirouterextrasreload"),J.restoreFunctions.push(function(){V.length=V.length-1,W.length=W.length-1})}C=P.processTransition(U),b&&u(n,U,C);var G=L.path.slice(0,C.keep),Q=I.path.slice(0,C.keep);t.forEach(R.locals,function(t,e){-1!=e.indexOf("@")&&delete R.locals[e]});var X=function(t){return function(e,r){-1!==r.indexOf("@")&&(t[r]=e)}};p(C.inactives,function(t){p(t.locals,X(R.locals))}),p(C.reactivatingStates,function(t){p(t.locals,X(F))}),J.addRestoreFunction(function(){p(F,function(t,e){delete F[e]})}),t.forEach(C.enter,function(t,e){var r,n=L.path[e];"reactivate"===t?(r=m(n),G.push(r),Q.push(r),q.push($(n)),_=n):"updateStateParams"===t?(G.push(y(n)),_=n):"enter"===t&&G.push(x(n))}),t.forEach(C.exit,function(t,e){var r=I.path[e];"inactivate"===t?(Q.push(g(r)),K.push(r)):"exit"===t&&(Q.push(S(r)),K.push(r))}),q.length&&t.forEach(q,function(t){G.push(t)});var Z=C.deepestReactivateChildren;Q=Q.concat(d(C.deepestReactivateChildren,function(t){return S(t)})),K=K.concat(Z),I.path=Q,L.path=G;var tt=function(t){return(t.surrogateType?t.surrogateType+":":"")+t.self.name};b&&n.debug("SurrogateFromPath: ",d(Q,tt)),b&&n.debug("SurrogateToPath: ",d(G,tt))}}var et=h.apply(r,arguments);return et.then(function(t){return J(),b&&s(n,f[t.name],r),t.status="active",t},function(t){return J(),b&&"transition prevented"!==t.message&&"transition aborted"!==t.message&&"transition superseded"!==t.message&&(n.debug("transition failed",t),n.debug(t.stack)),i.reject(t)})},r}])}]),function(t,e){function r(e,r,n,a){function o(e,r){var n=t.isObject(e)?e.name:e;return r?p[n]:l[n]}function i(t,e){if(e.name){var r=e.name.split(/\./);for("."===e.name.charAt(0)&&(r[0]=t.current.name);r.length;){var n=r.join(".");if(t.get(n,{relative:t.current}))return null;if(p[n])return p[n];r.pop()}}if(e.url){var a=[];for(var o in p){var i=p[o].urlMatcher;i&&i.exec(e.url)&&a.push(p[o])}for(var u=a.slice(0),s=a.length-1;s>=0;s--)for(var c=0;c<u.length;c++)a[s]===u[c].parentFutureState&&a.splice(s,1);return a[0]}}function u(t,e){function r(){delete p[e.name]}function n(t){return"remove"===l&&r(),a.reject(t)}d=!0;var a=t.get("$q");if(!e){var o=a.defer();return o.reject("No lazyState passed in "+e),o.promise}var i=a.when([]),s=e.parentFutureState;s&&p[s.name]&&(i=u(t,p[s.name]));var c=e.type,f=v[c];if(!f)throw Error("No state factory for futureState.type: "+(e&&e.type));var l=f.$options&&f.$options.failedLazyLoadPolicy||"remove";return i.then(function(n){var a=t.invoke(f,f,{futureState:e});return a.then(function(t){return r(),t&&n.push(t),n})})["catch"](n)}function s(t,r){var n=!1,a=["$rootScope","$urlRouter","$state",function(a,o,s){function f(){n=!0,o.sync(),n=!1}if(!h)return c().then(f),void(h=!0);var l=i(s,{url:r.path()});return l?void u(t,l).then(function(t){t.forEach(function(t){t&&(!s.get(t)||t.name&&!s.get(t.name))&&e.state(t)}),d=!1,f()},function(){d=!1,f()}):t.invoke(g)}];if(!d){var o=n?g:a;return t.invoke(o)}}var c,f=a,l=f.internalStates,v={},p={},d=!1,m=[],h=!1,$=this;this.addResolve=function(t){m.push(t)},this.stateFactory=function(t,e){v[t]=e},this.futureState=function(e){e.stateName&&(e.name=e.stateName),e.urlPrefix&&(e.url="^"+e.urlPrefix),p[e.name]=e;var r,a=e.name.split(/\./).slice(0,-1).join("."),i=o(e.parent||a);if(i)r=i.url||i.navigable&&i.navigable.url;else if(""===a)r=n.compile("");else{var u=o(e.parent||a,!0);if(!u)throw new Error("Couldn't determine parent state of future state. FutureState:"+t.toJson(e));var s=u.urlMatcher.source.replace(/\*rest$/,"");r=n.compile(s),e.parentFutureState=u}e.url&&(e.urlMatcher="^"===e.url.charAt(0)?n.compile(e.url.substring(1)+"*rest"):r.concat(e.url+"*rest"))},this.get=function(){return t.extend({},p)};var g=["$log","$location",function(t,e){}];r.otherwise(s),r.otherwise=function(e){if(t.isString(e)){var n=e;e=function(){return n}}else if(!t.isFunction(e))throw new Error("'rule' must be a function");return g=["$injector","$location",e],r};var x={getResolvePromise:function(){return c()}};this.$get=["$injector","$state","$q","$rootScope","$urlRouter","$timeout","$log",function(r,n,a,o,s,f,l){function v(){if(o.$on("$stateNotFound",function(t,a,o,s){if(!d){var c=i(n,{name:a.to});if(c){t.preventDefault();var f=u(r,c);f.then(function(t){t.forEach(function(t){t&&(!n.get(t)||t.name&&!n.get(t.name))&&e.state(t)}),n.go(a.to,a.toParams),d=!1},function(t){console.log("failed to lazy load state ",t),o.name&&n.go(o,s),d=!1})}}}),!c){var l=[];t.forEach(m,function(t){l.push(r.invoke(t))}),c=function(){return a.all(l)}}c().then(function v(){f(function(){n.transition?n.transition.then(v,v):s.sync()})})}return v(),x.state=e.state,x.futureState=$.futureState,x.get=$.get,x}]}var n=t.module("ct.ui.router.extras.future",["ct.ui.router.extras.core"]);r.$inject=["$stateProvider","$urlRouterProvider","$urlMatcherFactoryProvider","uirextras_coreProvider"],n.provider("$futureState",r);var a={state:function(t){a.$rootScope&&a.$rootScope.$broadcast("$stateAdded",t)},itsNowRuntimeOhWhatAHappyDay:function(t){a.$rootScope=t},$rootScope:e};n.config(["$stateProvider",function(e){var r=e.state;e.state=function(){var n=r.apply(e,arguments),o=t.isObject(arguments[0])?arguments[0]:arguments[1];return a.state(o),n}}]),n.run(["$futureState",function(t,e){a.itsNowRuntimeOhWhatAHappyDay(e)}])}(t),t.module("ct.ui.router.extras.previous",["ct.ui.router.extras.core","ct.ui.router.extras.transition"]).service("$previousState",["$rootScope","$state",function(t,r){var n=null,a=null,o={};t.$on("$transitionStart",function(t,e){function r(){a=null}function o(){n=a}var i=e.from,u=i.state&&i.state.$$state&&i.state.$$state();u&&(a=n,n=e.from,e.promise.then(r)["catch"](o))});var i={get:function(t){return t?o[t]:n},go:function(t,e){var n=i.get(t);return r.go(n.state,n.params,e)},memo:function(t,e,a){o[t]=n||{state:r.get(e),params:a}},forget:function(t){t?delete o[t]:n=e}};return i}]),t.module("ct.ui.router.extras.previous").run(["$previousState",function(t){}]),t.module("ct.ui.router.extras.transition",["ct.ui.router.extras.core"]).config(["$provide",function(e){e.decorator("$state",["$delegate","$rootScope","$q","$injector",function(e,r,n,a){function o(e){var r=a.invoke,n=a.instantiate;return a.invoke=function(n,a,o){return r(n,a,t.extend({$transition$:e},o))},a.instantiate=function(r,a){return n(r,t.extend({$transition$:e},a))},function(){a.invoke=r,a.instantiate=n}}function i(){v.pop()(),l.pop(),f--}function u(t,e){return function(n){return i(),r.$broadcast("$transitionSuccess",e),t.resolve(n),n}}function s(t,e){return function(a){return i(),r.$broadcast("$transitionError",e,a),t.reject(a),n.reject(a)}}var c=e.transitionTo,f=-1,l=[],v=[];return e.transitionTo=function(t,r,a){var o=n.defer(),i=l[++f]={promise:o.promise};v[f]=function(){};var p=c.apply(e,arguments);return p.then(u(o,i),s(o,i))},r.$on("$stateChangeStart",function(e,n,a,i,u){var s=f,c=t.extend(l[s],{to:{state:n,params:a},from:{state:i,params:u}}),p=o(c);v[s]=p,r.$broadcast("$transitionStart",c)}),e}])}]),function(){"use strict";function e(e,r,n){return{scope:{width:"@",height:"@"},restrict:"AE",template:"<svg></svg>",link:function(r,a,o){function i(e){e=e.map(function(e){return""===e.name?v:t.copy(e)}),t.extend(s,e.reduce(function(t,e){return t[e.name]=e,t},{})),e.forEach(function(t){var e=t.name.split(/\./).slice(0,-1).join("."),r=t.name!=e&&s[e];r&&((r.children||(r.children=[])).push(t),t.px=r.px,t.py=r.py,p.push(t))})}function u(){function t(t){var e=t.name.split(".").pop();return t.sticky&&(e+=" (STICKY)"),t.deepStateRedirect&&(e+=" (DSR)"),e}$=$.data(l.nodes(v),function(t){return t.name}),g=g.data(l.links(p),function(t){return t.target.name}),x=x.data(d),p.forEach(function(t){t.y=70*t.depth});var e=$.enter();x.enter().append("circle").attr("class","active").attr("r",13).attr("cx",function(t){return t.parent.px||100}).attr("cy",function(t){return t.parent.py||100}),e.append("circle").attr("class","node").attr("r",9).attr("cx",function(t){return t.parent.px}).attr("cy",function(t){return t.parent.py}),e.append("text").attr("class","label").attr("x",function(t){return t.parent.px}).attr("y",function(t){return t.parent.py}).attr("text-anchor",function(t){return"middle"}).text(t).style("fill-opacity",1),g.enter().insert("path",".node").attr("class","link").attr("d",function(t){var e={x:t.source.px,y:t.source.py};return m({source:e,target:e})});var r=h.transition().duration(S);r.selectAll(".link").attr("d",m);var n={entered:"#AF0",exited:"#777",active:"#0f0",inactive:"#55F",future:"#009"};r.selectAll(".node").attr("cx",function(t){return t.px=t.x}).attr("cy",function(t){return t.py=t.y}).attr("r",function(t){return"active"===t.status?15:10}).style("fill",function(t){return n[t.status]||"#FFF"}),r.selectAll(".label").attr("x",function(t){return t.px=t.x}).attr("y",function(t){return t.py=t.y-15}).attr("transform",function(t){return"rotate(-25 "+t.x+" "+t.y+")"}),r.selectAll(".active").attr("x",function(t){return t.px=t.x}).attr("y",function(t){return t.py=t.y-15})}var s={},c=r.width||400,f=r.height||400,l=d3.layout.tree().size([c-20,f-20]).separation(function(t,e){return t.parent==e.parent?10:25}),v=e.get().filter(function(t){return""===t.name})[0],p=l(v);v.parent=v,v.px=v.x=c/2,v.py=v.y=f/2;var d={};d.px=d.x=v.px,d.py=d.y=v.py;{var m=d3.svg.diagonal(),h=d3.select(a.find("svg")[0]).attr("width",c).attr("height",f).append("g").attr("transform","translate(10, 10)"),$=h.selectAll(".node"),g=h.selectAll(".link"),x=h.selectAll(".active"),y=200,S=200;setInterval(u,y)}n(function(){r.states=e.get(),t.forEach(p,function(t){var r=e.get(t.name);r&&(t.status=r.status||"exited")})},250),r.$watchCollection("states",function(t,e){var r=(e||[]).map(function(t){return t.name});i((t||[]).filter(function(t){return-1==r.indexOf(t.name)}))}),u(y)}}}var r=t.module("ct.ui.router.extras.statevis",["ct.ui.router.extras.core","ct.ui.router.extras.sticky"]);r.directive("stateVis",["$state","$timeout","$interval",e])}(),t.module("ct.ui.router.extras",["ct.ui.router.extras.core","ct.ui.router.extras.dsr","ct.ui.router.extras.future","ct.ui.router.extras.previous","ct.ui.router.extras.statevis","ct.ui.router.extras.sticky","ct.ui.router.extras.transition"])});