vue-router
Advanced tools
Comparing version 0.6.2 to 0.7.0
/*! | ||
* 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 @@ }]); |
635
lib/index.js
'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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
332064
31
6128