whitesource
Version:
whitesource node module
2 lines • 2.47 kB
JavaScript
/** UI-Router Extras v.0.0.14 Module: dsr http://christopherthielen.github.io/ui-router-extras/ - MIT License */
!function(t,e){"use strict";function r(){n=e}var n;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,a){return e=t.transitionTo,t.transitionTo=function(o,i,u){return u.ignoreDsr&&(n=u.ignoreDsr),e.apply(t,arguments).then(function(t){return r(),t},function(t){return r(),a.reject(t)})},t}])}]),t.module("ct.ui.router.extras.dsr").service("$deepStateRedirect",["$rootScope","$state","$injector",function(r,a,o){function i(t){var e=t.name;return v.hasOwnProperty(e)?v[e]:void s(e)}function u(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 s(t){var r=a.get(t);if(!r)return!1;var n=u(r);n.dsr&&(v[r.name]=m,d[t]===e&&(d[t]={}));var o=r.$$state&&r.$$state().parent;if(o){var i=s(o.self.name);i&&v[r.name]===e&&(v[r.name]=$)}return v[r.name]||!1}function c(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 f(e,r){function n(t){return t?t.toString():t}var a=c(e,r),o={};return t.forEach(a,function(t,e){o[e]=n(t)}),t.toJson(o)}var d={},v={},m="Redirect",$="AncestorRedirect";return r.$on("$stateChangeStart",function(e,r,s,v,$){var p=u(r);if(!n&&(i(r)===m||p["default"])){var l=f(s,p.params),g=d[r.name][l]||p["default"];if(g){var h={redirect:{state:g.state,params:g.params},to:{state:r.name,params:s}},S=o.invoke(p.fn,r,{$dsr$:h});if(S){S.state&&(g=S),e.preventDefault();var x=c(s,p.params);a.go(g.state,t.extend(x,g.params))}}}}),r.$on("$stateChangeSuccess",function(e,r,n,o,s){var c=i(r);if(c){var v=r.name;t.forEach(d,function(e,o){var i=u(a.get(o)),s=f(n,i.params);r.$$state().includes[o]&&(d[o][s]={state:v,params:t.copy(n)})})}}),{getRedirect:function(t,e){var r=a.get(t);i(r);var n=u(r),o=f(e,n.params),s=d[r.name][o]||n["default"];return s},reset:function(e,r){if(e){var n=a.get(e);if(!n)throw new Error("Unknown state: "+e);if(d[n.name])if(r){var o=f(r,u(n).params);delete d[n.name][o]}else d[n.name]={}}else t.forEach(d,function(t,e){d[e]={}})}}}]),t.module("ct.ui.router.extras.dsr").run(["$deepStateRedirect",function(t){}])}(angular);