This repository was archived by the owner on Sep 4, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrouter.mjs
2 lines (2 loc) · 2.26 KB
/
router.mjs
1
2
function a(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function b(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,c.key,c)}function c(a,c,d){return c&&b(a.prototype,c),d&&b(a,d),a}function d(){var b,d=[],e={},f=function(){function b(c,d){a(this,b),this.name=d,this.path=c,this.keys=[],this.fns=[],this.params={},this.pathToRegexp=function(a,b,c,d){return a instanceof RegExp?a:(a instanceof Array&&(a="("+a.join("|")+")"),a=a.concat(d?"":"/?").replace(/\/\(/g,"(?:/").replace(/\+/g,"__plus__").replace(/(\/)?(\.)?:(\w+)(?:(\(.*?\)))?(\?)?/g,function(a,c,d,e,f,g){return b.push({name:e,optional:!!g}),c=c||"",""+(g?"":c)+"(?:"+(g?c:"")+(d||"")+(f||d&&"([^/.]+?)"||"([^/]+?)")+")"+(g||"")}).replace(/([/.])/g,"\\$1").replace(/__plus__/g,"(.+)").replace(/\*/g,"(.*)"),new RegExp("^"+a+"$",c?"":"i"))},this.regex=this.pathToRegexp(this.path,this.keys,!1,!1)}return c(b,[{key:"addHandler",value:function(a){this.fns.push(a)}},{key:"removeHandler",value:function(a){for(var b,d=0,e=this.fns.length;d<e;d++)if(b=this.fns[d],a==b)return void this.fns.splice(d,1)}},{key:"run",value:function(a){for(var b=0,d=this.fns.length;b<d;b++)if(!1===this.fns[b].apply(this,a))return!1;return!0}},{key:"match",value:function(a,b){var c=this.regex.exec(a);if(!c)return!1;for(var d=1,e=c.length;d<e;++d){var f=this.keys[d-1],g="string"==typeof c[d]?decodeURIComponent(c[d]):c[d];f&&(this.params[f.name]=g),b.push(g)}return!0}}]),b}(),g=function a(){for(var b=function(a,b){e[a]||(e[a]=new f(a,name),d.push(e[a])),e[a].addHandler(b)},c=arguments.length,g=Array(c),h=0;h<c;h++)g[h]=arguments[h];g.map(function(a){b(a.path,a.action)}),a.reload()};g.remove=function(a,b){var c=e[a];c&&(b?c.removeHandler(b):delete e[a])},g.removeAll=function(){e={},d=[],b=""},g.navigate=function(a){window.location.hash=a};var h=function(){return window.location.hash.substring(1)},j=function(a,b){var c=[];return b.match(a,c)?!1===b.run(c)?0:1:-1},k=g.reload=function(){for(var a=h(),e=0,f=d.length;e<f;e++){var c=d[e],k=j(a,c);if(1===k){b=a;break}else if(0===k){g.navigate(b);break}}};return window.addEventListener("hashchange",k,!1),b=h(),window.router=g,g}export{d as Router};
//# sourceMappingURL=router.mjs.map