Socket
Socket
Sign inDemoInstall

vue-router

Package Overview
Dependencies
Maintainers
1
Versions
185
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue-router - npm Package Compare versions

Comparing version 0.6.2 to 0.7.0

dist/vue-router.js.map

4

dist/vue-router.min.js
/*!
* vue-router v0.6.2
* vue-router v0.7.0
* (c) 2015 Evan You
* Released under the MIT License.
*/
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VueRouter=e():t.VueRouter=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";var r=n(1)["default"],o=n(2)["default"];Object.defineProperty(e,"__esModule",{value:!0});var a=n(3),i=o(a),s=n(4),u=o(s),c=n(7),h=o(c),l=n(8),f=o(l),d=n(26),p=o(d),v=n(27),g=o(v),y=n(28),m=o(y),_=n(29),w=o(_),b=n(30),x=o(b),C=n(31),P=o(C),R={"abstract":w["default"],hash:x["default"],html5:P["default"]},k=function E(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=t.hashbang,n=void 0===e?!0:e,o=t["abstract"],a=void 0===o?!1:o,s=t.history,c=void 0===s?!1:s,h=t.saveScrollPosition,l=void 0===h?!1:h,f=t.transitionOnLoad,d=void 0===f?!1:f,p=t.suppressTransitionError,v=void 0===p?!1:p,g=t.root,y=void 0===g?null:g,m=t.linkActiveClass,_=void 0===m?"v-link-active":m;if(r(this,E),!E.installed)throw new Error("Please install the Router with Vue.use() before creating an instance.");this.app=null,this._views=[],this._children=[],this._recognizer=new u["default"],this._guardRecognizer=new u["default"],this._started=!1,this._currentRoute={},this._currentTransition=null,this._previousTransition=null,this._notFoundHandler=null,this._beforeEachHooks=[],this._afterEachHooks=[],this._hasPushState="undefined"!=typeof window&&window.history&&window.history.pushState,this._rendered=!1,this._transitionOnLoad=d,this._abstract=a,this._hashbang=n,this._history=this._hasPushState&&c,this._saveScrollPosition=l,this._linkActiveClass=_,this._suppress=v;var w=i["default"].Vue.util.inBrowser;this.mode=!w||this._abstract?"abstract":this._history?"html5":"hash";var b=R[this.mode],x=this;this.history=new b({root:y,hashbang:this._hashbang,onChange:function(t,e,n){x._match(t,e,n)}})};e["default"]=k,k.installed=!1,k.install=function(t){if(k.installed)return void a.warn("already installed.");h["default"](t,k),f["default"](t,k),p["default"](t),g["default"](t),m["default"](t),i["default"].Vue=t;var e=t.config.optionMergeStrategies;e&&(e.route=e.methods),k.installed=!0},"undefined"!=typeof window&&window.Vue&&window.Vue.use(k),t.exports=e["default"]},function(t,e){"use strict";e["default"]=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.__esModule=!0},function(t,e){"use strict";e["default"]=function(t){return t&&t.__esModule?t:{"default":t}},e.__esModule=!0},function(t,e,n){"use strict";function r(t,e){window.console&&(console.warn("[vue-router] "+t),e&&console.warn(e.stack))}function o(t,e){var n=t.match(/(\?.*)$/);if(n&&(n=n[1],t=t.slice(0,-n.length)),"?"===e.charAt(0))return t+e;var r=t.split("/");r.pop();for(var o=e.split("/"),a=0;a<o.length;a++){var i=o[a];"."!==i&&(".."===i?r.pop():r.push(i))}return""!==r[0]&&r.unshift(""),r.join("/")}function a(t){return t&&"function"==typeof t.then}function i(t,e){var n=t&&(t.$options||t.options);return n&&n.route&&n.route[e]}function s(t,e){v?v.$options.components._=t.component:v={resolve:p.Vue.prototype._resolveComponent,$options:{components:{_:t.component}}},v.resolve("_",function(n){t.component=n,e(n)})}function u(t,e,n){for(var r in e)t=c(t,e,r);return n&&(t+=d(n)),t}function c(t,e,n){var r=new RegExp(":"+n+"(\\/|$)"),o=e[n];return t.replace(r,function(t){return"/"===t.charAt(t.length-1)?o+"/":o})}var h=n(2)["default"];Object.defineProperty(e,"__esModule",{value:!0}),e.warn=r,e.resolvePath=o,e.isPromise=a,e.getRouteConfig=i,e.resolveAsyncComponent=s,e.mapParams=u;var l=n(4),f=h(l),d=f["default"].prototype.generateQueryString,p={};e["default"]=p;var v=void 0},function(t,e,n){var r;(function(t){(function(){"use strict";function o(t,e,n){this.path=t,this.matcher=e,this.delegate=n}function a(t){this.routes={},this.children={},this.target=t}function i(t,e,n){return function(r,a){var s=t+r;return a?void a(i(s,e,n)):new o(t+r,e,n)}}function s(t,e,n){for(var r=0,o=0,a=t.length;a>o;o++)r+=t[o].path.length;e=e.substr(r);var i={path:e,handler:n};t.push(i)}function u(t,e,n,r){var o=e.routes;for(var a in o)if(o.hasOwnProperty(a)){var i=t.slice();s(i,a,o[a]),e.children[a]?u(i,e.children[a],n,r):n.call(r,i)}}function c(t){return"[object Array]"===Object.prototype.toString.call(t)}function h(t){this.string=t}function l(t){this.name=t}function f(t){this.name=t}function d(){}function p(t,e,n){"/"===t.charAt(0)&&(t=t.substr(1));var r=t.split("/"),o=[];n.val="";for(var a=0,i=r.length;i>a;a++){var s,u=r[a];(s=u.match(/^:([^\/]+)$/))?(o.push(new l(s[1])),e.push(s[1]),n.val+="3"):(s=u.match(/^\*([^\/]+)$/))?(o.push(new f(s[1])),n.val+="2",e.push(s[1])):""===u?(o.push(new d),n.val+="1"):(o.push(new h(u)),n.val+="4")}return n.val=+n.val,o}function v(t){this.charSpec=t,this.nextStates=[]}function g(t){return t.sort(function(t,e){return e.specificity.val-t.specificity.val})}function y(t,e){for(var n=[],r=0,o=t.length;o>r;r++){var a=t[r];n=n.concat(a.match(e))}return n}function m(t){this.queryParams=t||{}}function _(t,e,n){for(var r=t.handlers,o=t.regex,a=e.match(o),i=1,s=new m(n),u=0,c=r.length;c>u;u++){for(var h=r[u],l=h.names,f={},d=0,p=l.length;p>d;d++)f[l[d]]=a[i++];s.push({handler:h.handler,params:f,isDynamic:!!l.length})}return s}function w(t,e){return e.eachChar(function(e){t=t.put(e)}),t}function b(t){return t=t.replace(/\+/gm,"%20"),decodeURIComponent(t)}o.prototype={to:function(t,e){var n=this.delegate;if(n&&n.willAddRoute&&(t=n.willAddRoute(this.matcher.target,t)),this.matcher.add(this.path,t),e){if(0===e.length)throw new Error("You must have an argument in the function passed to `to`");this.matcher.addChild(this.path,t,e,this.delegate)}return this}},a.prototype={add:function(t,e){this.routes[t]=e},addChild:function(t,e,n,r){var o=new a(e);this.children[t]=o;var s=i(t,o,r);r&&r.contextEntered&&r.contextEntered(e,s),n(s)}};var x=function(t,e){var n=new a;t(i("",n,this.delegate)),u([],n,function(t){e?e(this,t):this.add(t)},this)},C=["/",".","*","+","?","|","(",")","[","]","{","}","\\"],P=new RegExp("(\\"+C.join("|\\")+")","g");h.prototype={eachChar:function(t){for(var e,n=this.string,r=0,o=n.length;o>r;r++)e=n.charAt(r),t({validChars:e})},regex:function(){return this.string.replace(P,"\\$1")},generate:function(){return this.string}},l.prototype={eachChar:function(t){t({invalidChars:"/",repeat:!0})},regex:function(){return"([^/]+)"},generate:function(t){return t[this.name]}},f.prototype={eachChar:function(t){t({invalidChars:"",repeat:!0})},regex:function(){return"(.+)"},generate:function(t){return t[this.name]}},d.prototype={eachChar:function(){},regex:function(){return""},generate:function(){return""}},v.prototype={get:function(t){for(var e=this.nextStates,n=0,r=e.length;r>n;n++){var o=e[n],a=o.charSpec.validChars===t.validChars;if(a=a&&o.charSpec.invalidChars===t.invalidChars)return o}},put:function(t){var e;return(e=this.get(t))?e:(e=new v(t),this.nextStates.push(e),t.repeat&&e.nextStates.push(e),e)},match:function(t){for(var e,n,r,o=this.nextStates,a=[],i=0,s=o.length;s>i;i++)e=o[i],n=e.charSpec,"undefined"!=typeof(r=n.validChars)?-1!==r.indexOf(t)&&a.push(e):"undefined"!=typeof(r=n.invalidChars)&&-1===r.indexOf(t)&&a.push(e);return a}};var R=Object.create||function(t){function e(){}return e.prototype=t,new e};m.prototype=R({splice:Array.prototype.splice,slice:Array.prototype.slice,push:Array.prototype.push,length:0,queryParams:null});var k=function(){this.rootState=new v,this.names={}};k.prototype={add:function(t,e){for(var n,r=this.rootState,o="^",a={},i=[],s=[],u=!0,c=0,h=t.length;h>c;c++){var l=t[c],f=[],v=p(l.path,f,a);s=s.concat(v);for(var g=0,y=v.length;y>g;g++){var m=v[g];m instanceof d||(u=!1,r=r.put({validChars:"/"}),o+="/",r=w(r,m),o+=m.regex())}var _={handler:l.handler,names:f};i.push(_)}u&&(r=r.put({validChars:"/"}),o+="/"),r.handlers=i,r.regex=new RegExp(o+"$"),r.specificity=a,(n=e&&e.as)&&(this.names[n]={segments:s,handlers:i})},handlersFor:function(t){var e=this.names[t],n=[];if(!e)throw new Error("There is no route named "+t);for(var r=0,o=e.handlers.length;o>r;r++)n.push(e.handlers[r]);return n},hasRoute:function(t){return!!this.names[t]},generate:function(t,e){var n=this.names[t],r="";if(!n)throw new Error("There is no route named "+t);for(var o=n.segments,a=0,i=o.length;i>a;a++){var s=o[a];s instanceof d||(r+="/",r+=s.generate(e))}return"/"!==r.charAt(0)&&(r="/"+r),e&&e.queryParams&&(r+=this.generateQueryString(e.queryParams,n.handlers)),r},generateQueryString:function(t,e){var n=[],r=[];for(var o in t)t.hasOwnProperty(o)&&r.push(o);r.sort();for(var a=0,i=r.length;i>a;a++){o=r[a];var s=t[o];if(null!=s){var u=encodeURIComponent(o);if(c(s))for(var h=0,l=s.length;l>h;h++){var f=o+"[]="+encodeURIComponent(s[h]);n.push(f)}else u+="="+encodeURIComponent(s),n.push(u)}}return 0===n.length?"":"?"+n.join("&")},parseQueryString:function(t){for(var e=t.split("&"),n={},r=0;r<e.length;r++){var o,a=e[r].split("="),i=b(a[0]),s=i.length,u=!1;1===a.length?o="true":(s>2&&"[]"===i.slice(s-2)&&(u=!0,i=i.slice(0,s-2),n[i]||(n[i]=[])),o=a[1]?b(a[1]):""),u?n[i].push(o):n[i]=o}return n},recognize:function(t){var e,n,r,o,a=[this.rootState],i={},s=!1;if(o=t.indexOf("?"),-1!==o){var u=t.substr(o+1,t.length);t=t.substr(0,o),i=this.parseQueryString(u)}for(t=decodeURI(t),"/"!==t.charAt(0)&&(t="/"+t),e=t.length,e>1&&"/"===t.charAt(e-1)&&(t=t.substr(0,e-1),s=!0),n=0,r=t.length;r>n&&(a=y(a,t.charAt(n)),a.length);n++);var c=[];for(n=0,r=a.length;r>n;n++)a[n].handlers&&c.push(a[n]);a=g(c);var h=c[0];return h&&h.handlers?(s&&"(.+)$"===h.regex.source.slice(-5)&&(t+="/"),_(h,t,i)):void 0}},k.prototype.map=x,k.VERSION="0.1.9";var E=k;n(6).amd?(r=function(){return E}.call(e,n,e,t),!(void 0!==r&&(t.exports=r))):"undefined"!=typeof t&&t.exports?t.exports=E:"undefined"!=typeof this&&(this.RouteRecognizer=E)}).call(this)}).call(e,n(5)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){t.exports=function(){throw new Error("define cannot be used indirect")}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(3);e["default"]=function(t,e){e.prototype.map=function(t){for(var e in t)this.on(e,t[e])},e.prototype.on=function(t,e){"*"===t?this._notFound(e):this._addRoute(t,e,[])},e.prototype.redirect=function(t){for(var e in t)this._addRedirect(e,t[e])},e.prototype.alias=function(t){for(var e in t)this._addAlias(e,t[e])},e.prototype.beforeEach=function(t){this._beforeEachHooks.push(t)},e.prototype.afterEach=function(t){this._afterEachHooks.push(t)},e.prototype.go=function(t,e){t=this._normalizePath(t),this.history.go(t,e)},e.prototype.replace=function(t){this.go(t,!0)},e.prototype.start=function(e,n){if(this._started)return void r.warn("already started.");if(this._started=!0,!this.app){if(!e||!n)throw new Error("Must start vue-router with a component and a root container.");this._appContainer=n,this._appConstructor="function"==typeof e?e:t.extend(e)}this.history.start()},e.prototype.stop=function(){this.history.stop(),this._started=!1}},t.exports=e["default"]},function(t,e,n){"use strict";var r=n(2)["default"];Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),a=n(9),i=r(a),s=n(10),u=r(s);e["default"]=function(t,e){function n(e){var n=e.component;r.isPlainObject(n)&&(n=e.component=t.extend(n)),"function"!=typeof n&&(e.component=null,o.warn('invalid component for route "'+e.path+'"'))}var r=t.util;e.prototype._addRoute=function(t,e,r){if(n(e),r.push({path:t,handler:e}),this._recognizer.add(r,{as:e.name}),e.subRoutes)for(var o in e.subRoutes)this._addRoute(o,e.subRoutes[o],r.slice())},e.prototype._notFound=function(t){n(t),this._notFoundHandler=[{handler:t}]},e.prototype._addRedirect=function(t,e){this._addGuard(t,e,this.replace)},e.prototype._addAlias=function(t,e){this._addGuard(t,e,this._match)},e.prototype._addGuard=function(t,e,n){var r=this;this._guardRecognizer.add([{path:t,handler:function(t,a){var i=o.mapParams(e,t.params,a);n.call(r,i)}}])},e.prototype._checkGuard=function(t){var e=this._guardRecognizer.recognize(t);return e?(e[0].handler(e[0],e.queryParams),!0):void 0},e.prototype._match=function(t,e,n){var r=this;if(!this._checkGuard(t)){var o=this._currentRoute,a=this._currentTransition;if(!a||t!==o.path){var s=new i["default"](t,this),c=new u["default"](this,s,o);this._prevTransition=a,this._currentTransition=c,this.app||(this.app=new this._appConstructor({el:this._appContainer,_meta:{$route:s}}));var h=this._beforeEachHooks,l=function(){c.start(function(){r._postTransition(s,e,n)})};h.length?c.runQueue(h,function(t,e,n){c===r._currentTransition&&c.callHook(t,null,n,!0)},l):l(),this._rendered=!0}}},e.prototype._onTransitionValidated=function(t){var e=this._prevTransition;e&&(e.aborted=!0);var n=this._currentRoute=t.to;this.app.$route!==n&&(this.app.$route=n,this._children.forEach(function(t){t.$route=n})),this._afterEachHooks.length&&this._afterEachHooks.forEach(function(e){return e.call(null,{to:t.to,from:t.from})}),this._currentTransition.done=!0},e.prototype._postTransition=function(e,n,r){var o=n&&n.pos;o&&this._saveScrollPosition?t.nextTick(function(){window.scrollTo(o.x,o.y)}):r&&t.nextTick(function(){var t=document.getElementById(r.slice(1));t&&window.scrollTo(window.scrollX,t.offsetTop)})},e.prototype._normalizePath=function(t){if("object"==typeof t){if(t.name){var e=t.params||{};return t.query&&(e.queryParams=t.query),this._recognizer.generate(t.name,e)}return t.path?t.path:""}return t+""}},t.exports=e["default"]},function(t,e,n){"use strict";var r=n(1)["default"];Object.defineProperty(e,"__esModule",{value:!0});var o=/^(component|subRoutes)$/,a=function i(t,e){var n=this;r(this,i);var a=e._recognizer.recognize(t);a&&([].forEach.call(a,function(t){for(var e in t.handler)o.test(e)||(n[e]=t.handler[e])}),this.query=a.queryParams,this.params=[].reduce.call(a,function(t,e){if(e.params)for(var n in e.params)t[n]=e.params[n];return t},{})),this.path=t,this.router=e,this._matched=a||e._notFoundHandler};e["default"]=a,t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return"[object Object]"===Object.prototype.toString.call(t)}var o=n(11)["default"],a=n(1)["default"];Object.defineProperty(e,"__esModule",{value:!0});var i=n(3),s=n(15),u=function(){function t(e,n,r){a(this,t),this.router=e,this.to=n,this.from=r,this.next=null,this.aborted=!1,this.done=!1,this.deactivateQueue=e._views;var o=n._matched?Array.prototype.slice.call(n._matched):[];this.activateQueue=o.map(function(t){return t.handler})}return o(t,[{key:"abort",value:function(){if(!this.aborted){this.aborted=!0;var t=!this.from.path&&"/"===this.to.path;t||this.router.replace(this.from.path||"/")}}},{key:"redirect",value:function(t){this.aborted||(this.aborted=!0,"string"==typeof t?t=i.mapParams(t,this.to.params,this.to.query):(t.params=this.to.params,t.query=this.to.query),this.router.replace(t))}},{key:"start",value:function(t){var e=this,n=this.deactivateQueue,r=this.activateQueue,o=n.slice().reverse(),a=void 0,i=void 0;for(i=0;i<o.length&&s.canReuse(o[i],r[i],e);i++);i>0&&(a=o.slice(0,i),n=o.slice(i).reverse(),r=r.slice(i)),e.runQueue(n,s.canDeactivate,function(){e.runQueue(r,s.canActivate,function(){e.runQueue(n,s.deactivate,function(){if(e.router._onTransitionValidated(e),a&&a.forEach(function(t){s.reuse(t,e)}),n.length){var r=n[n.length-1],o=a?a.length:0;s.activate(r,e,o,t)}else t()})})})}},{key:"runQueue",value:function(t,e,n){function r(a){a>=t.length?n():e(t[a],o,function(){r(a+1)})}var o=this;r(0)}},{key:"callHook",value:function(t,e,n){var o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],a=o.expectBoolean,s=void 0===a?!1:a,u=o.expectData,c=void 0===u?!1:u,h=o.cleanup,l=this,f=!1,d=function(t){h&&h(),l.abort(t)},p=function(t){if(h?v():d(),t&&!l.router._suppress)throw i.warn("Uncaught error during transition: "),t instanceof Error?t:new Error(t)},v=function(t){return f?void i.warn("transition.next() should be called only once."):(f=!0,void(n&&!l.aborted&&n(t,p)))},g={to:l.to,from:l.from,abort:d,next:v,redirect:function(){l.redirect.apply(l,arguments)}},y=void 0;try{y=t.call(e,g)}catch(m){return p(m)}var _=i.isPromise(y);s?"boolean"==typeof y?y?v():d():_&&y.then(function(t){t?v():d()},p):_?y.then(v,p):c&&r(y)&&v(y)}}]),t}();e["default"]=u,t.exports=e["default"]},function(t,e,n){"use strict";var r=n(12)["default"];e["default"]=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),r(t,o.key,o)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),e.__esModule=!0},function(t,e,n){t.exports={"default":n(13),__esModule:!0}},function(t,e,n){var r=n(14);t.exports=function(t,e,n){return r.setDesc(t,e,n)}},function(t,e){var n=Object;t.exports={create:n.create,getProto:n.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:n.getOwnPropertyDescriptor,setDesc:n.defineProperty,setDescs:n.defineProperties,getKeys:n.keys,getNames:n.getOwnPropertyNames,getSymbols:n.getOwnPropertySymbols,each:[].forEach}},function(t,e,n){"use strict";function r(t,e,n){var r=t.childVM;if(!r||!e)return!1;if(t.Component!==e.component)return!1;var o=l.getRouteConfig(r,"canReuse");return"boolean"==typeof o?o:o?o.call(r,{to:n.to,from:n.from}):!0}function o(t,e,n){var r=t.childVM,o=l.getRouteConfig(r,"canDeactivate");o?e.callHook(o,r,n,{expectBoolean:!0}):n()}function a(t,e,n){l.resolveAsyncComponent(t,function(t){if(!e.aborted){var r=l.getRouteConfig(t,"canActivate");r?e.callHook(r,null,n,{expectBoolean:!0}):n()}})}function i(t,e,n){var r=t.childVM,o=l.getRouteConfig(r,"deactivate");o?e.callHook(o,r,n):n()}function s(t,n,r,o){var a=n.activateQueue[r];if(!a)return t._bound&&t.setComponent(null),void(o&&o());var i=t.Component=a.component,s=l.getRouteConfig(i,"activate"),u=l.getRouteConfig(i,"data"),h=l.getRouteConfig(i,"waitForData");t.depth=r,t.activated=!1,t.unbuild(!0);var f=t.build({_meta:{$loadingRouteData:!(!u||h)}}),d=function(){f.$destroy()},p=function(){var e=n.router;e._rendered||e._transitionOnLoad?t.transition(f):(t.setCurrent?t.setCurrent(f):t.childVM=f,f.$before(t.anchor,null,!1)),o&&o()},v=function(){t.activated=!0,t.childView&&e.activate(t.childView,n,r+1),u&&h?c(f,n,u,p,d):(u&&c(f,n,u),p())};s?n.callHook(s,f,v,{cleanup:d}):v()}function u(t,e){var n=t.childVM,r=l.getRouteConfig(n,"data");r&&c(n,e,r)}function c(t,e,n,r,o){t.$loadingRouteData=!0,e.callHook(n,t,function(e,n){var o=[];h(e).forEach(function(n){var r=e[n];l.isPromise(r)?o.push(r.then(function(e){t.$set(n,e)})):t.$set(n,r)}),o.length?o[0].constructor.all(o).then(function(e){t.$loadingRouteData=!1},n):t.$loadingRouteData=!1,r&&r(e)},{cleanup:o,expectData:!0})}var h=n(16)["default"];Object.defineProperty(e,"__esModule",{value:!0}),e.canReuse=r,e.canDeactivate=o,e.canActivate=a,e.deactivate=i,e.activate=s,e.reuse=u;var l=n(3)},function(t,e,n){t.exports={"default":n(17),__esModule:!0}},function(t,e,n){n(18),t.exports=n(24).Object.keys},function(t,e,n){var r=n(19);n(21)("keys",function(t){return function(e){return t(r(e))}})},function(t,e,n){var r=n(20);t.exports=function(t){return Object(r(t))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){t.exports=function(t,e){var r=n(22),o=(n(24).Object||{})[t]||Object[t],a={};a[t]=e(o),r(r.S+r.F*n(25)(function(){o(1)}),"Object",a)}},function(t,e,n){var r=n(23),o=n(24),a="prototype",i=function(t,e){return function(){return t.apply(e,arguments)}},s=function(t,e,n){var u,c,h,l,f=t&s.G,d=t&s.P,p=f?r:t&s.S?r[e]:(r[e]||{})[a],v=f?o:o[e]||(o[e]={});f&&(n=e);for(u in n)c=!(t&s.F)&&p&&u in p,c&&u in v||(h=c?p[u]:n[u],f&&"function"!=typeof p[u]?l=n[u]:t&s.B&&c?l=i(h,r):t&s.W&&p[u]==h?!function(t){l=function(e){return this instanceof t?new t(e):t(e)},l[a]=t[a]}(h):l=d&&"function"==typeof h?i(Function.call,h):h,v[u]=l,d&&((v[a]||(v[a]={}))[u]=h))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,t.exports=s},function(t,e){var n="undefined",r=t.exports=typeof window!=n&&window.Math==Math?window:typeof self!=n&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,e){var n=t.exports={};"number"==typeof __e&&(__e=n)},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(3),o=n(15);e["default"]=function(t){var e=t.util,n=t.directive("_component")||t.internalDirectives.component,a=e.extend({},n);e.extend(a,{_isRouterView:!0,bind:function(){var t=this.vm.$route;if(!t)return void r.warn("<router-view> can only be used inside a router-enabled app.");this._isDynamicLiteral=!0,n.bind.call(this),this.keepAlive&&(this.keepAlive=!1,r.warn("<router-view> does not support keep-alive.")),this.waitForEvent&&(this.waitForEvent=null,r.warn("<router-view> does not support wait-for. Use the acitvate route hook instead."));var e=this.router=t.router;e._views.unshift(this);var a=e._views[1];a&&(a.childView=this);var i=t.router._currentTransition;if(!a&&i.done||a&&a.activated){var s=a?a.depth+1:0;o.activate(this,i,s)}},unbind:function(){this.router._views.$remove(this),n.unbind.call(this)}}),t.elementDirective("router-view",a)},t.exports=e["default"]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(3),o=/[-.*+?^${}()|[\]\/\\]/g;e["default"]=function(t){function e(t){return t.protocol===location.protocol&&t.hostname===location.hostname&&t.port===location.port}var n=t.util;t.directive("link",{bind:function(){var t=this,o=this.vm;if(!o.$route)return void r.warn("v-link can only be used inside a router-enabled app.");var a=o.$route.router;this.handler=function(n){if(!(n.metaKey||n.ctrlKey||n.shiftKey||n.defaultPrevented||0!==n.button))if("A"===t.el.tagName||n.target===t.el)n.preventDefault(),null!=t.destination&&a.go(t.destination,t.replace===!0);else{for(var r=n.target;r&&"A"!==r.tagName&&r!==t.el;)r=r.parentNode;if(!r||"A"!==r.tagName||!r.href)return;e(r)&&(n.preventDefault(),a.go(r.pathname))}},this.el.addEventListener("click",this.handler),this.unwatch=o.$watch("$route.path",n.bind(this.updateClasses,this))},update:function(t){var e=this.vm.$route.router;this.replace="object"==typeof t?t.replace:!1,t=e._normalizePath(t),this.destination=t,this.activeRE=t?new RegExp("^"+t.replace(o,"\\$&")+"\\b"):null,this.updateClasses(this.vm.$route.path);var n="/"===t.charAt(0),r="hash"===e.mode||n?e.history.formatPath(t):t;"A"===this.el.tagName&&(r?this.el.href=r:this.el.removeAttribute("href"))},updateClasses:function(t){var e=this.el,r=this.destination,o=this.vm.$route.router,a=o._linkActiveClass,i=a+"-exact";this.activeRE&&this.activeRE.test(t)&&"/"!==t?n.addClass(e,a):n.removeClass(e,a),t===r?n.addClass(e,i):n.removeClass(e,i)},unbind:function(){this.el.removeEventListener("click",this.handler),this.unwatch&&this.unwatch()}})},t.exports=e["default"]},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=function(t){var e=t.prototype.$addChild;t.prototype.$addChild=function(t,n){var r=this.$route,o=r&&r.router;if(o){t=t||{};var a=t._meta=t._meta||{};a.$route=r,t._isRouterView&&(a.$loadingRouteData=a.$loadingRouteData||!1)}var i=e.call(this,t,n);return o&&(o._children.push(i),i.$on("hook:beforeDestroy",function(){o._children.$remove(i)})),i}},t.exports=e["default"]},function(t,e,n){"use strict";var r=n(11)["default"],o=n(1)["default"];Object.defineProperty(e,"__esModule",{value:!0});var a=n(3),i=function(){function t(e){var n=e.onChange;o(this,t),this.onChange=n,this.currentPath="/"}return r(t,[{key:"start",value:function(){this.onChange("/")}},{key:"stop",value:function(){}},{key:"go",value:function(t){t=this.currentPath=this.formatPath(t),this.onChange(t)}},{key:"formatPath",value:function(t){return"/"===t.charAt(0)?t:a.resolvePath(this.currentPath,t)}}]),t}();e["default"]=i,t.exports=e["default"]},function(t,e,n){"use strict";var r=n(11)["default"],o=n(1)["default"];Object.defineProperty(e,"__esModule",{value:!0});var a=n(3),i=function(){function t(e){var n=e.hashbang,r=e.onChange;o(this,t),this.hashbang=n,this.onChange=r}return r(t,[{key:"start",value:function(){var t=this;this.listener=function(){var e=location.hash,n=t.formatPath(e,!0);if(n!==e)return void location.replace(n);var r=decodeURI(e.replace(/^#!?/,"")+location.search);t.onChange(r)},window.addEventListener("hashchange",this.listener),this.listener()}},{key:"stop",value:function(){window.removeEventListener("hashchange",this.listener)}},{key:"go",value:function(t,e){t=this.formatPath(t),e?location.replace(t):location.hash=t}},{key:"formatPath",value:function(t,e){t=t.replace(/^#!?/,"");var n="/"===t.charAt(0);e&&!n&&(t="/"+t);var r="#"+(this.hashbang?"!":"");return n||e?r+t:r+a.resolvePath(location.hash.replace(/^#!?/,""),t)}}]),t}();e["default"]=i,t.exports=e["default"]},function(t,e,n){"use strict";var r=n(11)["default"],o=n(1)["default"];Object.defineProperty(e,"__esModule",{value:!0});var a=n(3),i=/#.*$/,s=function(){function t(e){var n=e.root,r=e.onChange;o(this,t),n?("/"!==n.charAt(0)&&(n="/"+n),this.root=n.replace(/\/$/,""),this.rootRE=new RegExp("^\\"+this.root)):this.root=null,this.onChange=r;var a=document.querySelector("base");this.base=a&&a.getAttribute("href")}return r(t,[{key:"start",value:function(){var t=this;this.listener=function(e){var n=decodeURI(location.pathname+location.search);t.root&&(n=n.replace(t.rootRE,"")),t.onChange(n,e&&e.state,location.hash)},window.addEventListener("popstate",this.listener),this.listener()}},{key:"stop",value:function(){window.removeEventListener("popstate",this.listener)}},{key:"go",value:function(t,e){var n=this.root,r=this.formatPath(t,n);e?history.replaceState({},"",r):(history.replaceState({pos:{x:window.pageXOffset,y:window.pageYOffset}},""),history.pushState({},"",r));var o=t.match(i),a=o&&o[0];t=r.replace(i,"").replace(this.rootRE,""),this.onChange(t,null,a)}},{key:"formatPath",value:function(t){return"/"===t.charAt(0)?this.root?this.root+"/"+t.replace(/^\//,""):t:a.resolvePath(this.base||location.pathname,t)}}]),t}();e["default"]=s,t.exports=e["default"]}])});
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VueRouter=e():t.VueRouter=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return t[r].call(a.exports,a,a.exports,e),a.loaded=!0,a.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function r(t,e){var n=e.component;$.util.isPlainObject(n)&&(n=e.component=$.extend(n)),"function"!=typeof n&&(e.component=null,s.warn('invalid component for route "'+t+'".'))}var a=n(1)["default"],o=n(5)["default"],i=n(6)["default"];Object.defineProperty(e,"__esModule",{value:!0});var s=n(7),u=i(s),c=n(11),h=i(c),l=n(8),f=i(l),d=n(12),p=i(d),v=n(22),g=i(v),y=n(29),m=i(y),_=n(30),w=i(_),b=n(31),x=i(b),C=n(32),k=i(C),P=n(33),R=i(P),E={"abstract":x["default"],hash:k["default"],html5:R["default"]},$=void 0,O=function(){function t(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=e.hashbang,r=void 0===n?!0:n,a=e["abstract"],i=void 0===a?!1:a,s=e.history,u=void 0===s?!1:s,c=e.saveScrollPosition,h=void 0===c?!1:c,l=e.transitionOnLoad,d=void 0===l?!1:l,p=e.suppressTransitionError,v=void 0===p?!1:p,g=e.root,y=void 0===g?null:g,m=e.linkActiveClass,_=void 0===m?"v-link-active":m;if(o(this,t),!t.installed)throw new Error("Please install the Router with Vue.use() before creating an instance.");this.app=null,this._views=[],this._children=[],this._recognizer=new f["default"],this._guardRecognizer=new f["default"],this._started=!1,this._startCb=null,this._currentRoute={},this._currentTransition=null,this._previousTransition=null,this._notFoundHandler=null,this._beforeEachHooks=[],this._afterEachHooks=[],this._hasPushState="undefined"!=typeof window&&window.history&&window.history.pushState,this._rendered=!1,this._transitionOnLoad=d,this._abstract=i,this._hashbang=r,this._history=this._hasPushState&&u,this._saveScrollPosition=h,this._linkActiveClass=_,this._suppress=v;var w=$.util.inBrowser;this.mode=!w||this._abstract?"abstract":this._history?"html5":"hash";var b=E[this.mode],x=this;this.history=new b({root:y,hashbang:this._hashbang,onChange:function(t,e,n){x._match(t,e,n)}})}return a(t,[{key:"map",value:function(t){for(var e in t)this.on(e,t[e])}},{key:"on",value:function(t,e){"*"===t?this._notFound(e):this._addRoute(t,e,[])}},{key:"redirect",value:function(t){for(var e in t)this._addRedirect(e,t[e])}},{key:"alias",value:function(t){for(var e in t)this._addAlias(e,t[e])}},{key:"beforeEach",value:function(t){this._beforeEachHooks.push(t)}},{key:"afterEach",value:function(t){this._afterEachHooks.push(t)}},{key:"go",value:function(t){var e=!1,n=!1;$.util.isObject(t)&&(e=t.replace,n=t.append),t=this._stringifyPath(t),this.history.go(t,e,n)}},{key:"replace",value:function(t){this.go({path:t,replace:!0})}},{key:"start",value:function(t,e,n){if(this._started)return void s.warn("already started.");if(this._started=!0,this._startCb=n,!this.app){if(!t||!e)throw new Error("Must start vue-router with a component and a root container.");this._appContainer=e,this._appConstructor="function"==typeof t?t:$.extend(t)}this.history.start()}},{key:"stop",value:function(){this.history.stop(),this._started=!1}},{key:"_addRoute",value:function(t,e,n){if(r(t,e),e.path=t,e.fullPath=(n.reduce(function(t,e){return t+e.path},"")+t).replace("//","/"),n.push({path:t,handler:e}),this._recognizer.add(n,{as:e.name}),e.subRoutes)for(var a in e.subRoutes)this._addRoute(a,e.subRoutes[a],n.slice())}},{key:"_notFound",value:function(t){r("*",t),this._notFoundHandler=[{handler:t}]}},{key:"_addRedirect",value:function(t,e){this._addGuard(t,e,this.replace)}},{key:"_addAlias",value:function(t,e){this._addGuard(t,e,this._match)}},{key:"_addGuard",value:function(t,e,n){var r=this;this._guardRecognizer.add([{path:t,handler:function(t,a){var o=s.mapParams(e,t.params,a);n.call(r,o)}}])}},{key:"_checkGuard",value:function(t){var e=this._guardRecognizer.recognize(t);return e?(e[0].handler(e[0],e.queryParams),!0):void 0}},{key:"_match",value:function(t,e,n){var r=this;if(!this._checkGuard(t)){var a=this._currentRoute,o=this._currentTransition;if(!o||t!==a.path){var i=new p["default"](t,this),s=new g["default"](this,i,a);this._prevTransition=o,this._currentTransition=s,this.app||(this.app=new this._appConstructor({el:this._appContainer,_meta:{$route:i}}));var u=this._beforeEachHooks,c=function(){s.start(function(){r._postTransition(i,e,n)})};u.length?s.runQueue(u,function(t,e,n){s===r._currentTransition&&s.callHook(t,null,n,!0)},c):c(),!this._rendered&&this._startCb&&this._startCb.call(null),this._rendered=!0}}}},{key:"_onTransitionValidated",value:function(t){var e=this._prevTransition;e&&(e.aborted=!0);var n=this._currentRoute=t.to;this.app.$route!==n&&(this.app.$route=n,this._children.forEach(function(t){t.$route=n})),this._afterEachHooks.length&&this._afterEachHooks.forEach(function(e){return e.call(null,{to:t.to,from:t.from})}),this._currentTransition.done=!0}},{key:"_postTransition",value:function(t,e,n){var r=e&&e.pos;r&&this._saveScrollPosition?$.nextTick(function(){window.scrollTo(r.x,r.y)}):n&&$.nextTick(function(){var t=document.getElementById(n.slice(1));t&&window.scrollTo(window.scrollX,t.offsetTop)})}},{key:"_stringifyPath",value:function(t){if("object"==typeof t){if(t.name){var e=t.params||{};return t.query&&(e.queryParams=t.query),this._recognizer.generate(t.name,e)}return t.path?t.path:""}return t+""}}]),t}();O.installed=!1,O.install=function(t){if(O.installed)return void s.warn("already installed.");$=t,h["default"]($),m["default"]($),w["default"]($),u["default"].Vue=$;var e=$.config.optionMergeStrategies;e&&(e.route=e.methods),O.installed=!0},"undefined"!=typeof window&&window.Vue&&window.Vue.use(O),e["default"]=O,t.exports=e["default"]},function(t,e,n){"use strict";var r=n(2)["default"];e["default"]=function(){function t(t,e){for(var n=0;n<e.length;n++){var a=e[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),r(t,a.key,a)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),e.__esModule=!0},function(t,e,n){t.exports={"default":n(3),__esModule:!0}},function(t,e,n){var r=n(4);t.exports=function(t,e,n){return r.setDesc(t,e,n)}},function(t,e){var n=Object;t.exports={create:n.create,getProto:n.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:n.getOwnPropertyDescriptor,setDesc:n.defineProperty,setDescs:n.defineProperties,getKeys:n.keys,getNames:n.getOwnPropertyNames,getSymbols:n.getOwnPropertySymbols,each:[].forEach}},function(t,e){"use strict";e["default"]=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.__esModule=!0},function(t,e){"use strict";e["default"]=function(t){return t&&t.__esModule?t:{"default":t}},e.__esModule=!0},function(t,e,n){"use strict";function r(t){window.console&&(console.warn("[vue-router] "+t),(!d.Vue||d.Vue.config.debug)&&console.warn(new Error("warning stack trace:").stack))}function a(t,e,n){var r=t.match(/(\?.*)$/);if(r&&(r=r[1],t=t.slice(0,-r.length)),"?"===e.charAt(0))return t+e;var a=t.split("/");n&&a[a.length-1]||a.pop();for(var o=e.replace(/^\//,"").split("/"),i=0;i<o.length;i++){var s=o[i];"."!==s&&(".."===s?a.pop():a.push(s))}return""!==a[0]&&a.unshift(""),a.join("/")}function o(t){return t&&"function"==typeof t.then}function i(t,e){var n=t&&(t.$options||t.options);return n&&n.route&&n.route[e]}function s(t,e){p?p.$options.components._=t.component:p={resolve:d.Vue.prototype._resolveComponent,$options:{components:{_:t.component}}},p.resolve("_",function(n){t.component=n,e(n)})}function u(t,e,n){return void 0===e&&(e={}),t=t.replace(/:([^\/]+)/g,function(n,a){var o=e[a];return o||r('param "'+a+'" not found when generating path for "'+t+'" with params '+JSON.stringify(e)),o||""}),n&&(t+=f(n)),t}var c=n(6)["default"];Object.defineProperty(e,"__esModule",{value:!0}),e.warn=r,e.resolvePath=a,e.isPromise=o,e.getRouteConfig=i,e.resolveAsyncComponent=s,e.mapParams=u;var h=n(8),l=c(h),f=l["default"].prototype.generateQueryString,d={};e["default"]=d;var p=void 0},function(t,e,n){var r;(function(t){(function(){"use strict";function a(t,e,n){this.path=t,this.matcher=e,this.delegate=n}function o(t){this.routes={},this.children={},this.target=t}function i(t,e,n){return function(r,o){var s=t+r;return o?void o(i(s,e,n)):new a(t+r,e,n)}}function s(t,e,n){for(var r=0,a=0,o=t.length;o>a;a++)r+=t[a].path.length;e=e.substr(r);var i={path:e,handler:n};t.push(i)}function u(t,e,n,r){var a=e.routes;for(var o in a)if(a.hasOwnProperty(o)){var i=t.slice();s(i,o,a[o]),e.children[o]?u(i,e.children[o],n,r):n.call(r,i)}}function c(t){return"[object Array]"===Object.prototype.toString.call(t)}function h(t){this.string=t}function l(t){this.name=t}function f(t){this.name=t}function d(){}function p(t,e,n){"/"===t.charAt(0)&&(t=t.substr(1));var r=t.split("/"),a=[];n.val="";for(var o=0,i=r.length;i>o;o++){var s,u=r[o];(s=u.match(/^:([^\/]+)$/))?(a.push(new l(s[1])),e.push(s[1]),n.val+="3"):(s=u.match(/^\*([^\/]+)$/))?(a.push(new f(s[1])),n.val+="2",e.push(s[1])):""===u?(a.push(new d),n.val+="1"):(a.push(new h(u)),n.val+="4")}return n.val=+n.val,a}function v(t){this.charSpec=t,this.nextStates=[]}function g(t){return t.sort(function(t,e){return e.specificity.val-t.specificity.val})}function y(t,e){for(var n=[],r=0,a=t.length;a>r;r++){var o=t[r];n=n.concat(o.match(e))}return n}function m(t){this.queryParams=t||{}}function _(t,e,n){for(var r=t.handlers,a=t.regex,o=e.match(a),i=1,s=new m(n),u=0,c=r.length;c>u;u++){for(var h=r[u],l=h.names,f={},d=0,p=l.length;p>d;d++)f[l[d]]=o[i++];s.push({handler:h.handler,params:f,isDynamic:!!l.length})}return s}function w(t,e){return e.eachChar(function(e){t=t.put(e)}),t}function b(t){return t=t.replace(/\+/gm,"%20"),decodeURIComponent(t)}a.prototype={to:function(t,e){var n=this.delegate;if(n&&n.willAddRoute&&(t=n.willAddRoute(this.matcher.target,t)),this.matcher.add(this.path,t),e){if(0===e.length)throw new Error("You must have an argument in the function passed to `to`");this.matcher.addChild(this.path,t,e,this.delegate)}return this}},o.prototype={add:function(t,e){this.routes[t]=e},addChild:function(t,e,n,r){var a=new o(e);this.children[t]=a;var s=i(t,a,r);r&&r.contextEntered&&r.contextEntered(e,s),n(s)}};var x=function(t,e){var n=new o;t(i("",n,this.delegate)),u([],n,function(t){e?e(this,t):this.add(t)},this)},C=["/",".","*","+","?","|","(",")","[","]","{","}","\\"],k=new RegExp("(\\"+C.join("|\\")+")","g");h.prototype={eachChar:function(t){for(var e,n=this.string,r=0,a=n.length;a>r;r++)e=n.charAt(r),t({validChars:e})},regex:function(){return this.string.replace(k,"\\$1")},generate:function(){return this.string}},l.prototype={eachChar:function(t){t({invalidChars:"/",repeat:!0})},regex:function(){return"([^/]+)"},generate:function(t){return t[this.name]}},f.prototype={eachChar:function(t){t({invalidChars:"",repeat:!0})},regex:function(){return"(.+)"},generate:function(t){return t[this.name]}},d.prototype={eachChar:function(){},regex:function(){return""},generate:function(){return""}},v.prototype={get:function(t){for(var e=this.nextStates,n=0,r=e.length;r>n;n++){var a=e[n],o=a.charSpec.validChars===t.validChars;if(o=o&&a.charSpec.invalidChars===t.invalidChars)return a}},put:function(t){var e;return(e=this.get(t))?e:(e=new v(t),this.nextStates.push(e),t.repeat&&e.nextStates.push(e),e)},match:function(t){for(var e,n,r,a=this.nextStates,o=[],i=0,s=a.length;s>i;i++)e=a[i],n=e.charSpec,"undefined"!=typeof(r=n.validChars)?-1!==r.indexOf(t)&&o.push(e):"undefined"!=typeof(r=n.invalidChars)&&-1===r.indexOf(t)&&o.push(e);return o}};var P=Object.create||function(t){function e(){}return e.prototype=t,new e};m.prototype=P({splice:Array.prototype.splice,slice:Array.prototype.slice,push:Array.prototype.push,length:0,queryParams:null});var R=function(){this.rootState=new v,this.names={}};R.prototype={add:function(t,e){for(var n,r=this.rootState,a="^",o={},i=[],s=[],u=!0,c=0,h=t.length;h>c;c++){var l=t[c],f=[],v=p(l.path,f,o);s=s.concat(v);for(var g=0,y=v.length;y>g;g++){var m=v[g];m instanceof d||(u=!1,r=r.put({validChars:"/"}),a+="/",r=w(r,m),a+=m.regex())}var _={handler:l.handler,names:f};i.push(_)}u&&(r=r.put({validChars:"/"}),a+="/"),r.handlers=i,r.regex=new RegExp(a+"$"),r.specificity=o,(n=e&&e.as)&&(this.names[n]={segments:s,handlers:i})},handlersFor:function(t){var e=this.names[t],n=[];if(!e)throw new Error("There is no route named "+t);for(var r=0,a=e.handlers.length;a>r;r++)n.push(e.handlers[r]);return n},hasRoute:function(t){return!!this.names[t]},generate:function(t,e){var n=this.names[t],r="";if(!n)throw new Error("There is no route named "+t);for(var a=n.segments,o=0,i=a.length;i>o;o++){var s=a[o];s instanceof d||(r+="/",r+=s.generate(e))}return"/"!==r.charAt(0)&&(r="/"+r),e&&e.queryParams&&(r+=this.generateQueryString(e.queryParams,n.handlers)),r},generateQueryString:function(t,e){var n=[],r=[];for(var a in t)t.hasOwnProperty(a)&&r.push(a);r.sort();for(var o=0,i=r.length;i>o;o++){a=r[o];var s=t[a];if(null!=s){var u=encodeURIComponent(a);if(c(s))for(var h=0,l=s.length;l>h;h++){var f=a+"[]="+encodeURIComponent(s[h]);n.push(f)}else u+="="+encodeURIComponent(s),n.push(u)}}return 0===n.length?"":"?"+n.join("&")},parseQueryString:function(t){for(var e=t.split("&"),n={},r=0;r<e.length;r++){var a,o=e[r].split("="),i=b(o[0]),s=i.length,u=!1;1===o.length?a="true":(s>2&&"[]"===i.slice(s-2)&&(u=!0,i=i.slice(0,s-2),n[i]||(n[i]=[])),a=o[1]?b(o[1]):""),u?n[i].push(a):n[i]=a}return n},recognize:function(t){var e,n,r,a,o=[this.rootState],i={},s=!1;if(a=t.indexOf("?"),-1!==a){var u=t.substr(a+1,t.length);t=t.substr(0,a),i=this.parseQueryString(u)}for(t=decodeURI(t),"/"!==t.charAt(0)&&(t="/"+t),e=t.length,e>1&&"/"===t.charAt(e-1)&&(t=t.substr(0,e-1),s=!0),n=0,r=t.length;r>n&&(o=y(o,t.charAt(n)),o.length);n++);var c=[];for(n=0,r=o.length;r>n;n++)o[n].handlers&&c.push(o[n]);o=g(c);var h=c[0];return h&&h.handlers?(s&&"(.+)$"===h.regex.source.slice(-5)&&(t+="/"),_(h,t,i)):void 0}},R.prototype.map=x,R.VERSION="0.1.9";var E=R;n(10).amd?(r=function(){return E}.call(e,n,e,t),!(void 0!==r&&(t.exports=r))):"undefined"!=typeof t&&t.exports?t.exports=E:"undefined"!=typeof this&&(this.RouteRecognizer=E)}).call(this)}).call(e,n(9)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){t.exports=function(){throw new Error("define cannot be used indirect")}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=function(t){var e=t.util,n={created:function(){var t=this.$root.$route;t&&(t.router._children.push(this),this.$route||(this._defineMeta?this._defineMeta("$route",t):e.defineReactive(this,"$route",t)))},beforeDestroy:function(){var t=this.$root.$route;t&&t.router._children.$remove(this)}};t.mixin?t.mixin(n):t.options=e.mergeOptions(t.options,n)},t.exports=e["default"]},function(t,e,n){"use strict";var r=n(5)["default"],a=n(13)["default"];Object.defineProperty(e,"__esModule",{value:!0});var o=/^(component|subRoutes)$/,i=function s(t,e){var n=this;r(this,s);var i=e._recognizer.recognize(t);i&&([].forEach.call(i,function(t){for(var e in t.handler)o.test(e)||(n[e]=t.handler[e])}),this.query=i.queryParams,this.params=[].reduce.call(i,function(t,e){if(e.params)for(var n in e.params)t[n]=e.params[n];return t},{})),this.path=t,this.router=e,this.matched=i||e._notFoundHandler,a(this)};e["default"]=i,t.exports=e["default"]},function(t,e,n){t.exports={"default":n(14),__esModule:!0}},function(t,e,n){n(15),t.exports=n(20).Object.freeze},function(t,e,n){var r=n(16);n(17)("freeze",function(t){return function(e){return t&&r(e)?t(e):e}})},function(t,e){t.exports=function(t){return null!==t&&("object"==typeof t||"function"==typeof t)}},function(t,e,n){t.exports=function(t,e){var r=n(18),a=(n(20).Object||{})[t]||Object[t],o={};o[t]=e(a),r(r.S+r.F*n(21)(function(){a(1)}),"Object",o)}},function(t,e,n){var r=n(19),a=n(20),o="prototype",i=function(t,e){return function(){return t.apply(e,arguments)}},s=function(t,e,n){var u,c,h,l,f=t&s.G,d=t&s.P,p=f?r:t&s.S?r[e]:(r[e]||{})[o],v=f?a:a[e]||(a[e]={});f&&(n=e);for(u in n)c=!(t&s.F)&&p&&u in p,c&&u in v||(h=c?p[u]:n[u],f&&"function"!=typeof p[u]?l=n[u]:t&s.B&&c?l=i(h,r):t&s.W&&p[u]==h?!function(t){l=function(e){return this instanceof t?new t(e):t(e)},l[o]=t[o]}(h):l=d&&"function"==typeof h?i(Function.call,h):h,v[u]=l,d&&((v[o]||(v[o]={}))[u]=h))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,t.exports=s},function(t,e){var n="undefined",r=t.exports=typeof window!=n&&window.Math==Math?window:typeof self!=n&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,e){var n=t.exports={};"number"==typeof __e&&(__e=n)},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e,n){"use strict";function r(t){return"[object Object]"===Object.prototype.toString.call(t)}var a=n(1)["default"],o=n(5)["default"];Object.defineProperty(e,"__esModule",{value:!0});var i=n(7),s=n(23),u=function(){function t(e,n,r){o(this,t),this.router=e,this.to=n,this.from=r,this.next=null,this.aborted=!1,this.done=!1,this.deactivateQueue=e._views;var a=n.matched?Array.prototype.slice.call(n.matched):[];this.activateQueue=a.map(function(t){return t.handler})}return a(t,[{key:"abort",value:function(){if(!this.aborted){this.aborted=!0;var t=!this.from.path&&"/"===this.to.path;t||this.router.replace(this.from.path||"/")}}},{key:"redirect",value:function(t){this.aborted||(this.aborted=!0,"string"==typeof t?t=i.mapParams(t,this.to.params,this.to.query):(t.params=this.to.params,t.query=this.to.query),this.router.replace(t))}},{key:"start",value:function(t){var e=this,n=this.deactivateQueue,r=this.activateQueue,a=n.slice().reverse(),o=void 0,i=void 0;for(i=0;i<a.length&&s.canReuse(a[i],r[i],e);i++);i>0&&(o=a.slice(0,i),n=a.slice(i).reverse(),r=r.slice(i)),e.runQueue(n,s.canDeactivate,function(){e.runQueue(r,s.canActivate,function(){e.runQueue(n,s.deactivate,function(){if(e.router._onTransitionValidated(e),o&&o.forEach(function(t){s.reuse(t,e)}),n.length){var r=n[n.length-1],a=o?o.length:0;s.activate(r,e,a,t)}else t()})})})}},{key:"runQueue",value:function(t,e,n){function r(o){o>=t.length?n():e(t[o],a,function(){r(o+1)})}var a=this;r(0)}},{key:"callHook",value:function(t,e,n){var a=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],o=a.expectBoolean,s=void 0===o?!1:o,u=a.expectData,c=void 0===u?!1:u,h=a.cleanup,l=this,f=!1,d=function(t){h&&h(),l.abort(t)},p=function(t){if(h?v():d(),t&&!l.router._suppress)throw i.warn("Uncaught error during transition: "),t instanceof Error?t:new Error(t)},v=function(t){return f?void i.warn("transition.next() should be called only once."):(f=!0,void(n&&!l.aborted&&n(t,p)))},g={to:l.to,from:l.from,abort:d,next:v,redirect:function(){l.redirect.apply(l,arguments)}},y=void 0;try{y=t.call(e,g)}catch(m){return p(m)}var _=i.isPromise(y);s?"boolean"==typeof y?y?v():d():_&&y.then(function(t){t?v():d()},p):_?y.then(v,p):c&&r(y)&&v(y)}}]),t}();e["default"]=u,t.exports=e["default"]},function(t,e,n){"use strict";function r(t,e,n){var r=t.childVM;if(!r||!e)return!1;if(t.Component!==e.component)return!1;var a=l.getRouteConfig(r,"canReuse");return"boolean"==typeof a?a:a?a.call(r,{to:n.to,from:n.from}):!0}function a(t,e,n){var r=t.childVM,a=l.getRouteConfig(r,"canDeactivate");a?e.callHook(a,r,n,{expectBoolean:!0}):n()}function o(t,e,n){l.resolveAsyncComponent(t,function(t){if(!e.aborted){var r=l.getRouteConfig(t,"canActivate");r?e.callHook(r,null,n,{expectBoolean:!0}):n()}})}function i(t,e,n){var r=t.childVM,a=l.getRouteConfig(r,"deactivate");a?e.callHook(a,r,n):n()}function s(t,n,r,a){var o=n.activateQueue[r];if(!o)return t._bound&&t.setComponent(null),void(a&&a());var i=t.Component=o.component,s=l.getRouteConfig(i,"activate"),u=l.getRouteConfig(i,"data"),h=l.getRouteConfig(i,"waitForData");t.depth=r,t.activated=!1,t.unbuild(!0);var f=t.build({_meta:{$loadingRouteData:!(!u||h)}}),d=function(){f.$destroy()},p=function(){var e=n.router;e._rendered||e._transitionOnLoad?t.transition(f):(t.setCurrent?t.setCurrent(f):t.childVM=f,f.$before(t.anchor,null,!1)),a&&a()},v=function(){t.activated=!0,t.childView&&e.activate(t.childView,n,r+1),u&&h?c(f,n,u,p,d):(u&&c(f,n,u),p())};s?n.callHook(s,f,v,{cleanup:d}):v()}function u(t,e){var n=t.childVM,r=l.getRouteConfig(n,"data");r&&c(n,e,r)}function c(t,e,n,r,a){t.$loadingRouteData=!0,e.callHook(n,t,function(e,n){var a=[];h(e).forEach(function(n){var r=e[n];l.isPromise(r)?a.push(r.then(function(e){t.$set(n,e)})):t.$set(n,r)}),a.length?a[0].constructor.all(a).then(function(e){t.$loadingRouteData=!1},n):t.$loadingRouteData=!1,r&&r(e)},{cleanup:a,expectData:!0})}var h=n(24)["default"];Object.defineProperty(e,"__esModule",{value:!0}),e.canReuse=r,e.canDeactivate=a,e.canActivate=o,e.deactivate=i,e.activate=s,e.reuse=u;var l=n(7)},function(t,e,n){t.exports={"default":n(25),__esModule:!0}},function(t,e,n){n(26),t.exports=n(20).Object.keys},function(t,e,n){var r=n(27);n(17)("keys",function(t){return function(e){return t(r(e))}})},function(t,e,n){var r=n(28);t.exports=function(t){return Object(r(t))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(7),a=n(23);e["default"]=function(t){var e=t.util,n=t.directive("_component")||t.internalDirectives.component,o=e.extend({},n);e.extend(o,{_isRouterView:!0,bind:function(){var t=this.vm.$route;if(!t)return void r.warn("<router-view> can only be used inside a router-enabled app.");this._isDynamicLiteral=!0,n.bind.call(this),this.keepAlive&&(this.keepAlive=!1,r.warn("<router-view> does not support keep-alive."));var e=this.router=t.router;e._views.unshift(this);var o=e._views[1];o&&(o.childView=this);var i=t.router._currentTransition;if(!o&&i.done||o&&o.activated){var s=o?o.depth+1:0;a.activate(this,i,s)}},unbind:function(){this.router._views.$remove(this),n.unbind.call(this)}}),t.elementDirective("router-view",o)},t.exports=e["default"]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(7),a=/[-.*+?^${}()|[\]\/\\]/g;e["default"]=function(t){function e(t){return t.protocol===location.protocol&&t.hostname===location.hostname&&t.port===location.port}var n=t.util;t.directive("link",{bind:function(){var t=this,a=this.vm;if(!a.$route)return void r.warn("v-link can only be used inside a router-enabled app.");var o=a.$route.router;this.handler=function(n){if(!(n.metaKey||n.ctrlKey||n.shiftKey||n.defaultPrevented||0!==n.button)){var r=t.target;if("A"===t.el.tagName||n.target===t.el)n.preventDefault(),null!=r&&o.go(r);else{for(var a=n.target;a&&"A"!==a.tagName&&a!==t.el;)a=a.parentNode;if(!a||"A"!==a.tagName||!a.href)return;e(a)&&(n.preventDefault(),o.go({path:a.pathname,replace:r&&r.replace,append:r&&r.append}))}}},this.el.addEventListener("click",this.handler),this.unwatch=a.$watch("$route.path",n.bind(this.updateClasses,this))},update:function(t){var e=this.vm.$route.router,r=void 0;this.target=t,n.isObject(t)&&(r=t.append,this.exact=t.exact,this.prevActiveClass=this.activeClass,this.activeClass=t.activeClass),t=this.path=e._stringifyPath(t),this.activeRE=t&&!this.exact?new RegExp("^"+t.replace(/\/$/,"").replace(a,"\\$&")+"(\\/|$)"):null,this.updateClasses(this.vm.$route.path);var o="/"===t.charAt(0),i="hash"===e.mode||o?e.history.formatPath(t,r):t;"A"===this.el.tagName&&(i?this.el.href=i:this.el.removeAttribute("href"))},updateClasses:function(t){var e=this.el,r=this.path,a=this.vm.$route.router,o=this.activeClass||a._linkActiveClass;this.prevActiveClass!==o&&n.removeClass(e,this.prevActiveClass),this.exact?t===r?n.addClass(e,o):n.removeClass(e,o):this.activeRE&&this.activeRE.test(t)?n.addClass(e,o):n.removeClass(e,o)},unbind:function(){this.el.removeEventListener("click",this.handler),this.unwatch&&this.unwatch()}})},t.exports=e["default"]},function(t,e,n){"use strict";var r=n(1)["default"],a=n(5)["default"];Object.defineProperty(e,"__esModule",{value:!0});var o=n(7),i=function(){function t(e){var n=e.onChange;a(this,t),this.onChange=n,this.currentPath="/"}return r(t,[{key:"start",value:function(){this.onChange("/")}},{key:"stop",value:function(){}},{key:"go",value:function(t,e,n){t=this.currentPath=this.formatPath(t,n),this.onChange(t)}},{key:"formatPath",value:function(t,e){return"/"===t.charAt(0)?t:o.resolvePath(this.currentPath,t,e)}}]),t}();e["default"]=i,t.exports=e["default"]},function(t,e,n){"use strict";var r=n(1)["default"],a=n(5)["default"];Object.defineProperty(e,"__esModule",{value:!0});var o=n(7),i=function(){function t(e){var n=e.hashbang,r=e.onChange;a(this,t),this.hashbang=n,this.onChange=r}return r(t,[{key:"start",value:function(){var t=this;this.listener=function(){var e=location.hash,n=e.replace(/^#!?/,"");"/"!==n.charAt(0)&&(n="/"+n);var r=t.formatPath(n);if(r!==e)return void location.replace(r);var a=decodeURI(e.replace(/^#!?/,"")+location.search);t.onChange(a)},window.addEventListener("hashchange",this.listener),this.listener()}},{key:"stop",value:function(){window.removeEventListener("hashchange",this.listener)}},{key:"go",value:function(t,e,n){t=this.formatPath(t,n),e?location.replace(t):location.hash=t}},{key:"formatPath",value:function(t,e){var n="/"===t.charAt(0),r="#"+(this.hashbang?"!":"");return n?r+t:r+o.resolvePath(location.hash.replace(/^#!?/,""),t,e)}}]),t}();e["default"]=i,t.exports=e["default"]},function(t,e,n){"use strict";var r=n(1)["default"],a=n(5)["default"];Object.defineProperty(e,"__esModule",{value:!0});var o=n(7),i=/#.*$/,s=function(){function t(e){var n=e.root,r=e.onChange;a(this,t),n?("/"!==n.charAt(0)&&(n="/"+n),this.root=n.replace(/\/$/,""),this.rootRE=new RegExp("^\\"+this.root)):this.root=null,this.onChange=r;var o=document.querySelector("base");this.base=o&&o.getAttribute("href")}return r(t,[{key:"start",value:function(){var t=this;this.listener=function(e){var n=decodeURI(location.pathname+location.search);t.root&&(n=n.replace(t.rootRE,"")),t.onChange(n,e&&e.state,location.hash)},window.addEventListener("popstate",this.listener),this.listener()}},{key:"stop",value:function(){window.removeEventListener("popstate",this.listener)}},{key:"go",value:function(t,e,n){var r=this.formatPath(t,n);e?history.replaceState({},"",r):(history.replaceState({pos:{x:window.pageXOffset,y:window.pageYOffset}},""),history.pushState({},"",r));var a=t.match(i),o=a&&a[0];t=r.replace(i,"").replace(this.rootRE,""),this.onChange(t,null,o)}},{key:"formatPath",value:function(t,e){return"/"===t.charAt(0)?this.root?this.root+"/"+t.replace(/^\//,""):t:o.resolvePath(this.base||location.pathname,t,e)}}]),t}();e["default"]=s,t.exports=e["default"]}])});

@@ -38,7 +38,8 @@ 'use strict';

var target = _this.target;
if (_this.el.tagName === 'A' || e.target === _this.el) {
// v-link on <a v-link="'path'">
e.preventDefault();
if (_this.destination != null) {
router.go(_this.destination, _this.replace === true);
if (target != null) {
router.go(target);
}

@@ -54,3 +55,7 @@ } else {

e.preventDefault();
router.go(el.pathname);
router.go({
path: el.pathname,
replace: target && target.replace,
append: target && target.append
});
}

@@ -66,10 +71,16 @@ }

var router = this.vm.$route.router;
this.replace = typeof path === 'object' ? path.replace : false;
path = router._normalizePath(path);
this.destination = path;
this.activeRE = path ? new RegExp('^' + path.replace(regexEscapeRE, '\\$&') + '\\b') : null;
var append = undefined;
this.target = path;
if (_.isObject(path)) {
append = path.append;
this.exact = path.exact;
this.prevActiveClass = this.activeClass;
this.activeClass = path.activeClass;
}
path = this.path = router._stringifyPath(path);
this.activeRE = path && !this.exact ? new RegExp('^' + path.replace(/\/$/, '').replace(regexEscapeRE, '\\$&') + '(\\/|$)') : null;
this.updateClasses(this.vm.$route.path);
var isAbsolute = path.charAt(0) === '/';
// do not format non-hash relative paths
var href = router.mode === 'hash' || isAbsolute ? router.history.formatPath(path) : path;
var href = router.mode === 'hash' || isAbsolute ? router.history.formatPath(path, append) : path;
if (this.el.tagName === 'A') {

@@ -86,15 +97,22 @@ if (href) {

var el = this.el;
var dest = this.destination;
var dest = this.path;
var router = this.vm.$route.router;
var activeClass = router._linkActiveClass;
var exactClass = activeClass + '-exact';
if (this.activeRE && this.activeRE.test(path) && path !== '/') {
_.addClass(el, activeClass);
} else {
_.removeClass(el, activeClass);
var activeClass = this.activeClass || router._linkActiveClass;
// clear old class
if (this.prevActiveClass !== activeClass) {
_.removeClass(el, this.prevActiveClass);
}
if (path === dest) {
_.addClass(el, exactClass);
// add new class
if (this.exact) {
if (path === dest) {
_.addClass(el, activeClass);
} else {
_.removeClass(el, activeClass);
}
} else {
_.removeClass(el, exactClass);
if (this.activeRE && this.activeRE.test(path)) {
_.addClass(el, activeClass);
} else {
_.removeClass(el, activeClass);
}
}

@@ -101,0 +119,0 @@ },

@@ -46,7 +46,2 @@ 'use strict';

}
/* istanbul ignore if */
if (this.waitForEvent) {
this.waitForEvent = null;
(0, _util.warn)('<router-view> does not support wait-for. Use ' + 'the acitvate route hook instead.');
}

@@ -53,0 +48,0 @@ // all we need to do here is registering this view

@@ -35,4 +35,4 @@ 'use strict';

key: 'go',
value: function go(path) {
path = this.currentPath = this.formatPath(path);
value: function go(path, replace, append) {
path = this.currentPath = this.formatPath(path, append);
this.onChange(path);

@@ -42,4 +42,4 @@ }

key: 'formatPath',
value: function formatPath(path) {
return path.charAt(0) === '/' ? path : (0, _util.resolvePath)(this.currentPath, path);
value: function formatPath(path, append) {
return path.charAt(0) === '/' ? path : (0, _util.resolvePath)(this.currentPath, path, append);
}

@@ -46,0 +46,0 @@ }]);

@@ -30,3 +30,8 @@ 'use strict';

var path = location.hash;
var formattedPath = self.formatPath(path, true);
var raw = path.replace(/^#!?/, '');
// always
if (raw.charAt(0) !== '/') {
raw = '/' + raw;
}
var formattedPath = self.formatPath(raw);
if (formattedPath !== path) {

@@ -49,4 +54,4 @@ location.replace(formattedPath);

key: 'go',
value: function go(path, replace) {
path = this.formatPath(path);
value: function go(path, replace, append) {
path = this.formatPath(path, append);
if (replace) {

@@ -60,10 +65,6 @@ location.replace(path);

key: 'formatPath',
value: function formatPath(path, expectAbsolute) {
path = path.replace(/^#!?/, '');
value: function formatPath(path, append) {
var isAbsoloute = path.charAt(0) === '/';
if (expectAbsolute && !isAbsoloute) {
path = '/' + path;
}
var prefix = '#' + (this.hashbang ? '!' : '');
return isAbsoloute || expectAbsolute ? prefix + path : prefix + (0, _util.resolvePath)(location.hash.replace(/^#!?/, ''), path);
return isAbsoloute ? prefix + path : prefix + (0, _util.resolvePath)(location.hash.replace(/^#!?/, ''), path, append);
}

@@ -70,0 +71,0 @@ }]);

@@ -61,5 +61,4 @@ 'use strict';

key: 'go',
value: function go(path, replace) {
var root = this.root;
var url = this.formatPath(path, root);
value: function go(path, replace, append) {
var url = this.formatPath(path, append);
if (replace) {

@@ -89,6 +88,6 @@ history.replaceState({}, '', url);

key: 'formatPath',
value: function formatPath(path) {
value: function formatPath(path, append) {
return path.charAt(0) === '/'
// absolute path
? this.root ? this.root + '/' + path.replace(/^\//, '') : path : (0, _util.resolvePath)(this.base || location.pathname, path);
? this.root ? this.root + '/' + path.replace(/^\//, '') : path : (0, _util.resolvePath)(this.base || location.pathname, path, append);
}

@@ -95,0 +94,0 @@ }]);

'use strict';
var _createClass = require('babel-runtime/helpers/create-class')['default'];
var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];

@@ -15,2 +17,6 @@

var _mixin = require('./mixin');
var _mixin2 = _interopRequireDefault(_mixin);
var _routeRecognizer = require('route-recognizer');

@@ -20,9 +26,9 @@

var _routerApi = require('./router/api');
var _route = require('./route');
var _routerApi2 = _interopRequireDefault(_routerApi);
var _route2 = _interopRequireDefault(_route);
var _routerInternal = require('./router/internal');
var _transition = require('./transition');
var _routerInternal2 = _interopRequireDefault(_routerInternal);
var _transition2 = _interopRequireDefault(_transition);

@@ -37,6 +43,2 @@ var _directivesView = require('./directives/view');

var _override = require('./override');
var _override2 = _interopRequireDefault(_override);
var _historyAbstract = require('./history/abstract');

@@ -60,2 +62,5 @@

// late bind during install
var Vue = undefined;
/**

@@ -67,81 +72,560 @@ * Router constructor

var Router = function Router() {
var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
var Router = (function () {
function Router() {
var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
var _ref$hashbang = _ref.hashbang;
var hashbang = _ref$hashbang === undefined ? true : _ref$hashbang;
var _ref$abstract = _ref.abstract;
var abstract = _ref$abstract === undefined ? false : _ref$abstract;
var _ref$history = _ref.history;
var history = _ref$history === undefined ? false : _ref$history;
var _ref$saveScrollPosition = _ref.saveScrollPosition;
var saveScrollPosition = _ref$saveScrollPosition === undefined ? false : _ref$saveScrollPosition;
var _ref$transitionOnLoad = _ref.transitionOnLoad;
var transitionOnLoad = _ref$transitionOnLoad === undefined ? false : _ref$transitionOnLoad;
var _ref$suppressTransitionError = _ref.suppressTransitionError;
var suppressTransitionError = _ref$suppressTransitionError === undefined ? false : _ref$suppressTransitionError;
var _ref$root = _ref.root;
var root = _ref$root === undefined ? null : _ref$root;
var _ref$linkActiveClass = _ref.linkActiveClass;
var linkActiveClass = _ref$linkActiveClass === undefined ? 'v-link-active' : _ref$linkActiveClass;
var _ref$hashbang = _ref.hashbang;
var hashbang = _ref$hashbang === undefined ? true : _ref$hashbang;
var _ref$abstract = _ref.abstract;
var abstract = _ref$abstract === undefined ? false : _ref$abstract;
var _ref$history = _ref.history;
var history = _ref$history === undefined ? false : _ref$history;
var _ref$saveScrollPosition = _ref.saveScrollPosition;
var saveScrollPosition = _ref$saveScrollPosition === undefined ? false : _ref$saveScrollPosition;
var _ref$transitionOnLoad = _ref.transitionOnLoad;
var transitionOnLoad = _ref$transitionOnLoad === undefined ? false : _ref$transitionOnLoad;
var _ref$suppressTransitionError = _ref.suppressTransitionError;
var suppressTransitionError = _ref$suppressTransitionError === undefined ? false : _ref$suppressTransitionError;
var _ref$root = _ref.root;
var root = _ref$root === undefined ? null : _ref$root;
var _ref$linkActiveClass = _ref.linkActiveClass;
var linkActiveClass = _ref$linkActiveClass === undefined ? 'v-link-active' : _ref$linkActiveClass;
_classCallCheck(this, Router);
_classCallCheck(this, Router);
/* istanbul ignore if */
if (!Router.installed) {
throw new Error('Please install the Router with Vue.use() before ' + 'creating an instance.');
/* istanbul ignore if */
if (!Router.installed) {
throw new Error('Please install the Router with Vue.use() before ' + 'creating an instance.');
}
// Vue instances
this.app = null;
this._views = [];
this._children = [];
// route recognizer
this._recognizer = new _routeRecognizer2['default']();
this._guardRecognizer = new _routeRecognizer2['default']();
// state
this._started = false;
this._startCb = null;
this._currentRoute = {};
this._currentTransition = null;
this._previousTransition = null;
this._notFoundHandler = null;
this._beforeEachHooks = [];
this._afterEachHooks = [];
// feature detection
this._hasPushState = typeof window !== 'undefined' && window.history && window.history.pushState;
// trigger transition on initial render?
this._rendered = false;
this._transitionOnLoad = transitionOnLoad;
// history mode
this._abstract = abstract;
this._hashbang = hashbang;
this._history = this._hasPushState && history;
// other options
this._saveScrollPosition = saveScrollPosition;
this._linkActiveClass = linkActiveClass;
this._suppress = suppressTransitionError;
// create history object
var inBrowser = Vue.util.inBrowser;
this.mode = !inBrowser || this._abstract ? 'abstract' : this._history ? 'html5' : 'hash';
var History = historyBackends[this.mode];
var self = this;
this.history = new History({
root: root,
hashbang: this._hashbang,
onChange: function onChange(path, state, anchor) {
self._match(path, state, anchor);
}
});
}
// Vue instances
this.app = null;
this._views = [];
this._children = [];
/**
* Allow directly passing components to a route
* definition.
*
* @param {String} path
* @param {Object} handler
*/
// route recognizer
this._recognizer = new _routeRecognizer2['default']();
this._guardRecognizer = new _routeRecognizer2['default']();
// API ===================================================
// state
this._started = false;
this._currentRoute = {};
this._currentTransition = null;
this._previousTransition = null;
this._notFoundHandler = null;
this._beforeEachHooks = [];
this._afterEachHooks = [];
/**
* Register a map of top-level paths.
*
* @param {Object} map
*/
// feature detection
this._hasPushState = typeof window !== 'undefined' && window.history && window.history.pushState;
_createClass(Router, [{
key: 'map',
value: function map(_map) {
for (var route in _map) {
this.on(route, _map[route]);
}
}
// trigger transition on initial render?
this._rendered = false;
this._transitionOnLoad = transitionOnLoad;
/**
* Register a single root-level path
*
* @param {String} rootPath
* @param {Object} handler
* - {String} component
* - {Object} [subRoutes]
* - {Boolean} [forceRefresh]
* - {Function} [before]
* - {Function} [after]
*/
// history mode
this._abstract = abstract;
this._hashbang = hashbang;
this._history = this._hasPushState && history;
}, {
key: 'on',
value: function on(rootPath, handler) {
if (rootPath === '*') {
this._notFound(handler);
} else {
this._addRoute(rootPath, handler, []);
}
}
// other options
this._saveScrollPosition = saveScrollPosition;
this._linkActiveClass = linkActiveClass;
this._suppress = suppressTransitionError;
/**
* Set redirects.
*
* @param {Object} map
*/
// create history object
var inBrowser = _util2['default'].Vue.util.inBrowser;
this.mode = !inBrowser || this._abstract ? 'abstract' : this._history ? 'html5' : 'hash';
}, {
key: 'redirect',
value: function redirect(map) {
for (var path in map) {
this._addRedirect(path, map[path]);
}
}
var History = historyBackends[this.mode];
var self = this;
this.history = new History({
root: root,
hashbang: this._hashbang,
onChange: function onChange(path, state, anchor) {
self._match(path, state, anchor);
/**
* Set aliases.
*
* @param {Object} map
*/
}, {
key: 'alias',
value: function alias(map) {
for (var path in map) {
this._addAlias(path, map[path]);
}
}
});
};
exports['default'] = Router;
/**
* Set global before hook.
*
* @param {Function} fn
*/
}, {
key: 'beforeEach',
value: function beforeEach(fn) {
this._beforeEachHooks.push(fn);
}
/**
* Set global after hook.
*
* @param {Function} fn
*/
}, {
key: 'afterEach',
value: function afterEach(fn) {
this._afterEachHooks.push(fn);
}
/**
* Navigate to a given path.
* The path can be an object describing a named path in
* the format of { name: '...', params: {}, query: {}}
* The path is assumed to be already decoded, and will
* be resolved against root (if provided)
*
* @param {String|Object} path
* @param {Boolean} [replace]
*/
}, {
key: 'go',
value: function go(path) {
var replace = false;
var append = false;
if (Vue.util.isObject(path)) {
replace = path.replace;
append = path.append;
}
path = this._stringifyPath(path);
this.history.go(path, replace, append);
}
/**
* Short hand for replacing current path
*
* @param {String} path
*/
}, {
key: 'replace',
value: function replace(path) {
this.go({ path: path, replace: true });
}
/**
* Start the router.
*
* @param {VueConstructor} App
* @param {String|Element} container
* @param {Function} [cb]
*/
}, {
key: 'start',
value: function start(App, container, cb) {
/* istanbul ignore if */
if (this._started) {
(0, _util.warn)('already started.');
return;
}
this._started = true;
this._startCb = cb;
if (!this.app) {
/* istanbul ignore if */
if (!App || !container) {
throw new Error('Must start vue-router with a component and a ' + 'root container.');
}
this._appContainer = container;
this._appConstructor = typeof App === 'function' ? App : Vue.extend(App);
}
this.history.start();
}
/**
* Stop listening to route changes.
*/
}, {
key: 'stop',
value: function stop() {
this.history.stop();
this._started = false;
}
// Internal methods ======================================
/**
* Add a route containing a list of segments to the internal
* route recognizer. Will be called recursively to add all
* possible sub-routes.
*
* @param {String} path
* @param {Object} handler
* @param {Array} segments
*/
}, {
key: '_addRoute',
value: function _addRoute(path, handler, segments) {
guardComponent(path, handler);
handler.path = path;
handler.fullPath = (segments.reduce(function (path, segment) {
return path + segment.path;
}, '') + path).replace('//', '/');
segments.push({
path: path,
handler: handler
});
this._recognizer.add(segments, {
as: handler.name
});
// add sub routes
if (handler.subRoutes) {
for (var subPath in handler.subRoutes) {
// recursively walk all sub routes
this._addRoute(subPath, handler.subRoutes[subPath],
// pass a copy in recursion to avoid mutating
// across branches
segments.slice());
}
}
}
/**
* Set the notFound route handler.
*
* @param {Object} handler
*/
}, {
key: '_notFound',
value: function _notFound(handler) {
guardComponent('*', handler);
this._notFoundHandler = [{ handler: handler }];
}
/**
* Add a redirect record.
*
* @param {String} path
* @param {String} redirectPath
*/
}, {
key: '_addRedirect',
value: function _addRedirect(path, redirectPath) {
this._addGuard(path, redirectPath, this.replace);
}
/**
* Add an alias record.
*
* @param {String} path
* @param {String} aliasPath
*/
}, {
key: '_addAlias',
value: function _addAlias(path, aliasPath) {
this._addGuard(path, aliasPath, this._match);
}
/**
* Add a path guard.
*
* @param {String} path
* @param {String} mappedPath
* @param {Function} handler
*/
}, {
key: '_addGuard',
value: function _addGuard(path, mappedPath, _handler) {
var _this = this;
this._guardRecognizer.add([{
path: path,
handler: function handler(match, query) {
var realPath = (0, _util.mapParams)(mappedPath, match.params, query);
_handler.call(_this, realPath);
}
}]);
}
/**
* Check if a path matches any redirect records.
*
* @param {String} path
* @return {Boolean} - if true, will skip normal match.
*/
}, {
key: '_checkGuard',
value: function _checkGuard(path) {
var matched = this._guardRecognizer.recognize(path);
if (matched) {
matched[0].handler(matched[0], matched.queryParams);
return true;
}
}
/**
* Match a URL path and set the route context on vm,
* triggering view updates.
*
* @param {String} path
* @param {Object} [state]
* @param {String} [anchor]
*/
}, {
key: '_match',
value: function _match(path, state, anchor) {
var _this2 = this;
if (this._checkGuard(path)) {
return;
}
var prevRoute = this._currentRoute;
var prevTransition = this._currentTransition;
// do nothing if going to the same route.
// the route only changes when a transition successfully
// reaches activation; we don't need to do anything
// if an ongoing transition is aborted during validation
// phase.
if (prevTransition && path === prevRoute.path) {
return;
}
// construct new route and transition context
var route = new _route2['default'](path, this);
var transition = new _transition2['default'](this, route, prevRoute);
this._prevTransition = prevTransition;
this._currentTransition = transition;
if (!this.app) {
// initial render
this.app = new this._appConstructor({
el: this._appContainer,
_meta: {
$route: route
}
});
}
// check global before hook
var beforeHooks = this._beforeEachHooks;
var startTransition = function startTransition() {
transition.start(function () {
_this2._postTransition(route, state, anchor);
});
};
if (beforeHooks.length) {
transition.runQueue(beforeHooks, function (hook, _, next) {
if (transition === _this2._currentTransition) {
transition.callHook(hook, null, next, true);
}
}, startTransition);
} else {
startTransition();
}
if (!this._rendered && this._startCb) {
this._startCb.call(null);
}
// HACK:
// set rendered to true after the transition start, so
// that components that are acitvated synchronously know
// whether it is the initial render.
this._rendered = true;
}
/**
* Set current to the new transition.
* This is called by the transition object when the
* validation of a route has succeeded.
*
* @param {Transition} transition
*/
}, {
key: '_onTransitionValidated',
value: function _onTransitionValidated(transition) {
// now that this one is validated, we can abort
// the previous transition.
var prevTransition = this._prevTransition;
if (prevTransition) {
prevTransition.aborted = true;
}
// set current route
var route = this._currentRoute = transition.to;
// update route context for all children
if (this.app.$route !== route) {
this.app.$route = route;
this._children.forEach(function (child) {
child.$route = route;
});
}
// call global after hook
if (this._afterEachHooks.length) {
this._afterEachHooks.forEach(function (hook) {
return hook.call(null, {
to: transition.to,
from: transition.from
});
});
}
this._currentTransition.done = true;
}
/**
* Handle stuff after the transition.
*
* @param {Route} route
* @param {Object} [state]
* @param {String} [anchor]
*/
}, {
key: '_postTransition',
value: function _postTransition(route, state, anchor) {
// handle scroll positions
// saved scroll positions take priority
// then we check if the path has an anchor
var pos = state && state.pos;
if (pos && this._saveScrollPosition) {
Vue.nextTick(function () {
window.scrollTo(pos.x, pos.y);
});
} else if (anchor) {
Vue.nextTick(function () {
var el = document.getElementById(anchor.slice(1));
if (el) {
window.scrollTo(window.scrollX, el.offsetTop);
}
});
}
}
/**
* Normalize named route object / string paths into
* a string.
*
* @param {Object|String|Number} path
* @return {String}
*/
}, {
key: '_stringifyPath',
value: function _stringifyPath(path) {
if (typeof path === 'object') {
if (path.name) {
var params = path.params || {};
if (path.query) {
params.queryParams = path.query;
}
return this._recognizer.generate(path.name, params);
} else if (path.path) {
return path.path;
} else {
return '';
}
} else {
return path + '';
}
}
}]);
return Router;
})();
function guardComponent(path, handler) {
var comp = handler.component;
if (Vue.util.isPlainObject(comp)) {
comp = handler.component = Vue.extend(comp);
}
/* istanbul ignore if */
if (typeof comp !== 'function') {
handler.component = null;
(0, _util.warn)('invalid component for route "' + path + '".');
}
}
/* Installation */
Router.installed = false;

@@ -154,3 +638,3 @@

Router.install = function (Vue) {
Router.install = function (externalVue) {
/* istanbul ignore if */

@@ -161,7 +645,6 @@ if (Router.installed) {

}
(0, _routerApi2['default'])(Vue, Router);
(0, _routerInternal2['default'])(Vue, Router);
Vue = externalVue;
(0, _mixin2['default'])(Vue);
(0, _directivesView2['default'])(Vue);
(0, _directivesLink2['default'])(Vue);
(0, _override2['default'])(Vue);
_util2['default'].Vue = Vue;

@@ -182,2 +665,4 @@ // 1.0 only: enable route mixins

}
exports['default'] = Router;
module.exports = exports['default'];

@@ -1,43 +0,22 @@

// overriding Vue's $addChild method, so that every child
'use strict';
"use strict";
Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = function (Vue) {
var addChild = Vue.prototype.$addChild;
Vue.prototype.$addChild = function (opts, Ctor) {
var route = this.$route;
var router = route && route.router;
// inject meta
if (router) {
opts = opts || {};
var meta = opts._meta = opts._meta || {};
meta.$route = route;
if (opts._isRouterView) {
meta.$loadingRouteData = meta.$loadingRouteData || false;
exports["default"] = function (Vue) {
Vue.mixin({
created: function created() {
if (this.$route) {
this.$route.router._children.push(this);
}
},
beforeDestroy: function beforeDestroy() {
if (this.$route) {
this.$route.router._children.$remove(this);
}
}
var child = addChild.call(this, opts, Ctor);
if (router) {
// keep track of all children created so we can
// update the routes
router._children.push(child);
child.$on('hook:beforeDestroy', function () {
router._children.$remove(child);
});
}
return child;
};
});
};
module.exports = exports['default'];
// instance inherits the route data
module.exports = exports["default"];

@@ -5,2 +5,4 @@ "use strict";

var _Object$freeze = require("babel-runtime/core-js/object/freeze")["default"];
Object.defineProperty(exports, "__esModule", {

@@ -48,3 +50,5 @@ value: true

// for internal use
this._matched = matched || router._notFoundHandler;
this.matched = matched || router._notFoundHandler;
// Important: freeze self to prevent observation
_Object$freeze(this);
};

@@ -51,0 +55,0 @@

@@ -44,3 +44,3 @@ 'use strict';

// check the default handler of the deepest match
var matched = to._matched ? Array.prototype.slice.call(to._matched) : [];
var matched = to.matched ? Array.prototype.slice.call(to.matched) : [];

@@ -47,0 +47,0 @@ // the activate queue is an array of route handlers

@@ -29,11 +29,11 @@ 'use strict';

* @param {String} msg
* @param {Error} [err]
*/
function warn(msg, err) {
function warn(msg) {
/* istanbul ignore next */
if (window.console) {
console.warn('[vue-router] ' + msg);
if (err) {
console.warn(err.stack);
/* istanbul ignore if */
if (!_exports.Vue || _exports.Vue.config.debug) {
console.warn(new Error('warning stack trace:').stack);
}

@@ -48,6 +48,7 @@ }

* @param {String} relative
* @param {Boolean} append
* @return {String}
*/
function resolvePath(base, relative) {
function resolvePath(base, relative, append) {
var query = base.match(/(\?.*)$/);

@@ -63,6 +64,10 @@ if (query) {

var stack = base.split('/');
// remove trailing segment
stack.pop();
// remove trailing segment if:
// - not appending
// - appending to trailing slash (last segment is empty)
if (!append || !stack[stack.length - 1]) {
stack.pop();
}
// resolve relative path
var segments = relative.split('/');
var segments = relative.replace(/^\//, '').split('/');
for (var i = 0; i < segments.length; i++) {

@@ -149,5 +154,11 @@ var segment = segments[i];

function mapParams(path, params, query) {
for (var key in params) {
path = replaceParam(path, params, key);
}
if (params === undefined) params = {};
path = path.replace(/:([^\/]+)/g, function (_, key) {
var val = params[key];
if (!val) {
warn('param "' + key + '" not found when generating ' + 'path for "' + path + '" with params ' + JSON.stringify(params));
}
return val || '';
});
if (query) {

@@ -157,20 +168,2 @@ path += genQuery(query);

return path;
}
/**
* Replace a param segment with real value in a matched
* path.
*
* @param {String} path
* @param {Object} params
* @param {String} key
* @return {String}
*/
function replaceParam(path, params, key) {
var regex = new RegExp(':' + key + '(\\/|$)');
var value = params[key];
return path.replace(regex, function (m) {
return m.charAt(m.length - 1) === '/' ? value + '/' : value;
});
}
{
"name": "vue-router",
"version": "0.6.2",
"version": "0.7.0",
"description": "A router for Vue.js",
"main": "lib/index.js",
"scripts": {
"dev": "npm run serve & npm run serve-test",
"dev": "npm run serve & npm run serve-test & webpack --watch --config build/webpack.dev.config.js",
"lint": "eslint src build test/e2e test/unit/specs",

@@ -53,7 +53,7 @@ "unit": "./node_modules/karma/bin/karma start build/karma.config.js",

"karma-webpack": "^1.7.0",
"nightwatch": "^0.7.9",
"nightwatch": "^0.8.4",
"phantomjs": "^1.9.18",
"selenium-server": "2.47.1",
"style-loader": "^0.12.3",
"vue": "yyx990803/vue#dev",
"vue": "yyx990803/vue#1.0.0-beta",
"vue-loader": "^3.0.3",

@@ -66,3 +66,8 @@ "webpack": "^1.11.0",

"route-recognizer": "0.1.9"
},
"jspm": {
"main": "src/index.js",
"registry": "npm",
"format": "esm"
}
}

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc