vuejs 1.0.31 → 1.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +1 -1
 - data/app/helpers/syntax_helper.rb +7 -0
 - data/lib/vuejs.rb +28 -1
 - data/lib/vuejs/version.rb +1 -1
 - data/vendor/assets/javascripts/vue-resource.js +1 -1
 - data/vendor/assets/javascripts/vue-router2.js +558 -333
 - data/vendor/assets/javascripts/vue-validator.js +1811 -11
 - data/vendor/assets/javascripts/vue2.js +788 -578
 - metadata +4 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: fe041e1a6b68a6696d909a9fca031365eb253e3e
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 6931c0cc73878f29662cbc1c0d4cafe5352740b2
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 6a561d056defcc05587efcbd7584745ad2e30be5b18faf38ac2b9ccc1ae765457f14f22b6affc8a78c8cd8b7b15a68f890517287dcbfa7376d7b3b84c202ed32
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 5433cbe1231f2add28c136fa2bb3a3f449250c3004b1b42cc8e47f199c22e53a6eddad0e1029771b90e08a9f4d3a28433b3c56018e3a8be3c2dc29529c2aa01d
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -4,7 +4,7 @@ 
     | 
|
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            gem `vuejs` ships with the 1.x & 2.x latest [Vue.js + vue-router + vue-resource + vue-validator + vuex](http://vuejs.org/) and integrate with Rails' asset pipeline. Vue.js is created by Evan You and the vuejs team.
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
            The current 2.x version is `Vue.js` (v2.1. 
     | 
| 
      
 7 
     | 
    
         
            +
            The current 2.x version is `Vue.js` (v2.1.4) + `vue-router` (v2.1.1) + `vue-validator` (v2.1.3) + `vuex` (v2.0.0).
         
     | 
| 
       8 
8 
     | 
    
         
             
            > Note that Vue 2.x is not compatible with 1.x. vue-router 2.0 only works with Vue 2.x`
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
            The current 1.x version is `Vue.js` (v1.0.28) + `vue-router` (v0.7.13) + `vue-resource` (v1.0.3)
         
     | 
    
        data/lib/vuejs.rb
    CHANGED
    
    | 
         @@ -1,6 +1,33 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require "vuejs/version"
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "thor"
         
     | 
| 
       2 
3 
     | 
    
         | 
| 
       3 
4 
     | 
    
         
             
            module Vuejs
         
     | 
| 
       4 
     | 
    
         
            -
              class Engine <  
     | 
| 
      
 5 
     | 
    
         
            +
              class Engine < Rails::Engine
         
     | 
| 
       5 
6 
     | 
    
         
             
              end
         
     | 
| 
      
 7 
     | 
    
         
            +
              
         
     | 
| 
      
 8 
     | 
    
         
            +
              class Base < Thor
         
     | 
| 
      
 9 
     | 
    
         
            +
                check_unknown_options!
         
     | 
| 
      
 10 
     | 
    
         
            +
                package_name 'vuejs'
         
     | 
| 
      
 11 
     | 
    
         
            +
                default_task :info
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                desc :info, ""
         
     | 
| 
      
 14 
     | 
    
         
            +
                def info
         
     | 
| 
      
 15 
     | 
    
         
            +
                  puts "version: "
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              # class Base < Thor
         
     | 
| 
      
 24 
     | 
    
         
            +
              #   check_unknown_options!
         
     | 
| 
      
 25 
     | 
    
         
            +
              #   package_name 'vuejs'
         
     | 
| 
      
 26 
     | 
    
         
            +
              #   default_task :info
         
     | 
| 
      
 27 
     | 
    
         
            +
              #
         
     | 
| 
      
 28 
     | 
    
         
            +
              #   desc :info
         
     | 
| 
      
 29 
     | 
    
         
            +
              #   def info
         
     | 
| 
      
 30 
     | 
    
         
            +
              #     puts "version: "
         
     | 
| 
      
 31 
     | 
    
         
            +
              #   end
         
     | 
| 
      
 32 
     | 
    
         
            +
              # end
         
     | 
| 
       6 
33 
     | 
    
         
             
            end
         
     | 
    
        data/lib/vuejs/version.rb
    CHANGED
    
    
| 
         @@ -1,13 +1,9 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            /**
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
              typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
         
     | 
| 
       8 
     | 
    
         
            -
              typeof define === 'function' && define.amd ? define(factory) :
         
     | 
| 
       9 
     | 
    
         
            -
              (global.VueRouter = factory());
         
     | 
| 
       10 
     | 
    
         
            -
            }(this, (function () { 'use strict';
         
     | 
| 
      
 2 
     | 
    
         
            +
              * vue-router v2.1.1
         
     | 
| 
      
 3 
     | 
    
         
            +
              * (c) 2016 Evan You
         
     | 
| 
      
 4 
     | 
    
         
            +
              * @license MIT
         
     | 
| 
      
 5 
     | 
    
         
            +
              */
         
     | 
| 
      
 6 
     | 
    
         
            +
            'use strict';
         
     | 
| 
       11 
7 
     | 
    
         | 
| 
       12 
8 
     | 
    
         
             
            var View = {
         
     | 
| 
       13 
9 
     | 
    
         
             
              name: 'router-view',
         
     | 
| 
         @@ -47,13 +43,23 @@ var View = { 
     | 
|
| 
       47 
43 
     | 
    
         
             
                  return h()
         
     | 
| 
       48 
44 
     | 
    
         
             
                }
         
     | 
| 
       49 
45 
     | 
    
         | 
| 
      
 46 
     | 
    
         
            +
                var name = props.name
         
     | 
| 
       50 
47 
     | 
    
         
             
                var component = inactive
         
     | 
| 
       51 
     | 
    
         
            -
                  ? cache[ 
     | 
| 
       52 
     | 
    
         
            -
                  : (cache[ 
     | 
| 
      
 48 
     | 
    
         
            +
                  ? cache[name]
         
     | 
| 
      
 49 
     | 
    
         
            +
                  : (cache[name] = matched.components[name])
         
     | 
| 
       53 
50 
     | 
    
         | 
| 
       54 
51 
     | 
    
         
             
                if (!inactive) {
         
     | 
| 
       55 
     | 
    
         
            -
                   
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
      
 52 
     | 
    
         
            +
                  var hooks = data.hook || (data.hook = {})
         
     | 
| 
      
 53 
     | 
    
         
            +
                  hooks.init = function (vnode) {
         
     | 
| 
      
 54 
     | 
    
         
            +
                    matched.instances[name] = vnode.child
         
     | 
| 
      
 55 
     | 
    
         
            +
                  }
         
     | 
| 
      
 56 
     | 
    
         
            +
                  hooks.prepatch = function (oldVnode, vnode) {
         
     | 
| 
      
 57 
     | 
    
         
            +
                    matched.instances[name] = vnode.child
         
     | 
| 
      
 58 
     | 
    
         
            +
                  }
         
     | 
| 
      
 59 
     | 
    
         
            +
                  hooks.destroy = function (vnode) {
         
     | 
| 
      
 60 
     | 
    
         
            +
                    if (matched.instances[name] === vnode.child) {
         
     | 
| 
      
 61 
     | 
    
         
            +
                      matched.instances[name] = undefined
         
     | 
| 
      
 62 
     | 
    
         
            +
                    }
         
     | 
| 
       57 
63 
     | 
    
         
             
                  }
         
     | 
| 
       58 
64 
     | 
    
         
             
                }
         
     | 
| 
       59 
65 
     | 
    
         | 
| 
         @@ -63,78 +69,6 @@ var View = { 
     | 
|
| 
       63 
69 
     | 
    
         | 
| 
       64 
70 
     | 
    
         
             
            /*  */
         
     | 
| 
       65 
71 
     | 
    
         | 
| 
       66 
     | 
    
         
            -
            function resolvePath (
         
     | 
| 
       67 
     | 
    
         
            -
              relative,
         
     | 
| 
       68 
     | 
    
         
            -
              base,
         
     | 
| 
       69 
     | 
    
         
            -
              append
         
     | 
| 
       70 
     | 
    
         
            -
            ) {
         
     | 
| 
       71 
     | 
    
         
            -
              if (relative.charAt(0) === '/') {
         
     | 
| 
       72 
     | 
    
         
            -
                return relative
         
     | 
| 
       73 
     | 
    
         
            -
              }
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
              if (relative.charAt(0) === '?' || relative.charAt(0) === '#') {
         
     | 
| 
       76 
     | 
    
         
            -
                return base + relative
         
     | 
| 
       77 
     | 
    
         
            -
              }
         
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
              var stack = base.split('/')
         
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
              // remove trailing segment if:
         
     | 
| 
       82 
     | 
    
         
            -
              // - not appending
         
     | 
| 
       83 
     | 
    
         
            -
              // - appending to trailing slash (last segment is empty)
         
     | 
| 
       84 
     | 
    
         
            -
              if (!append || !stack[stack.length - 1]) {
         
     | 
| 
       85 
     | 
    
         
            -
                stack.pop()
         
     | 
| 
       86 
     | 
    
         
            -
              }
         
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
              // resolve relative path
         
     | 
| 
       89 
     | 
    
         
            -
              var segments = relative.replace(/^\//, '').split('/')
         
     | 
| 
       90 
     | 
    
         
            -
              for (var i = 0; i < segments.length; i++) {
         
     | 
| 
       91 
     | 
    
         
            -
                var segment = segments[i]
         
     | 
| 
       92 
     | 
    
         
            -
                if (segment === '.') {
         
     | 
| 
       93 
     | 
    
         
            -
                  continue
         
     | 
| 
       94 
     | 
    
         
            -
                } else if (segment === '..') {
         
     | 
| 
       95 
     | 
    
         
            -
                  stack.pop()
         
     | 
| 
       96 
     | 
    
         
            -
                } else {
         
     | 
| 
       97 
     | 
    
         
            -
                  stack.push(segment)
         
     | 
| 
       98 
     | 
    
         
            -
                }
         
     | 
| 
       99 
     | 
    
         
            -
              }
         
     | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
       101 
     | 
    
         
            -
              // ensure leading slash
         
     | 
| 
       102 
     | 
    
         
            -
              if (stack[0] !== '') {
         
     | 
| 
       103 
     | 
    
         
            -
                stack.unshift('')
         
     | 
| 
       104 
     | 
    
         
            -
              }
         
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
              return stack.join('/')
         
     | 
| 
       107 
     | 
    
         
            -
            }
         
     | 
| 
       108 
     | 
    
         
            -
             
     | 
| 
       109 
     | 
    
         
            -
            function parsePath (path) {
         
     | 
| 
       110 
     | 
    
         
            -
              var hash = ''
         
     | 
| 
       111 
     | 
    
         
            -
              var query = ''
         
     | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
       113 
     | 
    
         
            -
              var hashIndex = path.indexOf('#')
         
     | 
| 
       114 
     | 
    
         
            -
              if (hashIndex >= 0) {
         
     | 
| 
       115 
     | 
    
         
            -
                hash = path.slice(hashIndex)
         
     | 
| 
       116 
     | 
    
         
            -
                path = path.slice(0, hashIndex)
         
     | 
| 
       117 
     | 
    
         
            -
              }
         
     | 
| 
       118 
     | 
    
         
            -
             
     | 
| 
       119 
     | 
    
         
            -
              var queryIndex = path.indexOf('?')
         
     | 
| 
       120 
     | 
    
         
            -
              if (queryIndex >= 0) {
         
     | 
| 
       121 
     | 
    
         
            -
                query = path.slice(queryIndex + 1)
         
     | 
| 
       122 
     | 
    
         
            -
                path = path.slice(0, queryIndex)
         
     | 
| 
       123 
     | 
    
         
            -
              }
         
     | 
| 
       124 
     | 
    
         
            -
             
     | 
| 
       125 
     | 
    
         
            -
              return {
         
     | 
| 
       126 
     | 
    
         
            -
                path: path,
         
     | 
| 
       127 
     | 
    
         
            -
                query: query,
         
     | 
| 
       128 
     | 
    
         
            -
                hash: hash
         
     | 
| 
       129 
     | 
    
         
            -
              }
         
     | 
| 
       130 
     | 
    
         
            -
            }
         
     | 
| 
       131 
     | 
    
         
            -
             
     | 
| 
       132 
     | 
    
         
            -
            function cleanPath (path) {
         
     | 
| 
       133 
     | 
    
         
            -
              return path.replace(/\/\//g, '/')
         
     | 
| 
       134 
     | 
    
         
            -
            }
         
     | 
| 
       135 
     | 
    
         
            -
             
     | 
| 
       136 
     | 
    
         
            -
            /*  */
         
     | 
| 
       137 
     | 
    
         
            -
             
     | 
| 
       138 
72 
     | 
    
         
             
            function assert (condition, message) {
         
     | 
| 
       139 
73 
     | 
    
         
             
              if (!condition) {
         
     | 
| 
       140 
74 
     | 
    
         
             
                throw new Error(("[vue-router] " + message))
         
     | 
| 
         @@ -163,7 +97,7 @@ function resolveQuery ( 
     | 
|
| 
       163 
97 
     | 
    
         
             
                try {
         
     | 
| 
       164 
98 
     | 
    
         
             
                  parsedQuery = parseQuery(query)
         
     | 
| 
       165 
99 
     | 
    
         
             
                } catch (e) {
         
     | 
| 
       166 
     | 
    
         
            -
                  warn(false, e.message)
         
     | 
| 
      
 100 
     | 
    
         
            +
                  process.env.NODE_ENV !== 'production' && warn(false, e.message)
         
     | 
| 
       167 
101 
     | 
    
         
             
                  parsedQuery = {}
         
     | 
| 
       168 
102 
     | 
    
         
             
                }
         
     | 
| 
       169 
103 
     | 
    
         
             
                for (var key in extraQuery) {
         
     | 
| 
         @@ -176,7 +110,7 @@ function resolveQuery ( 
     | 
|
| 
       176 
110 
     | 
    
         
             
            }
         
     | 
| 
       177 
111 
     | 
    
         | 
| 
       178 
112 
     | 
    
         
             
            function parseQuery (query) {
         
     | 
| 
       179 
     | 
    
         
            -
              var res =  
     | 
| 
      
 113 
     | 
    
         
            +
              var res = {}
         
     | 
| 
       180 
114 
     | 
    
         | 
| 
       181 
115 
     | 
    
         
             
              query = query.trim().replace(/^(\?|#|&)/, '')
         
     | 
| 
       182 
116 
     | 
    
         | 
| 
         @@ -204,7 +138,7 @@ function parseQuery (query) { 
     | 
|
| 
       204 
138 
     | 
    
         
             
            }
         
     | 
| 
       205 
139 
     | 
    
         | 
| 
       206 
140 
     | 
    
         
             
            function stringifyQuery (obj) {
         
     | 
| 
       207 
     | 
    
         
            -
              var res = obj ? Object.keys(obj). 
     | 
| 
      
 141 
     | 
    
         
            +
              var res = obj ? Object.keys(obj).map(function (key) {
         
     | 
| 
       208 
142 
     | 
    
         
             
                var val = obj[key]
         
     | 
| 
       209 
143 
     | 
    
         | 
| 
       210 
144 
     | 
    
         
             
                if (val === undefined) {
         
     | 
| 
         @@ -318,7 +252,7 @@ function isObjectEqual (a, b) { 
     | 
|
| 
       318 
252 
     | 
    
         | 
| 
       319 
253 
     | 
    
         
             
            function isIncludedRoute (current, target) {
         
     | 
| 
       320 
254 
     | 
    
         
             
              return (
         
     | 
| 
       321 
     | 
    
         
            -
                current.path.indexOf(target.path) === 0 &&
         
     | 
| 
      
 255 
     | 
    
         
            +
                current.path.indexOf(target.path.replace(/\/$/, '')) === 0 &&
         
     | 
| 
       322 
256 
     | 
    
         
             
                (!target.hash || current.hash === target.hash) &&
         
     | 
| 
       323 
257 
     | 
    
         
             
                queryIncludes(current.query, target.query)
         
     | 
| 
       324 
258 
     | 
    
         
             
              )
         
     | 
| 
         @@ -335,37 +269,6 @@ function queryIncludes (current, target) { 
     | 
|
| 
       335 
269 
     | 
    
         | 
| 
       336 
270 
     | 
    
         
             
            /*  */
         
     | 
| 
       337 
271 
     | 
    
         | 
| 
       338 
     | 
    
         
            -
            function normalizeLocation (
         
     | 
| 
       339 
     | 
    
         
            -
              raw,
         
     | 
| 
       340 
     | 
    
         
            -
              current,
         
     | 
| 
       341 
     | 
    
         
            -
              append
         
     | 
| 
       342 
     | 
    
         
            -
            ) {
         
     | 
| 
       343 
     | 
    
         
            -
              var next = typeof raw === 'string' ? { path: raw } : raw
         
     | 
| 
       344 
     | 
    
         
            -
              if (next.name || next._normalized) {
         
     | 
| 
       345 
     | 
    
         
            -
                return next
         
     | 
| 
       346 
     | 
    
         
            -
              }
         
     | 
| 
       347 
     | 
    
         
            -
             
     | 
| 
       348 
     | 
    
         
            -
              var parsedPath = parsePath(next.path || '')
         
     | 
| 
       349 
     | 
    
         
            -
              var basePath = (current && current.path) || '/'
         
     | 
| 
       350 
     | 
    
         
            -
              var path = parsedPath.path
         
     | 
| 
       351 
     | 
    
         
            -
                ? resolvePath(parsedPath.path, basePath, append)
         
     | 
| 
       352 
     | 
    
         
            -
                : (current && current.path) || '/'
         
     | 
| 
       353 
     | 
    
         
            -
              var query = resolveQuery(parsedPath.query, next.query)
         
     | 
| 
       354 
     | 
    
         
            -
              var hash = next.hash || parsedPath.hash
         
     | 
| 
       355 
     | 
    
         
            -
              if (hash && hash.charAt(0) !== '#') {
         
     | 
| 
       356 
     | 
    
         
            -
                hash = "#" + hash
         
     | 
| 
       357 
     | 
    
         
            -
              }
         
     | 
| 
       358 
     | 
    
         
            -
             
     | 
| 
       359 
     | 
    
         
            -
              return {
         
     | 
| 
       360 
     | 
    
         
            -
                _normalized: true,
         
     | 
| 
       361 
     | 
    
         
            -
                path: path,
         
     | 
| 
       362 
     | 
    
         
            -
                query: query,
         
     | 
| 
       363 
     | 
    
         
            -
                hash: hash
         
     | 
| 
       364 
     | 
    
         
            -
              }
         
     | 
| 
       365 
     | 
    
         
            -
            }
         
     | 
| 
       366 
     | 
    
         
            -
             
     | 
| 
       367 
     | 
    
         
            -
            /*  */
         
     | 
| 
       368 
     | 
    
         
            -
             
     | 
| 
       369 
272 
     | 
    
         
             
            // work around weird flow bug
         
     | 
| 
       370 
273 
     | 
    
         
             
            var toTypes = [String, Object]
         
     | 
| 
       371 
274 
     | 
    
         | 
| 
         @@ -383,36 +286,45 @@ var Link = { 
     | 
|
| 
       383 
286 
     | 
    
         
             
                exact: Boolean,
         
     | 
| 
       384 
287 
     | 
    
         
             
                append: Boolean,
         
     | 
| 
       385 
288 
     | 
    
         
             
                replace: Boolean,
         
     | 
| 
       386 
     | 
    
         
            -
                activeClass: String
         
     | 
| 
      
 289 
     | 
    
         
            +
                activeClass: String,
         
     | 
| 
      
 290 
     | 
    
         
            +
                event: {
         
     | 
| 
      
 291 
     | 
    
         
            +
                  type: [String, Array],
         
     | 
| 
      
 292 
     | 
    
         
            +
                  default: 'click'
         
     | 
| 
      
 293 
     | 
    
         
            +
                }
         
     | 
| 
       387 
294 
     | 
    
         
             
              },
         
     | 
| 
       388 
295 
     | 
    
         
             
              render: function render (h) {
         
     | 
| 
       389 
296 
     | 
    
         
             
                var this$1 = this;
         
     | 
| 
       390 
297 
     | 
    
         | 
| 
       391 
298 
     | 
    
         
             
                var router = this.$router
         
     | 
| 
       392 
299 
     | 
    
         
             
                var current = this.$route
         
     | 
| 
       393 
     | 
    
         
            -
                var  
     | 
| 
       394 
     | 
    
         
            -
                var  
     | 
| 
       395 
     | 
    
         
            -
                var  
     | 
| 
       396 
     | 
    
         
            -
                var  
     | 
| 
       397 
     | 
    
         
            -
                var href = base ? cleanPath(base + fullPath) : fullPath
         
     | 
| 
      
 300 
     | 
    
         
            +
                var ref = router.resolve(this.to, current, this.append);
         
     | 
| 
      
 301 
     | 
    
         
            +
                var normalizedTo = ref.normalizedTo;
         
     | 
| 
      
 302 
     | 
    
         
            +
                var resolved = ref.resolved;
         
     | 
| 
      
 303 
     | 
    
         
            +
                var href = ref.href;
         
     | 
| 
       398 
304 
     | 
    
         
             
                var classes = {}
         
     | 
| 
       399 
305 
     | 
    
         
             
                var activeClass = this.activeClass || router.options.linkActiveClass || 'router-link-active'
         
     | 
| 
       400 
     | 
    
         
            -
                var compareTarget =  
     | 
| 
      
 306 
     | 
    
         
            +
                var compareTarget = normalizedTo.path ? createRoute(null, normalizedTo) : resolved
         
     | 
| 
       401 
307 
     | 
    
         
             
                classes[activeClass] = this.exact
         
     | 
| 
       402 
308 
     | 
    
         
             
                  ? isSameRoute(current, compareTarget)
         
     | 
| 
       403 
309 
     | 
    
         
             
                  : isIncludedRoute(current, compareTarget)
         
     | 
| 
       404 
310 
     | 
    
         | 
| 
       405 
     | 
    
         
            -
                var  
     | 
| 
       406 
     | 
    
         
            -
                   
     | 
| 
       407 
     | 
    
         
            -
                    e.preventDefault()
         
     | 
| 
      
 311 
     | 
    
         
            +
                var handler = function (e) {
         
     | 
| 
      
 312 
     | 
    
         
            +
                  if (guardEvent(e)) {
         
     | 
| 
       408 
313 
     | 
    
         
             
                    if (this$1.replace) {
         
     | 
| 
       409 
     | 
    
         
            -
                      router.replace( 
     | 
| 
      
 314 
     | 
    
         
            +
                      router.replace(normalizedTo)
         
     | 
| 
       410 
315 
     | 
    
         
             
                    } else {
         
     | 
| 
       411 
     | 
    
         
            -
                      router.push( 
     | 
| 
      
 316 
     | 
    
         
            +
                      router.push(normalizedTo)
         
     | 
| 
       412 
317 
     | 
    
         
             
                    }
         
     | 
| 
       413 
318 
     | 
    
         
             
                  }
         
     | 
| 
       414 
319 
     | 
    
         
             
                }
         
     | 
| 
       415 
320 
     | 
    
         | 
| 
      
 321 
     | 
    
         
            +
                var on = { click: guardEvent }
         
     | 
| 
      
 322 
     | 
    
         
            +
                if (Array.isArray(this.event)) {
         
     | 
| 
      
 323 
     | 
    
         
            +
                  this.event.forEach(function (e) { on[e] = handler })
         
     | 
| 
      
 324 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 325 
     | 
    
         
            +
                  on[this.event] = handler
         
     | 
| 
      
 326 
     | 
    
         
            +
                }
         
     | 
| 
      
 327 
     | 
    
         
            +
             
     | 
| 
       416 
328 
     | 
    
         
             
                var data = {
         
     | 
| 
       417 
329 
     | 
    
         
             
                  class: classes
         
     | 
| 
       418 
330 
     | 
    
         
             
                }
         
     | 
| 
         @@ -424,10 +336,16 @@ var Link = { 
     | 
|
| 
       424 
336 
     | 
    
         
             
                  // find the first <a> child and apply listener and href
         
     | 
| 
       425 
337 
     | 
    
         
             
                  var a = findAnchor(this.$slots.default)
         
     | 
| 
       426 
338 
     | 
    
         
             
                  if (a) {
         
     | 
| 
       427 
     | 
    
         
            -
                     
     | 
| 
      
 339 
     | 
    
         
            +
                    // in case the <a> is a static node
         
     | 
| 
      
 340 
     | 
    
         
            +
                    a.isStatic = false
         
     | 
| 
      
 341 
     | 
    
         
            +
                    var extend = _Vue.util.extend
         
     | 
| 
      
 342 
     | 
    
         
            +
                    var aData = a.data = extend({}, a.data)
         
     | 
| 
       428 
343 
     | 
    
         
             
                    aData.on = on
         
     | 
| 
       429 
     | 
    
         
            -
                    var aAttrs =  
     | 
| 
      
 344 
     | 
    
         
            +
                    var aAttrs = a.data.attrs = extend({}, a.data.attrs)
         
     | 
| 
       430 
345 
     | 
    
         
             
                    aAttrs.href = href
         
     | 
| 
      
 346 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 347 
     | 
    
         
            +
                    // doesn't have <a> child, apply listener to self
         
     | 
| 
      
 348 
     | 
    
         
            +
                    data.on = on
         
     | 
| 
       431 
349 
     | 
    
         
             
                  }
         
     | 
| 
       432 
350 
     | 
    
         
             
                }
         
     | 
| 
       433 
351 
     | 
    
         | 
| 
         @@ -435,6 +353,25 @@ var Link = { 
     | 
|
| 
       435 
353 
     | 
    
         
             
              }
         
     | 
| 
       436 
354 
     | 
    
         
             
            }
         
     | 
| 
       437 
355 
     | 
    
         | 
| 
      
 356 
     | 
    
         
            +
            function guardEvent (e) {
         
     | 
| 
      
 357 
     | 
    
         
            +
              // don't redirect with control keys
         
     | 
| 
      
 358 
     | 
    
         
            +
              /* istanbul ignore if */
         
     | 
| 
      
 359 
     | 
    
         
            +
              if (e.metaKey || e.ctrlKey || e.shiftKey) { return }
         
     | 
| 
      
 360 
     | 
    
         
            +
              // don't redirect when preventDefault called
         
     | 
| 
      
 361 
     | 
    
         
            +
              /* istanbul ignore if */
         
     | 
| 
      
 362 
     | 
    
         
            +
              if (e.defaultPrevented) { return }
         
     | 
| 
      
 363 
     | 
    
         
            +
              // don't redirect on right click
         
     | 
| 
      
 364 
     | 
    
         
            +
              /* istanbul ignore if */
         
     | 
| 
      
 365 
     | 
    
         
            +
              if (e.button !== 0) { return }
         
     | 
| 
      
 366 
     | 
    
         
            +
              // don't redirect if `target="_blank"`
         
     | 
| 
      
 367 
     | 
    
         
            +
              /* istanbul ignore if */
         
     | 
| 
      
 368 
     | 
    
         
            +
              var target = e.target.getAttribute('target')
         
     | 
| 
      
 369 
     | 
    
         
            +
              if (/\b_blank\b/i.test(target)) { return }
         
     | 
| 
      
 370 
     | 
    
         
            +
             
     | 
| 
      
 371 
     | 
    
         
            +
              e.preventDefault()
         
     | 
| 
      
 372 
     | 
    
         
            +
              return true
         
     | 
| 
      
 373 
     | 
    
         
            +
            }
         
     | 
| 
      
 374 
     | 
    
         
            +
             
     | 
| 
       438 
375 
     | 
    
         
             
            function findAnchor (children) {
         
     | 
| 
       439 
376 
     | 
    
         
             
              if (children) {
         
     | 
| 
       440 
377 
     | 
    
         
             
                var child
         
     | 
| 
         @@ -450,10 +387,14 @@ function findAnchor (children) { 
     | 
|
| 
       450 
387 
     | 
    
         
             
              }
         
     | 
| 
       451 
388 
     | 
    
         
             
            }
         
     | 
| 
       452 
389 
     | 
    
         | 
| 
      
 390 
     | 
    
         
            +
            var _Vue
         
     | 
| 
      
 391 
     | 
    
         
            +
             
     | 
| 
       453 
392 
     | 
    
         
             
            function install (Vue) {
         
     | 
| 
       454 
393 
     | 
    
         
             
              if (install.installed) { return }
         
     | 
| 
       455 
394 
     | 
    
         
             
              install.installed = true
         
     | 
| 
       456 
395 
     | 
    
         | 
| 
      
 396 
     | 
    
         
            +
              _Vue = Vue
         
     | 
| 
      
 397 
     | 
    
         
            +
             
     | 
| 
       457 
398 
     | 
    
         
             
              Object.defineProperty(Vue.prototype, '$router', {
         
     | 
| 
       458 
399 
     | 
    
         
             
                get: function get () { return this.$root._router }
         
     | 
| 
       459 
400 
     | 
    
         
             
              })
         
     | 
| 
         @@ -474,6 +415,172 @@ function install (Vue) { 
     | 
|
| 
       474 
415 
     | 
    
         | 
| 
       475 
416 
     | 
    
         
             
              Vue.component('router-view', View)
         
     | 
| 
       476 
417 
     | 
    
         
             
              Vue.component('router-link', Link)
         
     | 
| 
      
 418 
     | 
    
         
            +
             
     | 
| 
      
 419 
     | 
    
         
            +
              var strats = Vue.config.optionMergeStrategies
         
     | 
| 
      
 420 
     | 
    
         
            +
              // use the same hook merging strategy for route hooks
         
     | 
| 
      
 421 
     | 
    
         
            +
              strats.beforeRouteEnter = strats.beforeRouteLeave = strats.created
         
     | 
| 
      
 422 
     | 
    
         
            +
            }
         
     | 
| 
      
 423 
     | 
    
         
            +
             
     | 
| 
      
 424 
     | 
    
         
            +
            /*  */
         
     | 
| 
      
 425 
     | 
    
         
            +
             
     | 
| 
      
 426 
     | 
    
         
            +
            function resolvePath (
         
     | 
| 
      
 427 
     | 
    
         
            +
              relative,
         
     | 
| 
      
 428 
     | 
    
         
            +
              base,
         
     | 
| 
      
 429 
     | 
    
         
            +
              append
         
     | 
| 
      
 430 
     | 
    
         
            +
            ) {
         
     | 
| 
      
 431 
     | 
    
         
            +
              if (relative.charAt(0) === '/') {
         
     | 
| 
      
 432 
     | 
    
         
            +
                return relative
         
     | 
| 
      
 433 
     | 
    
         
            +
              }
         
     | 
| 
      
 434 
     | 
    
         
            +
             
     | 
| 
      
 435 
     | 
    
         
            +
              if (relative.charAt(0) === '?' || relative.charAt(0) === '#') {
         
     | 
| 
      
 436 
     | 
    
         
            +
                return base + relative
         
     | 
| 
      
 437 
     | 
    
         
            +
              }
         
     | 
| 
      
 438 
     | 
    
         
            +
             
     | 
| 
      
 439 
     | 
    
         
            +
              var stack = base.split('/')
         
     | 
| 
      
 440 
     | 
    
         
            +
             
     | 
| 
      
 441 
     | 
    
         
            +
              // remove trailing segment if:
         
     | 
| 
      
 442 
     | 
    
         
            +
              // - not appending
         
     | 
| 
      
 443 
     | 
    
         
            +
              // - appending to trailing slash (last segment is empty)
         
     | 
| 
      
 444 
     | 
    
         
            +
              if (!append || !stack[stack.length - 1]) {
         
     | 
| 
      
 445 
     | 
    
         
            +
                stack.pop()
         
     | 
| 
      
 446 
     | 
    
         
            +
              }
         
     | 
| 
      
 447 
     | 
    
         
            +
             
     | 
| 
      
 448 
     | 
    
         
            +
              // resolve relative path
         
     | 
| 
      
 449 
     | 
    
         
            +
              var segments = relative.replace(/^\//, '').split('/')
         
     | 
| 
      
 450 
     | 
    
         
            +
              for (var i = 0; i < segments.length; i++) {
         
     | 
| 
      
 451 
     | 
    
         
            +
                var segment = segments[i]
         
     | 
| 
      
 452 
     | 
    
         
            +
                if (segment === '.') {
         
     | 
| 
      
 453 
     | 
    
         
            +
                  continue
         
     | 
| 
      
 454 
     | 
    
         
            +
                } else if (segment === '..') {
         
     | 
| 
      
 455 
     | 
    
         
            +
                  stack.pop()
         
     | 
| 
      
 456 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 457 
     | 
    
         
            +
                  stack.push(segment)
         
     | 
| 
      
 458 
     | 
    
         
            +
                }
         
     | 
| 
      
 459 
     | 
    
         
            +
              }
         
     | 
| 
      
 460 
     | 
    
         
            +
             
     | 
| 
      
 461 
     | 
    
         
            +
              // ensure leading slash
         
     | 
| 
      
 462 
     | 
    
         
            +
              if (stack[0] !== '') {
         
     | 
| 
      
 463 
     | 
    
         
            +
                stack.unshift('')
         
     | 
| 
      
 464 
     | 
    
         
            +
              }
         
     | 
| 
      
 465 
     | 
    
         
            +
             
     | 
| 
      
 466 
     | 
    
         
            +
              return stack.join('/')
         
     | 
| 
      
 467 
     | 
    
         
            +
            }
         
     | 
| 
      
 468 
     | 
    
         
            +
             
     | 
| 
      
 469 
     | 
    
         
            +
            function parsePath (path) {
         
     | 
| 
      
 470 
     | 
    
         
            +
              var hash = ''
         
     | 
| 
      
 471 
     | 
    
         
            +
              var query = ''
         
     | 
| 
      
 472 
     | 
    
         
            +
             
     | 
| 
      
 473 
     | 
    
         
            +
              var hashIndex = path.indexOf('#')
         
     | 
| 
      
 474 
     | 
    
         
            +
              if (hashIndex >= 0) {
         
     | 
| 
      
 475 
     | 
    
         
            +
                hash = path.slice(hashIndex)
         
     | 
| 
      
 476 
     | 
    
         
            +
                path = path.slice(0, hashIndex)
         
     | 
| 
      
 477 
     | 
    
         
            +
              }
         
     | 
| 
      
 478 
     | 
    
         
            +
             
     | 
| 
      
 479 
     | 
    
         
            +
              var queryIndex = path.indexOf('?')
         
     | 
| 
      
 480 
     | 
    
         
            +
              if (queryIndex >= 0) {
         
     | 
| 
      
 481 
     | 
    
         
            +
                query = path.slice(queryIndex + 1)
         
     | 
| 
      
 482 
     | 
    
         
            +
                path = path.slice(0, queryIndex)
         
     | 
| 
      
 483 
     | 
    
         
            +
              }
         
     | 
| 
      
 484 
     | 
    
         
            +
             
     | 
| 
      
 485 
     | 
    
         
            +
              return {
         
     | 
| 
      
 486 
     | 
    
         
            +
                path: path,
         
     | 
| 
      
 487 
     | 
    
         
            +
                query: query,
         
     | 
| 
      
 488 
     | 
    
         
            +
                hash: hash
         
     | 
| 
      
 489 
     | 
    
         
            +
              }
         
     | 
| 
      
 490 
     | 
    
         
            +
            }
         
     | 
| 
      
 491 
     | 
    
         
            +
             
     | 
| 
      
 492 
     | 
    
         
            +
            function cleanPath (path) {
         
     | 
| 
      
 493 
     | 
    
         
            +
              return path.replace(/\/\//g, '/')
         
     | 
| 
      
 494 
     | 
    
         
            +
            }
         
     | 
| 
      
 495 
     | 
    
         
            +
             
     | 
| 
      
 496 
     | 
    
         
            +
            /*  */
         
     | 
| 
      
 497 
     | 
    
         
            +
             
     | 
| 
      
 498 
     | 
    
         
            +
            function createRouteMap (routes) {
         
     | 
| 
      
 499 
     | 
    
         
            +
              var pathMap = Object.create(null)
         
     | 
| 
      
 500 
     | 
    
         
            +
              var nameMap = Object.create(null)
         
     | 
| 
      
 501 
     | 
    
         
            +
             
     | 
| 
      
 502 
     | 
    
         
            +
              routes.forEach(function (route) {
         
     | 
| 
      
 503 
     | 
    
         
            +
                addRouteRecord(pathMap, nameMap, route)
         
     | 
| 
      
 504 
     | 
    
         
            +
              })
         
     | 
| 
      
 505 
     | 
    
         
            +
             
     | 
| 
      
 506 
     | 
    
         
            +
              return {
         
     | 
| 
      
 507 
     | 
    
         
            +
                pathMap: pathMap,
         
     | 
| 
      
 508 
     | 
    
         
            +
                nameMap: nameMap
         
     | 
| 
      
 509 
     | 
    
         
            +
              }
         
     | 
| 
      
 510 
     | 
    
         
            +
            }
         
     | 
| 
      
 511 
     | 
    
         
            +
             
     | 
| 
      
 512 
     | 
    
         
            +
            function addRouteRecord (
         
     | 
| 
      
 513 
     | 
    
         
            +
              pathMap,
         
     | 
| 
      
 514 
     | 
    
         
            +
              nameMap,
         
     | 
| 
      
 515 
     | 
    
         
            +
              route,
         
     | 
| 
      
 516 
     | 
    
         
            +
              parent,
         
     | 
| 
      
 517 
     | 
    
         
            +
              matchAs
         
     | 
| 
      
 518 
     | 
    
         
            +
            ) {
         
     | 
| 
      
 519 
     | 
    
         
            +
              var path = route.path;
         
     | 
| 
      
 520 
     | 
    
         
            +
              var name = route.name;
         
     | 
| 
      
 521 
     | 
    
         
            +
              if (process.env.NODE_ENV !== 'production') {
         
     | 
| 
      
 522 
     | 
    
         
            +
                assert(path != null, "\"path\" is required in a route configuration.")
         
     | 
| 
      
 523 
     | 
    
         
            +
                assert(
         
     | 
| 
      
 524 
     | 
    
         
            +
                  typeof route.component !== 'string',
         
     | 
| 
      
 525 
     | 
    
         
            +
                  "route config \"component\" for path: " + (String(path || name)) + " cannot be a " +
         
     | 
| 
      
 526 
     | 
    
         
            +
                  "string id. Use an actual component instead."
         
     | 
| 
      
 527 
     | 
    
         
            +
                )
         
     | 
| 
      
 528 
     | 
    
         
            +
              }
         
     | 
| 
      
 529 
     | 
    
         
            +
             
     | 
| 
      
 530 
     | 
    
         
            +
              var record = {
         
     | 
| 
      
 531 
     | 
    
         
            +
                path: normalizePath(path, parent),
         
     | 
| 
      
 532 
     | 
    
         
            +
                components: route.components || { default: route.component },
         
     | 
| 
      
 533 
     | 
    
         
            +
                instances: {},
         
     | 
| 
      
 534 
     | 
    
         
            +
                name: name,
         
     | 
| 
      
 535 
     | 
    
         
            +
                parent: parent,
         
     | 
| 
      
 536 
     | 
    
         
            +
                matchAs: matchAs,
         
     | 
| 
      
 537 
     | 
    
         
            +
                redirect: route.redirect,
         
     | 
| 
      
 538 
     | 
    
         
            +
                beforeEnter: route.beforeEnter,
         
     | 
| 
      
 539 
     | 
    
         
            +
                meta: route.meta || {}
         
     | 
| 
      
 540 
     | 
    
         
            +
              }
         
     | 
| 
      
 541 
     | 
    
         
            +
             
     | 
| 
      
 542 
     | 
    
         
            +
              if (route.children) {
         
     | 
| 
      
 543 
     | 
    
         
            +
                // Warn if route is named and has a default child route.
         
     | 
| 
      
 544 
     | 
    
         
            +
                // If users navigate to this route by name, the default child will
         
     | 
| 
      
 545 
     | 
    
         
            +
                // not be rendered (GH Issue #629)
         
     | 
| 
      
 546 
     | 
    
         
            +
                if (process.env.NODE_ENV !== 'production') {
         
     | 
| 
      
 547 
     | 
    
         
            +
                  if (route.name && route.children.some(function (child) { return /^\/?$/.test(child.path); })) {
         
     | 
| 
      
 548 
     | 
    
         
            +
                    warn(false, ("Named Route '" + (route.name) + "' has a default child route.\n          When navigating to this named route (:to=\"{name: '" + (route.name) + "'\"), the default child route will not be rendered.\n          Remove the name from this route and use the name of the default child route for named links instead.")
         
     | 
| 
      
 549 
     | 
    
         
            +
                    )
         
     | 
| 
      
 550 
     | 
    
         
            +
                  }
         
     | 
| 
      
 551 
     | 
    
         
            +
                }
         
     | 
| 
      
 552 
     | 
    
         
            +
                route.children.forEach(function (child) {
         
     | 
| 
      
 553 
     | 
    
         
            +
                  addRouteRecord(pathMap, nameMap, child, record)
         
     | 
| 
      
 554 
     | 
    
         
            +
                })
         
     | 
| 
      
 555 
     | 
    
         
            +
              }
         
     | 
| 
      
 556 
     | 
    
         
            +
             
     | 
| 
      
 557 
     | 
    
         
            +
              if (route.alias !== undefined) {
         
     | 
| 
      
 558 
     | 
    
         
            +
                if (Array.isArray(route.alias)) {
         
     | 
| 
      
 559 
     | 
    
         
            +
                  route.alias.forEach(function (alias) {
         
     | 
| 
      
 560 
     | 
    
         
            +
                    addRouteRecord(pathMap, nameMap, { path: alias }, parent, record.path)
         
     | 
| 
      
 561 
     | 
    
         
            +
                  })
         
     | 
| 
      
 562 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 563 
     | 
    
         
            +
                  addRouteRecord(pathMap, nameMap, { path: route.alias }, parent, record.path)
         
     | 
| 
      
 564 
     | 
    
         
            +
                }
         
     | 
| 
      
 565 
     | 
    
         
            +
              }
         
     | 
| 
      
 566 
     | 
    
         
            +
             
     | 
| 
      
 567 
     | 
    
         
            +
              if (!pathMap[record.path]) {
         
     | 
| 
      
 568 
     | 
    
         
            +
                pathMap[record.path] = record
         
     | 
| 
      
 569 
     | 
    
         
            +
              }
         
     | 
| 
      
 570 
     | 
    
         
            +
              if (name) {
         
     | 
| 
      
 571 
     | 
    
         
            +
                if (!nameMap[name]) {
         
     | 
| 
      
 572 
     | 
    
         
            +
                  nameMap[name] = record
         
     | 
| 
      
 573 
     | 
    
         
            +
                } else if (process.env.NODE_ENV !== 'production') {
         
     | 
| 
      
 574 
     | 
    
         
            +
                  warn(false, ("Duplicate named routes definition: { name: \"" + name + "\", path: \"" + (record.path) + "\" }"))
         
     | 
| 
      
 575 
     | 
    
         
            +
                }
         
     | 
| 
      
 576 
     | 
    
         
            +
              }
         
     | 
| 
      
 577 
     | 
    
         
            +
            }
         
     | 
| 
      
 578 
     | 
    
         
            +
             
     | 
| 
      
 579 
     | 
    
         
            +
            function normalizePath (path, parent) {
         
     | 
| 
      
 580 
     | 
    
         
            +
              path = path.replace(/\/$/, '')
         
     | 
| 
      
 581 
     | 
    
         
            +
              if (path[0] === '/') { return path }
         
     | 
| 
      
 582 
     | 
    
         
            +
              if (parent == null) { return path }
         
     | 
| 
      
 583 
     | 
    
         
            +
              return cleanPath(((parent.path) + "/" + path))
         
     | 
| 
       477 
584 
     | 
    
         
             
            }
         
     | 
| 
       478 
585 
     | 
    
         | 
| 
       479 
586 
     | 
    
         
             
            var __moduleExports = Array.isArray || function (arr) {
         
     | 
| 
         @@ -512,14 +619,16 @@ var PATH_REGEXP = new RegExp([ 
     | 
|
| 
       512 
619 
     | 
    
         
             
            /**
         
     | 
| 
       513 
620 
     | 
    
         
             
             * Parse a string for the raw tokens.
         
     | 
| 
       514 
621 
     | 
    
         
             
             *
         
     | 
| 
       515 
     | 
    
         
            -
             * @param  {string} 
     | 
| 
      
 622 
     | 
    
         
            +
             * @param  {string}  str
         
     | 
| 
      
 623 
     | 
    
         
            +
             * @param  {Object=} options
         
     | 
| 
       516 
624 
     | 
    
         
             
             * @return {!Array}
         
     | 
| 
       517 
625 
     | 
    
         
             
             */
         
     | 
| 
       518 
     | 
    
         
            -
            function parse (str) {
         
     | 
| 
      
 626 
     | 
    
         
            +
            function parse (str, options) {
         
     | 
| 
       519 
627 
     | 
    
         
             
              var tokens = []
         
     | 
| 
       520 
628 
     | 
    
         
             
              var key = 0
         
     | 
| 
       521 
629 
     | 
    
         
             
              var index = 0
         
     | 
| 
       522 
630 
     | 
    
         
             
              var path = ''
         
     | 
| 
      
 631 
     | 
    
         
            +
              var defaultDelimiter = options && options.delimiter || '/'
         
     | 
| 
       523 
632 
     | 
    
         
             
              var res
         
     | 
| 
       524 
633 
     | 
    
         | 
| 
       525 
634 
     | 
    
         
             
              while ((res = PATH_REGEXP.exec(str)) != null) {
         
     | 
| 
         @@ -552,8 +661,8 @@ function parse (str) { 
     | 
|
| 
       552 
661 
     | 
    
         
             
                var partial = prefix != null && next != null && next !== prefix
         
     | 
| 
       553 
662 
     | 
    
         
             
                var repeat = modifier === '+' || modifier === '*'
         
     | 
| 
       554 
663 
     | 
    
         
             
                var optional = modifier === '?' || modifier === '*'
         
     | 
| 
       555 
     | 
    
         
            -
                var delimiter = res[2] ||  
     | 
| 
       556 
     | 
    
         
            -
                var pattern = capture || group 
     | 
| 
      
 664 
     | 
    
         
            +
                var delimiter = res[2] || defaultDelimiter
         
     | 
| 
      
 665 
     | 
    
         
            +
                var pattern = capture || group
         
     | 
| 
       557 
666 
     | 
    
         | 
| 
       558 
667 
     | 
    
         
             
                tokens.push({
         
     | 
| 
       559 
668 
     | 
    
         
             
                  name: name || key++,
         
     | 
| 
         @@ -563,7 +672,7 @@ function parse (str) { 
     | 
|
| 
       563 
672 
     | 
    
         
             
                  repeat: repeat,
         
     | 
| 
       564 
673 
     | 
    
         
             
                  partial: partial,
         
     | 
| 
       565 
674 
     | 
    
         
             
                  asterisk: !!asterisk,
         
     | 
| 
       566 
     | 
    
         
            -
                  pattern: escapeGroup(pattern)
         
     | 
| 
      
 675 
     | 
    
         
            +
                  pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')
         
     | 
| 
       567 
676 
     | 
    
         
             
                })
         
     | 
| 
       568 
677 
     | 
    
         
             
              }
         
     | 
| 
       569 
678 
     | 
    
         | 
| 
         @@ -584,10 +693,11 @@ function parse (str) { 
     | 
|
| 
       584 
693 
     | 
    
         
             
             * Compile a string to a template function for the path.
         
     | 
| 
       585 
694 
     | 
    
         
             
             *
         
     | 
| 
       586 
695 
     | 
    
         
             
             * @param  {string}             str
         
     | 
| 
      
 696 
     | 
    
         
            +
             * @param  {Object=}            options
         
     | 
| 
       587 
697 
     | 
    
         
             
             * @return {!function(Object=, Object=)}
         
     | 
| 
       588 
698 
     | 
    
         
             
             */
         
     | 
| 
       589 
     | 
    
         
            -
            function compile (str) {
         
     | 
| 
       590 
     | 
    
         
            -
              return tokensToFunction(parse(str))
         
     | 
| 
      
 699 
     | 
    
         
            +
            function compile (str, options) {
         
     | 
| 
      
 700 
     | 
    
         
            +
              return tokensToFunction(parse(str, options))
         
     | 
| 
       591 
701 
     | 
    
         
             
            }
         
     | 
| 
       592 
702 
     | 
    
         | 
| 
       593 
703 
     | 
    
         
             
            /**
         
     | 
| 
         @@ -798,34 +908,28 @@ function arrayToRegexp (path, keys, options) { 
     | 
|
| 
       798 
908 
     | 
    
         
             
             * @return {!RegExp}
         
     | 
| 
       799 
909 
     | 
    
         
             
             */
         
     | 
| 
       800 
910 
     | 
    
         
             
            function stringToRegexp (path, keys, options) {
         
     | 
| 
       801 
     | 
    
         
            -
               
     | 
| 
       802 
     | 
    
         
            -
              var re = tokensToRegExp(tokens, options)
         
     | 
| 
       803 
     | 
    
         
            -
             
     | 
| 
       804 
     | 
    
         
            -
              // Attach keys back to the regexp.
         
     | 
| 
       805 
     | 
    
         
            -
              for (var i = 0; i < tokens.length; i++) {
         
     | 
| 
       806 
     | 
    
         
            -
                if (typeof tokens[i] !== 'string') {
         
     | 
| 
       807 
     | 
    
         
            -
                  keys.push(tokens[i])
         
     | 
| 
       808 
     | 
    
         
            -
                }
         
     | 
| 
       809 
     | 
    
         
            -
              }
         
     | 
| 
       810 
     | 
    
         
            -
             
     | 
| 
       811 
     | 
    
         
            -
              return attachKeys(re, keys)
         
     | 
| 
      
 911 
     | 
    
         
            +
              return tokensToRegExp(parse(path, options), keys, options)
         
     | 
| 
       812 
912 
     | 
    
         
             
            }
         
     | 
| 
       813 
913 
     | 
    
         | 
| 
       814 
914 
     | 
    
         
             
            /**
         
     | 
| 
       815 
915 
     | 
    
         
             
             * Expose a function for taking tokens and returning a RegExp.
         
     | 
| 
       816 
916 
     | 
    
         
             
             *
         
     | 
| 
       817 
     | 
    
         
            -
             * @param  {!Array} 
     | 
| 
       818 
     | 
    
         
            -
             * @param  {Object=}  
     | 
| 
      
 917 
     | 
    
         
            +
             * @param  {!Array}          tokens
         
     | 
| 
      
 918 
     | 
    
         
            +
             * @param  {(Array|Object)=} keys
         
     | 
| 
      
 919 
     | 
    
         
            +
             * @param  {Object=}         options
         
     | 
| 
       819 
920 
     | 
    
         
             
             * @return {!RegExp}
         
     | 
| 
       820 
921 
     | 
    
         
             
             */
         
     | 
| 
       821 
     | 
    
         
            -
            function tokensToRegExp (tokens, options) {
         
     | 
| 
      
 922 
     | 
    
         
            +
            function tokensToRegExp (tokens, keys, options) {
         
     | 
| 
      
 923 
     | 
    
         
            +
              if (!isarray(keys)) {
         
     | 
| 
      
 924 
     | 
    
         
            +
                options = /** @type {!Object} */ (keys || options)
         
     | 
| 
      
 925 
     | 
    
         
            +
                keys = []
         
     | 
| 
      
 926 
     | 
    
         
            +
              }
         
     | 
| 
      
 927 
     | 
    
         
            +
             
     | 
| 
       822 
928 
     | 
    
         
             
              options = options || {}
         
     | 
| 
       823 
929 
     | 
    
         | 
| 
       824 
930 
     | 
    
         
             
              var strict = options.strict
         
     | 
| 
       825 
931 
     | 
    
         
             
              var end = options.end !== false
         
     | 
| 
       826 
932 
     | 
    
         
             
              var route = ''
         
     | 
| 
       827 
     | 
    
         
            -
              var lastToken = tokens[tokens.length - 1]
         
     | 
| 
       828 
     | 
    
         
            -
              var endsWithSlash = typeof lastToken === 'string' && /\/$/.test(lastToken)
         
     | 
| 
       829 
933 
     | 
    
         | 
| 
       830 
934 
     | 
    
         
             
              // Iterate over the tokens and create our regexp string.
         
     | 
| 
       831 
935 
     | 
    
         
             
              for (var i = 0; i < tokens.length; i++) {
         
     | 
| 
         @@ -837,6 +941,8 @@ function tokensToRegExp (tokens, options) { 
     | 
|
| 
       837 
941 
     | 
    
         
             
                  var prefix = escapeString(token.prefix)
         
     | 
| 
       838 
942 
     | 
    
         
             
                  var capture = '(?:' + token.pattern + ')'
         
     | 
| 
       839 
943 
     | 
    
         | 
| 
      
 944 
     | 
    
         
            +
                  keys.push(token)
         
     | 
| 
      
 945 
     | 
    
         
            +
             
     | 
| 
       840 
946 
     | 
    
         
             
                  if (token.repeat) {
         
     | 
| 
       841 
947 
     | 
    
         
             
                    capture += '(?:' + prefix + capture + ')*'
         
     | 
| 
       842 
948 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -855,12 +961,15 @@ function tokensToRegExp (tokens, options) { 
     | 
|
| 
       855 
961 
     | 
    
         
             
                }
         
     | 
| 
       856 
962 
     | 
    
         
             
              }
         
     | 
| 
       857 
963 
     | 
    
         | 
| 
      
 964 
     | 
    
         
            +
              var delimiter = escapeString(options.delimiter || '/')
         
     | 
| 
      
 965 
     | 
    
         
            +
              var endsWithDelimiter = route.slice(-delimiter.length) === delimiter
         
     | 
| 
      
 966 
     | 
    
         
            +
             
     | 
| 
       858 
967 
     | 
    
         
             
              // In non-strict mode we allow a slash at the end of match. If the path to
         
     | 
| 
       859 
968 
     | 
    
         
             
              // match already ends with a slash, we remove it for consistency. The slash
         
     | 
| 
       860 
969 
     | 
    
         
             
              // is valid at the end of a path match, not in the middle. This is important
         
     | 
| 
       861 
970 
     | 
    
         
             
              // in non-ending mode, where "/test/" shouldn't match "/test//route".
         
     | 
| 
       862 
971 
     | 
    
         
             
              if (!strict) {
         
     | 
| 
       863 
     | 
    
         
            -
                route = ( 
     | 
| 
      
 972 
     | 
    
         
            +
                route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'
         
     | 
| 
       864 
973 
     | 
    
         
             
              }
         
     | 
| 
       865 
974 
     | 
    
         | 
| 
       866 
975 
     | 
    
         
             
              if (end) {
         
     | 
| 
         @@ -868,10 +977,10 @@ function tokensToRegExp (tokens, options) { 
     | 
|
| 
       868 
977 
     | 
    
         
             
              } else {
         
     | 
| 
       869 
978 
     | 
    
         
             
                // In non-ending mode, we need the capturing groups to match as much as
         
     | 
| 
       870 
979 
     | 
    
         
             
                // possible by using a positive lookahead to the end or next path segment.
         
     | 
| 
       871 
     | 
    
         
            -
                route += strict &&  
     | 
| 
      
 980 
     | 
    
         
            +
                route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'
         
     | 
| 
       872 
981 
     | 
    
         
             
              }
         
     | 
| 
       873 
982 
     | 
    
         | 
| 
       874 
     | 
    
         
            -
              return new RegExp('^' + route, flags(options))
         
     | 
| 
      
 983 
     | 
    
         
            +
              return attachKeys(new RegExp('^' + route, flags(options)), keys)
         
     | 
| 
       875 
984 
     | 
    
         
             
            }
         
     | 
| 
       876 
985 
     | 
    
         | 
| 
       877 
986 
     | 
    
         
             
            /**
         
     | 
| 
         @@ -887,15 +996,13 @@ function tokensToRegExp (tokens, options) { 
     | 
|
| 
       887 
996 
     | 
    
         
             
             * @return {!RegExp}
         
     | 
| 
       888 
997 
     | 
    
         
             
             */
         
     | 
| 
       889 
998 
     | 
    
         
             
            function pathToRegexp (path, keys, options) {
         
     | 
| 
       890 
     | 
    
         
            -
              keys = keys || []
         
     | 
| 
       891 
     | 
    
         
            -
             
     | 
| 
       892 
999 
     | 
    
         
             
              if (!isarray(keys)) {
         
     | 
| 
       893 
     | 
    
         
            -
                options = /** @type {!Object} */ (keys)
         
     | 
| 
      
 1000 
     | 
    
         
            +
                options = /** @type {!Object} */ (keys || options)
         
     | 
| 
       894 
1001 
     | 
    
         
             
                keys = []
         
     | 
| 
       895 
     | 
    
         
            -
              } else if (!options) {
         
     | 
| 
       896 
     | 
    
         
            -
                options = {}
         
     | 
| 
       897 
1002 
     | 
    
         
             
              }
         
     | 
| 
       898 
1003 
     | 
    
         | 
| 
      
 1004 
     | 
    
         
            +
              options = options || {}
         
     | 
| 
      
 1005 
     | 
    
         
            +
             
     | 
| 
       899 
1006 
     | 
    
         
             
              if (path instanceof RegExp) {
         
     | 
| 
       900 
1007 
     | 
    
         
             
                return regexpToRegexp(path, /** @type {!Array} */ (keys))
         
     | 
| 
       901 
1008 
     | 
    
         
             
              }
         
     | 
| 
         @@ -914,80 +1021,102 @@ index.tokensToRegExp = tokensToRegExp_1; 
     | 
|
| 
       914 
1021 
     | 
    
         | 
| 
       915 
1022 
     | 
    
         
             
            /*  */
         
     | 
| 
       916 
1023 
     | 
    
         | 
| 
       917 
     | 
    
         
            -
             
     | 
| 
       918 
     | 
    
         
            -
              var pathMap = Object.create(null)
         
     | 
| 
       919 
     | 
    
         
            -
              var nameMap = Object.create(null)
         
     | 
| 
      
 1024 
     | 
    
         
            +
            var regexpCache = Object.create(null)
         
     | 
| 
       920 
1025 
     | 
    
         | 
| 
       921 
     | 
    
         
            -
             
     | 
| 
       922 
     | 
    
         
            -
             
     | 
| 
       923 
     | 
    
         
            -
               
     | 
| 
      
 1026 
     | 
    
         
            +
            function getRouteRegex (path) {
         
     | 
| 
      
 1027 
     | 
    
         
            +
              var hit = regexpCache[path]
         
     | 
| 
      
 1028 
     | 
    
         
            +
              var keys, regexp
         
     | 
| 
       924 
1029 
     | 
    
         | 
| 
       925 
     | 
    
         
            -
               
     | 
| 
       926 
     | 
    
         
            -
                 
     | 
| 
       927 
     | 
    
         
            -
                 
     | 
| 
      
 1030 
     | 
    
         
            +
              if (hit) {
         
     | 
| 
      
 1031 
     | 
    
         
            +
                keys = hit.keys
         
     | 
| 
      
 1032 
     | 
    
         
            +
                regexp = hit.regexp
         
     | 
| 
      
 1033 
     | 
    
         
            +
              } else {
         
     | 
| 
      
 1034 
     | 
    
         
            +
                keys = []
         
     | 
| 
      
 1035 
     | 
    
         
            +
                regexp = index(path, keys)
         
     | 
| 
      
 1036 
     | 
    
         
            +
                regexpCache[path] = { keys: keys, regexp: regexp }
         
     | 
| 
       928 
1037 
     | 
    
         
             
              }
         
     | 
| 
      
 1038 
     | 
    
         
            +
             
     | 
| 
      
 1039 
     | 
    
         
            +
              return { keys: keys, regexp: regexp }
         
     | 
| 
       929 
1040 
     | 
    
         
             
            }
         
     | 
| 
       930 
1041 
     | 
    
         | 
| 
       931 
     | 
    
         
            -
             
     | 
| 
       932 
     | 
    
         
            -
              pathMap,
         
     | 
| 
       933 
     | 
    
         
            -
              nameMap,
         
     | 
| 
       934 
     | 
    
         
            -
              route,
         
     | 
| 
       935 
     | 
    
         
            -
              parent,
         
     | 
| 
       936 
     | 
    
         
            -
              matchAs
         
     | 
| 
       937 
     | 
    
         
            -
            ) {
         
     | 
| 
       938 
     | 
    
         
            -
              var path = route.path;
         
     | 
| 
       939 
     | 
    
         
            -
              var name = route.name;
         
     | 
| 
       940 
     | 
    
         
            -
              assert(path != null, "\"path\" is required in a route configuration.")
         
     | 
| 
      
 1042 
     | 
    
         
            +
            var regexpCompileCache = Object.create(null)
         
     | 
| 
       941 
1043 
     | 
    
         | 
| 
       942 
     | 
    
         
            -
             
     | 
| 
       943 
     | 
    
         
            -
             
     | 
| 
       944 
     | 
    
         
            -
             
     | 
| 
       945 
     | 
    
         
            -
             
     | 
| 
       946 
     | 
    
         
            -
             
     | 
| 
       947 
     | 
    
         
            -
             
     | 
| 
       948 
     | 
    
         
            -
                 
     | 
| 
       949 
     | 
    
         
            -
             
     | 
| 
       950 
     | 
    
         
            -
             
     | 
| 
       951 
     | 
    
         
            -
                 
     | 
| 
      
 1044 
     | 
    
         
            +
            function fillParams (
         
     | 
| 
      
 1045 
     | 
    
         
            +
              path,
         
     | 
| 
      
 1046 
     | 
    
         
            +
              params,
         
     | 
| 
      
 1047 
     | 
    
         
            +
              routeMsg
         
     | 
| 
      
 1048 
     | 
    
         
            +
            ) {
         
     | 
| 
      
 1049 
     | 
    
         
            +
              try {
         
     | 
| 
      
 1050 
     | 
    
         
            +
                var filler =
         
     | 
| 
      
 1051 
     | 
    
         
            +
                  regexpCompileCache[path] ||
         
     | 
| 
      
 1052 
     | 
    
         
            +
                  (regexpCompileCache[path] = index.compile(path))
         
     | 
| 
      
 1053 
     | 
    
         
            +
                return filler(params || {}, { pretty: true })
         
     | 
| 
      
 1054 
     | 
    
         
            +
              } catch (e) {
         
     | 
| 
      
 1055 
     | 
    
         
            +
                if (process.env.NODE_ENV !== 'production') {
         
     | 
| 
      
 1056 
     | 
    
         
            +
                  warn(false, ("missing param for " + routeMsg + ": " + (e.message)))
         
     | 
| 
      
 1057 
     | 
    
         
            +
                }
         
     | 
| 
      
 1058 
     | 
    
         
            +
                return ''
         
     | 
| 
       952 
1059 
     | 
    
         
             
              }
         
     | 
| 
      
 1060 
     | 
    
         
            +
            }
         
     | 
| 
       953 
1061 
     | 
    
         | 
| 
       954 
     | 
    
         
            -
               
     | 
| 
       955 
     | 
    
         
            -
             
     | 
| 
       956 
     | 
    
         
            -
             
     | 
| 
       957 
     | 
    
         
            -
             
     | 
| 
       958 
     | 
    
         
            -
             
     | 
| 
       959 
     | 
    
         
            -
             
     | 
| 
       960 
     | 
    
         
            -
             
     | 
| 
       961 
     | 
    
         
            -
             
     | 
| 
      
 1062 
     | 
    
         
            +
            /*  */
         
     | 
| 
      
 1063 
     | 
    
         
            +
             
     | 
| 
      
 1064 
     | 
    
         
            +
            function normalizeLocation (
         
     | 
| 
      
 1065 
     | 
    
         
            +
              raw,
         
     | 
| 
      
 1066 
     | 
    
         
            +
              current,
         
     | 
| 
      
 1067 
     | 
    
         
            +
              append
         
     | 
| 
      
 1068 
     | 
    
         
            +
            ) {
         
     | 
| 
      
 1069 
     | 
    
         
            +
              var next = typeof raw === 'string' ? { path: raw } : raw
         
     | 
| 
      
 1070 
     | 
    
         
            +
              // named target
         
     | 
| 
      
 1071 
     | 
    
         
            +
              if (next.name || next._normalized) {
         
     | 
| 
      
 1072 
     | 
    
         
            +
                return next
         
     | 
| 
       962 
1073 
     | 
    
         
             
              }
         
     | 
| 
       963 
1074 
     | 
    
         | 
| 
       964 
     | 
    
         
            -
               
     | 
| 
       965 
     | 
    
         
            -
             
     | 
| 
       966 
     | 
    
         
            -
             
     | 
| 
       967 
     | 
    
         
            -
             
     | 
| 
       968 
     | 
    
         
            -
             
     | 
| 
       969 
     | 
    
         
            -
                 
     | 
| 
       970 
     | 
    
         
            -
                   
     | 
| 
      
 1075 
     | 
    
         
            +
              // relative params
         
     | 
| 
      
 1076 
     | 
    
         
            +
              if (!next.path && next.params && current) {
         
     | 
| 
      
 1077 
     | 
    
         
            +
                next = assign({}, next)
         
     | 
| 
      
 1078 
     | 
    
         
            +
                next._normalized = true
         
     | 
| 
      
 1079 
     | 
    
         
            +
                var params = assign(assign({}, current.params), next.params)
         
     | 
| 
      
 1080 
     | 
    
         
            +
                if (current.name) {
         
     | 
| 
      
 1081 
     | 
    
         
            +
                  next.name = current.name
         
     | 
| 
      
 1082 
     | 
    
         
            +
                  next.params = params
         
     | 
| 
      
 1083 
     | 
    
         
            +
                } else if (current.matched) {
         
     | 
| 
      
 1084 
     | 
    
         
            +
                  var rawPath = current.matched[current.matched.length - 1].path
         
     | 
| 
      
 1085 
     | 
    
         
            +
                  next.path = fillParams(rawPath, params, ("path " + (current.path)))
         
     | 
| 
      
 1086 
     | 
    
         
            +
                } else if (process.env.NODE_ENV !== 'production') {
         
     | 
| 
      
 1087 
     | 
    
         
            +
                  warn(false, "relative params navigation requires a current route.")
         
     | 
| 
       971 
1088 
     | 
    
         
             
                }
         
     | 
| 
      
 1089 
     | 
    
         
            +
                return next
         
     | 
| 
       972 
1090 
     | 
    
         
             
              }
         
     | 
| 
       973 
1091 
     | 
    
         | 
| 
       974 
     | 
    
         
            -
               
     | 
| 
       975 
     | 
    
         
            -
               
     | 
| 
      
 1092 
     | 
    
         
            +
              var parsedPath = parsePath(next.path || '')
         
     | 
| 
      
 1093 
     | 
    
         
            +
              var basePath = (current && current.path) || '/'
         
     | 
| 
      
 1094 
     | 
    
         
            +
              var path = parsedPath.path
         
     | 
| 
      
 1095 
     | 
    
         
            +
                ? resolvePath(parsedPath.path, basePath, append || next.append)
         
     | 
| 
      
 1096 
     | 
    
         
            +
                : (current && current.path) || '/'
         
     | 
| 
      
 1097 
     | 
    
         
            +
              var query = resolveQuery(parsedPath.query, next.query)
         
     | 
| 
      
 1098 
     | 
    
         
            +
              var hash = next.hash || parsedPath.hash
         
     | 
| 
      
 1099 
     | 
    
         
            +
              if (hash && hash.charAt(0) !== '#') {
         
     | 
| 
      
 1100 
     | 
    
         
            +
                hash = "#" + hash
         
     | 
| 
      
 1101 
     | 
    
         
            +
              }
         
     | 
| 
      
 1102 
     | 
    
         
            +
             
     | 
| 
      
 1103 
     | 
    
         
            +
              return {
         
     | 
| 
      
 1104 
     | 
    
         
            +
                _normalized: true,
         
     | 
| 
      
 1105 
     | 
    
         
            +
                path: path,
         
     | 
| 
      
 1106 
     | 
    
         
            +
                query: query,
         
     | 
| 
      
 1107 
     | 
    
         
            +
                hash: hash
         
     | 
| 
      
 1108 
     | 
    
         
            +
              }
         
     | 
| 
       976 
1109 
     | 
    
         
             
            }
         
     | 
| 
       977 
1110 
     | 
    
         | 
| 
       978 
     | 
    
         
            -
            function  
     | 
| 
       979 
     | 
    
         
            -
               
     | 
| 
       980 
     | 
    
         
            -
             
     | 
| 
       981 
     | 
    
         
            -
               
     | 
| 
       982 
     | 
    
         
            -
              return  
     | 
| 
      
 1111 
     | 
    
         
            +
            function assign (a, b) {
         
     | 
| 
      
 1112 
     | 
    
         
            +
              for (var key in b) {
         
     | 
| 
      
 1113 
     | 
    
         
            +
                a[key] = b[key]
         
     | 
| 
      
 1114 
     | 
    
         
            +
              }
         
     | 
| 
      
 1115 
     | 
    
         
            +
              return a
         
     | 
| 
       983 
1116 
     | 
    
         
             
            }
         
     | 
| 
       984 
1117 
     | 
    
         | 
| 
       985 
1118 
     | 
    
         
             
            /*  */
         
     | 
| 
       986 
1119 
     | 
    
         | 
| 
       987 
     | 
    
         
            -
            var regexpCache = Object.create(null)
         
     | 
| 
       988 
     | 
    
         
            -
             
     | 
| 
       989 
     | 
    
         
            -
            var regexpCompileCache = Object.create(null)
         
     | 
| 
       990 
     | 
    
         
            -
             
     | 
| 
       991 
1120 
     | 
    
         
             
            function createMatcher (routes) {
         
     | 
| 
       992 
1121 
     | 
    
         
             
              var ref = createRouteMap(routes);
         
     | 
| 
       993 
1122 
     | 
    
         
             
              var pathMap = ref.pathMap;
         
     | 
| 
         @@ -1003,6 +1132,22 @@ function createMatcher (routes) { 
     | 
|
| 
       1003 
1132 
     | 
    
         | 
| 
       1004 
1133 
     | 
    
         
             
                if (name) {
         
     | 
| 
       1005 
1134 
     | 
    
         
             
                  var record = nameMap[name]
         
     | 
| 
      
 1135 
     | 
    
         
            +
                  var paramNames = getRouteRegex(record.path).keys
         
     | 
| 
      
 1136 
     | 
    
         
            +
                    .filter(function (key) { return !key.optional; })
         
     | 
| 
      
 1137 
     | 
    
         
            +
                    .map(function (key) { return key.name; })
         
     | 
| 
      
 1138 
     | 
    
         
            +
             
     | 
| 
      
 1139 
     | 
    
         
            +
                  if (typeof location.params !== 'object') {
         
     | 
| 
      
 1140 
     | 
    
         
            +
                    location.params = {}
         
     | 
| 
      
 1141 
     | 
    
         
            +
                  }
         
     | 
| 
      
 1142 
     | 
    
         
            +
             
     | 
| 
      
 1143 
     | 
    
         
            +
                  if (currentRoute && typeof currentRoute.params === 'object') {
         
     | 
| 
      
 1144 
     | 
    
         
            +
                    for (var key in currentRoute.params) {
         
     | 
| 
      
 1145 
     | 
    
         
            +
                      if (!(key in location.params) && paramNames.indexOf(key) > -1) {
         
     | 
| 
      
 1146 
     | 
    
         
            +
                        location.params[key] = currentRoute.params[key]
         
     | 
| 
      
 1147 
     | 
    
         
            +
                      }
         
     | 
| 
      
 1148 
     | 
    
         
            +
                    }
         
     | 
| 
      
 1149 
     | 
    
         
            +
                  }
         
     | 
| 
      
 1150 
     | 
    
         
            +
             
     | 
| 
       1006 
1151 
     | 
    
         
             
                  if (record) {
         
     | 
| 
       1007 
1152 
     | 
    
         
             
                    location.path = fillParams(record.path, location.params, ("named route \"" + name + "\""))
         
     | 
| 
       1008 
1153 
     | 
    
         
             
                    return _createRoute(record, location, redirectedFrom)
         
     | 
| 
         @@ -1033,7 +1178,9 @@ function createMatcher (routes) { 
     | 
|
| 
       1033 
1178 
     | 
    
         
             
                }
         
     | 
| 
       1034 
1179 
     | 
    
         | 
| 
       1035 
1180 
     | 
    
         
             
                if (!redirect || typeof redirect !== 'object') {
         
     | 
| 
       1036 
     | 
    
         
            -
                   
     | 
| 
      
 1181 
     | 
    
         
            +
                  process.env.NODE_ENV !== 'production' && warn(
         
     | 
| 
      
 1182 
     | 
    
         
            +
                    false, ("invalid redirect option: " + (JSON.stringify(redirect)))
         
     | 
| 
      
 1183 
     | 
    
         
            +
                  )
         
     | 
| 
       1037 
1184 
     | 
    
         
             
                  return _createRoute(null, location)
         
     | 
| 
       1038 
1185 
     | 
    
         
             
                }
         
     | 
| 
       1039 
1186 
     | 
    
         | 
| 
         @@ -1050,7 +1197,9 @@ function createMatcher (routes) { 
     | 
|
| 
       1050 
1197 
     | 
    
         
             
                if (name) {
         
     | 
| 
       1051 
1198 
     | 
    
         
             
                  // resolved named direct
         
     | 
| 
       1052 
1199 
     | 
    
         
             
                  var targetRecord = nameMap[name]
         
     | 
| 
       1053 
     | 
    
         
            -
                   
     | 
| 
      
 1200 
     | 
    
         
            +
                  if (process.env.NODE_ENV !== 'production') {
         
     | 
| 
      
 1201 
     | 
    
         
            +
                    assert(targetRecord, ("redirect failed: named route \"" + name + "\" not found."))
         
     | 
| 
      
 1202 
     | 
    
         
            +
                  }
         
     | 
| 
       1054 
1203 
     | 
    
         
             
                  return match({
         
     | 
| 
       1055 
1204 
     | 
    
         
             
                    _normalized: true,
         
     | 
| 
       1056 
1205 
     | 
    
         
             
                    name: name,
         
     | 
| 
         @@ -1117,16 +1266,9 @@ function matchRoute ( 
     | 
|
| 
       1117 
1266 
     | 
    
         
             
              params,
         
     | 
| 
       1118 
1267 
     | 
    
         
             
              pathname
         
     | 
| 
       1119 
1268 
     | 
    
         
             
            ) {
         
     | 
| 
       1120 
     | 
    
         
            -
              var  
     | 
| 
       1121 
     | 
    
         
            -
              var  
     | 
| 
       1122 
     | 
    
         
            -
               
     | 
| 
       1123 
     | 
    
         
            -
                keys = hit.keys
         
     | 
| 
       1124 
     | 
    
         
            -
                regexp = hit.regexp
         
     | 
| 
       1125 
     | 
    
         
            -
              } else {
         
     | 
| 
       1126 
     | 
    
         
            -
                keys = []
         
     | 
| 
       1127 
     | 
    
         
            -
                regexp = index(path, keys)
         
     | 
| 
       1128 
     | 
    
         
            -
                regexpCache[path] = { keys: keys, regexp: regexp }
         
     | 
| 
       1129 
     | 
    
         
            -
              }
         
     | 
| 
      
 1269 
     | 
    
         
            +
              var ref = getRouteRegex(path);
         
     | 
| 
      
 1270 
     | 
    
         
            +
              var regexp = ref.regexp;
         
     | 
| 
      
 1271 
     | 
    
         
            +
              var keys = ref.keys;
         
     | 
| 
       1130 
1272 
     | 
    
         
             
              var m = pathname.match(regexp)
         
     | 
| 
       1131 
1273 
     | 
    
         | 
| 
       1132 
1274 
     | 
    
         
             
              if (!m) {
         
     | 
| 
         @@ -1144,22 +1286,6 @@ function matchRoute ( 
     | 
|
| 
       1144 
1286 
     | 
    
         
             
              return true
         
     | 
| 
       1145 
1287 
     | 
    
         
             
            }
         
     | 
| 
       1146 
1288 
     | 
    
         | 
| 
       1147 
     | 
    
         
            -
            function fillParams (
         
     | 
| 
       1148 
     | 
    
         
            -
              path,
         
     | 
| 
       1149 
     | 
    
         
            -
              params,
         
     | 
| 
       1150 
     | 
    
         
            -
              routeMsg
         
     | 
| 
       1151 
     | 
    
         
            -
            ) {
         
     | 
| 
       1152 
     | 
    
         
            -
              try {
         
     | 
| 
       1153 
     | 
    
         
            -
                var filler =
         
     | 
| 
       1154 
     | 
    
         
            -
                  regexpCompileCache[path] ||
         
     | 
| 
       1155 
     | 
    
         
            -
                  (regexpCompileCache[path] = index.compile(path))
         
     | 
| 
       1156 
     | 
    
         
            -
                return filler(params || {}, { pretty: true })
         
     | 
| 
       1157 
     | 
    
         
            -
              } catch (e) {
         
     | 
| 
       1158 
     | 
    
         
            -
                assert(false, ("missing param for " + routeMsg + ": " + (e.message)))
         
     | 
| 
       1159 
     | 
    
         
            -
                return ''
         
     | 
| 
       1160 
     | 
    
         
            -
              }
         
     | 
| 
       1161 
     | 
    
         
            -
            }
         
     | 
| 
       1162 
     | 
    
         
            -
             
     | 
| 
       1163 
1289 
     | 
    
         
             
            function resolveRecordPath (path, record) {
         
     | 
| 
       1164 
1290 
     | 
    
         
             
              return resolvePath(path, record.parent ? record.parent.path : '/', true)
         
     | 
| 
       1165 
1291 
     | 
    
         
             
            }
         
     | 
| 
         @@ -1217,24 +1343,25 @@ History.prototype.listen = function listen (cb) { 
     | 
|
| 
       1217 
1343 
     | 
    
         
             
              this.cb = cb
         
     | 
| 
       1218 
1344 
     | 
    
         
             
            };
         
     | 
| 
       1219 
1345 
     | 
    
         | 
| 
       1220 
     | 
    
         
            -
            History.prototype.transitionTo = function transitionTo (location,  
     | 
| 
      
 1346 
     | 
    
         
            +
            History.prototype.transitionTo = function transitionTo (location, onComplete, onAbort) {
         
     | 
| 
       1221 
1347 
     | 
    
         
             
                var this$1 = this;
         
     | 
| 
       1222 
1348 
     | 
    
         | 
| 
       1223 
1349 
     | 
    
         
             
              var route = this.router.match(location, this.current)
         
     | 
| 
       1224 
1350 
     | 
    
         
             
              this.confirmTransition(route, function () {
         
     | 
| 
       1225 
1351 
     | 
    
         
             
                this$1.updateRoute(route)
         
     | 
| 
       1226 
     | 
    
         
            -
                 
     | 
| 
      
 1352 
     | 
    
         
            +
                onComplete && onComplete(route)
         
     | 
| 
       1227 
1353 
     | 
    
         
             
                this$1.ensureURL()
         
     | 
| 
       1228 
     | 
    
         
            -
              })
         
     | 
| 
      
 1354 
     | 
    
         
            +
              }, onAbort)
         
     | 
| 
       1229 
1355 
     | 
    
         
             
            };
         
     | 
| 
       1230 
1356 
     | 
    
         | 
| 
       1231 
     | 
    
         
            -
            History.prototype.confirmTransition = function confirmTransition (route,  
     | 
| 
      
 1357 
     | 
    
         
            +
            History.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {
         
     | 
| 
       1232 
1358 
     | 
    
         
             
                var this$1 = this;
         
     | 
| 
       1233 
1359 
     | 
    
         | 
| 
       1234 
1360 
     | 
    
         
             
              var current = this.current
         
     | 
| 
      
 1361 
     | 
    
         
            +
              var abort = function () { onAbort && onAbort() }
         
     | 
| 
       1235 
1362 
     | 
    
         
             
              if (isSameRoute(route, current)) {
         
     | 
| 
       1236 
1363 
     | 
    
         
             
                this.ensureURL()
         
     | 
| 
       1237 
     | 
    
         
            -
                return
         
     | 
| 
      
 1364 
     | 
    
         
            +
                return abort()
         
     | 
| 
       1238 
1365 
     | 
    
         
             
              }
         
     | 
| 
       1239 
1366 
     | 
    
         | 
| 
       1240 
1367 
     | 
    
         
             
              var ref = resolveQueue(this.current.matched, route.matched);
         
     | 
| 
         @@ -1254,14 +1381,18 @@ History.prototype.confirmTransition = function confirmTransition (route, cb) { 
     | 
|
| 
       1254 
1381 
     | 
    
         | 
| 
       1255 
1382 
     | 
    
         
             
              this.pending = route
         
     | 
| 
       1256 
1383 
     | 
    
         
             
              var iterator = function (hook, next) {
         
     | 
| 
       1257 
     | 
    
         
            -
                if (this$1.pending !== route) { 
     | 
| 
      
 1384 
     | 
    
         
            +
                if (this$1.pending !== route) {
         
     | 
| 
      
 1385 
     | 
    
         
            +
                  return abort()
         
     | 
| 
      
 1386 
     | 
    
         
            +
                }
         
     | 
| 
       1258 
1387 
     | 
    
         
             
                hook(route, current, function (to) {
         
     | 
| 
       1259 
1388 
     | 
    
         
             
                  if (to === false) {
         
     | 
| 
       1260 
1389 
     | 
    
         
             
                    // next(false) -> abort navigation, ensure current URL
         
     | 
| 
       1261 
     | 
    
         
            -
                    this$1.ensureURL()
         
     | 
| 
      
 1390 
     | 
    
         
            +
                    this$1.ensureURL(true)
         
     | 
| 
      
 1391 
     | 
    
         
            +
                    abort()
         
     | 
| 
       1262 
1392 
     | 
    
         
             
                  } else if (typeof to === 'string' || typeof to === 'object') {
         
     | 
| 
       1263 
1393 
     | 
    
         
             
                    // next('/') or next({ path: '/' }) -> redirect
         
     | 
| 
       1264 
     | 
    
         
            -
                    this$1.push(to)
         
     | 
| 
      
 1394 
     | 
    
         
            +
                    (typeof to === 'object' && to.replace) ? this$1.replace(to) : this$1.push(to)
         
     | 
| 
      
 1395 
     | 
    
         
            +
                    abort()
         
     | 
| 
       1265 
1396 
     | 
    
         
             
                  } else {
         
     | 
| 
       1266 
1397 
     | 
    
         
             
                    // confirm transition and pass on the value
         
     | 
| 
       1267 
1398 
     | 
    
         
             
                    next(to)
         
     | 
| 
         @@ -1271,12 +1402,18 @@ History.prototype.confirmTransition = function confirmTransition (route, cb) { 
     | 
|
| 
       1271 
1402 
     | 
    
         | 
| 
       1272 
1403 
     | 
    
         
             
              runQueue(queue, iterator, function () {
         
     | 
| 
       1273 
1404 
     | 
    
         
             
                var postEnterCbs = []
         
     | 
| 
      
 1405 
     | 
    
         
            +
                var enterGuards = extractEnterGuards(activated, postEnterCbs, function () {
         
     | 
| 
      
 1406 
     | 
    
         
            +
                  return this$1.current === route
         
     | 
| 
      
 1407 
     | 
    
         
            +
                })
         
     | 
| 
       1274 
1408 
     | 
    
         
             
                // wait until async components are resolved before
         
     | 
| 
       1275 
1409 
     | 
    
         
             
                // extracting in-component enter guards
         
     | 
| 
       1276 
     | 
    
         
            -
                runQueue( 
     | 
| 
       1277 
     | 
    
         
            -
                  if (this$1.pending  
     | 
| 
       1278 
     | 
    
         
            -
                     
     | 
| 
       1279 
     | 
    
         
            -
             
     | 
| 
      
 1410 
     | 
    
         
            +
                runQueue(enterGuards, iterator, function () {
         
     | 
| 
      
 1411 
     | 
    
         
            +
                  if (this$1.pending !== route) {
         
     | 
| 
      
 1412 
     | 
    
         
            +
                    return abort()
         
     | 
| 
      
 1413 
     | 
    
         
            +
                  }
         
     | 
| 
      
 1414 
     | 
    
         
            +
                  this$1.pending = null
         
     | 
| 
      
 1415 
     | 
    
         
            +
                  onComplete(route)
         
     | 
| 
      
 1416 
     | 
    
         
            +
                  if (this$1.router.app) {
         
     | 
| 
       1280 
1417 
     | 
    
         
             
                    this$1.router.app.$nextTick(function () {
         
     | 
| 
       1281 
1418 
     | 
    
         
             
                      postEnterCbs.forEach(function (cb) { return cb(); })
         
     | 
| 
       1282 
1419 
     | 
    
         
             
                    })
         
     | 
| 
         @@ -1329,33 +1466,89 @@ function resolveQueue ( 
     | 
|
| 
       1329 
1466 
     | 
    
         
             
              }
         
     | 
| 
       1330 
1467 
     | 
    
         
             
            }
         
     | 
| 
       1331 
1468 
     | 
    
         | 
| 
      
 1469 
     | 
    
         
            +
            function extractGuard (
         
     | 
| 
      
 1470 
     | 
    
         
            +
              def,
         
     | 
| 
      
 1471 
     | 
    
         
            +
              key
         
     | 
| 
      
 1472 
     | 
    
         
            +
            ) {
         
     | 
| 
      
 1473 
     | 
    
         
            +
              if (typeof def !== 'function') {
         
     | 
| 
      
 1474 
     | 
    
         
            +
                // extend now so that global mixins are applied.
         
     | 
| 
      
 1475 
     | 
    
         
            +
                def = _Vue.extend(def)
         
     | 
| 
      
 1476 
     | 
    
         
            +
              }
         
     | 
| 
      
 1477 
     | 
    
         
            +
              return def.options[key]
         
     | 
| 
      
 1478 
     | 
    
         
            +
            }
         
     | 
| 
      
 1479 
     | 
    
         
            +
             
     | 
| 
       1332 
1480 
     | 
    
         
             
            function extractLeaveGuards (matched) {
         
     | 
| 
       1333 
     | 
    
         
            -
              return flatMapComponents(matched, function (def, instance) {
         
     | 
| 
       1334 
     | 
    
         
            -
                var guard = def  
     | 
| 
      
 1481 
     | 
    
         
            +
              return flatten(flatMapComponents(matched, function (def, instance) {
         
     | 
| 
      
 1482 
     | 
    
         
            +
                var guard = extractGuard(def, 'beforeRouteLeave')
         
     | 
| 
       1335 
1483 
     | 
    
         
             
                if (guard) {
         
     | 
| 
       1336 
     | 
    
         
            -
                  return  
     | 
| 
       1337 
     | 
    
         
            -
                     
     | 
| 
       1338 
     | 
    
         
            -
             
     | 
| 
      
 1484 
     | 
    
         
            +
                  return Array.isArray(guard)
         
     | 
| 
      
 1485 
     | 
    
         
            +
                    ? guard.map(function (guard) { return wrapLeaveGuard(guard, instance); })
         
     | 
| 
      
 1486 
     | 
    
         
            +
                    : wrapLeaveGuard(guard, instance)
         
     | 
| 
       1339 
1487 
     | 
    
         
             
                }
         
     | 
| 
       1340 
     | 
    
         
            -
              }).reverse()
         
     | 
| 
      
 1488 
     | 
    
         
            +
              }).reverse())
         
     | 
| 
       1341 
1489 
     | 
    
         
             
            }
         
     | 
| 
       1342 
1490 
     | 
    
         | 
| 
       1343 
     | 
    
         
            -
            function  
     | 
| 
       1344 
     | 
    
         
            -
               
     | 
| 
       1345 
     | 
    
         
            -
             
     | 
| 
      
 1491 
     | 
    
         
            +
            function wrapLeaveGuard (
         
     | 
| 
      
 1492 
     | 
    
         
            +
              guard,
         
     | 
| 
      
 1493 
     | 
    
         
            +
              instance
         
     | 
| 
      
 1494 
     | 
    
         
            +
            ) {
         
     | 
| 
      
 1495 
     | 
    
         
            +
              return function routeLeaveGuard () {
         
     | 
| 
      
 1496 
     | 
    
         
            +
                return guard.apply(instance, arguments)
         
     | 
| 
      
 1497 
     | 
    
         
            +
              }
         
     | 
| 
      
 1498 
     | 
    
         
            +
            }
         
     | 
| 
      
 1499 
     | 
    
         
            +
             
     | 
| 
      
 1500 
     | 
    
         
            +
            function extractEnterGuards (
         
     | 
| 
      
 1501 
     | 
    
         
            +
              matched,
         
     | 
| 
      
 1502 
     | 
    
         
            +
              cbs,
         
     | 
| 
      
 1503 
     | 
    
         
            +
              isValid
         
     | 
| 
      
 1504 
     | 
    
         
            +
            ) {
         
     | 
| 
      
 1505 
     | 
    
         
            +
              return flatten(flatMapComponents(matched, function (def, _, match, key) {
         
     | 
| 
      
 1506 
     | 
    
         
            +
                var guard = extractGuard(def, 'beforeRouteEnter')
         
     | 
| 
       1346 
1507 
     | 
    
         
             
                if (guard) {
         
     | 
| 
       1347 
     | 
    
         
            -
                  return  
     | 
| 
       1348 
     | 
    
         
            -
                    return guard 
     | 
| 
       1349 
     | 
    
         
            -
             
     | 
| 
       1350 
     | 
    
         
            -
             
     | 
| 
       1351 
     | 
    
         
            -
             
     | 
| 
       1352 
     | 
    
         
            -
             
     | 
| 
       1353 
     | 
    
         
            -
             
     | 
| 
       1354 
     | 
    
         
            -
             
     | 
| 
      
 1508 
     | 
    
         
            +
                  return Array.isArray(guard)
         
     | 
| 
      
 1509 
     | 
    
         
            +
                    ? guard.map(function (guard) { return wrapEnterGuard(guard, cbs, match, key, isValid); })
         
     | 
| 
      
 1510 
     | 
    
         
            +
                    : wrapEnterGuard(guard, cbs, match, key, isValid)
         
     | 
| 
      
 1511 
     | 
    
         
            +
                }
         
     | 
| 
      
 1512 
     | 
    
         
            +
              }))
         
     | 
| 
      
 1513 
     | 
    
         
            +
            }
         
     | 
| 
      
 1514 
     | 
    
         
            +
             
     | 
| 
      
 1515 
     | 
    
         
            +
            function wrapEnterGuard (
         
     | 
| 
      
 1516 
     | 
    
         
            +
              guard,
         
     | 
| 
      
 1517 
     | 
    
         
            +
              cbs,
         
     | 
| 
      
 1518 
     | 
    
         
            +
              match,
         
     | 
| 
      
 1519 
     | 
    
         
            +
              key,
         
     | 
| 
      
 1520 
     | 
    
         
            +
              isValid
         
     | 
| 
      
 1521 
     | 
    
         
            +
            ) {
         
     | 
| 
      
 1522 
     | 
    
         
            +
              return function routeEnterGuard (to, from, next) {
         
     | 
| 
      
 1523 
     | 
    
         
            +
                return guard(to, from, function (cb) {
         
     | 
| 
      
 1524 
     | 
    
         
            +
                  next(cb)
         
     | 
| 
      
 1525 
     | 
    
         
            +
                  if (typeof cb === 'function') {
         
     | 
| 
      
 1526 
     | 
    
         
            +
                    cbs.push(function () {
         
     | 
| 
      
 1527 
     | 
    
         
            +
                      // #750
         
     | 
| 
      
 1528 
     | 
    
         
            +
                      // if a router-view is wrapped with an out-in transition,
         
     | 
| 
      
 1529 
     | 
    
         
            +
                      // the instance may not have been registered at this time.
         
     | 
| 
      
 1530 
     | 
    
         
            +
                      // we will need to poll for registration until current route
         
     | 
| 
      
 1531 
     | 
    
         
            +
                      // is no longer valid.
         
     | 
| 
      
 1532 
     | 
    
         
            +
                      poll(cb, match.instances, key, isValid)
         
     | 
| 
       1355 
1533 
     | 
    
         
             
                    })
         
     | 
| 
       1356 
1534 
     | 
    
         
             
                  }
         
     | 
| 
       1357 
     | 
    
         
            -
                }
         
     | 
| 
       1358 
     | 
    
         
            -
              } 
     | 
| 
      
 1535 
     | 
    
         
            +
                })
         
     | 
| 
      
 1536 
     | 
    
         
            +
              }
         
     | 
| 
      
 1537 
     | 
    
         
            +
            }
         
     | 
| 
      
 1538 
     | 
    
         
            +
             
     | 
| 
      
 1539 
     | 
    
         
            +
            function poll (
         
     | 
| 
      
 1540 
     | 
    
         
            +
              cb, // somehow flow cannot infer this is a function
         
     | 
| 
      
 1541 
     | 
    
         
            +
              instances,
         
     | 
| 
      
 1542 
     | 
    
         
            +
              key,
         
     | 
| 
      
 1543 
     | 
    
         
            +
              isValid
         
     | 
| 
      
 1544 
     | 
    
         
            +
            ) {
         
     | 
| 
      
 1545 
     | 
    
         
            +
              if (instances[key]) {
         
     | 
| 
      
 1546 
     | 
    
         
            +
                cb(instances[key])
         
     | 
| 
      
 1547 
     | 
    
         
            +
              } else if (isValid()) {
         
     | 
| 
      
 1548 
     | 
    
         
            +
                setTimeout(function () {
         
     | 
| 
      
 1549 
     | 
    
         
            +
                  poll(cb, instances, key, isValid)
         
     | 
| 
      
 1550 
     | 
    
         
            +
                }, 16)
         
     | 
| 
      
 1551 
     | 
    
         
            +
              }
         
     | 
| 
       1359 
1552 
     | 
    
         
             
            }
         
     | 
| 
       1360 
1553 
     | 
    
         | 
| 
       1361 
1554 
     | 
    
         
             
            function resolveAsyncComponents (matched) {
         
     | 
| 
         @@ -1390,7 +1583,7 @@ function flatMapComponents ( 
     | 
|
| 
       1390 
1583 
     | 
    
         
             
              matched,
         
     | 
| 
       1391 
1584 
     | 
    
         
             
              fn
         
     | 
| 
       1392 
1585 
     | 
    
         
             
            ) {
         
     | 
| 
       1393 
     | 
    
         
            -
              return  
     | 
| 
      
 1586 
     | 
    
         
            +
              return flatten(matched.map(function (m) {
         
     | 
| 
       1394 
1587 
     | 
    
         
             
                return Object.keys(m.components).map(function (key) { return fn(
         
     | 
| 
       1395 
1588 
     | 
    
         
             
                  m.components[key],
         
     | 
| 
       1396 
1589 
     | 
    
         
             
                  m.instances[key],
         
     | 
| 
         @@ -1399,19 +1592,25 @@ function flatMapComponents ( 
     | 
|
| 
       1399 
1592 
     | 
    
         
             
              }))
         
     | 
| 
       1400 
1593 
     | 
    
         
             
            }
         
     | 
| 
       1401 
1594 
     | 
    
         | 
| 
      
 1595 
     | 
    
         
            +
            function flatten (arr) {
         
     | 
| 
      
 1596 
     | 
    
         
            +
              return Array.prototype.concat.apply([], arr)
         
     | 
| 
      
 1597 
     | 
    
         
            +
            }
         
     | 
| 
      
 1598 
     | 
    
         
            +
             
     | 
| 
       1402 
1599 
     | 
    
         
             
            /*  */
         
     | 
| 
       1403 
1600 
     | 
    
         | 
| 
      
 1601 
     | 
    
         
            +
            var positionStore = Object.create(null)
         
     | 
| 
      
 1602 
     | 
    
         
            +
             
     | 
| 
       1404 
1603 
     | 
    
         
             
            function saveScrollPosition (key) {
         
     | 
| 
       1405 
1604 
     | 
    
         
             
              if (!key) { return }
         
     | 
| 
       1406 
     | 
    
         
            -
               
     | 
| 
      
 1605 
     | 
    
         
            +
              positionStore[key] = {
         
     | 
| 
       1407 
1606 
     | 
    
         
             
                x: window.pageXOffset,
         
     | 
| 
       1408 
1607 
     | 
    
         
             
                y: window.pageYOffset
         
     | 
| 
       1409 
     | 
    
         
            -
              } 
     | 
| 
      
 1608 
     | 
    
         
            +
              }
         
     | 
| 
       1410 
1609 
     | 
    
         
             
            }
         
     | 
| 
       1411 
1610 
     | 
    
         | 
| 
       1412 
1611 
     | 
    
         
             
            function getScrollPosition (key) {
         
     | 
| 
       1413 
1612 
     | 
    
         
             
              if (!key) { return }
         
     | 
| 
       1414 
     | 
    
         
            -
              return  
     | 
| 
      
 1613 
     | 
    
         
            +
              return positionStore[key]
         
     | 
| 
       1415 
1614 
     | 
    
         
             
            }
         
     | 
| 
       1416 
1615 
     | 
    
         | 
| 
       1417 
1616 
     | 
    
         
             
            function getElementPosition (el) {
         
     | 
| 
         @@ -1450,8 +1649,6 @@ var HTML5History = (function (History) { 
     | 
|
| 
       1450 
1649 
     | 
    
         | 
| 
       1451 
1650 
     | 
    
         
             
                History.call(this, router, base)
         
     | 
| 
       1452 
1651 
     | 
    
         | 
| 
       1453 
     | 
    
         
            -
                this.transitionTo(getLocation(this.base))
         
     | 
| 
       1454 
     | 
    
         
            -
             
     | 
| 
       1455 
1652 
     | 
    
         
             
                var expectScroll = router.options.scrollBehavior
         
     | 
| 
       1456 
1653 
     | 
    
         
             
                window.addEventListener('popstate', function (e) {
         
     | 
| 
       1457 
1654 
     | 
    
         
             
                  _key = e.state && e.state.key
         
     | 
| 
         @@ -1498,9 +1695,10 @@ var HTML5History = (function (History) { 
     | 
|
| 
       1498 
1695 
     | 
    
         
             
                })
         
     | 
| 
       1499 
1696 
     | 
    
         
             
              };
         
     | 
| 
       1500 
1697 
     | 
    
         | 
| 
       1501 
     | 
    
         
            -
              HTML5History.prototype.ensureURL = function ensureURL () {
         
     | 
| 
      
 1698 
     | 
    
         
            +
              HTML5History.prototype.ensureURL = function ensureURL (push) {
         
     | 
| 
       1502 
1699 
     | 
    
         
             
                if (getLocation(this.base) !== this.current.fullPath) {
         
     | 
| 
       1503 
     | 
    
         
            -
                   
     | 
| 
      
 1700 
     | 
    
         
            +
                  var current = cleanPath(this.base + this.current.fullPath)
         
     | 
| 
      
 1701 
     | 
    
         
            +
                  push ? pushState(current) : replaceState(current)
         
     | 
| 
       1504 
1702 
     | 
    
         
             
                }
         
     | 
| 
       1505 
1703 
     | 
    
         
             
              };
         
     | 
| 
       1506 
1704 
     | 
    
         | 
| 
         @@ -1514,7 +1712,9 @@ var HTML5History = (function (History) { 
     | 
|
| 
       1514 
1712 
     | 
    
         
             
                if (!behavior) {
         
     | 
| 
       1515 
1713 
     | 
    
         
             
                  return
         
     | 
| 
       1516 
1714 
     | 
    
         
             
                }
         
     | 
| 
       1517 
     | 
    
         
            -
                 
     | 
| 
      
 1715 
     | 
    
         
            +
                if (process.env.NODE_ENV !== 'production') {
         
     | 
| 
      
 1716 
     | 
    
         
            +
                  assert(typeof behavior === 'function', "scrollBehavior must be a function")
         
     | 
| 
      
 1717 
     | 
    
         
            +
                }
         
     | 
| 
       1518 
1718 
     | 
    
         | 
| 
       1519 
1719 
     | 
    
         
             
                // wait until re-render finishes before scrolling
         
     | 
| 
       1520 
1720 
     | 
    
         
             
                router.app.$nextTick(function () {
         
     | 
| 
         @@ -1578,21 +1778,12 @@ function replaceState (url) { 
     | 
|
| 
       1578 
1778 
     | 
    
         | 
| 
       1579 
1779 
     | 
    
         
             
            var HashHistory = (function (History) {
         
     | 
| 
       1580 
1780 
     | 
    
         
             
              function HashHistory (router, base, fallback) {
         
     | 
| 
       1581 
     | 
    
         
            -
                var this$1 = this;
         
     | 
| 
       1582 
     | 
    
         
            -
             
     | 
| 
       1583 
1781 
     | 
    
         
             
                History.call(this, router, base)
         
     | 
| 
       1584 
     | 
    
         
            -
             
     | 
| 
       1585 
1782 
     | 
    
         
             
                // check history fallback deeplinking
         
     | 
| 
       1586 
1783 
     | 
    
         
             
                if (fallback && this.checkFallback()) {
         
     | 
| 
       1587 
1784 
     | 
    
         
             
                  return
         
     | 
| 
       1588 
1785 
     | 
    
         
             
                }
         
     | 
| 
       1589 
     | 
    
         
            -
             
     | 
| 
       1590 
1786 
     | 
    
         
             
                ensureSlash()
         
     | 
| 
       1591 
     | 
    
         
            -
                this.transitionTo(getHash())
         
     | 
| 
       1592 
     | 
    
         
            -
             
     | 
| 
       1593 
     | 
    
         
            -
                window.addEventListener('hashchange', function () {
         
     | 
| 
       1594 
     | 
    
         
            -
                  this$1.onHashChange()
         
     | 
| 
       1595 
     | 
    
         
            -
                })
         
     | 
| 
       1596 
1787 
     | 
    
         
             
              }
         
     | 
| 
       1597 
1788 
     | 
    
         | 
| 
       1598 
1789 
     | 
    
         
             
              if ( History ) HashHistory.__proto__ = History;
         
     | 
| 
         @@ -1619,13 +1810,13 @@ var HashHistory = (function (History) { 
     | 
|
| 
       1619 
1810 
     | 
    
         
             
              };
         
     | 
| 
       1620 
1811 
     | 
    
         | 
| 
       1621 
1812 
     | 
    
         
             
              HashHistory.prototype.push = function push (location) {
         
     | 
| 
       1622 
     | 
    
         
            -
                 
     | 
| 
      
 1813 
     | 
    
         
            +
                this.transitionTo(location, function (route) {
         
     | 
| 
       1623 
1814 
     | 
    
         
             
                  pushHash(route.fullPath)
         
     | 
| 
       1624 
1815 
     | 
    
         
             
                })
         
     | 
| 
       1625 
1816 
     | 
    
         
             
              };
         
     | 
| 
       1626 
1817 
     | 
    
         | 
| 
       1627 
1818 
     | 
    
         
             
              HashHistory.prototype.replace = function replace (location) {
         
     | 
| 
       1628 
     | 
    
         
            -
                 
     | 
| 
      
 1819 
     | 
    
         
            +
                this.transitionTo(location, function (route) {
         
     | 
| 
       1629 
1820 
     | 
    
         
             
                  replaceHash(route.fullPath)
         
     | 
| 
       1630 
1821 
     | 
    
         
             
                })
         
     | 
| 
       1631 
1822 
     | 
    
         
             
              };
         
     | 
| 
         @@ -1634,9 +1825,10 @@ var HashHistory = (function (History) { 
     | 
|
| 
       1634 
1825 
     | 
    
         
             
                window.history.go(n)
         
     | 
| 
       1635 
1826 
     | 
    
         
             
              };
         
     | 
| 
       1636 
1827 
     | 
    
         | 
| 
       1637 
     | 
    
         
            -
              HashHistory.prototype.ensureURL = function ensureURL () {
         
     | 
| 
       1638 
     | 
    
         
            -
                 
     | 
| 
       1639 
     | 
    
         
            -
             
     | 
| 
      
 1828 
     | 
    
         
            +
              HashHistory.prototype.ensureURL = function ensureURL (push) {
         
     | 
| 
      
 1829 
     | 
    
         
            +
                var current = this.current.fullPath
         
     | 
| 
      
 1830 
     | 
    
         
            +
                if (getHash() !== current) {
         
     | 
| 
      
 1831 
     | 
    
         
            +
                  push ? pushHash(current) : replaceHash(current)
         
     | 
| 
       1640 
1832 
     | 
    
         
             
                }
         
     | 
| 
       1641 
1833 
     | 
    
         
             
              };
         
     | 
| 
       1642 
1834 
     | 
    
         | 
| 
         @@ -1678,7 +1870,7 @@ var AbstractHistory = (function (History) { 
     | 
|
| 
       1678 
1870 
     | 
    
         
             
              function AbstractHistory (router) {
         
     | 
| 
       1679 
1871 
     | 
    
         
             
                History.call(this, router)
         
     | 
| 
       1680 
1872 
     | 
    
         
             
                this.stack = []
         
     | 
| 
       1681 
     | 
    
         
            -
                this.index =  
     | 
| 
      
 1873 
     | 
    
         
            +
                this.index = -1
         
     | 
| 
       1682 
1874 
     | 
    
         
             
              }
         
     | 
| 
       1683 
1875 
     | 
    
         | 
| 
       1684 
1876 
     | 
    
         
             
              if ( History ) AbstractHistory.__proto__ = History;
         
     | 
| 
         @@ -1688,7 +1880,7 @@ var AbstractHistory = (function (History) { 
     | 
|
| 
       1688 
1880 
     | 
    
         
             
              AbstractHistory.prototype.push = function push (location) {
         
     | 
| 
       1689 
1881 
     | 
    
         
             
                var this$1 = this;
         
     | 
| 
       1690 
1882 
     | 
    
         | 
| 
       1691 
     | 
    
         
            -
                 
     | 
| 
      
 1883 
     | 
    
         
            +
                this.transitionTo(location, function (route) {
         
     | 
| 
       1692 
1884 
     | 
    
         
             
                  this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route)
         
     | 
| 
       1693 
1885 
     | 
    
         
             
                  this$1.index++
         
     | 
| 
       1694 
1886 
     | 
    
         
             
                })
         
     | 
| 
         @@ -1697,7 +1889,7 @@ var AbstractHistory = (function (History) { 
     | 
|
| 
       1697 
1889 
     | 
    
         
             
              AbstractHistory.prototype.replace = function replace (location) {
         
     | 
| 
       1698 
1890 
     | 
    
         
             
                var this$1 = this;
         
     | 
| 
       1699 
1891 
     | 
    
         | 
| 
       1700 
     | 
    
         
            -
                 
     | 
| 
      
 1892 
     | 
    
         
            +
                this.transitionTo(location, function (route) {
         
     | 
| 
       1701 
1893 
     | 
    
         
             
                  this$1.stack = this$1.stack.slice(0, this$1.index).concat(route)
         
     | 
| 
       1702 
1894 
     | 
    
         
             
                })
         
     | 
| 
       1703 
1895 
     | 
    
         
             
              };
         
     | 
| 
         @@ -1709,10 +1901,10 @@ var AbstractHistory = (function (History) { 
     | 
|
| 
       1709 
1901 
     | 
    
         
             
                if (targetIndex < 0 || targetIndex >= this.stack.length) {
         
     | 
| 
       1710 
1902 
     | 
    
         
             
                  return
         
     | 
| 
       1711 
1903 
     | 
    
         
             
                }
         
     | 
| 
       1712 
     | 
    
         
            -
                var  
     | 
| 
       1713 
     | 
    
         
            -
                this.confirmTransition( 
     | 
| 
      
 1904 
     | 
    
         
            +
                var route = this.stack[targetIndex]
         
     | 
| 
      
 1905 
     | 
    
         
            +
                this.confirmTransition(route, function () {
         
     | 
| 
       1714 
1906 
     | 
    
         
             
                  this$1.index = targetIndex
         
     | 
| 
       1715 
     | 
    
         
            -
                  this$1.updateRoute( 
     | 
| 
      
 1907 
     | 
    
         
            +
                  this$1.updateRoute(route)
         
     | 
| 
       1716 
1908 
     | 
    
         
             
                })
         
     | 
| 
       1717 
1909 
     | 
    
         
             
              };
         
     | 
| 
       1718 
1910 
     | 
    
         | 
| 
         @@ -1743,6 +1935,20 @@ var VueRouter = function VueRouter (options) { 
     | 
|
| 
       1743 
1935 
     | 
    
         
             
                mode = 'abstract'
         
     | 
| 
       1744 
1936 
     | 
    
         
             
              }
         
     | 
| 
       1745 
1937 
     | 
    
         
             
              this.mode = mode
         
     | 
| 
      
 1938 
     | 
    
         
            +
             
     | 
| 
      
 1939 
     | 
    
         
            +
              switch (mode) {
         
     | 
| 
      
 1940 
     | 
    
         
            +
                case 'history':
         
     | 
| 
      
 1941 
     | 
    
         
            +
                  this.history = new HTML5History(this, options.base)
         
     | 
| 
      
 1942 
     | 
    
         
            +
                  break
         
     | 
| 
      
 1943 
     | 
    
         
            +
                case 'hash':
         
     | 
| 
      
 1944 
     | 
    
         
            +
                  this.history = new HashHistory(this, options.base, this.fallback)
         
     | 
| 
      
 1945 
     | 
    
         
            +
                  break
         
     | 
| 
      
 1946 
     | 
    
         
            +
                case 'abstract':
         
     | 
| 
      
 1947 
     | 
    
         
            +
                  this.history = new AbstractHistory(this)
         
     | 
| 
      
 1948 
     | 
    
         
            +
                  break
         
     | 
| 
      
 1949 
     | 
    
         
            +
                default:
         
     | 
| 
      
 1950 
     | 
    
         
            +
                  process.env.NODE_ENV !== 'production' && assert(false, ("invalid mode: " + mode))
         
     | 
| 
      
 1951 
     | 
    
         
            +
              }
         
     | 
| 
       1746 
1952 
     | 
    
         
             
            };
         
     | 
| 
       1747 
1953 
     | 
    
         | 
| 
       1748 
1954 
     | 
    
         
             
            var prototypeAccessors = { currentRoute: {} };
         
     | 
| 
         @@ -1754,7 +1960,7 @@ prototypeAccessors.currentRoute.get = function () { 
     | 
|
| 
       1754 
1960 
     | 
    
         
             
            VueRouter.prototype.init = function init (app /* Vue component instance */) {
         
     | 
| 
       1755 
1961 
     | 
    
         
             
                var this$1 = this;
         
     | 
| 
       1756 
1962 
     | 
    
         | 
| 
       1757 
     | 
    
         
            -
              assert(
         
     | 
| 
      
 1963 
     | 
    
         
            +
              process.env.NODE_ENV !== 'production' && assert(
         
     | 
| 
       1758 
1964 
     | 
    
         
             
                install.installed,
         
     | 
| 
       1759 
1965 
     | 
    
         
             
                "not installed. Make sure to call `Vue.use(VueRouter)` " +
         
     | 
| 
       1760 
1966 
     | 
    
         
             
                "before creating root instance."
         
     | 
| 
         @@ -1762,25 +1968,20 @@ VueRouter.prototype.init = function init (app /* Vue component instance */) { 
     | 
|
| 
       1762 
1968 
     | 
    
         | 
| 
       1763 
1969 
     | 
    
         
             
              this.app = app
         
     | 
| 
       1764 
1970 
     | 
    
         | 
| 
       1765 
     | 
    
         
            -
              var  
     | 
| 
       1766 
     | 
    
         
            -
             
     | 
| 
       1767 
     | 
    
         
            -
             
     | 
| 
       1768 
     | 
    
         
            -
                 
     | 
| 
       1769 
     | 
    
         
            -
               
     | 
| 
       1770 
     | 
    
         
            -
                 
     | 
| 
       1771 
     | 
    
         
            -
                   
     | 
| 
       1772 
     | 
    
         
            -
             
     | 
| 
       1773 
     | 
    
         
            -
             
     | 
| 
       1774 
     | 
    
         
            -
             
     | 
| 
       1775 
     | 
    
         
            -
             
     | 
| 
       1776 
     | 
    
         
            -
                case 'abstract':
         
     | 
| 
       1777 
     | 
    
         
            -
                  this.history = new AbstractHistory(this)
         
     | 
| 
       1778 
     | 
    
         
            -
                  break
         
     | 
| 
       1779 
     | 
    
         
            -
                default:
         
     | 
| 
       1780 
     | 
    
         
            -
                  assert(false, ("invalid mode: " + mode))
         
     | 
| 
      
 1971 
     | 
    
         
            +
              var history = this.history
         
     | 
| 
      
 1972 
     | 
    
         
            +
             
     | 
| 
      
 1973 
     | 
    
         
            +
              if (history instanceof HTML5History) {
         
     | 
| 
      
 1974 
     | 
    
         
            +
                history.transitionTo(getLocation(history.base))
         
     | 
| 
      
 1975 
     | 
    
         
            +
              } else if (history instanceof HashHistory) {
         
     | 
| 
      
 1976 
     | 
    
         
            +
                var setupHashListener = function () {
         
     | 
| 
      
 1977 
     | 
    
         
            +
                  window.addEventListener('hashchange', function () {
         
     | 
| 
      
 1978 
     | 
    
         
            +
                    history.onHashChange()
         
     | 
| 
      
 1979 
     | 
    
         
            +
                  })
         
     | 
| 
      
 1980 
     | 
    
         
            +
                }
         
     | 
| 
      
 1981 
     | 
    
         
            +
                history.transitionTo(getHash(), setupHashListener, setupHashListener)
         
     | 
| 
       1781 
1982 
     | 
    
         
             
              }
         
     | 
| 
       1782 
1983 
     | 
    
         | 
| 
       1783 
     | 
    
         
            -
               
     | 
| 
      
 1984 
     | 
    
         
            +
              history.listen(function (route) {
         
     | 
| 
       1784 
1985 
     | 
    
         
             
                this$1.app._route = route
         
     | 
| 
       1785 
1986 
     | 
    
         
             
              })
         
     | 
| 
       1786 
1987 
     | 
    
         
             
            };
         
     | 
| 
         @@ -1813,25 +2014,49 @@ VueRouter.prototype.forward = function forward () { 
     | 
|
| 
       1813 
2014 
     | 
    
         
             
              this.go(1)
         
     | 
| 
       1814 
2015 
     | 
    
         
             
            };
         
     | 
| 
       1815 
2016 
     | 
    
         | 
| 
       1816 
     | 
    
         
            -
            VueRouter.prototype.getMatchedComponents = function getMatchedComponents () {
         
     | 
| 
       1817 
     | 
    
         
            -
               
     | 
| 
      
 2017 
     | 
    
         
            +
            VueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {
         
     | 
| 
      
 2018 
     | 
    
         
            +
              var route = to
         
     | 
| 
      
 2019 
     | 
    
         
            +
                ? this.resolve(to).resolved
         
     | 
| 
      
 2020 
     | 
    
         
            +
                : this.currentRoute
         
     | 
| 
      
 2021 
     | 
    
         
            +
              if (!route) {
         
     | 
| 
       1818 
2022 
     | 
    
         
             
                return []
         
     | 
| 
       1819 
2023 
     | 
    
         
             
              }
         
     | 
| 
       1820 
     | 
    
         
            -
              return [].concat.apply([],  
     | 
| 
      
 2024 
     | 
    
         
            +
              return [].concat.apply([], route.matched.map(function (m) {
         
     | 
| 
       1821 
2025 
     | 
    
         
             
                return Object.keys(m.components).map(function (key) {
         
     | 
| 
       1822 
2026 
     | 
    
         
             
                  return m.components[key]
         
     | 
| 
       1823 
2027 
     | 
    
         
             
                })
         
     | 
| 
       1824 
2028 
     | 
    
         
             
              }))
         
     | 
| 
       1825 
2029 
     | 
    
         
             
            };
         
     | 
| 
       1826 
2030 
     | 
    
         | 
| 
      
 2031 
     | 
    
         
            +
            VueRouter.prototype.resolve = function resolve (
         
     | 
| 
      
 2032 
     | 
    
         
            +
              to,
         
     | 
| 
      
 2033 
     | 
    
         
            +
              current,
         
     | 
| 
      
 2034 
     | 
    
         
            +
              append
         
     | 
| 
      
 2035 
     | 
    
         
            +
            ) {
         
     | 
| 
      
 2036 
     | 
    
         
            +
              var normalizedTo = normalizeLocation(to, current || this.history.current, append)
         
     | 
| 
      
 2037 
     | 
    
         
            +
              var resolved = this.match(normalizedTo, current)
         
     | 
| 
      
 2038 
     | 
    
         
            +
              var fullPath = resolved.redirectedFrom || resolved.fullPath
         
     | 
| 
      
 2039 
     | 
    
         
            +
              var base = this.history.base
         
     | 
| 
      
 2040 
     | 
    
         
            +
              var href = createHref(base, fullPath, this.mode)
         
     | 
| 
      
 2041 
     | 
    
         
            +
              return {
         
     | 
| 
      
 2042 
     | 
    
         
            +
                normalizedTo: normalizedTo,
         
     | 
| 
      
 2043 
     | 
    
         
            +
                resolved: resolved,
         
     | 
| 
      
 2044 
     | 
    
         
            +
                href: href
         
     | 
| 
      
 2045 
     | 
    
         
            +
              }
         
     | 
| 
      
 2046 
     | 
    
         
            +
            };
         
     | 
| 
      
 2047 
     | 
    
         
            +
             
     | 
| 
       1827 
2048 
     | 
    
         
             
            Object.defineProperties( VueRouter.prototype, prototypeAccessors );
         
     | 
| 
       1828 
2049 
     | 
    
         | 
| 
       1829 
     | 
    
         
            -
             
     | 
| 
      
 2050 
     | 
    
         
            +
            function createHref (base, fullPath, mode) {
         
     | 
| 
      
 2051 
     | 
    
         
            +
              var path = mode === 'hash' ? '#' + fullPath : fullPath
         
     | 
| 
      
 2052 
     | 
    
         
            +
              return base ? cleanPath(base + '/' + path) : path
         
     | 
| 
      
 2053 
     | 
    
         
            +
            }
         
     | 
| 
      
 2054 
     | 
    
         
            +
             
     | 
| 
      
 2055 
     | 
    
         
            +
            VueRouter.install = install;
         
     | 
| 
      
 2056 
     | 
    
         
            +
            VueRouter.version = 'v2.1.1'
         
     | 
| 
       1830 
2057 
     | 
    
         | 
| 
       1831 
2058 
     | 
    
         
             
            if (inBrowser && window.Vue) {
         
     | 
| 
       1832 
2059 
     | 
    
         
             
              window.Vue.use(VueRouter)
         
     | 
| 
       1833 
2060 
     | 
    
         
             
            }
         
     | 
| 
       1834 
2061 
     | 
    
         | 
| 
       1835 
     | 
    
         
            -
             
     | 
| 
       1836 
     | 
    
         
            -
             
     | 
| 
       1837 
     | 
    
         
            -
            })));
         
     | 
| 
      
 2062 
     | 
    
         
            +
            module.exports = VueRouter;
         
     |