/
activity-app.mjs.map
1 lines (1 loc) · 298 KB
/
activity-app.mjs.map
1
{"version":3,"file":"activity-app.mjs","sources":["../node_modules/vue-router/dist/vue-router.esm.js","../node_modules/@nextcloud/vue/dist/Components/NcContent.mjs","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationToggle-cd2ef112.mjs","../node_modules/@nextcloud/vue/dist/Components/NcAppNavigation.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-304f0b74.mjs","../node_modules/@nextcloud/vue/dist/Components/NcAppNavigationItem.mjs","../node_modules/vue-frag/dist/frag.esm.js","../src/components/ActivityGroup.vue","../img/activity-dark.svg?raw","../src/views/ActivityAppFeed.vue","../node_modules/vue-material-design-icons/ContentCopy.vue","../src/views/ActivityAppNavigation.vue","../src/routes.ts","../src/app.ts"],"sourcesContent":["/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction 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 process.env.NODE_ENV !== 'production' && 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\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction 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\nfunction 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\nvar trailingSlashRE = /\\/?$/;\n\nfunction 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\nfunction 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\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction 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\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction 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\nfunction 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\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction 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\nvar 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\nfunction 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\nfunction 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 if (process.env.NODE_ENV !== 'production') {\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\nfunction 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\nfunction 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\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction 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 if (process.env.NODE_ENV !== 'production') {\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\nfunction 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 if (process.env.NODE_ENV !== 'production') {\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\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar 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 custom: Boolean,\n exact: Boolean,\n exactPath: 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$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, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\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$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 (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an <a> element. Use the custom prop to remove this warning:\\n<router-link v-slot=\"{ navigate, href }\" custom></router-link>\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\"<router-link> 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 (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"<router-link>'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"<router-link>'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\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\nfunction 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\nfunction 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\nvar _Vue;\n\nfunction 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\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\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, parentRoute);\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 if (process.env.NODE_ENV === 'development') {\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\nfunction 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 if (process.env.NODE_ENV !== 'production') {\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 warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\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 alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\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 if (process.env.NODE_ENV !== 'production') {\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 (process.env.NODE_ENV !== 'production' && 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 (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\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\nfunction 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\nfunction 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 addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\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 if (process.env.NODE_ENV !== 'production') {\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 if (process.env.NODE_ENV !== 'production') {\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 if (process.env.NODE_ENV !== 'production') {\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 if (process.env.NODE_ENV !== 'production') {\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 addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\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'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction 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\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction 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\nfunction 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 if (process.env.NODE_ENV !== 'production') {\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 if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction 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\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction 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\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction 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\nvar 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\nfunction 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\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction 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\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction 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/* */\n\nfunction 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 process.env.NODE_ENV !== 'production' && 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\nfunction 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\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction 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.\nfunction 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\nvar 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\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.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\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$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$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$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$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$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$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$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\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 if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\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$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$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$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$1.replace(to);\n } else {\n this$1$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$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction 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\nfunction 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\nvar 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$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$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$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$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$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$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$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$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\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar 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$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$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$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$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$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$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$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\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction 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\nfunction 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\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar 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$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$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$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$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$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$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$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$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\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\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 if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\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$1.apps.indexOf(app);\n if (index > -1) { this$1$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$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$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$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$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$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.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\nVueRouter.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\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction 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\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","import \"../assets/index-a9e4fe04.css\";\nimport { n } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst r = {\n props: {\n appName: {\n type: String,\n required: !0\n }\n }\n};\nvar s = function() {\n var e = this, t = e._self._c;\n return t(\"div\", { staticClass: \"content\", class: `app-${e.appName.toLowerCase()}`, attrs: { id: \"content-vue\" } }, [e._t(\"default\")], 2);\n}, _ = [], a = /* @__PURE__ */ n(\n r,\n s,\n _,\n !1,\n null,\n \"eb1078f7\",\n null,\n null\n);\nconst l = a.exports;\nexport {\n l as default\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","module.exports = require('./lib/axios');","import \"../assets/NcAppNavigationToggle-9e170630.css\";\nimport l from \"../Components/NcButton.mjs\";\nimport \"../Directives/Tooltip.mjs\";\nimport { t as o } from \"./l10n-b6d21146.mjs\";\nimport { n as i } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport { VTooltip as r } from \"floating-vue\";\nconst s = {\n name: \"MenuIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar c = function() {\n var t = this, e = t._self._c;\n return e(\"span\", t._b({ staticClass: \"material-design-icon menu-icon\", attrs: { \"aria-hidden\": !t.title, \"aria-label\": t.title, role: \"img\" }, on: { click: function(n) {\n return t.$emit(\"click\", n);\n } } }, \"span\", t.$attrs, !1), [e(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: t.fillColor, width: t.size, height: t.size, viewBox: \"0 0 24 24\" } }, [e(\"path\", { attrs: { d: \"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\" } }, [t.title ? e(\"title\", [t._v(t._s(t.title))]) : t._e()])])]);\n}, p = [], _ = /* @__PURE__ */ i(\n s,\n c,\n p,\n !1,\n null,\n null,\n null,\n null\n);\nconst u = _.exports, m = {\n name: \"MenuOpenIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar f = function() {\n var t = this, e = t._self._c;\n return e(\"span\", t._b({ staticClass: \"material-design-icon menu-open-icon\", attrs: { \"aria-hidden\": !t.title, \"aria-label\": t.title, role: \"img\" }, on: { click: function(n) {\n return t.$emit(\"click\", n);\n } } }, \"span\", t.$attrs, !1), [e(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: t.fillColor, width: t.size, height: t.size, viewBox: \"0 0 24 24\" } }, [e(\"path\", { attrs: { d: \"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\" } }, [t.title ? e(\"title\", [t._v(t._s(t.title))]) : t._e()])])]);\n}, v = [], d = /* @__PURE__ */ i(\n m,\n f,\n v,\n !1,\n null,\n null,\n null,\n null\n);\nconst g = d.exports;\nconst h = {\n name: \"NcAppNavigationToggle\",\n directives: {\n tooltip: r\n },\n components: {\n NcButton: l,\n MenuIcon: u,\n MenuOpenIcon: g\n },\n props: {\n open: {\n type: Boolean,\n required: !0\n }\n },\n emits: [\"update:open\"],\n computed: {\n label() {\n return this.open ? o(\"Close navigation\") : o(\"Open navigation\");\n }\n },\n methods: {\n toggleNavigation() {\n this.$emit(\"update:open\", !this.open);\n }\n }\n};\nvar N = function() {\n var t = this, e = t._self._c;\n return e(\"NcButton\", { directives: [{ name: \"tooltip\", rawName: \"v-tooltip.auto\", value: t.label, expression: \"label\", modifiers: { auto: !0 } }], staticClass: \"app-navigation-toggle\", attrs: { type: \"tertiary\", \"aria-expanded\": t.open ? \"true\" : \"false\", \"aria-label\": t.label, \"aria-controls\": \"app-navigation-vue\" }, on: { click: t.toggleNavigation }, scopedSlots: t._u([{ key: \"icon\", fn: function() {\n return [t.open ? e(\"MenuOpenIcon\", { attrs: { size: 20 } }) : e(\"MenuIcon\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) });\n}, b = [], y = /* @__PURE__ */ i(\n h,\n N,\n b,\n !1,\n null,\n \"13b4f13a\",\n null,\n null\n);\nconst z = y.exports;\nexport {\n z as N\n};\n","import \"../assets/index-ebbb7829.css\";\nimport { N as n } from \"../chunks/NcAppNavigationToggle-cd2ef112.mjs\";\nimport s from \"../Mixins/isMobile.mjs\";\nimport { g as p } from \"../chunks/focusTrap-5d0f71d4.mjs\";\nimport { subscribe as l, emit as o, unsubscribe as r } from \"@nextcloud/event-bus\";\nimport { createFocusTrap as g } from \"focus-trap\";\nimport { n as c } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst u = {\n name: \"NcAppNavigation\",\n components: {\n NcAppNavigationToggle: n\n },\n mixins: [s],\n props: {\n /**\n * The aria label to describe the navigation\n */\n ariaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * aria-labelledby attribute to describe the navigation\n */\n ariaLabelledby: {\n type: String,\n default: \"\"\n }\n },\n data() {\n return {\n open: !0,\n focusTrap: null\n };\n },\n watch: {\n isMobile() {\n this.open = !this.isMobile, this.toggleFocusTrap();\n },\n open() {\n this.toggleFocusTrap();\n }\n },\n mounted() {\n l(\"toggle-navigation\", this.toggleNavigationByEventBus), o(\"navigation-toggled\", {\n open: this.open\n }), this.focusTrap = g(this.$refs.appNavigationContainer, {\n allowOutsideClick: !0,\n fallbackFocus: this.$refs.appNavigationContainer,\n trapStack: p(),\n escapeDeactivates: !1\n }), this.toggleFocusTrap();\n },\n unmounted() {\n r(\"toggle-navigation\", this.toggleNavigationByEventBus), this.focusTrap.deactivate();\n },\n methods: {\n /**\n * Toggle the navigation\n *\n * @param {boolean} [state] set the state instead of inverting the current one\n */\n toggleNavigation(e) {\n this.open = typeof e > \"u\" ? !this.open : e;\n const t = getComputedStyle(document.body), a = parseInt(t.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n o(\"navigation-toggled\", {\n open: this.open\n });\n }, 1.5 * a);\n },\n toggleNavigationByEventBus({ open: e }) {\n this.toggleNavigation(e);\n },\n /**\n * Activate focus trap if it is currently needed, otherwise deactivate\n */\n toggleFocusTrap() {\n this.isMobile && this.open ? this.focusTrap.activate() : this.focusTrap.deactivate();\n },\n handleEsc() {\n this.isMobile && this.toggleNavigation(!1);\n }\n }\n};\nvar d = function() {\n var t = this, a = t._self._c;\n return a(\"div\", { ref: \"appNavigationContainer\", staticClass: \"app-navigation\", class: { \"app-navigation--close\": !t.open } }, [a(\"div\", { staticClass: \"app-navigation__toggle-wrapper\" }, [a(\"NcAppNavigationToggle\", { attrs: { open: t.open }, on: { \"update:open\": t.toggleNavigation } })], 1), a(\"nav\", { staticClass: \"app-navigation__content\", attrs: { id: \"app-navigation-vue\", \"aria-hidden\": t.open ? \"false\" : \"true\", \"aria-label\": t.ariaLabel || void 0, \"aria-labelledby\": t.ariaLabelledby || void 0, inert: !t.open || void 0 }, on: { keydown: function(i) {\n return !i.type.indexOf(\"key\") && t._k(i.keyCode, \"esc\", 27, i.key, [\"Esc\", \"Escape\"]) ? null : t.handleEsc.apply(null, arguments);\n } } }, [t._t(\"default\"), a(\"ul\", { staticClass: \"app-navigation__list\" }, [t._t(\"list\")], 2), t._t(\"footer\")], 2)]);\n}, v = [], f = /* @__PURE__ */ c(\n u,\n d,\n v,\n !1,\n null,\n \"fd869d62\",\n null,\n null\n);\nconst C = f.exports;\nexport {\n C as default\n};\n","import \"../assets/NcInputConfirmCancel-45d1d76b.css\";\nimport o from \"../Components/NcButton.mjs\";\nimport { t as a } from \"./l10n-b6d21146.mjs\";\nimport { A as l } from \"./ArrowRight-74a9fcb2.mjs\";\nimport { C as i } from \"./Close-271f72e2.mjs\";\nimport { n as c } from \"./_plugin-vue2_normalizer-71e2aa87.mjs\";\nconst u = {\n name: \"NcInputConfirmCancel\",\n components: {\n NcButton: o,\n ArrowRight: l,\n Close: i\n },\n props: {\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n default: !1,\n type: Boolean\n },\n placeholder: {\n default: \"\",\n type: String\n },\n value: {\n default: \"\",\n type: String\n }\n },\n emits: [\n \"input\",\n \"confirm\",\n \"cancel\"\n ],\n data() {\n return {\n labelConfirm: a(\"Confirm changes\"),\n labelCancel: a(\"Cancel changes\")\n };\n },\n computed: {\n valueModel: {\n get() {\n return this.value;\n },\n set(r) {\n this.$emit(\"input\", r);\n }\n }\n },\n methods: {\n confirm() {\n this.$emit(\"confirm\");\n },\n cancel() {\n this.$emit(\"cancel\");\n },\n focusInput() {\n this.$refs.input.focus();\n }\n }\n};\nvar p = function() {\n var e = this, n = e._self._c;\n return n(\"div\", { staticClass: \"app-navigation-input-confirm\" }, [n(\"form\", { on: { submit: function(t) {\n return t.preventDefault(), e.confirm.apply(null, arguments);\n }, keydown: function(t) {\n return !t.type.indexOf(\"key\") && e._k(t.keyCode, \"esc\", 27, t.key, [\"Esc\", \"Escape\"]) || t.ctrlKey || t.shiftKey || t.altKey || t.metaKey ? null : (t.stopPropagation(), t.preventDefault(), e.cancel.apply(null, arguments));\n }, click: function(t) {\n t.stopPropagation(), t.preventDefault();\n } } }, [n(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: e.valueModel, expression: \"valueModel\" }], ref: \"input\", staticClass: \"app-navigation-input-confirm__input\", attrs: { type: \"text\", placeholder: e.placeholder }, domProps: { value: e.valueModel }, on: { input: function(t) {\n t.target.composing || (e.valueModel = t.target.value);\n } } }), n(\"NcButton\", { attrs: { \"native-type\": \"submit\", type: \"primary\", \"aria-label\": e.labelConfirm }, on: { click: function(t) {\n return t.stopPropagation(), t.preventDefault(), e.confirm.apply(null, arguments);\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [n(\"ArrowRight\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) }), n(\"NcButton\", { attrs: { \"native-type\": \"reset\", type: e.primary ? \"primary\" : \"tertiary\", \"aria-label\": e.labelCancel }, on: { click: function(t) {\n return t.stopPropagation(), t.preventDefault(), e.cancel.apply(null, arguments);\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [n(\"Close\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) })], 1)]);\n}, s = [], f = /* @__PURE__ */ c(\n u,\n p,\n s,\n !1,\n null,\n \"dcf0becf\",\n null,\n null\n);\nconst v = f.exports;\nexport {\n v as N\n};\n","import \"../assets/index-9176105d.css\";\nimport c from \"./NcActions.mjs\";\nimport u from \"./NcActionButton.mjs\";\nimport p from \"./NcLoadingIcon.mjs\";\nimport d from \"./NcVNodes.mjs\";\nimport f from \"./NcButton.mjs\";\nimport { t as s } from \"../chunks/l10n-b6d21146.mjs\";\nimport { C as _ } from \"../chunks/ChevronDown-a72d365d.mjs\";\nimport { n as l } from \"../chunks/_plugin-vue2_normalizer-71e2aa87.mjs\";\nimport m from \"../Mixins/isMobile.mjs\";\nimport { N as h } from \"../chunks/NcInputConfirmCancel-304f0b74.mjs\";\nimport { G as g } from \"../chunks/GenRandomId-cb9ccebe.mjs\";\nconst v = {\n name: \"ChevronUpIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar y = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon chevron-up-icon\", attrs: { \"aria-hidden\": !e.title, \"aria-label\": e.title, role: \"img\" }, on: { click: function(a) {\n return e.$emit(\"click\", a);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, C = [], b = /* @__PURE__ */ l(\n v,\n y,\n C,\n !1,\n null,\n null,\n null,\n null\n);\nconst k = b.exports;\nconst $ = {\n name: \"NcAppNavigationIconCollapsible\",\n components: {\n NcButton: f,\n ChevronDown: _,\n ChevronUp: k\n },\n props: {\n open: {\n type: Boolean,\n default: !0\n }\n },\n emits: [\"click\"],\n computed: {\n labelButton() {\n return this.open ? s(\"Collapse menu\") : s(\"Open menu\");\n }\n },\n methods: {\n onClick(n) {\n this.$emit(\"click\", n);\n }\n }\n};\nvar N = function() {\n var e = this, t = e._self._c;\n return t(\"NcButton\", { staticClass: \"icon-collapse\", class: { \"icon-collapse--open\": e.open }, attrs: { type: \"tertiary\", \"aria-label\": e.labelButton }, on: { click: e.onClick }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [e.open ? t(\"ChevronUp\", { attrs: { size: 20 } }) : t(\"ChevronDown\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) });\n}, B = [], L = /* @__PURE__ */ l(\n $,\n N,\n B,\n !1,\n null,\n \"07582bf6\",\n null,\n null\n);\nconst A = L.exports, S = {\n name: \"PencilIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar x = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon pencil-icon\", attrs: { \"aria-hidden\": !e.title, \"aria-label\": e.title, role: \"img\" }, on: { click: function(a) {\n return e.$emit(\"click\", a);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, I = [], z = /* @__PURE__ */ l(\n S,\n x,\n I,\n !1,\n null,\n null,\n null,\n null\n);\nconst w = z.exports, V = {\n name: \"UndoIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar U = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon undo-icon\", attrs: { \"aria-hidden\": !e.title, \"aria-label\": e.title, role: \"img\" }, on: { click: function(a) {\n return e.$emit(\"click\", a);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, D = [], E = /* @__PURE__ */ l(\n V,\n U,\n D,\n !1,\n null,\n null,\n null,\n null\n);\nconst O = E.exports;\nconst M = {\n name: \"NcAppNavigationItem\",\n components: {\n NcActions: c,\n NcActionButton: u,\n NcAppNavigationIconCollapsible: A,\n NcInputConfirmCancel: h,\n NcLoadingIcon: p,\n NcVNodes: d,\n Pencil: w,\n Undo: O\n },\n mixins: [m],\n props: {\n /**\n * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n * When using vue-router and the `to` property this is set automatically.\n */\n active: {\n type: Boolean,\n default: !1\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n required: !0\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: null\n },\n /**\n * id attribute of the list item element\n */\n id: {\n type: String,\n default: () => \"app-navigation-item-\" + g(),\n validator: (n) => n.trim() !== \"\"\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: !1\n },\n /**\n * Passing in a route will make the root element of this\n * component a `<router-link />` that points to that route.\n * By leaving this blank, the root element will be a `<li>`.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * A direct link. This will be used as the `href` attribute.\n * This will ignore any `to` prop being defined.\n */\n href: {\n type: String,\n default: null\n },\n /**\n * Pass in `true` if you want the matching behaviour to\n * be non-inclusive: https://router.vuejs.org/api/#exact\n */\n exact: {\n type: Boolean,\n default: !1\n },\n /**\n * Gives the possibility to collapse the children elements into the\n * parent element (true) or expands the children elements (false).\n */\n allowCollapse: {\n type: Boolean,\n default: !1\n },\n /**\n * Makes the name of the item editable by providing an `ActionButton`\n * component that toggles a form\n */\n editable: {\n type: Boolean,\n default: !1\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n },\n /**\n * Pins the item to the bottom left area, above the settings. Do not\n * place 'non-pinned' `AppnavigationItem` components below `pinned`\n * ones.\n */\n pinned: {\n type: Boolean,\n default: !1\n },\n /**\n * Puts the item in the 'undo' state.\n */\n undo: {\n type: Boolean,\n default: !1\n },\n /**\n * The navigation collapsible state (synced)\n */\n open: {\n type: Boolean,\n default: !1\n },\n /**\n * The actions menu open state (synced)\n */\n menuOpen: {\n type: Boolean,\n default: !1\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: !1\n },\n /**\n * The action's menu default icon\n */\n menuIcon: {\n type: String,\n default: void 0\n },\n /**\n * The action's menu direction\n */\n menuPlacement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * Entry aria details\n */\n ariaDescription: {\n type: String,\n default: null\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: !1\n },\n /**\n * Number of action items outside the menu\n */\n inlineActions: {\n type: Number,\n default: 0\n }\n },\n emits: [\n \"update:menuOpen\",\n \"update:open\",\n \"update:name\",\n \"click\",\n \"undo\"\n ],\n data() {\n return {\n editingValue: \"\",\n opened: this.open,\n // Collapsible state\n editingActive: !1,\n hasChildren: !1,\n /**\n * Tracks the open state of the actions menu\n */\n menuOpenLocalValue: !1,\n focused: !1\n };\n },\n computed: {\n isRouterLink() {\n return this.to && !this.href;\n },\n collapsible() {\n return this.allowCollapse && !!this.$slots.default;\n },\n // Checks if the component is already a children of another\n // instance of AppNavigationItem\n canHaveChildren() {\n return this.$parent.$options._componentTag !== \"AppNavigationItem\";\n },\n hasUtils() {\n return !!(this.$slots.actions || this.$slots.counter || this.editable || this.undo);\n },\n editButtonAriaLabel() {\n return this.editLabel ? this.editLabel : s(\"Edit item\");\n },\n undoButtonAriaLabel() {\n return s(\"Undo changes\");\n },\n actionsBoundariesElement() {\n return document.querySelector(\"#content-vue\") || void 0;\n }\n },\n watch: {\n open(n) {\n this.opened = n;\n }\n },\n created() {\n this.updateSlotInfo();\n },\n beforeUpdate() {\n this.updateSlotInfo();\n },\n methods: {\n // sync opened menu state with prop\n onMenuToggle(n) {\n this.$emit(\"update:menuOpen\", n), this.menuOpenLocalValue = n;\n },\n // toggle the collapsible state\n toggleCollapse() {\n this.opened = !this.opened, this.$emit(\"update:open\", this.opened);\n },\n /**\n * Handle link click\n *\n * @param {PointerEvent} event - Native click event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(n, e, t) {\n this.$emit(\"click\", n), !(n.metaKey || n.altKey || n.ctrlKey || n.shiftKey) && t && (e == null || e(n), n.preventDefault());\n },\n // Edition methods\n handleEdit() {\n this.editingValue = this.name, this.editingActive = !0, this.onMenuToggle(!1), this.$nextTick(() => {\n this.$refs.editingInput.focusInput();\n });\n },\n cancelEditing() {\n this.editingActive = !1;\n },\n handleEditingDone() {\n this.$emit(\"update:name\", this.editingValue), this.editingValue = \"\", this.editingActive = !1;\n },\n // Undo methods\n handleUndo() {\n this.$emit(\"undo\");\n },\n updateSlotInfo() {\n this.hasChildren = !!this.$slots.default;\n },\n /**\n * Show actions upon focus\n */\n handleFocus() {\n this.focused = !0;\n },\n handleBlur() {\n this.focused = !1;\n },\n /**\n * This method checks if the root element of the component is focused and\n * if that's the case it focuses the actions button if available\n *\n * @param {Event} e the keydown event\n */\n handleTab(n) {\n this.$refs.actions && (this.focused ? (n.preventDefault(), this.$refs.actions.$refs.menuButton.$el.focus(), this.focused = !1) : this.$refs.actions.$refs.menuButton.$el.blur());\n },\n /**\n * Is this an external link\n *\n * @param {string} href The link to check\n * @return {boolean} Whether it is external or not\n */\n isExternal(n) {\n return n && n.match(/[a-z]+:\\/\\//i);\n }\n }\n};\nvar R = function() {\n var e = this, t = e._self._c;\n return t(\"li\", { staticClass: \"app-navigation-entry-wrapper\", class: {\n \"app-navigation-entry--opened\": e.opened,\n \"app-navigation-entry--pinned\": e.pinned,\n \"app-navigation-entry--collapsible\": e.collapsible\n }, attrs: { id: e.id } }, [t(e.isRouterLink ? \"router-link\" : \"NcVNodes\", { tag: \"component\", attrs: { custom: !!e.isRouterLink, to: e.to, exact: e.isRouterLink ? e.exact : null }, scopedSlots: e._u([{ key: \"default\", fn: function({ href: a, navigate: r, isActive: o }) {\n return [t(\"div\", { staticClass: \"app-navigation-entry\", class: {\n \"app-navigation-entry--editing\": e.editingActive,\n \"app-navigation-entry--deleted\": e.undo,\n active: o && e.to || e.active\n } }, [e.undo ? e._e() : t(\"a\", { staticClass: \"app-navigation-entry-link\", attrs: { \"aria-current\": e.active || o && e.to ? \"page\" : void 0, \"aria-description\": e.ariaDescription, \"aria-expanded\": e.hasChildren ? e.opened.toString() : void 0, href: e.href || a || \"#\", target: e.isExternal(e.href) ? \"_blank\" : void 0, title: e.title || e.name }, on: { blur: e.handleBlur, click: function(i) {\n return e.onClick(i, r, a);\n }, focus: e.handleFocus, keydown: function(i) {\n return !i.type.indexOf(\"key\") && e._k(i.keyCode, \"tab\", 9, i.key, \"Tab\") || i.ctrlKey || i.shiftKey || i.altKey || i.metaKey ? null : e.handleTab.apply(null, arguments);\n } } }, [t(\"div\", { staticClass: \"app-navigation-entry-icon\", class: { [e.icon]: e.icon } }, [e.loading ? t(\"NcLoadingIcon\") : e._t(\"icon\")], 2), e.editingActive ? e._e() : t(\"span\", { staticClass: \"app-navigation-entry__name\" }, [e._v(\" \" + e._s(e.name) + \" \")]), e.editingActive ? t(\"div\", { staticClass: \"editingContainer\" }, [t(\"NcInputConfirmCancel\", { ref: \"editingInput\", attrs: { placeholder: e.editPlaceholder !== \"\" ? e.editPlaceholder : e.name, primary: o && e.to }, on: { cancel: e.cancelEditing, confirm: e.handleEditingDone }, model: { value: e.editingValue, callback: function(i) {\n e.editingValue = i;\n }, expression: \"editingValue\" } })], 1) : e._e()]), e.undo ? t(\"div\", { staticClass: \"app-navigation-entry__deleted\" }, [t(\"div\", { staticClass: \"app-navigation-entry__deleted-description\" }, [e._v(\" \" + e._s(e.name) + \" \")])]) : e._e(), e.hasUtils && !e.editingActive ? t(\"div\", { staticClass: \"app-navigation-entry__utils\", class: { \"app-navigation-entry__utils--display-actions\": e.forceDisplayActions || e.menuOpenLocalValue || e.menuOpen } }, [e.$slots.counter ? t(\"div\", { staticClass: \"app-navigation-entry__counter-wrapper\" }, [e._t(\"counter\")], 2) : e._e(), e.$slots.actions || e.editable && !e.editingActive || e.undo ? t(\"NcActions\", { ref: \"actions\", staticClass: \"app-navigation-entry__actions\", attrs: { inline: e.inlineActions, container: \"#app-navigation-vue\", \"boundaries-element\": e.actionsBoundariesElement, placement: e.menuPlacement, open: e.menuOpen, type: o && e.to ? \"primary\" : null, \"force-menu\": e.forceMenu, \"default-icon\": e.menuIcon }, on: { \"update:open\": e.onMenuToggle }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [e._t(\"menu-icon\")];\n }, proxy: !0 }], null, !0) }, [e.editable && !e.editingActive ? t(\"NcActionButton\", { attrs: { \"aria-label\": e.editButtonAriaLabel }, on: { click: e.handleEdit }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"Pencil\", { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !0) }, [e._v(\" \" + e._s(e.editLabel) + \" \")]) : e._e(), e.undo ? t(\"NcActionButton\", { attrs: { \"aria-label\": e.undoButtonAriaLabel }, on: { click: e.handleUndo }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"Undo\", { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !0) }) : e._e(), e._t(\"actions\")], 2) : e._e()], 1) : e._e(), e.collapsible ? t(\"NcAppNavigationIconCollapsible\", { attrs: { open: e.opened }, on: { click: function(i) {\n return i.preventDefault(), i.stopPropagation(), e.toggleCollapse.apply(null, arguments);\n } } }) : e._e(), e._t(\"extra\")], 2)];\n } }], null, !0) }), e.canHaveChildren && e.hasChildren ? t(\"ul\", { staticClass: \"app-navigation-entry__children\" }, [e._t(\"default\")], 2) : e._e()], 1);\n}, P = [], K = /* @__PURE__ */ l(\n M,\n R,\n P,\n !1,\n null,\n \"d7365865\",\n null,\n null\n);\nconst ee = K.exports;\nexport {\n ee as default\n};\n","var $placeholder = Symbol();\n\nvar $fakeParent = Symbol();\n\nvar $nextSiblingPatched = Symbol();\n\nvar $childNodesPatched = Symbol();\n\nvar isFrag = function isFrag(node) {\n return \"frag\" in node;\n};\n\nvar parentNodeDescriptor = {\n get: function get() {\n return this[$fakeParent] || this.parentElement;\n },\n configurable: true\n};\n\nvar patchParentNode = function patchParentNode(node, fakeParent) {\n if ($fakeParent in node) {\n return;\n }\n node[$fakeParent] = fakeParent;\n Object.defineProperty(node, \"parentNode\", parentNodeDescriptor);\n};\n\nvar nextSiblingDescriptor = {\n get: function get() {\n var childNodes = this.parentNode.childNodes;\n var index = childNodes.indexOf(this);\n if (index > -1) {\n return childNodes[index + 1] || null;\n }\n return null;\n }\n};\n\nvar patchNextSibling = function patchNextSibling(node) {\n if ($nextSiblingPatched in node) {\n return;\n }\n node[$nextSiblingPatched] = true;\n Object.defineProperty(node, \"nextSibling\", nextSiblingDescriptor);\n};\n\nvar getTopFragment = function getTopFragment(node, fromParent) {\n while (node.parentNode !== fromParent) {\n var _node = node, parentNode = _node.parentNode;\n if (parentNode) {\n node = parentNode;\n }\n }\n return node;\n};\n\nvar getChildNodes;\n\nvar getChildNodesWithFragments = function getChildNodesWithFragments(node) {\n if (!getChildNodes) {\n var _childNodesDescriptor = Object.getOwnPropertyDescriptor(Node.prototype, \"childNodes\");\n getChildNodes = _childNodesDescriptor.get;\n }\n var realChildNodes = getChildNodes.apply(node);\n var childNodes = Array.from(realChildNodes).map((function(childNode) {\n return getTopFragment(childNode, node);\n }));\n return childNodes.filter((function(childNode, index) {\n return childNode !== childNodes[index - 1];\n }));\n};\n\nvar childNodesDescriptor = {\n get: function get() {\n return this.frag || getChildNodesWithFragments(this);\n }\n};\n\nvar firstChildDescriptor = {\n get: function get() {\n return this.childNodes[0] || null;\n }\n};\n\nfunction hasChildNodes() {\n return this.childNodes.length > 0;\n}\n\nvar patchChildNodes = function patchChildNodes(node) {\n if ($childNodesPatched in node) {\n return;\n }\n node[$childNodesPatched] = true;\n Object.defineProperties(node, {\n childNodes: childNodesDescriptor,\n firstChild: firstChildDescriptor\n });\n node.hasChildNodes = hasChildNodes;\n};\n\nfunction before() {\n var _this$frag$;\n (_this$frag$ = this.frag[0]).before.apply(_this$frag$, arguments);\n}\n\nfunction remove() {\n var frag = this.frag;\n var removed = frag.splice(0, frag.length);\n removed.forEach((function(node) {\n node.remove();\n }));\n}\n\nvar getFragmentLeafNodes = function getFragmentLeafNodes(children) {\n var _Array$prototype;\n return (_Array$prototype = Array.prototype).concat.apply(_Array$prototype, children.map((function(childNode) {\n return isFrag(childNode) ? getFragmentLeafNodes(childNode.frag) : childNode;\n })));\n};\n\nvar addPlaceholder = function addPlaceholder(node, insertBeforeNode) {\n var placeholder = node[$placeholder];\n insertBeforeNode.before(placeholder);\n patchParentNode(placeholder, node);\n node.frag.unshift(placeholder);\n};\n\nfunction removeChild(node) {\n if (isFrag(this)) {\n var hasChildInFragment = this.frag.indexOf(node);\n if (hasChildInFragment > -1) {\n var _this$frag$splice = this.frag.splice(hasChildInFragment, 1), removedNode = _this$frag$splice[0];\n if (this.frag.length === 0) {\n addPlaceholder(this, removedNode);\n }\n node.remove();\n }\n } else {\n var children = getChildNodesWithFragments(this);\n var hasChild = children.indexOf(node);\n if (hasChild > -1) {\n node.remove();\n }\n }\n return node;\n}\n\nfunction insertBefore(insertNode, insertBeforeNode) {\n var _this = this;\n var insertNodes = insertNode.frag || [ insertNode ];\n if (isFrag(this)) {\n if (insertNode[$fakeParent] === this && insertNode.parentElement) {\n return insertNode;\n }\n var _frag = this.frag;\n if (insertBeforeNode) {\n var index = _frag.indexOf(insertBeforeNode);\n if (index > -1) {\n _frag.splice.apply(_frag, [ index, 0 ].concat(insertNodes));\n insertBeforeNode.before.apply(insertBeforeNode, insertNodes);\n }\n } else {\n var _lastNode = _frag[_frag.length - 1];\n _frag.push.apply(_frag, insertNodes);\n _lastNode.after.apply(_lastNode, insertNodes);\n }\n removePlaceholder(this);\n } else if (insertBeforeNode) {\n if (this.childNodes.includes(insertBeforeNode)) {\n insertBeforeNode.before.apply(insertBeforeNode, insertNodes);\n }\n } else {\n this.append.apply(this, insertNodes);\n }\n insertNodes.forEach((function(node) {\n patchParentNode(node, _this);\n }));\n var lastNode = insertNodes[insertNodes.length - 1];\n patchNextSibling(lastNode);\n return insertNode;\n}\n\nfunction appendChild(node) {\n if (node[$fakeParent] === this && node.parentElement) {\n return node;\n }\n var frag = this.frag;\n var lastChild = frag[frag.length - 1];\n lastChild.after(node);\n patchParentNode(node, this);\n removePlaceholder(this);\n frag.push(node);\n return node;\n}\n\nvar removePlaceholder = function removePlaceholder(node) {\n var placeholder = node[$placeholder];\n if (node.frag[0] === placeholder) {\n node.frag.shift();\n placeholder.remove();\n }\n};\n\nvar innerHTMLDescriptor = {\n set: function set(htmlString) {\n var _this2 = this;\n if (this.frag[0] !== this[$placeholder]) {\n this.frag.slice().forEach((function(child) {\n return _this2.removeChild(child);\n }));\n }\n if (htmlString) {\n var domify = document.createElement(\"div\");\n domify.innerHTML = htmlString;\n Array.from(domify.childNodes).forEach((function(node) {\n _this2.appendChild(node);\n }));\n }\n },\n get: function get() {\n return \"\";\n }\n};\n\nvar frag = {\n inserted: function inserted(element) {\n var parentNode = element.parentNode, nextSibling = element.nextSibling, previousSibling = element.previousSibling;\n var childNodes = Array.from(element.childNodes);\n var placeholder = document.createComment(\"\");\n if (childNodes.length === 0) {\n childNodes.push(placeholder);\n }\n element.frag = childNodes;\n element[$placeholder] = placeholder;\n var fragment = document.createDocumentFragment();\n fragment.append.apply(fragment, getFragmentLeafNodes(childNodes));\n element.replaceWith(fragment);\n childNodes.forEach((function(node) {\n patchParentNode(node, element);\n patchNextSibling(node);\n }));\n patchChildNodes(element);\n Object.assign(element, {\n remove: remove,\n appendChild: appendChild,\n insertBefore: insertBefore,\n removeChild: removeChild,\n before: before\n });\n Object.defineProperty(element, \"innerHTML\", innerHTMLDescriptor);\n if (parentNode) {\n Object.assign(parentNode, {\n removeChild: removeChild,\n insertBefore: insertBefore\n });\n patchParentNode(element, parentNode);\n patchChildNodes(parentNode);\n }\n if (nextSibling) {\n patchNextSibling(element);\n }\n if (previousSibling) {\n patchNextSibling(previousSibling);\n }\n },\n unbind: function unbind(element) {\n element.remove();\n }\n};\n\nvar fragment = {\n name: \"Fragment\",\n directives: {\n frag: frag\n },\n render: function render(h) {\n return h(\"div\", {\n directives: [ {\n name: \"frag\"\n } ]\n }, this.$slots[\"default\"]);\n }\n};\n\nexport { fragment as Fragment, frag as default };\n","<template>\n\t<Fragment>\n\t\t<h2 class=\"activity-group__heading\" :title=\"fullDate\">\n\t\t\t{{ dateText }}\n\t\t</h2>\n\t\t<ul>\n\t\t\t<Activity v-for=\"activity in activities\"\n\t\t\t\t:key=\"activity.id\"\n\t\t\t\t:activity=\"activity\"\n\t\t\t\t:show-previews=\"true\" />\n\t\t</ul>\n\t</Fragment>\n</template>\n\n<script setup lang=\"ts\">\nimport type ActivityModel from '../models/ActivityModel'\n\nimport moment from '@nextcloud/moment'\nimport Activity from './Activity.vue'\n\nimport { translate as t } from '@nextcloud/l10n'\nimport { Fragment } from 'vue-frag'\nimport { computed } from 'vue'\n\nconst props = defineProps<{\n\tactivities: ActivityModel[]\n}>()\n\n/**\n * Title to show for the date either Today, Yesterday or the full date\n */\nconst dateText = computed(() => {\n\tconst today = moment()\n\tconst yesterday = moment().subtract(1, 'day')\n\tconst first = moment(props.activities[0].datetime)\n\n\tif (first.isSame(today, 'day')) {\n\t\treturn t('activity', 'Today')\n\t} else if (first.isSame(yesterday, 'day')) {\n\t\treturn t('activity', 'Yesterday')\n\t}\n\treturn first.format('LL')\n})\n\n/**\n * If the heading is yesterday or today, show the full date as title, otherwise no title is shown\n */\nconst fullDate = computed(() => {\n\tconst formatted = moment(props.activities[0].datetime).format('LL')\n\treturn formatted !== dateText.value ? formatted : undefined\n})\n</script>\n\n<style scoped lang=\"scss\">\n.activity-group {\n\t&__heading {\n\t\tline-height: 1.5;\n\t\tmargin-block: 30px 12px;\n\n\t\t&:first-of-type {\n\t\t\t// Already padding from h1\n\t\t\tmargin-block-start: 0;\n\t\t}\n\t}\n}\n</style>\n","export default \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\"?>\\n<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"32\\\" width=\\\"32\\\" version=\\\"1.0\\\" viewbox=\\\"0 0 32 32\\\">\\n <path d=\\\"m16 1-10 18h11l-1 12 10-18h-11z\\\"/>\\n</svg>\\n\"","<!--\n - @copyright 2023 Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @author Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n<template>\n\t<NcAppContent class=\"activity-app\">\n\t\t<h1 class=\"activity-app__heading\">\n\t\t\t{{ t('activity', 'Your activities') }}\n\t\t</h1>\n\t\t<NcEmptyContent v-if=\"hasMoreActivites && allActivities.length === 0\"\n\t\t\tclass=\"activity-app__empty-content\"\n\t\t\t:name=\"t('activity', 'Loading activities')\"\n\t\t\t:description=\"t('activity', 'This stream will show events like additions, changes & shares')\">\n\t\t\t<template #icon>\n\t\t\t\t<NcLoadingIcon :size=\"36\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<NcEmptyContent v-else-if=\"allActivities.length === 0\"\n\t\t\tclass=\"activity-app__empty-content\"\n\t\t\t:name=\"t('activity', 'No activity yet')\"\n\t\t\t:description=\"t('activity', 'This stream will show events like additions, changes & shares')\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"appIconSVG\" :size=\"36\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<div ref=\"container\" class=\"activity-app__container\">\n\t\t\t<ActivityGroup v-for=\"activities, date of groupedActivities\" :key=\"date\" :activities=\"activities\" />\n\t\t\t<!-- Only show if not showing the inital empty content for loading -->\n\t\t\t<NcLoadingIcon v-if=\"hasMoreActivites && allActivities.length > 0\"\n\t\t\t\t:name=\"t('activity', 'Loading more activities')\"\n\t\t\t\t:size=\"64\"\n\t\t\t\tclass=\"activity-app__loading-indicator\" />\n\t\t\t<div v-else-if=\"!hasMoreActivites && allActivities.length > 0\"\n\t\t\t\tclass=\"activity-app__loading-indicator\">\n\t\t\t\t{{ t('activity', 'No more activities.') }}\n\t\t\t</div>\n\t\t</div>\n\t</NcAppContent>\n</template>\n\n<script setup lang=\"ts\">\n// eslint-disable-next-line n/no-extraneous-import\nimport axios from 'axios'\nimport ncAxios from '@nextcloud/axios'\nimport moment from '@nextcloud/moment'\nimport NcAppContent from '@nextcloud/vue/dist/Components/NcAppContent.js'\nimport NcIconSvgWrapper from '@nextcloud/vue/dist/Components/NcIconSvgWrapper.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\nimport ActivityModel from '../models/ActivityModel'\nimport ActivityGroup from '../components/ActivityGroup.vue'\n\nimport appIconSVG from '../../img/activity-dark.svg?raw'\nimport logger from '../logger'\n\nimport { showError } from '@nextcloud/dialogs'\nimport { translate as t } from '@nextcloud/l10n'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { useInfiniteScroll } from '@vueuse/core'\nimport { computed, onMounted, ref, watch } from 'vue'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * The currently active activities filter\n\t */\n\tfilter: string\n}>(), {\n\t// default to 'all'\n\tfilter: 'all',\n})\n\n/**\n * Whether activities are currently being loaded\n */\nconst loading = ref(false)\n\n/**\n * Whether more activites can be loaded\n */\nconst hasMoreActivites = ref(true)\n\n/**\n * All loaded actvities\n */\nconst allActivities = ref<ActivityModel[]>([])\n\n/**\n * Last loaded activity\n * This is set by the backend in the API result as a header value for pagination\n */\nconst lastActivityLoaded = ref<string>()\n\n/**\n * Container element for the activites\n */\nconst container = ref<HTMLDivElement>()\n\n/**\n * Use infinite scroll for the container and load activities when reaching the bottom\n */\nuseInfiniteScroll(container, async () => {\n\tif (hasMoreActivites.value) {\n\t\tawait loadActivities()\n\t}\n}, {\n\tdistance: 100,\n})\n\n/**\n * Activities grouped by date\n */\nconst groupedActivities = computed(() => {\n\tconst groups = {} as Record<string, ActivityModel[]>\n\tfor (const activity of allActivities.value) {\n\t\tconst date = moment(activity.datetime).format('LL')\n\t\tif (groups[date] === undefined) {\n\t\t\tgroups[date] = [activity]\n\t\t} else {\n\t\t\tgroups[date].push(activity)\n\t\t}\n\t}\n\treturn groups\n})\n\n/**\n * Load activites for current filter or load more if already loaded\n */\nasync function loadActivities() {\n\t// Skip if already loading\n\tif (loading.value) {\n\t\treturn\n\t}\n\n\ttry {\n\t\tconst since = lastActivityLoaded.value ?? '0'\n\t\tloading.value = true\n\t\tconst response = await ncAxios.get(\n\t\t\tgenerateOcsUrl('apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}', { filter: props.filter, since }),\n\t\t)\n\t\tallActivities.value.push(...response.data.ocs.data.map((raw) => new ActivityModel(raw)))\n\t\tlastActivityLoaded.value = response.headers['x-activity-last-given']\n\t\thasMoreActivites.value = true\n\t} catch (error) {\n\t\t// Skip if no activites are available\n\t\tif (axios.isAxiosError(error) && error.response?.status === 304) {\n\t\t\thasMoreActivites.value = false\n\t\t\treturn\n\t\t}\n\n\t\tlogger.error(error as Error)\n\t\tshowError(t('activity', 'Could not load activites'))\n\t} finally {\n\t\tloading.value = false\n\t}\n}\n\n/**\n * Load activites when mounted\n */\nonMounted(() => {\n\tloadActivities()\n})\n\n/**\n * Reload activities when filter changed\n */\nwatch(props, () => {\n\tallActivities.value = []\n\tlastActivityLoaded.value = undefined\n\tloadActivities()\n})\n</script>\n\n<style scoped lang=\"scss\">\n.activity-app {\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\n\t&__empty-content {\n\t\theight: 100%;\n\t}\n\n\t&__loading-indicator {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tjustify-self: center;\n\t\tmargin-block: 30px 6px;\n\t\ttext-align: center;\n\t}\n\n\t&__container {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\theight: 100%;\n\t\twidth: min(100%, 924px);\n\t\tmax-width: 924px;\n\t\tmargin: 0 auto;\n\t\tpadding-inline: 12px;\n\t\toverflow-y: scroll;\n\t}\n\n\t&__heading {\n\t\tfont-weight: bold;\n\t\tfont-size: 20px;\n\t\tline-height: 44px; // to align height with the app navigation toggle\n\t\t// Align with app navigation toggle\n\t\tmargin: var(--app-navigation-padding, 8px) 0 0 calc(2 * var(--app-navigation-padding, 8px) + 44px);\n\t}\n}\n</style>\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon content-copy-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ContentCopyIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n\t<NcAppNavigation>\n\t\t<template #list>\n\t\t\t<NcAppNavigationItem v-for=\"navigationItem in navigationList\"\n\t\t\t\t:key=\"navigationItem.id\"\n\t\t\t\t:data-navigation=\"navigationItem.id\"\n\t\t\t\t:to=\"navigationItem.id\"\n\t\t\t\t:name=\"navigationItem.name\">\n\t\t\t\t<template v-if=\"navigationItem.icon\" #icon>\n\t\t\t\t\t<img alt=\"\"\n\t\t\t\t\t\t:src=\"navigationItem.icon\"\n\t\t\t\t\t\tclass=\"navigation-icon\"\n\t\t\t\t\t\trole=\"presentation\">\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationItem>\n\t\t</template>\n\t\t<template #footer>\n\t\t\t<NcAppNavigationSettings :name=\"t('activity', 'Activity settings')\">\n\t\t\t\t<NcCheckboxRadioSwitch type=\"switch\" :checked=\"hasRSSLink\" @update:checked=\"toggleRSSLink\">\n\t\t\t\t\t{{ t('activity', 'Enable RSS feed') }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t<NcInputField v-if=\"hasRSSLink\"\n\t\t\t\t\tv-model=\"rssLink\"\n\t\t\t\t\t:label=\"t('activity', 'RSS feed')\"\n\t\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t\t:trailing-button-label=\"t('activity', 'Copy RSS feed link')\"\n\t\t\t\t\treadonly=\"readonly\"\n\t\t\t\t\t@trailing-button-click=\"copyRSSLink\">\n\t\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t\t<IconContentCopy :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcInputField>\n\t\t\t\t<NcButton class=\"settings-link\"\n\t\t\t\t\t:href=\"personalSettingsLink\"\n\t\t\t\t\t:title=\"t('activity', 'Personal notification settings')\"\n\t\t\t\t\ttype=\"tertiary\">\n\t\t\t\t\t{{ t('activity', 'Personal notification settings') }}\n\t\t\t\t</NcButton>\n\t\t\t</NcAppNavigationSettings>\n\t\t</template>\n\t</NcAppNavigation>\n</template>\n\n<script setup lang=\"ts\">\nimport axios from '@nextcloud/axios'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\nimport { computed, ref } from 'vue'\n\nimport {\n\tNcAppNavigation,\n\tNcAppNavigationItem,\n\tNcAppNavigationSettings,\n\tNcButton,\n\tNcCheckboxRadioSwitch,\n} from '@nextcloud/vue'\n\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'\nimport IconContentCopy from 'vue-material-design-icons/ContentCopy.vue'\nimport logger from '../logger'\n\n// Types\ninterface INavigationEntry {\n\tid: string\n\ticon?: string\n\tname: string\n\turl: string\n}\n\ninterface IActivitySettings {\n\tenableAvatars: boolean\n\trssLink: string\n\tpersonalSettingsLink: string\n}\n\n// Variables and methods\nconst {\n\trssLink: initialRSSLink,\n\tpersonalSettingsLink,\n} = loadState<IActivitySettings>(appName, 'settings')\n\nconst navigationList = loadState<INavigationEntry[]>(appName, 'navigationList')\n\n/**\n * The current rss link, either a valid URL or an empty string\n */\nconst rssLink = ref(initialRSSLink)\n\n/**\n * True if a RSS link is configures / enabled. False otherwise.\n */\nconst hasRSSLink = computed(() => !!rssLink.value)\n\n/**\n * Toggle the enabled state of the RSS link\n */\nasync function toggleRSSLink() {\n\ttry {\n\t\tconst { data } = await axios.post<{ data: { rsslink: string } }>(generateUrl('/apps/activity/settings/feed'), {\n\t\t\tenable: !hasRSSLink.value,\n\t\t})\n\t\trssLink.value = data.data.rsslink\n\t} catch (e) {\n\t\tshowError(t('activity', 'Could not enable RSS link'))\n\t\tlogger.error(e as Error)\n\t}\n}\n\n/**\n * Copy the RSS link to the clipboard\n */\nasync function copyRSSLink() {\n\ttry {\n\t\twindow.navigator.clipboard.writeText(rssLink.value)\n\t\tshowSuccess(t('activity', 'RSS link copied to clipboard'))\n\t} catch (e) {\n\t\tlogger.debug(e as Error)\n\t\t// If the user is running Nextcloud in a non secure context (secure = HTTPS or HTTP on localhost) then Clipboard API fail and the user must copy manually\n\t\twindow.prompt(t('activity', 'Could not copy the RSS link, please copy manually:'), rssLink.value)\n\t}\n}\n</script>\n\n<style lang=\"scss\">\n.app-activity {\n\t.settings-link {\n\t\tmax-width: 100%;\n\t}\n\n\t.navigation-icon {\n\t\tfilter: var(--background-invert-if-dark);\n\t\theight: 16px;\n\t\twidth: 16px;\n\t}\n}\n</style>\n","/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport type { RouteConfig } from 'vue-router'\nimport ActivityAppFeed from './views/ActivityAppFeed.vue'\nimport ActivityAppNavigation from './views/ActivityAppNavigation.vue'\n\nexport const routes = [\n\t{\n\t\tpath: '/',\n\t\tname: 'root',\n\t\tredirect: { path: '/all' },\n\t},\n\t{\n\t\tpath: '/:filter?',\n\t\tcomponents: {\n\t\t\tdefault: ActivityAppFeed,\n\t\t\tnavigation: ActivityAppNavigation,\n\t\t},\n\t\tprops: {\n\t\t\tdefault: true,\n\t\t},\n\t},\n] as RouteConfig[]\n","/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport ActivityApp from './views/ActivityApp.vue'\n\nimport { translate, translatePlural } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\n\nimport { routes } from './routes'\n\n// Set up Vue\nVue.prototype.t = translate\nVue.prototype.n = translatePlural\n\nVue.use(VueRouter)\n\nconst router = new VueRouter({\n\tmode: 'history',\n\tbase: generateUrl('/apps/activity'),\n\tlinkActiveClass: 'active',\n\troutes,\n})\n\nexport default new Vue({\n\tel: '#content',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'ActivityRoot',\n\trouter,\n\trender: h => h(ActivityApp),\n})\n"],"names":["extend","a","b","key","encodeReserveRE","encodeReserveReplacer","c","commaRE","encode","str","decode","resolveQuery","query","extraQuery","_parseQuery","parse","parseQuery","parsedQuery","value","castQueryParamValue","res","param","parts","val","stringifyQuery","obj","result","val2","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","clone","route","getFullPath","formatMatch","START","ref","_stringifyQuery","path","hash","stringify","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","i","aVal","bKey","bVal","isIncludedRoute","current","target","queryIncludes","handleRouteEntered","name","instance","cbs","i$1","View","_","props","children","parent","data","h","cache","depth","inactive","vnodeData","cachedData","cachedComponent","fillPropsinData","matched","component","vm","vnode","configProps","propsToPass","resolveProps","attrs","config","resolvePath","relative","base","append","firstChar","stack","segments","segment","parsePath","hashIndex","queryIndex","cleanPath","isarray","arr","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","options","tokens","index","defaultDelimiter","m","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","delimiter","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeAsterisk","matches","flags","opts","token","j","attachKeys","re","keys","regexpToRegexp","groups","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","fillParams","params","routeMsg","filler","normalizeLocation","raw","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","noop","Link","this$1$1","href","classes","globalActiveClass","globalExactActiveClass","activeClassFallback","exactActiveClassFallback","activeClass","exactActiveClass","compareTarget","ariaCurrentValue","handler","e","guardEvent","on","scopedSlot","findAnchor","aData","event","handler$1","event$1","aAttrs","child","_Vue","install","Vue","isDef","v","registerInstance","callVal","strats","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","compileRouteRegex","childMatchAs","aliases","alias","aliasRoute","regex","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","match","currentRoute","_createRoute","paramNames","record$1","matchRoute","redirect","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","len","Time","genStateKey","_key","getStateKey","setStateKey","positionStore","setupScroll","protocolAndPath","absolutePath","stateCopy","handlePopState","handleScroll","to","from","isPop","behavior","position","getScrollPosition","shouldScroll","scrollToPosition","err","saveScrollPosition","getElementPosition","el","docEl","docRect","elRect","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","isObject","supportsPushState","ua","pushState","url","replace","history","replaceState","NavigationFailureType","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","error","createNavigationCancelledError","createNavigationAbortedError","type","message","propertiesToLog","isError","isNavigationFailure","errorType","runQueue","queue","fn","cb","step","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","resolve","once","resolvedDef","isESModule","reject","reason","msg","comp","flatten","hasSymbol","called","args","History","normalizeBase","errorCb","onComplete","onAbort","prev","hook","abort","lastRouteIndex","lastCurrentIndex","resolveQueue","updated","deactivated","activated","extractLeaveGuards","extractUpdateHooks","iterator","enterGuards","extractEnterGuards","cleanupListener","baseEl","max","extractGuards","records","bind","reverse","guards","guard","extractGuard","bindGuard","bindEnterGuard","HTML5History","getLocation","expectScroll","supportsScroll","handleRoutingEvent","fromRoute","push","pathLowerCase","baseLowerCase","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","mode","prototypeAccessors","app","handleInitialScroll","routeOrError","setupListeners","registerHook","n","fullPath","createHref","VueRouter$1","list","r","s","t","l","thisArg","require$$0","toString","kindOf","thing","kindOfTest","isArray","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","isString","isPlainObject","prototype","isDate","isFile","isBlob","isFileList","isFunction","isStream","isFormData","isURLSearchParams","trim","isStandardBrowserEnv","forEach","merge","assignValue","stripBOM","content","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","filter","prop","merged","endsWith","searchString","lastIndex","toArray","isTypedArray","TypedArray","utils","buildURL","paramsSerializer","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","InterceptorManager_1","normalizeHeaderName","headers","normalizedName","AxiosError","code","request","response","customProps","axiosError","AxiosError_1","transitional","toFormData","formData","convertValue","Buffer","build","parentKey","fullKey","toFormData_1","settle","validateStatus","cookies","expires","domain","secure","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","require$$1","buildFullPath","requestedURL","ignoreDuplicateOf","parseHeaders","parsed","line","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","requestURL","CanceledError","CanceledError_1","parseProtocol","require$$2","require$$3","require$$4","require$$5","require$$6","transitionalDefaults","require$$7","require$$8","require$$9","require$$10","xhr","requestData","requestHeaders","responseType","onCanceled","done","username","password","onloadend","responseHeaders","responseData","timeoutErrorMessage","xsrfValue","cancel","protocol","_null","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","adapter","process","stringifySafely","rawValue","parser","encoder","defaults","isObjectPayload","contentType","_FormData","silentJSONParsing","forcedJSONParsing","strictJSONParsing","status","method","defaults_1","transformData","fns","context","isCancel","throwIfCancellationRequested","dispatchRequest","mergeConfig","config1","config2","getMergedValue","source","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","Axios_1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","listener","CancelToken_1","spread","callback","isAxiosError","payload","createInstance","defaultConfig","axios","promises","require$$11","require$$12","axiosModule","p","u","f","d","g","o","N","y","z","C","k","$","B","L","A","S","I","w","V","U","D","E","O","M","R","P","K","ee","$placeholder","$fakeParent","$nextSiblingPatched","$childNodesPatched","isFrag","node","parentNodeDescriptor","patchParentNode","fakeParent","nextSiblingDescriptor","childNodes","patchNextSibling","getTopFragment","fromParent","_node","parentNode","getChildNodes","getChildNodesWithFragments","_childNodesDescriptor","realChildNodes","childNode","childNodesDescriptor","firstChildDescriptor","hasChildNodes","patchChildNodes","before","_this$frag$","remove","frag","removed","getFragmentLeafNodes","_Array$prototype","addPlaceholder","insertBeforeNode","placeholder","removeChild","hasChildInFragment","_this$frag$splice","removedNode","hasChild","insertBefore","insertNode","_this","insertNodes","_frag","_lastNode","removePlaceholder","lastNode","appendChild","lastChild","innerHTMLDescriptor","htmlString","_this2","domify","element","nextSibling","previousSibling","fragment","dateText","computed","today","moment","yesterday","first","fullDate","formatted","appIconSVG","loading","hasMoreActivites","allActivities","lastActivityLoaded","container","useInfiniteScroll","loadActivities","groupedActivities","activity","date","since","ncAxios","generateOcsUrl","ActivityModel","logger","showError","onMounted","watch","_sfc_main","initialRSSLink","personalSettingsLink","loadState","appName","navigationList","rssLink","hasRSSLink","toggleRSSLink","generateUrl","copyRSSLink","showSuccess","ActivityAppFeed","ActivityAppNavigation","translate","translatePlural","ActivityApp"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,42]}