%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 18.117.188.67
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/ui/vue/router/dist/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/ui/vue/router/dist/vue.router.bitrix.bundle.js.map
{"version":3,"file":"vue.router.bitrix.bundle.js","sources":["../src/router.js","../src/vue.router.bitrix.js"],"sourcesContent":["/*!\n  * vue-router v3.4.8\n  * (c) 2020 Evan You\n  * @license MIT\n  */\n\n/**\n * Modify list for integration with Bitrix Framework:\n * - removed integration with third-party package builders;\n * - replaced usages window.Vue to local value of Vue;\n * - add import & export for work in Bitrix CoreJS extensions;\n *\n * Original file see: https://github.com/vuejs/vue-router/blob/dev/dist/vue-router.js\n */\n\nimport {VueVendor as Vue} from \"ui.vue\";\n\nlet VueRouterVendor;\nif (typeof exports !== 'undefined' && typeof exports.VueRouter !== 'undefined')\n{\n  var currentVersion = '3.4.8';\n  if (exports.VueRouterVendor.version != currentVersion)\n  {\n    console.warn('BX.VueRouter already loaded. Loaded: ' + exports.VueRouterVendor.version + ', Skipped: '+currentVersion);\n  }\n  VueRouterVendor = exports.VueRouterVendor;\n}\nelse\n{\n\n  function assert (condition, message) {\n    if (!condition) {\n      throw new Error((\"[vue-router] \" + message))\n    }\n  }\n\n  function warn (condition, message) {\n    if ( !condition) {\n      typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n    }\n  }\n\n  function extend (a, b) {\n    for (var key in b) {\n      a[key] = b[key];\n    }\n    return a\n  }\n\n  /*  */\n\n  var encodeReserveRE = /[!'()*]/g;\n  var encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\n  var commaRE = /%2C/g;\n\n  // fixed encodeURIComponent which is more conformant to RFC3986:\n  // - escapes [!'()*]\n  // - preserve commas\n  var encode = function (str) { return encodeURIComponent(str)\n      .replace(encodeReserveRE, encodeReserveReplacer)\n      .replace(commaRE, ','); };\n\n  function decode (str) {\n    try {\n      return decodeURIComponent(str)\n    } catch (err) {\n      {\n        warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n      }\n    }\n    return str\n  }\n\n  function resolveQuery (\n    query,\n    extraQuery,\n    _parseQuery\n  ) {\n    if ( extraQuery === void 0 ) extraQuery = {};\n\n    var parse = _parseQuery || parseQuery;\n    var parsedQuery;\n    try {\n      parsedQuery = parse(query || '');\n    } catch (e) {\n       warn(false, e.message);\n      parsedQuery = {};\n    }\n    for (var key in extraQuery) {\n      var value = extraQuery[key];\n      parsedQuery[key] = Array.isArray(value)\n        ? value.map(castQueryParamValue)\n        : castQueryParamValue(value);\n    }\n    return parsedQuery\n  }\n\n  var castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\n  function parseQuery (query) {\n    var res = {};\n\n    query = query.trim().replace(/^(\\?|#|&)/, '');\n\n    if (!query) {\n      return res\n    }\n\n    query.split('&').forEach(function (param) {\n      var parts = param.replace(/\\+/g, ' ').split('=');\n      var key = decode(parts.shift());\n      var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n      if (res[key] === undefined) {\n        res[key] = val;\n      } else if (Array.isArray(res[key])) {\n        res[key].push(val);\n      } else {\n        res[key] = [res[key], val];\n      }\n    });\n\n    return res\n  }\n\n  function stringifyQuery (obj) {\n    var res = obj\n      ? Object.keys(obj)\n        .map(function (key) {\n          var val = obj[key];\n\n          if (val === undefined) {\n            return ''\n          }\n\n          if (val === null) {\n            return encode(key)\n          }\n\n          if (Array.isArray(val)) {\n            var result = [];\n            val.forEach(function (val2) {\n              if (val2 === undefined) {\n                return\n              }\n              if (val2 === null) {\n                result.push(encode(key));\n              } else {\n                result.push(encode(key) + '=' + encode(val2));\n              }\n            });\n            return result.join('&')\n          }\n\n          return encode(key) + '=' + encode(val)\n        })\n        .filter(function (x) { return x.length > 0; })\n        .join('&')\n      : null;\n    return res ? (\"?\" + res) : ''\n  }\n\n  /*  */\n\n  var trailingSlashRE = /\\/?$/;\n\n  function createRoute (\n    record,\n    location,\n    redirectedFrom,\n    router\n  ) {\n    var stringifyQuery = router && router.options.stringifyQuery;\n\n    var query = location.query || {};\n    try {\n      query = clone(query);\n    } catch (e) {}\n\n    var route = {\n      name: location.name || (record && record.name),\n      meta: (record && record.meta) || {},\n      path: location.path || '/',\n      hash: location.hash || '',\n      query: query,\n      params: location.params || {},\n      fullPath: getFullPath(location, stringifyQuery),\n      matched: record ? formatMatch(record) : []\n    };\n    if (redirectedFrom) {\n      route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n    }\n    return Object.freeze(route)\n  }\n\n  function clone (value) {\n    if (Array.isArray(value)) {\n      return value.map(clone)\n    } else if (value && typeof value === 'object') {\n      var res = {};\n      for (var key in value) {\n        res[key] = clone(value[key]);\n      }\n      return res\n    } else {\n      return value\n    }\n  }\n\n  // the starting route that represents the initial state\n  var START = createRoute(null, {\n    path: '/'\n  });\n\n  function formatMatch (record) {\n    var res = [];\n    while (record) {\n      res.unshift(record);\n      record = record.parent;\n    }\n    return res\n  }\n\n  function getFullPath (\n    ref,\n    _stringifyQuery\n  ) {\n    var path = ref.path;\n    var query = ref.query; if ( query === void 0 ) query = {};\n    var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n    var stringify = _stringifyQuery || stringifyQuery;\n    return (path || '/') + stringify(query) + hash\n  }\n\n  function isSameRoute (a, b) {\n    if (b === START) {\n      return a === b\n    } else if (!b) {\n      return false\n    } else if (a.path && b.path) {\n      return (\n        a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n        a.hash === b.hash &&\n        isObjectEqual(a.query, b.query)\n      )\n    } else if (a.name && b.name) {\n      return (\n        a.name === b.name &&\n        a.hash === b.hash &&\n        isObjectEqual(a.query, b.query) &&\n        isObjectEqual(a.params, b.params)\n      )\n    } else {\n      return false\n    }\n  }\n\n  function isObjectEqual (a, b) {\n    if ( a === void 0 ) a = {};\n    if ( b === void 0 ) b = {};\n\n    // handle null value #1566\n    if (!a || !b) { return a === b }\n    var aKeys = Object.keys(a).sort();\n    var bKeys = Object.keys(b).sort();\n    if (aKeys.length !== bKeys.length) {\n      return false\n    }\n    return aKeys.every(function (key, i) {\n      var aVal = a[key];\n      var bKey = bKeys[i];\n      if (bKey !== key) { return false }\n      var bVal = b[key];\n      // query values can be null and undefined\n      if (aVal == null || bVal == null) { return aVal === bVal }\n      // check nested equality\n      if (typeof aVal === 'object' && typeof bVal === 'object') {\n        return isObjectEqual(aVal, bVal)\n      }\n      return String(aVal) === String(bVal)\n    })\n  }\n\n  function isIncludedRoute (current, target) {\n    return (\n      current.path.replace(trailingSlashRE, '/').indexOf(\n        target.path.replace(trailingSlashRE, '/')\n      ) === 0 &&\n      (!target.hash || current.hash === target.hash) &&\n      queryIncludes(current.query, target.query)\n    )\n  }\n\n  function queryIncludes (current, target) {\n    for (var key in target) {\n      if (!(key in current)) {\n        return false\n      }\n    }\n    return true\n  }\n\n  function handleRouteEntered (route) {\n    for (var i = 0; i < route.matched.length; i++) {\n      var record = route.matched[i];\n      for (var name in record.instances) {\n        var instance = record.instances[name];\n        var cbs = record.enteredCbs[name];\n        if (!instance || !cbs) { continue }\n        delete record.enteredCbs[name];\n        for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n          if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n        }\n      }\n    }\n  }\n\n  var View = {\n    name: 'RouterView',\n    functional: true,\n    props: {\n      name: {\n        type: String,\n        default: 'default'\n      }\n    },\n    render: function render (_, ref) {\n      var props = ref.props;\n      var children = ref.children;\n      var parent = ref.parent;\n      var data = ref.data;\n\n      // used by devtools to display a router-view badge\n      data.routerView = true;\n\n      // directly use parent context's createElement() function\n      // so that components rendered by router-view can resolve named slots\n      var h = parent.$createElement;\n      var name = props.name;\n      var route = parent.$route;\n      var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n      // determine current view depth, also check to see if the tree\n      // has been toggled inactive but kept-alive.\n      var depth = 0;\n      var inactive = false;\n      while (parent && parent._routerRoot !== parent) {\n        var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n        if (vnodeData.routerView) {\n          depth++;\n        }\n        if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n          inactive = true;\n        }\n        parent = parent.$parent;\n      }\n      data.routerViewDepth = depth;\n\n      // render previous view if the tree is inactive and kept-alive\n      if (inactive) {\n        var cachedData = cache[name];\n        var cachedComponent = cachedData && cachedData.component;\n        if (cachedComponent) {\n          // #2301\n          // pass props\n          if (cachedData.configProps) {\n            fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n          }\n          return h(cachedComponent, data, children)\n        } else {\n          // render previous empty view\n          return h()\n        }\n      }\n\n      var matched = route.matched[depth];\n      var component = matched && matched.components[name];\n\n      // render empty node if no matched route or no config component\n      if (!matched || !component) {\n        cache[name] = null;\n        return h()\n      }\n\n      // cache component\n      cache[name] = { component: component };\n\n      // attach instance registration hook\n      // this will be called in the instance's injected lifecycle hooks\n      data.registerRouteInstance = function (vm, val) {\n        // val could be undefined for unregistration\n        var current = matched.instances[name];\n        if (\n          (val && current !== vm) ||\n          (!val && current === vm)\n        ) {\n          matched.instances[name] = val;\n        }\n      }\n\n      // also register instance in prepatch hook\n      // in case the same component instance is reused across different routes\n      ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n        matched.instances[name] = vnode.componentInstance;\n      };\n\n      // register instance in init hook\n      // in case kept-alive component be actived when routes changed\n      data.hook.init = function (vnode) {\n        if (vnode.data.keepAlive &&\n          vnode.componentInstance &&\n          vnode.componentInstance !== matched.instances[name]\n        ) {\n          matched.instances[name] = vnode.componentInstance;\n        }\n\n        // if the route transition has already been confirmed then we weren't\n        // able to call the cbs during confirmation as the component was not\n        // registered yet, so we call it here.\n        handleRouteEntered(route);\n      };\n\n      var configProps = matched.props && matched.props[name];\n      // save route and configProps in cache\n      if (configProps) {\n        extend(cache[name], {\n          route: route,\n          configProps: configProps\n        });\n        fillPropsinData(component, data, route, configProps);\n      }\n\n      return h(component, data, children)\n    }\n  };\n\n  function fillPropsinData (component, data, route, configProps) {\n    // resolve props\n    var propsToPass = data.props = resolveProps(route, configProps);\n    if (propsToPass) {\n      // clone to prevent mutation\n      propsToPass = data.props = extend({}, propsToPass);\n      // pass non-declared props as attrs\n      var attrs = data.attrs = data.attrs || {};\n      for (var key in propsToPass) {\n        if (!component.props || !(key in component.props)) {\n          attrs[key] = propsToPass[key];\n          delete propsToPass[key];\n        }\n      }\n    }\n  }\n\n  function resolveProps (route, config) {\n    switch (typeof config) {\n      case 'undefined':\n        return\n      case 'object':\n        return config\n      case 'function':\n        return config(route)\n      case 'boolean':\n        return config ? route.params : undefined\n      default:\n        {\n          warn(\n            false,\n            \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n            \"expecting an object, function or boolean.\"\n          );\n        }\n    }\n  }\n\n  /*  */\n\n  function resolvePath (\n    relative,\n    base,\n    append\n  ) {\n    var firstChar = relative.charAt(0);\n    if (firstChar === '/') {\n      return relative\n    }\n\n    if (firstChar === '?' || firstChar === '#') {\n      return base + relative\n    }\n\n    var stack = base.split('/');\n\n    // remove trailing segment if:\n    // - not appending\n    // - appending to trailing slash (last segment is empty)\n    if (!append || !stack[stack.length - 1]) {\n      stack.pop();\n    }\n\n    // resolve relative path\n    var segments = relative.replace(/^\\//, '').split('/');\n    for (var i = 0; i < segments.length; i++) {\n      var segment = segments[i];\n      if (segment === '..') {\n        stack.pop();\n      } else if (segment !== '.') {\n        stack.push(segment);\n      }\n    }\n\n    // ensure leading slash\n    if (stack[0] !== '') {\n      stack.unshift('');\n    }\n\n    return stack.join('/')\n  }\n\n  function parsePath (path) {\n    var hash = '';\n    var query = '';\n\n    var hashIndex = path.indexOf('#');\n    if (hashIndex >= 0) {\n      hash = path.slice(hashIndex);\n      path = path.slice(0, hashIndex);\n    }\n\n    var queryIndex = path.indexOf('?');\n    if (queryIndex >= 0) {\n      query = path.slice(queryIndex + 1);\n      path = path.slice(0, queryIndex);\n    }\n\n    return {\n      path: path,\n      query: query,\n      hash: hash\n    }\n  }\n\n  function cleanPath (path) {\n    return path.replace(/\\/\\//g, '/')\n  }\n\n  var isarray = Array.isArray || function (arr) {\n    return Object.prototype.toString.call(arr) == '[object Array]';\n  };\n\n  /**\n   * Expose `pathToRegexp`.\n   */\n  var pathToRegexp_1 = pathToRegexp;\n  var parse_1 = parse;\n  var compile_1 = compile;\n  var tokensToFunction_1 = tokensToFunction;\n  var tokensToRegExp_1 = tokensToRegExp;\n\n  /**\n   * The main path matching regexp utility.\n   *\n   * @type {RegExp}\n   */\n  var PATH_REGEXP = new RegExp([\n    // Match escaped characters that would otherwise appear in future matches.\n    // This allows the user to escape special characters that won't transform.\n    '(\\\\\\\\.)',\n    // Match Express-style parameters and un-named parameters with a prefix\n    // and optional suffixes. Matches appear as:\n    //\n    // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n    // \"/route(\\\\d+)\"  => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n    // \"/*\"            => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n    '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n  ].join('|'), 'g');\n\n  /**\n   * Parse a string for the raw tokens.\n   *\n   * @param  {string}  str\n   * @param  {Object=} options\n   * @return {!Array}\n   */\n  function parse (str, options) {\n    var tokens = [];\n    var key = 0;\n    var index = 0;\n    var path = '';\n    var defaultDelimiter = options && options.delimiter || '/';\n    var res;\n\n    while ((res = PATH_REGEXP.exec(str)) != null) {\n      var m = res[0];\n      var escaped = res[1];\n      var offset = res.index;\n      path += str.slice(index, offset);\n      index = offset + m.length;\n\n      // Ignore already escaped sequences.\n      if (escaped) {\n        path += escaped[1];\n        continue\n      }\n\n      var next = str[index];\n      var prefix = res[2];\n      var name = res[3];\n      var capture = res[4];\n      var group = res[5];\n      var modifier = res[6];\n      var asterisk = res[7];\n\n      // Push the current path onto the tokens.\n      if (path) {\n        tokens.push(path);\n        path = '';\n      }\n\n      var partial = prefix != null && next != null && next !== prefix;\n      var repeat = modifier === '+' || modifier === '*';\n      var optional = modifier === '?' || modifier === '*';\n      var delimiter = res[2] || defaultDelimiter;\n      var pattern = capture || group;\n\n      tokens.push({\n        name: name || key++,\n        prefix: prefix || '',\n        delimiter: delimiter,\n        optional: optional,\n        repeat: repeat,\n        partial: partial,\n        asterisk: !!asterisk,\n        pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n      });\n    }\n\n    // Match any characters still remaining.\n    if (index < str.length) {\n      path += str.substr(index);\n    }\n\n    // If the path exists, push it onto the end.\n    if (path) {\n      tokens.push(path);\n    }\n\n    return tokens\n  }\n\n  /**\n   * Compile a string to a template function for the path.\n   *\n   * @param  {string}             str\n   * @param  {Object=}            options\n   * @return {!function(Object=, Object=)}\n   */\n  function compile (str, options) {\n    return tokensToFunction(parse(str, options), options)\n  }\n\n  /**\n   * Prettier encoding of URI path segments.\n   *\n   * @param  {string}\n   * @return {string}\n   */\n  function encodeURIComponentPretty (str) {\n    return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n      return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n    })\n  }\n\n  /**\n   * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n   *\n   * @param  {string}\n   * @return {string}\n   */\n  function encodeAsterisk (str) {\n    return encodeURI(str).replace(/[?#]/g, function (c) {\n      return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n    })\n  }\n\n  /**\n   * Expose a method for transforming tokens into the path function.\n   */\n  function tokensToFunction (tokens, options) {\n    // Compile all the tokens into regexps.\n    var matches = new Array(tokens.length);\n\n    // Compile all the patterns before compilation.\n    for (var i = 0; i < tokens.length; i++) {\n      if (typeof tokens[i] === 'object') {\n        matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n      }\n    }\n\n    return function (obj, opts) {\n      var path = '';\n      var data = obj || {};\n      var options = opts || {};\n      var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n      for (var i = 0; i < tokens.length; i++) {\n        var token = tokens[i];\n\n        if (typeof token === 'string') {\n          path += token;\n\n          continue\n        }\n\n        var value = data[token.name];\n        var segment;\n\n        if (value == null) {\n          if (token.optional) {\n            // Prepend partial segment prefixes.\n            if (token.partial) {\n              path += token.prefix;\n            }\n\n            continue\n          } else {\n            throw new TypeError('Expected \"' + token.name + '\" to be defined')\n          }\n        }\n\n        if (isarray(value)) {\n          if (!token.repeat) {\n            throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n          }\n\n          if (value.length === 0) {\n            if (token.optional) {\n              continue\n            } else {\n              throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n            }\n          }\n\n          for (var j = 0; j < value.length; j++) {\n            segment = encode(value[j]);\n\n            if (!matches[i].test(segment)) {\n              throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n            }\n\n            path += (j === 0 ? token.prefix : token.delimiter) + segment;\n          }\n\n          continue\n        }\n\n        segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n        if (!matches[i].test(segment)) {\n          throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n        }\n\n        path += token.prefix + segment;\n      }\n\n      return path\n    }\n  }\n\n  /**\n   * Escape a regular expression string.\n   *\n   * @param  {string} str\n   * @return {string}\n   */\n  function escapeString (str) {\n    return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n  }\n\n  /**\n   * Escape the capturing group by escaping special characters and meaning.\n   *\n   * @param  {string} group\n   * @return {string}\n   */\n  function escapeGroup (group) {\n    return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n  }\n\n  /**\n   * Attach the keys as a property of the regexp.\n   *\n   * @param  {!RegExp} re\n   * @param  {Array}   keys\n   * @return {!RegExp}\n   */\n  function attachKeys (re, keys) {\n    re.keys = keys;\n    return re\n  }\n\n  /**\n   * Get the flags for a regexp from the options.\n   *\n   * @param  {Object} options\n   * @return {string}\n   */\n  function flags (options) {\n    return options && options.sensitive ? '' : 'i'\n  }\n\n  /**\n   * Pull out keys from a regexp.\n   *\n   * @param  {!RegExp} path\n   * @param  {!Array}  keys\n   * @return {!RegExp}\n   */\n  function regexpToRegexp (path, keys) {\n    // Use a negative lookahead to match only capturing groups.\n    var groups = path.source.match(/\\((?!\\?)/g);\n\n    if (groups) {\n      for (var i = 0; i < groups.length; i++) {\n        keys.push({\n          name: i,\n          prefix: null,\n          delimiter: null,\n          optional: false,\n          repeat: false,\n          partial: false,\n          asterisk: false,\n          pattern: null\n        });\n      }\n    }\n\n    return attachKeys(path, keys)\n  }\n\n  /**\n   * Transform an array into a regexp.\n   *\n   * @param  {!Array}  path\n   * @param  {Array}   keys\n   * @param  {!Object} options\n   * @return {!RegExp}\n   */\n  function arrayToRegexp (path, keys, options) {\n    var parts = [];\n\n    for (var i = 0; i < path.length; i++) {\n      parts.push(pathToRegexp(path[i], keys, options).source);\n    }\n\n    var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n    return attachKeys(regexp, keys)\n  }\n\n  /**\n   * Create a path regexp from string input.\n   *\n   * @param  {string}  path\n   * @param  {!Array}  keys\n   * @param  {!Object} options\n   * @return {!RegExp}\n   */\n  function stringToRegexp (path, keys, options) {\n    return tokensToRegExp(parse(path, options), keys, options)\n  }\n\n  /**\n   * Expose a function for taking tokens and returning a RegExp.\n   *\n   * @param  {!Array}          tokens\n   * @param  {(Array|Object)=} keys\n   * @param  {Object=}         options\n   * @return {!RegExp}\n   */\n  function tokensToRegExp (tokens, keys, options) {\n    if (!isarray(keys)) {\n      options = /** @type {!Object} */ (keys || options);\n      keys = [];\n    }\n\n    options = options || {};\n\n    var strict = options.strict;\n    var end = options.end !== false;\n    var route = '';\n\n    // Iterate over the tokens and create our regexp string.\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i];\n\n      if (typeof token === 'string') {\n        route += escapeString(token);\n      } else {\n        var prefix = escapeString(token.prefix);\n        var capture = '(?:' + token.pattern + ')';\n\n        keys.push(token);\n\n        if (token.repeat) {\n          capture += '(?:' + prefix + capture + ')*';\n        }\n\n        if (token.optional) {\n          if (!token.partial) {\n            capture = '(?:' + prefix + '(' + capture + '))?';\n          } else {\n            capture = prefix + '(' + capture + ')?';\n          }\n        } else {\n          capture = prefix + '(' + capture + ')';\n        }\n\n        route += capture;\n      }\n    }\n\n    var delimiter = escapeString(options.delimiter || '/');\n    var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n    // In non-strict mode we allow a slash at the end of match. If the path to\n    // match already ends with a slash, we remove it for consistency. The slash\n    // is valid at the end of a path match, not in the middle. This is important\n    // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n    if (!strict) {\n      route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n    }\n\n    if (end) {\n      route += '$';\n    } else {\n      // In non-ending mode, we need the capturing groups to match as much as\n      // possible by using a positive lookahead to the end or next path segment.\n      route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n    }\n\n    return attachKeys(new RegExp('^' + route, flags(options)), keys)\n  }\n\n  /**\n   * Normalize the given path string, returning a regular expression.\n   *\n   * An empty array can be passed in for the keys, which will hold the\n   * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n   * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n   *\n   * @param  {(string|RegExp|Array)} path\n   * @param  {(Array|Object)=}       keys\n   * @param  {Object=}               options\n   * @return {!RegExp}\n   */\n  function pathToRegexp (path, keys, options) {\n    if (!isarray(keys)) {\n      options = /** @type {!Object} */ (keys || options);\n      keys = [];\n    }\n\n    options = options || {};\n\n    if (path instanceof RegExp) {\n      return regexpToRegexp(path, /** @type {!Array} */ (keys))\n    }\n\n    if (isarray(path)) {\n      return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n    }\n\n    return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n  }\n  pathToRegexp_1.parse = parse_1;\n  pathToRegexp_1.compile = compile_1;\n  pathToRegexp_1.tokensToFunction = tokensToFunction_1;\n  pathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n  /*  */\n\n  // $flow-disable-line\n  var regexpCompileCache = Object.create(null);\n\n  function fillParams (\n    path,\n    params,\n    routeMsg\n  ) {\n    params = params || {};\n    try {\n      var filler =\n        regexpCompileCache[path] ||\n        (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n      // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n      // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n      if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n      return filler(params, { pretty: true })\n    } catch (e) {\n      {\n        // Fix #3072 no warn if `pathMatch` is string\n        warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n      }\n      return ''\n    } finally {\n      // delete the 0 if it was added\n      delete params[0];\n    }\n  }\n\n  /*  */\n\n  function normalizeLocation (\n    raw,\n    current,\n    append,\n    router\n  ) {\n    var next = typeof raw === 'string' ? { path: raw } : raw;\n    // named target\n    if (next._normalized) {\n      return next\n    } else if (next.name) {\n      next = extend({}, raw);\n      var params = next.params;\n      if (params && typeof params === 'object') {\n        next.params = extend({}, params);\n      }\n      return next\n    }\n\n    // relative params\n    if (!next.path && next.params && current) {\n      next = extend({}, next);\n      next._normalized = true;\n      var params$1 = extend(extend({}, current.params), next.params);\n      if (current.name) {\n        next.name = current.name;\n        next.params = params$1;\n      } else if (current.matched.length) {\n        var rawPath = current.matched[current.matched.length - 1].path;\n        next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n      } else {\n        warn(false, \"relative params navigation requires a current route.\");\n      }\n      return next\n    }\n\n    var parsedPath = parsePath(next.path || '');\n    var basePath = (current && current.path) || '/';\n    var path = parsedPath.path\n      ? resolvePath(parsedPath.path, basePath, append || next.append)\n      : basePath;\n\n    var query = resolveQuery(\n      parsedPath.query,\n      next.query,\n      router && router.options.parseQuery\n    );\n\n    var hash = next.hash || parsedPath.hash;\n    if (hash && hash.charAt(0) !== '#') {\n      hash = \"#\" + hash;\n    }\n\n    return {\n      _normalized: true,\n      path: path,\n      query: query,\n      hash: hash\n    }\n  }\n\n  /*  */\n\n  // work around weird flow bug\n  var toTypes = [String, Object];\n  var eventTypes = [String, Array];\n\n  var noop = function () {};\n\n  var Link = {\n    name: 'RouterLink',\n    props: {\n      to: {\n        type: toTypes,\n        required: true\n      },\n      tag: {\n        type: String,\n        default: 'a'\n      },\n      exact: Boolean,\n      append: Boolean,\n      replace: Boolean,\n      activeClass: String,\n      exactActiveClass: String,\n      ariaCurrentValue: {\n        type: String,\n        default: 'page'\n      },\n      event: {\n        type: eventTypes,\n        default: 'click'\n      }\n    },\n    render: function render (h) {\n      var this$1 = this;\n\n      var router = this.$router;\n      var current = this.$route;\n      var ref = router.resolve(\n        this.to,\n        current,\n        this.append\n      );\n      var location = ref.location;\n      var route = ref.route;\n      var href = ref.href;\n\n      var classes = {};\n      var globalActiveClass = router.options.linkActiveClass;\n      var globalExactActiveClass = router.options.linkExactActiveClass;\n      // Support global empty active class\n      var activeClassFallback =\n        globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n      var exactActiveClassFallback =\n        globalExactActiveClass == null\n          ? 'router-link-exact-active'\n          : globalExactActiveClass;\n      var activeClass =\n        this.activeClass == null ? activeClassFallback : this.activeClass;\n      var exactActiveClass =\n        this.exactActiveClass == null\n          ? exactActiveClassFallback\n          : this.exactActiveClass;\n\n      var compareTarget = route.redirectedFrom\n        ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n        : route;\n\n      classes[exactActiveClass] = isSameRoute(current, compareTarget);\n      classes[activeClass] = this.exact\n        ? classes[exactActiveClass]\n        : isIncludedRoute(current, compareTarget);\n\n      var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n      var handler = function (e) {\n        if (guardEvent(e)) {\n          if (this$1.replace) {\n            router.replace(location, noop);\n          } else {\n            router.push(location, noop);\n          }\n        }\n      };\n\n      var on = { click: guardEvent };\n      if (Array.isArray(this.event)) {\n        this.event.forEach(function (e) {\n          on[e] = handler;\n        });\n      } else {\n        on[this.event] = handler;\n      }\n\n      var data = { class: classes };\n\n      var scopedSlot =\n        !this.$scopedSlots.$hasNormal &&\n        this.$scopedSlots.default &&\n        this.$scopedSlots.default({\n          href: href,\n          route: route,\n          navigate: handler,\n          isActive: classes[activeClass],\n          isExactActive: classes[exactActiveClass]\n        });\n\n      if (scopedSlot) {\n        if (scopedSlot.length === 1) {\n          return scopedSlot[0]\n        } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n          {\n            warn(\n              false,\n              (\"RouterLink with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n            );\n          }\n          return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n        }\n      }\n\n      if (this.tag === 'a') {\n        data.on = on;\n        data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n      } else {\n        // find the first <a> child and apply listener and href\n        var a = findAnchor(this.$slots.default);\n        if (a) {\n          // in case the <a> is a static node\n          a.isStatic = false;\n          var aData = (a.data = extend({}, a.data));\n          aData.on = aData.on || {};\n          // transform existing events in both objects into arrays so we can push later\n          for (var event in aData.on) {\n            var handler$1 = aData.on[event];\n            if (event in on) {\n              aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n            }\n          }\n          // append new listeners for router-link\n          for (var event$1 in on) {\n            if (event$1 in aData.on) {\n              // on[event] is always a function\n              aData.on[event$1].push(on[event$1]);\n            } else {\n              aData.on[event$1] = handler;\n            }\n          }\n\n          var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n          aAttrs.href = href;\n          aAttrs['aria-current'] = ariaCurrentValue;\n        } else {\n          // doesn't have <a> child, apply listener to self\n          data.on = on;\n        }\n      }\n\n      return h(this.tag, data, this.$slots.default)\n    }\n  };\n\n  function guardEvent (e) {\n    // don't redirect with control keys\n    if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n    // don't redirect when preventDefault called\n    if (e.defaultPrevented) { return }\n    // don't redirect on right click\n    if (e.button !== undefined && e.button !== 0) { return }\n    // don't redirect if `target=\"_blank\"`\n    if (e.currentTarget && e.currentTarget.getAttribute) {\n      var target = e.currentTarget.getAttribute('target');\n      if (/\\b_blank\\b/i.test(target)) { return }\n    }\n    // this may be a Weex event which doesn't have this method\n    if (e.preventDefault) {\n      e.preventDefault();\n    }\n    return true\n  }\n\n  function findAnchor (children) {\n    if (children) {\n      var child;\n      for (var i = 0; i < children.length; i++) {\n        child = children[i];\n        if (child.tag === 'a') {\n          return child\n        }\n        if (child.children && (child = findAnchor(child.children))) {\n          return child\n        }\n      }\n    }\n  }\n\n  var _Vue;\n\n  function install (Vue) {\n    if (install.installed && _Vue === Vue) { return }\n    install.installed = true;\n\n    _Vue = Vue;\n\n    var isDef = function (v) { return v !== undefined; };\n\n    var registerInstance = function (vm, callVal) {\n      var i = vm.$options._parentVnode;\n      if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n        i(vm, callVal);\n      }\n    };\n\n    Vue.mixin({\n      beforeCreate: function beforeCreate () {\n        if (isDef(this.$options.router)) {\n          this._routerRoot = this;\n          this._router = this.$options.router;\n          this._router.init(this);\n          Vue.util.defineReactive(this, '_route', this._router.history.current);\n        } else {\n          this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n        }\n        registerInstance(this, this);\n      },\n      destroyed: function destroyed () {\n        registerInstance(this);\n      }\n    });\n\n    Object.defineProperty(Vue.prototype, '$router', {\n      get: function get () { return this._routerRoot._router }\n    });\n\n    Object.defineProperty(Vue.prototype, '$route', {\n      get: function get () { return this._routerRoot._route }\n    });\n\n    Vue.component('RouterView', View);\n    Vue.component('RouterLink', Link);\n\n    var strats = Vue.config.optionMergeStrategies;\n    // use the same hook merging strategy for route hooks\n    strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n  }\n\n  /*  */\n\n  var inBrowser = typeof window !== 'undefined';\n\n  /*  */\n\n  function createRouteMap (\n    routes,\n    oldPathList,\n    oldPathMap,\n    oldNameMap\n  ) {\n    // the path list is used to control path matching priority\n    var pathList = oldPathList || [];\n    // $flow-disable-line\n    var pathMap = oldPathMap || Object.create(null);\n    // $flow-disable-line\n    var nameMap = oldNameMap || Object.create(null);\n\n    routes.forEach(function (route) {\n      addRouteRecord(pathList, pathMap, nameMap, route);\n    });\n\n    // ensure wildcard routes are always at the end\n    for (var i = 0, l = pathList.length; i < l; i++) {\n      if (pathList[i] === '*') {\n        pathList.push(pathList.splice(i, 1)[0]);\n        l--;\n        i--;\n      }\n    }\n\n    {\n      // warn if routes do not include leading slashes\n      var found = pathList\n      // check for missing leading slash\n        .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n      if (found.length > 0) {\n        var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n        warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n      }\n    }\n\n    return {\n      pathList: pathList,\n      pathMap: pathMap,\n      nameMap: nameMap\n    }\n  }\n\n  function addRouteRecord (\n    pathList,\n    pathMap,\n    nameMap,\n    route,\n    parent,\n    matchAs\n  ) {\n    var path = route.path;\n    var name = route.name;\n    {\n      assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n      assert(\n        typeof route.component !== 'string',\n        \"route config \\\"component\\\" for path: \" + (String(\n          path || name\n        )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n      );\n    }\n\n    var pathToRegexpOptions =\n      route.pathToRegexpOptions || {};\n    var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n    if (typeof route.caseSensitive === 'boolean') {\n      pathToRegexpOptions.sensitive = route.caseSensitive;\n    }\n\n    var record = {\n      path: normalizedPath,\n      regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n      components: route.components || { default: route.component },\n      instances: {},\n      enteredCbs: {},\n      name: name,\n      parent: parent,\n      matchAs: matchAs,\n      redirect: route.redirect,\n      beforeEnter: route.beforeEnter,\n      meta: route.meta || {},\n      props:\n        route.props == null\n          ? {}\n          : route.components\n            ? route.props\n            : { default: route.props }\n    };\n\n    if (route.children) {\n      // Warn if route is named, does not redirect and has a default child route.\n      // If users navigate to this route by name, the default child will\n      // not be rendered (GH Issue #629)\n      {\n        if (\n          route.name &&\n          !route.redirect &&\n          route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n        ) {\n          warn(\n            false,\n            \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n              \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n              \"the default child route will not be rendered. Remove the name from \" +\n              \"this route and use the name of the default child route for named \" +\n              \"links instead.\"\n          );\n        }\n      }\n      route.children.forEach(function (child) {\n        var childMatchAs = matchAs\n          ? cleanPath((matchAs + \"/\" + (child.path)))\n          : undefined;\n        addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n      });\n    }\n\n    if (!pathMap[record.path]) {\n      pathList.push(record.path);\n      pathMap[record.path] = record;\n    }\n\n    if (route.alias !== undefined) {\n      var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n      for (var i = 0; i < aliases.length; ++i) {\n        var alias = aliases[i];\n        if ( alias === path) {\n          warn(\n            false,\n            (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n          );\n          // skip in dev to make it work\n          continue\n        }\n\n        var aliasRoute = {\n          path: alias,\n          children: route.children\n        };\n        addRouteRecord(\n          pathList,\n          pathMap,\n          nameMap,\n          aliasRoute,\n          parent,\n          record.path || '/' // matchAs\n        );\n      }\n    }\n\n    if (name) {\n      if (!nameMap[name]) {\n        nameMap[name] = record;\n      } else if ( !matchAs) {\n        warn(\n          false,\n          \"Duplicate named routes definition: \" +\n            \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n        );\n      }\n    }\n  }\n\n  function compileRouteRegex (\n    path,\n    pathToRegexpOptions\n  ) {\n    var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n    {\n      var keys = Object.create(null);\n      regex.keys.forEach(function (key) {\n        warn(\n          !keys[key.name],\n          (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n        );\n        keys[key.name] = true;\n      });\n    }\n    return regex\n  }\n\n  function normalizePath (\n    path,\n    parent,\n    strict\n  ) {\n    if (!strict) { path = path.replace(/\\/$/, ''); }\n    if (path[0] === '/') { return path }\n    if (parent == null) { return path }\n    return cleanPath(((parent.path) + \"/\" + path))\n  }\n\n  /*  */\n\n\n\n  function createMatcher (\n    routes,\n    router\n  ) {\n    var ref = createRouteMap(routes);\n    var pathList = ref.pathList;\n    var pathMap = ref.pathMap;\n    var nameMap = ref.nameMap;\n\n    function addRoutes (routes) {\n      createRouteMap(routes, pathList, pathMap, nameMap);\n    }\n\n    function match (\n      raw,\n      currentRoute,\n      redirectedFrom\n    ) {\n      var location = normalizeLocation(raw, currentRoute, false, router);\n      var name = location.name;\n\n      if (name) {\n        var record = nameMap[name];\n        {\n          warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n        }\n        if (!record) { return _createRoute(null, location) }\n        var paramNames = record.regex.keys\n          .filter(function (key) { return !key.optional; })\n          .map(function (key) { return key.name; });\n\n        if (typeof location.params !== 'object') {\n          location.params = {};\n        }\n\n        if (currentRoute && typeof currentRoute.params === 'object') {\n          for (var key in currentRoute.params) {\n            if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n              location.params[key] = currentRoute.params[key];\n            }\n          }\n        }\n\n        location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n        return _createRoute(record, location, redirectedFrom)\n      } else if (location.path) {\n        location.params = {};\n        for (var i = 0; i < pathList.length; i++) {\n          var path = pathList[i];\n          var record$1 = pathMap[path];\n          if (matchRoute(record$1.regex, location.path, location.params)) {\n            return _createRoute(record$1, location, redirectedFrom)\n          }\n        }\n      }\n      // no match\n      return _createRoute(null, location)\n    }\n\n    function redirect (\n      record,\n      location\n    ) {\n      var originalRedirect = record.redirect;\n      var redirect = typeof originalRedirect === 'function'\n        ? originalRedirect(createRoute(record, location, null, router))\n        : originalRedirect;\n\n      if (typeof redirect === 'string') {\n        redirect = { path: redirect };\n      }\n\n      if (!redirect || typeof redirect !== 'object') {\n        {\n          warn(\n            false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n          );\n        }\n        return _createRoute(null, location)\n      }\n\n      var re = redirect;\n      var name = re.name;\n      var path = re.path;\n      var query = location.query;\n      var hash = location.hash;\n      var params = location.params;\n      query = re.hasOwnProperty('query') ? re.query : query;\n      hash = re.hasOwnProperty('hash') ? re.hash : hash;\n      params = re.hasOwnProperty('params') ? re.params : params;\n\n      if (name) {\n        // resolved named direct\n        var targetRecord = nameMap[name];\n        {\n          assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n        }\n        return match({\n          _normalized: true,\n          name: name,\n          query: query,\n          hash: hash,\n          params: params\n        }, undefined, location)\n      } else if (path) {\n        // 1. resolve relative redirect\n        var rawPath = resolveRecordPath(path, record);\n        // 2. resolve params\n        var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n        // 3. rematch with existing query and hash\n        return match({\n          _normalized: true,\n          path: resolvedPath,\n          query: query,\n          hash: hash\n        }, undefined, location)\n      } else {\n        {\n          warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n        }\n        return _createRoute(null, location)\n      }\n    }\n\n    function alias (\n      record,\n      location,\n      matchAs\n    ) {\n      var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n      var aliasedMatch = match({\n        _normalized: true,\n        path: aliasedPath\n      });\n      if (aliasedMatch) {\n        var matched = aliasedMatch.matched;\n        var aliasedRecord = matched[matched.length - 1];\n        location.params = aliasedMatch.params;\n        return _createRoute(aliasedRecord, location)\n      }\n      return _createRoute(null, location)\n    }\n\n    function _createRoute (\n      record,\n      location,\n      redirectedFrom\n    ) {\n      if (record && record.redirect) {\n        return redirect(record, redirectedFrom || location)\n      }\n      if (record && record.matchAs) {\n        return alias(record, location, record.matchAs)\n      }\n      return createRoute(record, location, redirectedFrom, router)\n    }\n\n    return {\n      match: match,\n      addRoutes: addRoutes\n    }\n  }\n\n  function matchRoute (\n    regex,\n    path,\n    params\n  ) {\n    try {\n      path = decodeURI(path);\n    } catch (err) {\n      {\n        warn(false, (\"Error decoding \\\"\" + path + \"\\\". Leaving it intact.\"));\n      }\n    }\n\n    var m = path.match(regex);\n\n    if (!m) {\n      return false\n    } else if (!params) {\n      return true\n    }\n\n    for (var i = 1, len = m.length; i < len; ++i) {\n      var key = regex.keys[i - 1];\n      if (key) {\n        // Fix #1994: using * with props: true generates a param named 0\n        params[key.name || 'pathMatch'] = m[i];\n      }\n    }\n\n    return true\n  }\n\n  function resolveRecordPath (path, record) {\n    return resolvePath(path, record.parent ? record.parent.path : '/', true)\n  }\n\n  /*  */\n\n  // use User Timing api (if present) for more accurate key precision\n  var Time =\n    inBrowser && window.performance && window.performance.now\n      ? window.performance\n      : Date;\n\n  function genStateKey () {\n    return Time.now().toFixed(3)\n  }\n\n  var _key = genStateKey();\n\n  function getStateKey () {\n    return _key\n  }\n\n  function setStateKey (key) {\n    return (_key = key)\n  }\n\n  /*  */\n\n  var positionStore = Object.create(null);\n\n  function setupScroll () {\n    // Prevent browser scroll behavior on History popstate\n    if ('scrollRestoration' in window.history) {\n      window.history.scrollRestoration = 'manual';\n    }\n    // Fix for #1585 for Firefox\n    // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n    // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n    // window.location.protocol + '//' + window.location.host\n    // location.host contains the port and location.hostname doesn't\n    var protocolAndPath = window.location.protocol + '//' + window.location.host;\n    var absolutePath = window.location.href.replace(protocolAndPath, '');\n    // preserve existing history state as it could be overriden by the user\n    var stateCopy = extend({}, window.history.state);\n    stateCopy.key = getStateKey();\n    window.history.replaceState(stateCopy, '', absolutePath);\n    window.addEventListener('popstate', handlePopState);\n    return function () {\n      window.removeEventListener('popstate', handlePopState);\n    }\n  }\n\n  function handleScroll (\n    router,\n    to,\n    from,\n    isPop\n  ) {\n    if (!router.app) {\n      return\n    }\n\n    var behavior = router.options.scrollBehavior;\n    if (!behavior) {\n      return\n    }\n\n    {\n      assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n    }\n\n    // wait until re-render finishes before scrolling\n    router.app.$nextTick(function () {\n      var position = getScrollPosition();\n      var shouldScroll = behavior.call(\n        router,\n        to,\n        from,\n        isPop ? position : null\n      );\n\n      if (!shouldScroll) {\n        return\n      }\n\n      if (typeof shouldScroll.then === 'function') {\n        shouldScroll\n          .then(function (shouldScroll) {\n            scrollToPosition((shouldScroll), position);\n          })\n          .catch(function (err) {\n            {\n              assert(false, err.toString());\n            }\n          });\n      } else {\n        scrollToPosition(shouldScroll, position);\n      }\n    });\n  }\n\n  function saveScrollPosition () {\n    var key = getStateKey();\n    if (key) {\n      positionStore[key] = {\n        x: window.pageXOffset,\n        y: window.pageYOffset\n      };\n    }\n  }\n\n  function handlePopState (e) {\n    saveScrollPosition();\n    if (e.state && e.state.key) {\n      setStateKey(e.state.key);\n    }\n  }\n\n  function getScrollPosition () {\n    var key = getStateKey();\n    if (key) {\n      return positionStore[key]\n    }\n  }\n\n  function getElementPosition (el, offset) {\n    var docEl = document.documentElement;\n    var docRect = docEl.getBoundingClientRect();\n    var elRect = el.getBoundingClientRect();\n    return {\n      x: elRect.left - docRect.left - offset.x,\n      y: elRect.top - docRect.top - offset.y\n    }\n  }\n\n  function isValidPosition (obj) {\n    return isNumber(obj.x) || isNumber(obj.y)\n  }\n\n  function normalizePosition (obj) {\n    return {\n      x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n      y: isNumber(obj.y) ? obj.y : window.pageYOffset\n    }\n  }\n\n  function normalizeOffset (obj) {\n    return {\n      x: isNumber(obj.x) ? obj.x : 0,\n      y: isNumber(obj.y) ? obj.y : 0\n    }\n  }\n\n  function isNumber (v) {\n    return typeof v === 'number'\n  }\n\n  var hashStartsWithNumberRE = /^#\\d/;\n\n  function scrollToPosition (shouldScroll, position) {\n    var isObject = typeof shouldScroll === 'object';\n    if (isObject && typeof shouldScroll.selector === 'string') {\n      // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n      // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n      var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n        ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n        : document.querySelector(shouldScroll.selector);\n\n      if (el) {\n        var offset =\n          shouldScroll.offset && typeof shouldScroll.offset === 'object'\n            ? shouldScroll.offset\n            : {};\n        offset = normalizeOffset(offset);\n        position = getElementPosition(el, offset);\n      } else if (isValidPosition(shouldScroll)) {\n        position = normalizePosition(shouldScroll);\n      }\n    } else if (isObject && isValidPosition(shouldScroll)) {\n      position = normalizePosition(shouldScroll);\n    }\n\n    if (position) {\n      // $flow-disable-line\n      if ('scrollBehavior' in document.documentElement.style) {\n        window.scrollTo({\n          left: position.x,\n          top: position.y,\n          // $flow-disable-line\n          behavior: shouldScroll.behavior\n        });\n      } else {\n        window.scrollTo(position.x, position.y);\n      }\n    }\n  }\n\n  /*  */\n\n  var supportsPushState =\n    inBrowser &&\n    (function () {\n      var ua = window.navigator.userAgent;\n\n      if (\n        (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n        ua.indexOf('Mobile Safari') !== -1 &&\n        ua.indexOf('Chrome') === -1 &&\n        ua.indexOf('Windows Phone') === -1\n      ) {\n        return false\n      }\n\n      return window.history && typeof window.history.pushState === 'function'\n    })();\n\n  function pushState (url, replace) {\n    saveScrollPosition();\n    // try...catch the pushState call to get around Safari\n    // DOM Exception 18 where it limits to 100 pushState calls\n    var history = window.history;\n    try {\n      if (replace) {\n        // preserve existing history state as it could be overriden by the user\n        var stateCopy = extend({}, history.state);\n        stateCopy.key = getStateKey();\n        history.replaceState(stateCopy, '', url);\n      } else {\n        history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n      }\n    } catch (e) {\n      window.location[replace ? 'replace' : 'assign'](url);\n    }\n  }\n\n  function replaceState (url) {\n    pushState(url, true);\n  }\n\n  /*  */\n\n  function runQueue (queue, fn, cb) {\n    var step = function (index) {\n      if (index >= queue.length) {\n        cb();\n      } else {\n        if (queue[index]) {\n          fn(queue[index], function () {\n            step(index + 1);\n          });\n        } else {\n          step(index + 1);\n        }\n      }\n    };\n    step(0);\n  }\n\n  // When changing thing, also edit router.d.ts\n  var NavigationFailureType = {\n    redirected: 2,\n    aborted: 4,\n    cancelled: 8,\n    duplicated: 16\n  };\n\n  function createNavigationRedirectedError (from, to) {\n    return createRouterError(\n      from,\n      to,\n      NavigationFailureType.redirected,\n      (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n        to\n      )) + \"\\\" via a navigation guard.\")\n    )\n  }\n\n  function createNavigationDuplicatedError (from, to) {\n    var error = createRouterError(\n      from,\n      to,\n      NavigationFailureType.duplicated,\n      (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n    );\n    // backwards compatible with the first introduction of Errors\n    error.name = 'NavigationDuplicated';\n    return error\n  }\n\n  function createNavigationCancelledError (from, to) {\n    return createRouterError(\n      from,\n      to,\n      NavigationFailureType.cancelled,\n      (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n    )\n  }\n\n  function createNavigationAbortedError (from, to) {\n    return createRouterError(\n      from,\n      to,\n      NavigationFailureType.aborted,\n      (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n    )\n  }\n\n  function createRouterError (from, to, type, message) {\n    var error = new Error(message);\n    error._isRouter = true;\n    error.from = from;\n    error.to = to;\n    error.type = type;\n\n    return error\n  }\n\n  var propertiesToLog = ['params', 'query', 'hash'];\n\n  function stringifyRoute (to) {\n    if (typeof to === 'string') { return to }\n    if ('path' in to) { return to.path }\n    var location = {};\n    propertiesToLog.forEach(function (key) {\n      if (key in to) { location[key] = to[key]; }\n    });\n    return JSON.stringify(location, null, 2)\n  }\n\n  function isError (err) {\n    return Object.prototype.toString.call(err).indexOf('Error') > -1\n  }\n\n  function isNavigationFailure (err, errorType) {\n    return (\n      isError(err) &&\n      err._isRouter &&\n      (errorType == null || err.type === errorType)\n    )\n  }\n\n  /*  */\n\n  function resolveAsyncComponents (matched) {\n    return function (to, from, next) {\n      var hasAsync = false;\n      var pending = 0;\n      var error = null;\n\n      flatMapComponents(matched, function (def, _, match, key) {\n        // if it's a function and doesn't have cid attached,\n        // assume it's an async component resolve function.\n        // we are not using Vue's default async resolving mechanism because\n        // we want to halt the navigation until the incoming component has been\n        // resolved.\n        if (typeof def === 'function' && def.cid === undefined) {\n          hasAsync = true;\n          pending++;\n\n          var resolve = once(function (resolvedDef) {\n            if (isESModule(resolvedDef)) {\n              resolvedDef = resolvedDef.default;\n            }\n            // save resolved on async factory in case it's used elsewhere\n            def.resolved = typeof resolvedDef === 'function'\n              ? resolvedDef\n              : _Vue.extend(resolvedDef);\n            match.components[key] = resolvedDef;\n            pending--;\n            if (pending <= 0) {\n              next();\n            }\n          });\n\n          var reject = once(function (reason) {\n            var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n             warn(false, msg);\n            if (!error) {\n              error = isError(reason)\n                ? reason\n                : new Error(msg);\n              next(error);\n            }\n          });\n\n          var res;\n          try {\n            res = def(resolve, reject);\n          } catch (e) {\n            reject(e);\n          }\n          if (res) {\n            if (typeof res.then === 'function') {\n              res.then(resolve, reject);\n            } else {\n              // new syntax in Vue 2.3\n              var comp = res.component;\n              if (comp && typeof comp.then === 'function') {\n                comp.then(resolve, reject);\n              }\n            }\n          }\n        }\n      });\n\n      if (!hasAsync) { next(); }\n    }\n  }\n\n  function flatMapComponents (\n    matched,\n    fn\n  ) {\n    return flatten(matched.map(function (m) {\n      return Object.keys(m.components).map(function (key) { return fn(\n        m.components[key],\n        m.instances[key],\n        m, key\n      ); })\n    }))\n  }\n\n  function flatten (arr) {\n    return Array.prototype.concat.apply([], arr)\n  }\n\n  var hasSymbol =\n    typeof Symbol === 'function' &&\n    typeof Symbol.toStringTag === 'symbol';\n\n  function isESModule (obj) {\n    return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n  }\n\n  // in Webpack 2, require.ensure now also returns a Promise\n  // so the resolve/reject functions may get called an extra time\n  // if the user uses an arrow function shorthand that happens to\n  // return that Promise.\n  function once (fn) {\n    var called = false;\n    return function () {\n      var args = [], len = arguments.length;\n      while ( len-- ) args[ len ] = arguments[ len ];\n\n      if (called) { return }\n      called = true;\n      return fn.apply(this, args)\n    }\n  }\n\n  /*  */\n\n  var History = function History (router, base) {\n    this.router = router;\n    this.base = normalizeBase(base);\n    // start with a route object that stands for \"nowhere\"\n    this.current = START;\n    this.pending = null;\n    this.ready = false;\n    this.readyCbs = [];\n    this.readyErrorCbs = [];\n    this.errorCbs = [];\n    this.listeners = [];\n  };\n\n  History.prototype.listen = function listen (cb) {\n    this.cb = cb;\n  };\n\n  History.prototype.onReady = function onReady (cb, errorCb) {\n    if (this.ready) {\n      cb();\n    } else {\n      this.readyCbs.push(cb);\n      if (errorCb) {\n        this.readyErrorCbs.push(errorCb);\n      }\n    }\n  };\n\n  History.prototype.onError = function onError (errorCb) {\n    this.errorCbs.push(errorCb);\n  };\n\n  History.prototype.transitionTo = function transitionTo (\n    location,\n    onComplete,\n    onAbort\n  ) {\n      var this$1 = this;\n\n    var route;\n    // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n    try {\n      route = this.router.match(location, this.current);\n    } catch (e) {\n      this.errorCbs.forEach(function (cb) {\n        cb(e);\n      });\n      // Exception should still be thrown\n      throw e\n    }\n    var prev = this.current;\n    this.confirmTransition(\n      route,\n      function () {\n        this$1.updateRoute(route);\n        onComplete && onComplete(route);\n        this$1.ensureURL();\n        this$1.router.afterHooks.forEach(function (hook) {\n          hook && hook(route, prev);\n        });\n\n        // fire ready cbs once\n        if (!this$1.ready) {\n          this$1.ready = true;\n          this$1.readyCbs.forEach(function (cb) {\n            cb(route);\n          });\n        }\n      },\n      function (err) {\n        if (onAbort) {\n          onAbort(err);\n        }\n        if (err && !this$1.ready) {\n          // Initial redirection should not mark the history as ready yet\n          // because it's triggered by the redirection instead\n          // https://github.com/vuejs/vue-router/issues/3225\n          // https://github.com/vuejs/vue-router/issues/3331\n          if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n            this$1.ready = true;\n            this$1.readyErrorCbs.forEach(function (cb) {\n              cb(err);\n            });\n          }\n        }\n      }\n    );\n  };\n\n  History.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n      var this$1 = this;\n\n    var current = this.current;\n    this.pending = route;\n    var abort = function (err) {\n      // changed after adding errors with\n      // https://github.com/vuejs/vue-router/pull/3047 before that change,\n      // redirect and aborted navigation would produce an err == null\n      if (!isNavigationFailure(err) && isError(err)) {\n        if (this$1.errorCbs.length) {\n          this$1.errorCbs.forEach(function (cb) {\n            cb(err);\n          });\n        } else {\n          warn(false, 'uncaught error during route navigation:');\n          console.error(err);\n        }\n      }\n      onAbort && onAbort(err);\n    };\n    var lastRouteIndex = route.matched.length - 1;\n    var lastCurrentIndex = current.matched.length - 1;\n    if (\n      isSameRoute(route, current) &&\n      // in the case the route map has been dynamically appended to\n      lastRouteIndex === lastCurrentIndex &&\n      route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n    ) {\n      this.ensureURL();\n      return abort(createNavigationDuplicatedError(current, route))\n    }\n\n    var ref = resolveQueue(\n      this.current.matched,\n      route.matched\n    );\n      var updated = ref.updated;\n      var deactivated = ref.deactivated;\n      var activated = ref.activated;\n\n    var queue = [].concat(\n      // in-component leave guards\n      extractLeaveGuards(deactivated),\n      // global before hooks\n      this.router.beforeHooks,\n      // in-component update hooks\n      extractUpdateHooks(updated),\n      // in-config enter guards\n      activated.map(function (m) { return m.beforeEnter; }),\n      // async components\n      resolveAsyncComponents(activated)\n    );\n\n    var iterator = function (hook, next) {\n      if (this$1.pending !== route) {\n        return abort(createNavigationCancelledError(current, route))\n      }\n      try {\n        hook(route, current, function (to) {\n          if (to === false) {\n            // next(false) -> abort navigation, ensure current URL\n            this$1.ensureURL(true);\n            abort(createNavigationAbortedError(current, route));\n          } else if (isError(to)) {\n            this$1.ensureURL(true);\n            abort(to);\n          } else if (\n            typeof to === 'string' ||\n            (typeof to === 'object' &&\n              (typeof to.path === 'string' || typeof to.name === 'string'))\n          ) {\n            // next('/') or next({ path: '/' }) -> redirect\n            abort(createNavigationRedirectedError(current, route));\n            if (typeof to === 'object' && to.replace) {\n              this$1.replace(to);\n            } else {\n              this$1.push(to);\n            }\n          } else {\n            // confirm transition and pass on the value\n            next(to);\n          }\n        });\n      } catch (e) {\n        abort(e);\n      }\n    };\n\n    runQueue(queue, iterator, function () {\n      // wait until async components are resolved before\n      // extracting in-component enter guards\n      var enterGuards = extractEnterGuards(activated);\n      var queue = enterGuards.concat(this$1.router.resolveHooks);\n      runQueue(queue, iterator, function () {\n        if (this$1.pending !== route) {\n          return abort(createNavigationCancelledError(current, route))\n        }\n        this$1.pending = null;\n        onComplete(route);\n        if (this$1.router.app) {\n          this$1.router.app.$nextTick(function () {\n            handleRouteEntered(route);\n          });\n        }\n      });\n    });\n  };\n\n  History.prototype.updateRoute = function updateRoute (route) {\n    this.current = route;\n    this.cb && this.cb(route);\n  };\n\n  History.prototype.setupListeners = function setupListeners () {\n    // Default implementation is empty\n  };\n\n  History.prototype.teardown = function teardown () {\n    // clean up event listeners\n    // https://github.com/vuejs/vue-router/issues/2341\n    this.listeners.forEach(function (cleanupListener) {\n      cleanupListener();\n    });\n    this.listeners = [];\n\n    // reset current history route\n    // https://github.com/vuejs/vue-router/issues/3294\n    this.current = START;\n    this.pending = null;\n  };\n\n  function normalizeBase (base) {\n    if (!base) {\n      if (inBrowser) {\n        // respect <base> tag\n        var baseEl = document.querySelector('base');\n        base = (baseEl && baseEl.getAttribute('href')) || '/';\n        // strip full URL origin\n        base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n      } else {\n        base = '/';\n      }\n    }\n    // make sure there's the starting slash\n    if (base.charAt(0) !== '/') {\n      base = '/' + base;\n    }\n    // remove trailing slash\n    return base.replace(/\\/$/, '')\n  }\n\n  function resolveQueue (\n    current,\n    next\n  ) {\n    var i;\n    var max = Math.max(current.length, next.length);\n    for (i = 0; i < max; i++) {\n      if (current[i] !== next[i]) {\n        break\n      }\n    }\n    return {\n      updated: next.slice(0, i),\n      activated: next.slice(i),\n      deactivated: current.slice(i)\n    }\n  }\n\n  function extractGuards (\n    records,\n    name,\n    bind,\n    reverse\n  ) {\n    var guards = flatMapComponents(records, function (def, instance, match, key) {\n      var guard = extractGuard(def, name);\n      if (guard) {\n        return Array.isArray(guard)\n          ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n          : bind(guard, instance, match, key)\n      }\n    });\n    return flatten(reverse ? guards.reverse() : guards)\n  }\n\n  function extractGuard (\n    def,\n    key\n  ) {\n    if (typeof def !== 'function') {\n      // extend now so that global mixins are applied.\n      def = _Vue.extend(def);\n    }\n    return def.options[key]\n  }\n\n  function extractLeaveGuards (deactivated) {\n    return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n  }\n\n  function extractUpdateHooks (updated) {\n    return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n  }\n\n  function bindGuard (guard, instance) {\n    if (instance) {\n      return function boundRouteGuard () {\n        return guard.apply(instance, arguments)\n      }\n    }\n  }\n\n  function extractEnterGuards (\n    activated\n  ) {\n    return extractGuards(\n      activated,\n      'beforeRouteEnter',\n      function (guard, _, match, key) {\n        return bindEnterGuard(guard, match, key)\n      }\n    )\n  }\n\n  function bindEnterGuard (\n    guard,\n    match,\n    key\n  ) {\n    return function routeEnterGuard (to, from, next) {\n      return guard(to, from, function (cb) {\n        if (typeof cb === 'function') {\n          if (!match.enteredCbs[key]) {\n            match.enteredCbs[key] = [];\n          }\n          match.enteredCbs[key].push(cb);\n        }\n        next(cb);\n      })\n    }\n  }\n\n  /*  */\n\n  var HTML5History = /*@__PURE__*/(function (History) {\n    function HTML5History (router, base) {\n      History.call(this, router, base);\n\n      this._startLocation = getLocation(this.base);\n    }\n\n    if ( History ) HTML5History.__proto__ = History;\n    HTML5History.prototype = Object.create( History && History.prototype );\n    HTML5History.prototype.constructor = HTML5History;\n\n    HTML5History.prototype.setupListeners = function setupListeners () {\n      var this$1 = this;\n\n      if (this.listeners.length > 0) {\n        return\n      }\n\n      var router = this.router;\n      var expectScroll = router.options.scrollBehavior;\n      var supportsScroll = supportsPushState && expectScroll;\n\n      if (supportsScroll) {\n        this.listeners.push(setupScroll());\n      }\n\n      var handleRoutingEvent = function () {\n        var current = this$1.current;\n\n        // Avoiding first `popstate` event dispatched in some browsers but first\n        // history route not updated since async guard at the same time.\n        var location = getLocation(this$1.base);\n        if (this$1.current === START && location === this$1._startLocation) {\n          return\n        }\n\n        this$1.transitionTo(location, function (route) {\n          if (supportsScroll) {\n            handleScroll(router, route, current, true);\n          }\n        });\n      };\n      window.addEventListener('popstate', handleRoutingEvent);\n      this.listeners.push(function () {\n        window.removeEventListener('popstate', handleRoutingEvent);\n      });\n    };\n\n    HTML5History.prototype.go = function go (n) {\n      window.history.go(n);\n    };\n\n    HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n      var this$1 = this;\n\n      var ref = this;\n      var fromRoute = ref.current;\n      this.transitionTo(location, function (route) {\n        pushState(cleanPath(this$1.base + route.fullPath));\n        handleScroll(this$1.router, route, fromRoute, false);\n        onComplete && onComplete(route);\n      }, onAbort);\n    };\n\n    HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n      var this$1 = this;\n\n      var ref = this;\n      var fromRoute = ref.current;\n      this.transitionTo(location, function (route) {\n        replaceState(cleanPath(this$1.base + route.fullPath));\n        handleScroll(this$1.router, route, fromRoute, false);\n        onComplete && onComplete(route);\n      }, onAbort);\n    };\n\n    HTML5History.prototype.ensureURL = function ensureURL (push) {\n      if (getLocation(this.base) !== this.current.fullPath) {\n        var current = cleanPath(this.base + this.current.fullPath);\n        push ? pushState(current) : replaceState(current);\n      }\n    };\n\n    HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n      return getLocation(this.base)\n    };\n\n    return HTML5History;\n  }(History));\n\n  function getLocation (base) {\n    var path = window.location.pathname;\n    if (base && path.toLowerCase().indexOf(base.toLowerCase()) === 0) {\n      path = path.slice(base.length);\n    }\n    return (path || '/') + window.location.search + window.location.hash\n  }\n\n  /*  */\n\n  var HashHistory = /*@__PURE__*/(function (History) {\n    function HashHistory (router, base, fallback) {\n      History.call(this, router, base);\n      // check history fallback deeplinking\n      if (fallback && checkFallback(this.base)) {\n        return\n      }\n      ensureSlash();\n    }\n\n    if ( History ) HashHistory.__proto__ = History;\n    HashHistory.prototype = Object.create( History && History.prototype );\n    HashHistory.prototype.constructor = HashHistory;\n\n    // this is delayed until the app mounts\n    // to avoid the hashchange listener being fired too early\n    HashHistory.prototype.setupListeners = function setupListeners () {\n      var this$1 = this;\n\n      if (this.listeners.length > 0) {\n        return\n      }\n\n      var router = this.router;\n      var expectScroll = router.options.scrollBehavior;\n      var supportsScroll = supportsPushState && expectScroll;\n\n      if (supportsScroll) {\n        this.listeners.push(setupScroll());\n      }\n\n      var handleRoutingEvent = function () {\n        var current = this$1.current;\n        if (!ensureSlash()) {\n          return\n        }\n        this$1.transitionTo(getHash(), function (route) {\n          if (supportsScroll) {\n            handleScroll(this$1.router, route, current, true);\n          }\n          if (!supportsPushState) {\n            replaceHash(route.fullPath);\n          }\n        });\n      };\n      var eventType = supportsPushState ? 'popstate' : 'hashchange';\n      window.addEventListener(\n        eventType,\n        handleRoutingEvent\n      );\n      this.listeners.push(function () {\n        window.removeEventListener(eventType, handleRoutingEvent);\n      });\n    };\n\n    HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n      var this$1 = this;\n\n      var ref = this;\n      var fromRoute = ref.current;\n      this.transitionTo(\n        location,\n        function (route) {\n          pushHash(route.fullPath);\n          handleScroll(this$1.router, route, fromRoute, false);\n          onComplete && onComplete(route);\n        },\n        onAbort\n      );\n    };\n\n    HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n      var this$1 = this;\n\n      var ref = this;\n      var fromRoute = ref.current;\n      this.transitionTo(\n        location,\n        function (route) {\n          replaceHash(route.fullPath);\n          handleScroll(this$1.router, route, fromRoute, false);\n          onComplete && onComplete(route);\n        },\n        onAbort\n      );\n    };\n\n    HashHistory.prototype.go = function go (n) {\n      window.history.go(n);\n    };\n\n    HashHistory.prototype.ensureURL = function ensureURL (push) {\n      var current = this.current.fullPath;\n      if (getHash() !== current) {\n        push ? pushHash(current) : replaceHash(current);\n      }\n    };\n\n    HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n      return getHash()\n    };\n\n    return HashHistory;\n  }(History));\n\n  function checkFallback (base) {\n    var location = getLocation(base);\n    if (!/^\\/#/.test(location)) {\n      window.location.replace(cleanPath(base + '/#' + location));\n      return true\n    }\n  }\n\n  function ensureSlash () {\n    var path = getHash();\n    if (path.charAt(0) === '/') {\n      return true\n    }\n    replaceHash('/' + path);\n    return false\n  }\n\n  function getHash () {\n    // We can't use window.location.hash here because it's not\n    // consistent across browsers - Firefox will pre-decode it!\n    var href = window.location.href;\n    var index = href.indexOf('#');\n    // empty path\n    if (index < 0) { return '' }\n\n    href = href.slice(index + 1);\n\n    return href\n  }\n\n  function getUrl (path) {\n    var href = window.location.href;\n    var i = href.indexOf('#');\n    var base = i >= 0 ? href.slice(0, i) : href;\n    return (base + \"#\" + path)\n  }\n\n  function pushHash (path) {\n    if (supportsPushState) {\n      pushState(getUrl(path));\n    } else {\n      window.location.hash = path;\n    }\n  }\n\n  function replaceHash (path) {\n    if (supportsPushState) {\n      replaceState(getUrl(path));\n    } else {\n      window.location.replace(getUrl(path));\n    }\n  }\n\n  /*  */\n\n  var AbstractHistory = /*@__PURE__*/(function (History) {\n    function AbstractHistory (router, base) {\n      History.call(this, router, base);\n      this.stack = [];\n      this.index = -1;\n    }\n\n    if ( History ) AbstractHistory.__proto__ = History;\n    AbstractHistory.prototype = Object.create( History && History.prototype );\n    AbstractHistory.prototype.constructor = AbstractHistory;\n\n    AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n      var this$1 = this;\n\n      this.transitionTo(\n        location,\n        function (route) {\n          this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n          this$1.index++;\n          onComplete && onComplete(route);\n        },\n        onAbort\n      );\n    };\n\n    AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n      var this$1 = this;\n\n      this.transitionTo(\n        location,\n        function (route) {\n          this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n          onComplete && onComplete(route);\n        },\n        onAbort\n      );\n    };\n\n    AbstractHistory.prototype.go = function go (n) {\n      var this$1 = this;\n\n      var targetIndex = this.index + n;\n      if (targetIndex < 0 || targetIndex >= this.stack.length) {\n        return\n      }\n      var route = this.stack[targetIndex];\n      this.confirmTransition(\n        route,\n        function () {\n          var prev = this$1.current;\n          this$1.index = targetIndex;\n          this$1.updateRoute(route);\n          this$1.router.afterHooks.forEach(function (hook) {\n            hook && hook(route, prev);\n          });\n        },\n        function (err) {\n          if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n            this$1.index = targetIndex;\n          }\n        }\n      );\n    };\n\n    AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n      var current = this.stack[this.stack.length - 1];\n      return current ? current.fullPath : '/'\n    };\n\n    AbstractHistory.prototype.ensureURL = function ensureURL () {\n      // noop\n    };\n\n    return AbstractHistory;\n  }(History));\n\n  /*  */\n\n  var VueRouter = function VueRouter (options) {\n    if ( options === void 0 ) options = {};\n\n    this.app = null;\n    this.apps = [];\n    this.options = options;\n    this.beforeHooks = [];\n    this.resolveHooks = [];\n    this.afterHooks = [];\n    this.matcher = createMatcher(options.routes || [], this);\n\n    var mode = options.mode || 'hash';\n    this.fallback =\n      mode === 'history' && !supportsPushState && options.fallback !== false;\n    if (this.fallback) {\n      mode = 'hash';\n    }\n    if (!inBrowser) {\n      mode = 'abstract';\n    }\n    this.mode = mode;\n\n    switch (mode) {\n      case 'history':\n        this.history = new HTML5History(this, options.base);\n        break\n      case 'hash':\n        this.history = new HashHistory(this, options.base, this.fallback);\n        break\n      case 'abstract':\n        this.history = new AbstractHistory(this, options.base);\n        break\n      default:\n        {\n          assert(false, (\"invalid mode: \" + mode));\n        }\n    }\n  };\n\n  var prototypeAccessors = { currentRoute: { configurable: true } };\n\n  VueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n    return this.matcher.match(raw, current, redirectedFrom)\n  };\n\n  prototypeAccessors.currentRoute.get = function () {\n    return this.history && this.history.current\n  };\n\n  VueRouter.prototype.init = function init (app /* Vue component instance */) {\n      var this$1 = this;\n\n\n      assert(\n        install.installed,\n        \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n          \"before creating root instance.\"\n      );\n\n    this.apps.push(app);\n\n    // set up app destroyed handler\n    // https://github.com/vuejs/vue-router/issues/2639\n    app.$once('hook:destroyed', function () {\n      // clean out app from this.apps array once destroyed\n      var index = this$1.apps.indexOf(app);\n      if (index > -1) { this$1.apps.splice(index, 1); }\n      // ensure we still have a main app or null if no apps\n      // we do not release the router so it can be reused\n      if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n\n      if (!this$1.app) { this$1.history.teardown(); }\n    });\n\n    // main app previously initialized\n    // return as we don't need to set up new history listener\n    if (this.app) {\n      return\n    }\n\n    this.app = app;\n\n    var history = this.history;\n\n    if (history instanceof HTML5History || history instanceof HashHistory) {\n      var handleInitialScroll = function (routeOrError) {\n        var from = history.current;\n        var expectScroll = this$1.options.scrollBehavior;\n        var supportsScroll = supportsPushState && expectScroll;\n\n        if (supportsScroll && 'fullPath' in routeOrError) {\n          handleScroll(this$1, routeOrError, from, false);\n        }\n      };\n      var setupListeners = function (routeOrError) {\n        history.setupListeners();\n        handleInitialScroll(routeOrError);\n      };\n      history.transitionTo(\n        history.getCurrentLocation(),\n        setupListeners,\n        setupListeners\n      );\n    }\n\n    history.listen(function (route) {\n      this$1.apps.forEach(function (app) {\n        app._route = route;\n      });\n    });\n  };\n\n  VueRouter.prototype.beforeEach = function beforeEach (fn) {\n    return registerHook(this.beforeHooks, fn)\n  };\n\n  VueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n    return registerHook(this.resolveHooks, fn)\n  };\n\n  VueRouter.prototype.afterEach = function afterEach (fn) {\n    return registerHook(this.afterHooks, fn)\n  };\n\n  VueRouter.prototype.onReady = function onReady (cb, errorCb) {\n    this.history.onReady(cb, errorCb);\n  };\n\n  VueRouter.prototype.onError = function onError (errorCb) {\n    this.history.onError(errorCb);\n  };\n\n  VueRouter.prototype.push = function push (location, onComplete, onAbort) {\n      var this$1 = this;\n\n    // $flow-disable-line\n    if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n      return new Promise(function (resolve, reject) {\n        this$1.history.push(location, resolve, reject);\n      })\n    } else {\n      this.history.push(location, onComplete, onAbort);\n    }\n  };\n\n  VueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n      var this$1 = this;\n\n    // $flow-disable-line\n    if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n      return new Promise(function (resolve, reject) {\n        this$1.history.replace(location, resolve, reject);\n      })\n    } else {\n      this.history.replace(location, onComplete, onAbort);\n    }\n  };\n\n  VueRouter.prototype.go = function go (n) {\n    this.history.go(n);\n  };\n\n  VueRouter.prototype.back = function back () {\n    this.go(-1);\n  };\n\n  VueRouter.prototype.forward = function forward () {\n    this.go(1);\n  };\n\n  VueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n    var route = to\n      ? to.matched\n        ? to\n        : this.resolve(to).route\n      : this.currentRoute;\n    if (!route) {\n      return []\n    }\n    return [].concat.apply(\n      [],\n      route.matched.map(function (m) {\n        return Object.keys(m.components).map(function (key) {\n          return m.components[key]\n        })\n      })\n    )\n  };\n\n  VueRouter.prototype.resolve = function resolve (\n    to,\n    current,\n    append\n  ) {\n    current = current || this.history.current;\n    var location = normalizeLocation(to, current, append, this);\n    var route = this.match(location, current);\n    var fullPath = route.redirectedFrom || route.fullPath;\n    var base = this.history.base;\n    var href = createHref(base, fullPath, this.mode);\n    return {\n      location: location,\n      route: route,\n      href: href,\n      // for backwards compat\n      normalizedTo: location,\n      resolved: route\n    }\n  };\n\n  VueRouter.prototype.addRoutes = function addRoutes (routes) {\n    this.matcher.addRoutes(routes);\n    if (this.history.current !== START) {\n      this.history.transitionTo(this.history.getCurrentLocation());\n    }\n  };\n\n  Object.defineProperties( VueRouter.prototype, prototypeAccessors );\n\n  function registerHook (list, fn) {\n    list.push(fn);\n    return function () {\n      var i = list.indexOf(fn);\n      if (i > -1) { list.splice(i, 1); }\n    }\n  }\n\n  function createHref (base, fullPath, mode) {\n    var path = mode === 'hash' ? '#' + fullPath : fullPath;\n    return base ? cleanPath(base + '/' + path) : path\n  }\n\n  VueRouter.install = install;\n  VueRouter.version = '3.4.8';\n  VueRouter.isNavigationFailure = isNavigationFailure;\n  VueRouter.NavigationFailureType = NavigationFailureType;\n\n  if (inBrowser && Vue) {\n    Vue.use(VueRouter);\n  }\n\n  VueRouterVendor = VueRouter;\n}\n\nexport {VueRouterVendor};","/**\n * Bitrix Vuex manager\n *\n * @package bitrix\n * @subpackage ui\n * @copyright 2001-2019 Bitrix\n */\n\nimport {VueRouterVendor} from \"./router.js\";\n\nclass BitrixVueRouter\n{\n\t/**\n\t * Create new VueRouter instance\n\t *\n\t * @param {Object} params - route config\n\t *\n\t * @see https://router.vuejs.org/\n\t */\n\n\tstatic create(params)\n\t{\n\t\treturn new VueRouterVendor(params);\n\t}\n\n\t/**\n\t * Provides the installed version of Vuex as a string.\n\t *\n\t * @returns {String}\n\t */\n\tstatic version()\n\t{\n\t\treturn VueRouter.version;\n\t}\n}\n\nexport {\n\tBitrixVueRouter as VueRouter,\n\tVueRouterVendor\n};"],"names":["exports","VueRouter","currentVersion","VueRouterVendor","version","console","warn","assert","condition","message","Error","extend","a","b","key","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","toString","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","err","resolveQuery","query","extraQuery","_parseQuery","parse","parseQuery","parsedQuery","e","value","Array","isArray","map","castQueryParamValue","String","res","trim","split","forEach","param","parts","shift","val","length","join","undefined","push","stringifyQuery","obj","Object","keys","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","options","clone","route","name","meta","path","hash","params","fullPath","getFullPath","matched","formatMatch","freeze","START","unshift","parent","ref","_stringifyQuery","stringify","isSameRoute","isObjectEqual","aKeys","sort","bKeys","every","i","aVal","bKey","bVal","isIncludedRoute","current","target","indexOf","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","functional","props","type","default","render","_","children","data","routerView","h","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","component","configProps","fillPropsinData","components","registerRouteInstance","vm","hook","prepatch","vnode","componentInstance","init","propsToPass","resolveProps","attrs","config","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","segment","parsePath","hashIndex","slice","queryIndex","cleanPath","isarray","arr","prototype","call","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","index","defaultDelimiter","delimiter","exec","m","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","encodeAsterisk","matches","flags","opts","pretty","token","TypeError","JSON","j","test","attachKeys","re","sensitive","regexpToRegexp","groups","source","match","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","noop","Link","to","required","tag","exact","Boolean","activeClass","exactActiveClass","ariaCurrentValue","event","this$1","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","_Vue","install","Vue","installed","isDef","v","registerInstance","callVal","$options","_parentVnode","mixin","beforeCreate","_router","util","defineReactive","history","destroyed","defineProperty","get","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","window","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","l","splice","found","pathNames","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","beforeEnter","some","childMatchAs","alias","aliases","aliasRoute","createMatcher","addRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","hasOwnProperty","targetRecord","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","decodeURI","len","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","state","replaceState","addEventListener","handlePopState","removeEventListener","handleScroll","from","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","saveScrollPosition","pageXOffset","y","pageYOffset","getElementPosition","el","docEl","document","documentElement","docRect","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","isObject","selector","getElementById","querySelector","style","scrollTo","supportsPushState","ua","navigator","userAgent","pushState","url","runQueue","queue","fn","cb","step","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","error","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","reject","reason","msg","comp","flatten","concat","apply","hasSymbol","Symbol","toStringTag","__esModule","called","args","arguments","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","prev","confirmTransition","updateRoute","ensureURL","afterHooks","abort","lastRouteIndex","lastCurrentIndex","resolveQueue","updated","deactivated","activated","extractLeaveGuards","beforeHooks","extractUpdateHooks","iterator","enterGuards","extractEnterGuards","resolveHooks","setupListeners","teardown","cleanupListener","baseEl","max","Math","extractGuards","records","bind","reverse","guards","guard","extractGuard","bindGuard","boundRouteGuard","bindEnterGuard","routeEnterGuard","HTML5History","_startLocation","getLocation","__proto__","constructor","expectScroll","supportsScroll","handleRoutingEvent","go","n","fromRoute","getCurrentLocation","pathname","toLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","apps","matcher","mode","prototypeAccessors","configurable","$once","handleInitialScroll","routeOrError","beforeEach","registerHook","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","createHref","normalizedTo","defineProperties","list","use","BitrixVueRouter"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit