UNPKG

angular-state-router

Version:

An AngularJS state-based router designed for flexibility and ease of use.

3 lines (2 loc) 10.5 kB
!function r(n,t,e){function a(i,u){if(!t[i]){if(!n[i]){var s="function"==typeof require&&require;if(!u&&s)return s(i,!0);if(o)return o(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var f=t[i]={exports:{}};n[i][0].call(f.exports,function(r){var t=n[i][1][r];return a(t?t:r)},f,f.exports,r,n,t,e)}return t[i].exports}for(var o="function"==typeof require&&require,i=0;i<e.length;i++)a(e[i]);return a}({1:[function(r,n,t){"use strict";n.exports=["$state",function(r){return{restrict:"A",scope:{},link:function(n,t,e){t.css("cursor","pointer"),t.on("click",function(n){r.change(e.sref),n.preventDefault()})}}}]},{}],2:[function(r,n,t){"use strict";"undefined"!=typeof n&&"undefined"!=typeof t&&n.exports===t&&(n.exports="angular-state-router"),angular.module("angular-state-router",[]).provider("$state",r("./services/state-router")).factory("$urlManager",r("./services/url-manager")).factory("$resolution",r("./services/resolution")).factory("$enact",r("./services/enact")).factory("$queueHandler",r("./services/queue-handler")).run(["$rootScope","$state","$urlManager","$resolution","$enact",function(r,n,t,e,a){r.$on("$locationChangeSuccess",function(){t.location(arguments)}),t.$ready(),e.$ready(),a.$ready(),n.$ready()}]).directive("sref",r("./directives/sref"))},{"./directives/sref":1,"./services/enact":3,"./services/queue-handler":4,"./services/resolution":5,"./services/state-router":6,"./services/url-manager":7}],3:[function(r,n,t){"use strict";n.exports=["$q","$injector","$state","$rootScope",function(r,n,t,e){var a={},o=function(t){var e=[];return angular.forEach(t,function(t){var a=angular.isString(t)?n.get(t):n.invoke(t);e.push(r.when(a))}),r.all(e)};return a.process=o,a.$ready=function(){t.$use(function(r,n){var a=t.current();return a?(e.$broadcast("$stateActionBegin"),void o(a.actions||[]).then(function(){e.$broadcast("$stateActionEnd"),n()},function(r){e.$broadcast("$stateActionError",r),n(new Error("Error processing state actions"))})):n()},100)},a}]},{}],4:[function(r,n,t){"use strict";n.exports=["$rootScope",function(r){var n=function(){var n=[],t=null,e={add:function(r,t){return r&&r.constructor===Array?(r.forEach(function(r){r.priority="undefined"==typeof r.priority?1:r.priority}),n=n.concat(r)):(r.priority=t||("undefined"==typeof r.priority?1:r.priority),n.push(r)),this},data:function(r){return t=r,this},execute:function(e){var a,o=n.slice(0).sort(function(r,n){return Math.max(-1,Math.min(1,n.priority-r.priority))});(a=function(){r.$evalAsync(function(){var r=o.shift();r?r.call(null,t,function(r){r?e(r):a()}):e(null)})})()}};return e};return{create:function(){return n()}}}]},{}],5:[function(r,n,t){"use strict";n.exports=["$q","$injector","$state","$rootScope",function(r,n,t,e){var a={},o=function(t){var e={};return angular.forEach(t,function(t,a){var o=angular.isString(t)?n.get(t):n.invoke(t,null,null,a);e[a]=r.when(o)}),r.all(e)};return a.resolve=o,a.$ready=function(){t.$use(function(r,n){var a=t.current();return a?(e.$broadcast("$stateResolveBegin"),void o(a.resolve||{}).then(function(t){angular.extend(r.locals,t),e.$broadcast("$stateResolveEnd"),n()},function(r){e.$broadcast("$stateResolveError",r),n(new Error("Error resolving state"))})):n()},101)},a}]},{}],6:[function(r,n,t){"use strict";var e=r("../utils/url-dictionary"),a=r("../utils/parameters");n.exports=[function(){var r=this,n={historyLength:5},t={},o={},i=new e,u=[],s=function(r){if(r&&r.match(/^[a-zA-Z0-9_\.]*\(.*\)$/)){var n=r.substring(0,r.indexOf("(")),t=a(r.substring(r.indexOf("(")+1,r.lastIndexOf(")")));return{name:n,params:t}}return{name:r,params:null}},c=function(r){return r.inherit="undefined"==typeof r.inherit||r.inherit,r},f=function(r){r=r||"";for(var n=r.split("."),t=0;t<n.length;t++)if(!n[t].match(/[a-zA-Z0-9_]+/))return!1;return!0},l=function(r){r=r||"";for(var n=r.split("."),t=0;t<n.length;t++)if(!n[t].match(/(\*(\*)?|[a-zA-Z0-9_]+)/))return!1;return!0},p=function(r,n){return r=r||{},n=n||{},r.name===n.name&&angular.equals(r.params,n.params)},d=function(r){var n=r.split(".");return n.map(function(r,n,t){return t.slice(0,n+1).join(".")}).filter(function(r){return null!==r})},v=function(r){r=r||"";var n=null;if(!f(r))return null;if(o[r])return o[r];for(var e=d(r),a=e.map(function(r,n){var e=angular.copy(t[r]);return e}).filter(function(r){return!!r}),i=a.length-1;i>=0;i--){if(a[i]){var u=a[i];n=angular.merge(u,n||{})}if(n&&n.inherit===!1)break}return o[r]=n,n},h=function(r,n){if(null===r||"undefined"==typeof r)throw new Error("Name cannot be null.");if(!f(r))throw new Error("Invalid state name.");var e=angular.copy(n);return c(e),e.name=r,t[r]=e,o={},e.url&&i.add(e.url,e),n};this.options=function(t){return angular.extend(n,t||{}),r},this.state=function(n,t){return t?(h(n,t),r):v(n)},this.init=function(t,e){return n.initialLocation={name:t,params:e},r},this.$get=["$rootScope","$location","$q","$queueHandler",function(r,e,a,o){var c,d,$,m,g=[],y=!1,x=function(r){var n=d.historyLength||5;r&&g.push(r),g.length>n&&g.splice(0,g.length-n)},E=function(n,t){var e=a.defer();return r.$evalAsync(function(){t=t||{};var a=s(n);n=a.name,t=angular.extend(a.params||{},t),"."===n&&c&&(n=c.name);var i=null,f={name:n,params:t,locals:{},promise:e.promise},l=o.create().data(f),d=angular.copy(v(n)),h=c;d&&(d.locals=f.locals,d.params=angular.extend(d.params||{},t)),null===d?l.add(function(n,t){i=new Error("Requested state was not defined."),i.code="notfound",r.$broadcast("$stateChangeErrorNotFound",i,f),t(i)},200):p(h,d)?l.add(function(r,n){c=d,n()},200):(l.add(function(n,t){r.$broadcast("$stateChangeBegin",f),t()},201),l.add(function(r,n){h&&x(h),c=d,n()},200),l.add(u),l.add(function(n,t){r.$broadcast("$stateChangeEnd",f),t()},-200)),l.execute(function(n){n?(r.$broadcast("$stateChangeError",n,f),e.reject(n)):e.resolve()})}),e.promise},b=function(n,t){return E(n,t).then(function(){r.$broadcast("$stateChangeComplete",null,c)},function(n){r.$broadcast("$stateChangeComplete",n,c)})},w=function(){var n=a.defer();return r.$evalAsync(function(){var t=c.name,e=angular.copy(c.params);c.params||(c.params={}),c.params.deprecated=!0,r.$broadcast("$stateReload",null,c),b(t,e).then(function(){n.resolve()},function(r){n.reject(r)})}),n.promise};return m={options:function(){return d||(d=angular.copy(n)),d},state:function(r,n){return n?(h(r,n),m):v(r)},$use:function(r,n){if("function"!=typeof r)throw new Error("Middleware must be a function.");return"undefined"!=typeof n&&(r.priority=n),u.push(r),m},$ready:function(){return r.$evalAsync(function(){if(!y){y=!0,d||(d=angular.copy(n)),d.hasOwnProperty("initialLocation")&&($=angular.copy(d.initialLocation));var t=null;""!==e.url()?t=m.$location(e.url()):$&&(t=b($.name,$.params)),a.when(t).then(function(){r.$broadcast("$stateInit")})}}),m},parse:s,library:function(){return t},validate:{name:f,query:l},history:function(){return g},change:function(r,n){return b(r,n)},reload:w,$location:function(n){var t=i.lookup(n);if(t){var e=t.ref;if(e)return b(e.name,t.params)}else if(n&&""!==n){var o=new Error("Requested state was not defined.");o.code="notfound",r.$broadcast("$stateChangeErrorNotFound",o,{url:n})}return a.reject(new Error("Unable to find location in library"))},current:function(){return c?angular.copy(c):null},active:function(r,n){if(r=r||"",!c)return!1;if(r instanceof RegExp)return!!c.name.match(r);if("string"==typeof r){if(r.match(/^\/.*\/$/)){var t=r.substr(1,r.length-2);return!!c.name.match(new RegExp(t))}var e=r.split(".").map(function(r){return"*"===r?"[a-zA-Z0-9_]*":"**"===r?"[a-zA-Z0-9_\\.]*":r}).join("\\.");return!!c.name.match(new RegExp(e))}return!1}}}]}]},{"../utils/parameters":8,"../utils/url-dictionary":9}],7:[function(r,n,t){"use strict";r("../utils/url-dictionary");n.exports=["$state","$location","$rootScope",function(r,n,t){var e=n.url(),a={},o=function(){var t=r.current();if(t&&t.url){var a;a=t.url;var o=t.params||{},i={};for(var u in o){var s=new RegExp(":"+u,"g");a.match(s)?a=a.replace(s,o[u]):i[u]=o[u]}n.path(a),n.search(i),e=n.url()}};return a.update=function(){o()},a.location=function(){var a=e,o=n.url();o!==a&&(e=o,r.$location(e),t.$broadcast("$locationStateUpdate"))},a.$ready=function(){r.$use(function(r,n){o(),n()})},a}]},{"../utils/url-dictionary":9}],8:[function(r,n,t){"use strict";var e=/([,{]\s*(("|')(.*?)\3|\w*)|(:\s*([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*)(?:[eE][+-]?\d+)?|true|false|null|("|')(.*?)\7|\[[^\]]*\])))/g,a=/^("|')(.*?)\1$/,o=/^[+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*)(?:[eE][+-]?\d+)?$/,i=function(r){return"true"===r||"false"!==r&&("null"===r?null:r.match(a)?r.substr(1,r.length-2):r.match(o)?+r:"NaN"===r?NaN:r)},u=function(r){if(r=r.replace(/^\s*/,"").replace(/\s*$/,""),null===r.match(/^\s*{.*}\s*$/))throw new Error("Parameters expects an Object");var n=function(r){return r.replace(/^[\{,]?\s*["']?/,"").replace(/["']?\s*$/,"")},t=function(r){var n=r.replace(/^(:)?\s*/,"").replace(/\s*$/,"");return i(n)};return r.match(e).map(function(r,e,a){return e%2===0?n(r):t(r)})},s=function(r){r=r||"";var n={};return u(r).forEach(function(r,t,e){t%2===0&&(n[r]=e[t+1])}),n};n.exports=s,n.exports.resolveValue=i,n.exports.listify=u},{}],9:[function(r,n,t){"use strict";function e(){this._patterns=[],this._refs=[],this._params=[]}var a=r("./url");e.prototype.add=function(r,n){r=r||"";var t,e=this._patterns.length,o={};t=r.indexOf("?")===-1?a(r).path().split("/"):a(r).path().split("/");var i="^";t.forEach(function(r,n){0!==n&&(i+="\\/"),":"===r[0]?(i+="[^\\/?]*",o[r.substring(1)]=new RegExp(i)):i+=r}),i+="[\\/]?$",this._patterns[e]=new RegExp(i),this._refs[e]=n,this._params[e]=o},e.prototype.lookup=function(r,n){r=r||"";var t=a(r).path(),e=a(r).queryparams(),o=this,i=function(r){r=r||"";for(var n=o._patterns.length-1;n>=0;n--)if(null!==r.match(o._patterns[n]))return n;return-1},u=i(t);if(u!==-1){var s={};for(var c in this._params[u]){var f=this._params[u][c],l=(r.match(f)||[]).pop()||"",p=l.split("/").pop();s[c]=p}return s=angular.extend(e,s),{url:r,ref:this._refs[u],params:s}}return null},n.exports=e},{"./url":10}],10:[function(r,n,t){"use strict";function e(r){r=r||"";var n={path:function(){return r.indexOf("?")===-1?r:r.substring(0,r.indexOf("?"))},querystring:function(){return r.indexOf("?")===-1?"":r.substring(r.indexOf("?")+1)},queryparams:function(){for(var r=n.querystring().split("&"),t={},e=0;e<r.length;e++)if(""!==r[e]){var a=r[e].split("=");t[a[0]]="undefined"==typeof a[1]||""===a[1]||decodeURIComponent(a[1])}return t}};return n}n.exports=e},{}]},{},[2]); //# sourceMappingURL=state-router.min.js.map