Files
therinaldos.com/wedding-pics/apps/activity/js/activity-app.mjs.map
T
david ef1ff240d4
Build & Deploy to DigitalOcean Space / build (push) Failing after 2m38s
migrate therinaldos.com data
2024-05-05 15:50:45 -04:00

1 line
309 KiB
XML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"version":3,"file":"activity-app.mjs","sources":["../node_modules/vue-router/dist/vue-router.esm.js","../node_modules/nanoid/non-secure/index.js","../node_modules/@linusborg/vue-simple-portal/dist/index.esm.js","../node_modules/@nextcloud/vue/dist/chunks/NcContent-EGBAB5sy.mjs","../node_modules/splitpanes/dist/splitpanes.es.js","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent-WBzZJh-y.mjs","../node_modules/vue-frag/dist/frag.esm.js","../src/components/ActivityGroup.vue","../img/activity-dark.svg?raw","../node_modules/vue-router/composables.mjs","../src/views/ActivityAppFeed.vue","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationToggle-KT8eqw6r.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-n6P3oVZv.mjs","../node_modules/@nextcloud/vue/dist/Components/NcActionButton.mjs","../node_modules/@nextcloud/vue/dist/Components/NcVNodes.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-z3ANO-1N.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-A1yAdDNN.mjs","../node_modules/@nextcloud/vue/dist/Mixins/clickOutsideOptions.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-gwL_FqLN.mjs","../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","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n","\n/**\n * vue-simple-portal\n * version: 0.1.5,\n * (c) Thorsten Lünborg, 2021 - present\n * LICENCE: Apache-2.0\n * http://github.com/linusborg/vue-simple-portal\n*/\nimport Vue from 'vue';\nimport { nanoid } from 'nanoid/non-secure';\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar config = {\n selector: \"vue-portal-target-\".concat(nanoid())\n};\nvar setSelector = function setSelector(selector) {\n return config.selector = selector;\n};\nvar isBrowser = typeof window !== 'undefined' && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) !== undefined;\n\nvar TargetContainer = Vue.extend({\n // as an abstract component, it doesn't appear in\n // the $parent chain of components.\n // which means the next parent of any component rendered inside of this oen\n // will be the parent from which is was sent\n // @ts-expect-error\n abstract: true,\n name: 'PortalOutlet',\n props: ['nodes', 'tag'],\n data: function data(vm) {\n return {\n updatedNodes: vm.nodes\n };\n },\n render: function render(h) {\n var nodes = this.updatedNodes && this.updatedNodes();\n if (!nodes) return h();\n return nodes.length === 1 && !nodes[0].text ? nodes : h(this.tag || 'DIV', nodes);\n },\n destroyed: function destroyed() {\n var el = this.$el;\n el && el.parentNode.removeChild(el);\n }\n});\n\nvar Portal = Vue.extend({\n name: 'VueSimplePortal',\n props: {\n disabled: {\n type: Boolean\n },\n prepend: {\n type: Boolean\n },\n selector: {\n type: String,\n default: function _default() {\n return \"#\".concat(config.selector);\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n }\n },\n render: function render(h) {\n if (this.disabled) {\n var nodes = this.$scopedSlots && this.$scopedSlots.default();\n if (!nodes) return h();\n return nodes.length < 2 && !nodes[0].text ? nodes : h(this.tag, nodes);\n }\n\n return h();\n },\n created: function created() {\n if (!this.getTargetEl()) {\n this.insertTargetEl();\n }\n },\n updated: function updated() {\n var _this = this;\n\n // We only update the target container component\n // if the scoped slot function is a fresh one\n // The new slot syntax (since Vue 2.6) can cache unchanged slot functions\n // and we want to respect that here.\n this.$nextTick(function () {\n if (!_this.disabled && _this.slotFn !== _this.$scopedSlots.default) {\n _this.container.updatedNodes = _this.$scopedSlots.default;\n }\n\n _this.slotFn = _this.$scopedSlots.default;\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.unmount();\n },\n watch: {\n disabled: {\n immediate: true,\n handler: function handler(disabled) {\n disabled ? this.unmount() : this.$nextTick(this.mount);\n }\n }\n },\n methods: {\n // This returns the element into which the content should be mounted.\n getTargetEl: function getTargetEl() {\n if (!isBrowser) return;\n return document.querySelector(this.selector);\n },\n insertTargetEl: function insertTargetEl() {\n if (!isBrowser) return;\n var parent = document.querySelector('body');\n var child = document.createElement(this.tag);\n child.id = this.selector.substring(1);\n parent.appendChild(child);\n },\n mount: function mount() {\n if (!isBrowser) return;\n var targetEl = this.getTargetEl();\n var el = document.createElement('DIV');\n\n if (this.prepend && targetEl.firstChild) {\n targetEl.insertBefore(el, targetEl.firstChild);\n } else {\n targetEl.appendChild(el);\n }\n\n this.container = new TargetContainer({\n el: el,\n parent: this,\n propsData: {\n tag: this.tag,\n nodes: this.$scopedSlots.default\n }\n });\n },\n unmount: function unmount() {\n if (this.container) {\n this.container.$destroy();\n delete this.container;\n }\n }\n }\n});\n\nfunction install(_Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _Vue.component(options.name || 'portal', Portal);\n\n if (options.defaultSelector) {\n setSelector(options.defaultSelector);\n }\n}\n\nif (typeof window !== 'undefined' && window.Vue && window.Vue === Vue) {\n // plugin was inlcuded directly in a browser\n Vue.use(install);\n}\n\nexport default install;\nexport { Portal, config, setSelector };\n","import '../assets/NcContent-LWR23l9i.css';\nimport { emit as r } from \"@nextcloud/event-bus\";\nimport { Portal as h } from \"@linusborg/vue-simple-portal\";\nimport { useIsMobile as o } from \"../Composables/useIsMobile.mjs\";\nimport { r as l, E as a, a as c } from \"./_l10n-FmsZpnE4.mjs\";\nimport s from \"../Components/NcButton.mjs\";\nimport { N as C } from \"./NcIconSvgWrapper-n3MnAe1S.mjs\";\nimport { n as p } from \"./_plugin-vue2_normalizer-u6G_3nkj.mjs\";\nl(a);\nconst g = `<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM140 44C132.268 44 126 50.268 126 58V292C126 299.732 132.268 306 140 306H372C379.732 306 386 299.732 386 292V58C386 50.268 379.732 44 372 44H140Z\" fill=\"black\" fill-opacity=\"0.35\"/>\n</svg>\n`, f = `<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM112 44C119.732 44 126 50.268 126 58V292C126 299.732 119.732 306 112 306H20C12.268 306 6 299.732 6 292V58C6 50.268 12.268 44 20 44H112Z\" fill=\"black\" fill-opacity=\"0.35\"/>\n</svg>\n`, d = {\n name: \"NcContent\",\n components: {\n NcButton: s,\n NcIconSvgWrapper: C,\n Teleport: h\n },\n provide() {\n return {\n \"NcContent:setHasAppNavigation\": this.setAppNavigation\n };\n },\n props: {\n appName: {\n type: String,\n required: !0\n }\n },\n setup() {\n return {\n isMobile: o()\n };\n },\n data() {\n return {\n hasAppNavigation: !1,\n currentFocus: \"\"\n // unknown\n };\n },\n computed: {\n currentImage() {\n return this.currentFocus === \"navigation\" ? f : g;\n }\n },\n beforeMount() {\n const e = document.getElementById(\"skip-actions\");\n e && (e.innerHTML = \"\", e.classList.add(\"vue-skip-actions\"));\n },\n methods: {\n t: c,\n openAppNavigation() {\n r(\"toggle-navigation\", { open: !0 }), this.$nextTick(() => {\n window.location.hash = \"app-navigation-vue\", document.getElementById(\"app-navigation-vue\").focus();\n });\n },\n setAppNavigation(e) {\n this.hasAppNavigation = e, this.currentFocus === \"\" && (this.currentFocus = \"navigation\");\n }\n }\n};\nvar x = function() {\n var t = this, i = t._self._c;\n return i(\"div\", { class: [\"content\", `app-${t.appName.toLowerCase()}`], attrs: { id: \"content-vue\" } }, [i(\"Teleport\", { attrs: { selector: \"#skip-actions\" } }, [i(\"div\", { staticClass: \"vue-skip-actions__container\" }, [i(\"div\", { staticClass: \"vue-skip-actions__headline\" }, [t._v(\" \" + t._s(t.t(\"Keyboard navigation help\")) + \" \")]), i(\"div\", { staticClass: \"vue-skip-actions__buttons\" }, [i(\"NcButton\", { directives: [{ name: \"show\", rawName: \"v-show\", value: t.hasAppNavigation, expression: \"hasAppNavigation\" }], attrs: { type: \"tertiary\", href: \"#app-navigation-vue\" }, on: { click: function(n) {\n return n.preventDefault(), t.openAppNavigation.apply(null, arguments);\n }, focusin: function(n) {\n t.currentFocus = \"navigation\";\n }, mouseover: function(n) {\n t.currentFocus = \"navigation\";\n } } }, [t._v(\" \" + t._s(t.t(\"Skip to app navigation\")) + \" \")]), i(\"NcButton\", { attrs: { type: \"tertiary\", href: \"#app-content-vue\" }, on: { focusin: function(n) {\n t.currentFocus = \"content\";\n }, mouseover: function(n) {\n t.currentFocus = \"content\";\n } } }, [t._v(\" \" + t._s(t.t(\"Skip to main content\")) + \" \")])], 1), i(\"NcIconSvgWrapper\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !t.isMobile, expression: \"!isMobile\" }], staticClass: \"vue-skip-actions__image\", attrs: { svg: t.currentImage, size: \"auto\" } })], 1), t._v(\"  \")]), t._t(\"default\")], 2);\n}, v = [], u = /* @__PURE__ */ p(\n d,\n x,\n v,\n !1,\n null,\n \"cfc84a6c\",\n null,\n null\n);\nconst N = u.exports;\nexport {\n N\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar splitpanes_vue_vue_type_style_index_0_lang = \"\";\nfunction normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render2) {\n options.render = render2;\n options.staticRenderFns = staticRenderFns2;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(this, (options.functional ? this.parent : this).$root.$options.shadowRoot);\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst __vue2_script$1 = {\n name: \"splitpanes\",\n props: {\n horizontal: { type: Boolean },\n pushOtherPanes: { type: Boolean, default: true },\n dblClickSplitter: { type: Boolean, default: true },\n rtl: { type: Boolean, default: false },\n firstSplitter: { type: Boolean }\n },\n provide() {\n return {\n requestUpdate: this.requestUpdate,\n onPaneAdd: this.onPaneAdd,\n onPaneRemove: this.onPaneRemove,\n onPaneClick: this.onPaneClick\n };\n },\n data: () => ({\n container: null,\n ready: false,\n panes: [],\n touch: {\n mouseDown: false,\n dragging: false,\n activeSplitter: null\n },\n splitterTaps: {\n splitter: null,\n timeoutId: null\n }\n }),\n computed: {\n panesCount() {\n return this.panes.length;\n },\n indexedPanes() {\n return this.panes.reduce((obj, pane2) => (obj[pane2.id] = pane2) && obj, {});\n }\n },\n methods: {\n updatePaneComponents() {\n this.panes.forEach((pane2) => {\n pane2.update && pane2.update({\n [this.horizontal ? \"height\" : \"width\"]: `${this.indexedPanes[pane2.id].size}%`\n });\n });\n },\n bindEvents() {\n document.addEventListener(\"mousemove\", this.onMouseMove, { passive: false });\n document.addEventListener(\"mouseup\", this.onMouseUp);\n if (\"ontouchstart\" in window) {\n document.addEventListener(\"touchmove\", this.onMouseMove, { passive: false });\n document.addEventListener(\"touchend\", this.onMouseUp);\n }\n },\n unbindEvents() {\n document.removeEventListener(\"mousemove\", this.onMouseMove, { passive: false });\n document.removeEventListener(\"mouseup\", this.onMouseUp);\n if (\"ontouchstart\" in window) {\n document.removeEventListener(\"touchmove\", this.onMouseMove, { passive: false });\n document.removeEventListener(\"touchend\", this.onMouseUp);\n }\n },\n onMouseDown(event, splitterIndex) {\n this.bindEvents();\n this.touch.mouseDown = true;\n this.touch.activeSplitter = splitterIndex;\n },\n onMouseMove(event) {\n if (this.touch.mouseDown) {\n event.preventDefault();\n this.touch.dragging = true;\n this.calculatePanesSize(this.getCurrentMouseDrag(event));\n this.$emit(\"resize\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n }\n },\n onMouseUp() {\n if (this.touch.dragging) {\n this.$emit(\"resized\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n }\n this.touch.mouseDown = false;\n setTimeout(() => {\n this.touch.dragging = false;\n this.unbindEvents();\n }, 100);\n },\n onSplitterClick(event, splitterIndex) {\n if (\"ontouchstart\" in window) {\n event.preventDefault();\n if (this.dblClickSplitter) {\n if (this.splitterTaps.splitter === splitterIndex) {\n clearTimeout(this.splitterTaps.timeoutId);\n this.splitterTaps.timeoutId = null;\n this.onSplitterDblClick(event, splitterIndex);\n this.splitterTaps.splitter = null;\n } else {\n this.splitterTaps.splitter = splitterIndex;\n this.splitterTaps.timeoutId = setTimeout(() => {\n this.splitterTaps.splitter = null;\n }, 500);\n }\n }\n }\n if (!this.touch.dragging)\n this.$emit(\"splitter-click\", this.panes[splitterIndex]);\n },\n onSplitterDblClick(event, splitterIndex) {\n let totalMinSizes = 0;\n this.panes = this.panes.map((pane2, i) => {\n pane2.size = i === splitterIndex ? pane2.max : pane2.min;\n if (i !== splitterIndex)\n totalMinSizes += pane2.min;\n return pane2;\n });\n this.panes[splitterIndex].size -= totalMinSizes;\n this.$emit(\"pane-maximize\", this.panes[splitterIndex]);\n },\n onPaneClick(event, paneId) {\n this.$emit(\"pane-click\", this.indexedPanes[paneId]);\n },\n getCurrentMouseDrag(event) {\n const rect = this.container.getBoundingClientRect();\n const { clientX, clientY } = \"ontouchstart\" in window && event.touches ? event.touches[0] : event;\n return {\n x: clientX - rect.left,\n y: clientY - rect.top\n };\n },\n getCurrentDragPercentage(drag) {\n drag = drag[this.horizontal ? \"y\" : \"x\"];\n const containerSize = this.container[this.horizontal ? \"clientHeight\" : \"clientWidth\"];\n if (this.rtl && !this.horizontal)\n drag = containerSize - drag;\n return drag * 100 / containerSize;\n },\n calculatePanesSize(drag) {\n const splitterIndex = this.touch.activeSplitter;\n let sums = {\n prevPanesSize: this.sumPrevPanesSize(splitterIndex),\n nextPanesSize: this.sumNextPanesSize(splitterIndex),\n prevReachedMinPanes: 0,\n nextReachedMinPanes: 0\n };\n const minDrag = 0 + (this.pushOtherPanes ? 0 : sums.prevPanesSize);\n const maxDrag = 100 - (this.pushOtherPanes ? 0 : sums.nextPanesSize);\n const dragPercentage = Math.max(Math.min(this.getCurrentDragPercentage(drag), maxDrag), minDrag);\n let panesToResize = [splitterIndex, splitterIndex + 1];\n let paneBefore = this.panes[panesToResize[0]] || null;\n let paneAfter = this.panes[panesToResize[1]] || null;\n const paneBeforeMaxReached = paneBefore.max < 100 && dragPercentage >= paneBefore.max + sums.prevPanesSize;\n const paneAfterMaxReached = paneAfter.max < 100 && dragPercentage <= 100 - (paneAfter.max + this.sumNextPanesSize(splitterIndex + 1));\n if (paneBeforeMaxReached || paneAfterMaxReached) {\n if (paneBeforeMaxReached) {\n paneBefore.size = paneBefore.max;\n paneAfter.size = Math.max(100 - paneBefore.max - sums.prevPanesSize - sums.nextPanesSize, 0);\n } else {\n paneBefore.size = Math.max(100 - paneAfter.max - sums.prevPanesSize - this.sumNextPanesSize(splitterIndex + 1), 0);\n paneAfter.size = paneAfter.max;\n }\n return;\n }\n if (this.pushOtherPanes) {\n const vars = this.doPushOtherPanes(sums, dragPercentage);\n if (!vars)\n return;\n ({ sums, panesToResize } = vars);\n paneBefore = this.panes[panesToResize[0]] || null;\n paneAfter = this.panes[panesToResize[1]] || null;\n }\n if (paneBefore !== null) {\n paneBefore.size = Math.min(Math.max(dragPercentage - sums.prevPanesSize - sums.prevReachedMinPanes, paneBefore.min), paneBefore.max);\n }\n if (paneAfter !== null) {\n paneAfter.size = Math.min(Math.max(100 - dragPercentage - sums.nextPanesSize - sums.nextReachedMinPanes, paneAfter.min), paneAfter.max);\n }\n },\n doPushOtherPanes(sums, dragPercentage) {\n const splitterIndex = this.touch.activeSplitter;\n const panesToResize = [splitterIndex, splitterIndex + 1];\n if (dragPercentage < sums.prevPanesSize + this.panes[panesToResize[0]].min) {\n panesToResize[0] = this.findPrevExpandedPane(splitterIndex).index;\n sums.prevReachedMinPanes = 0;\n if (panesToResize[0] < splitterIndex) {\n this.panes.forEach((pane2, i) => {\n if (i > panesToResize[0] && i <= splitterIndex) {\n pane2.size = pane2.min;\n sums.prevReachedMinPanes += pane2.min;\n }\n });\n }\n sums.prevPanesSize = this.sumPrevPanesSize(panesToResize[0]);\n if (panesToResize[0] === void 0) {\n sums.prevReachedMinPanes = 0;\n this.panes[0].size = this.panes[0].min;\n this.panes.forEach((pane2, i) => {\n if (i > 0 && i <= splitterIndex) {\n pane2.size = pane2.min;\n sums.prevReachedMinPanes += pane2.min;\n }\n });\n this.panes[panesToResize[1]].size = 100 - sums.prevReachedMinPanes - this.panes[0].min - sums.prevPanesSize - sums.nextPanesSize;\n return null;\n }\n }\n if (dragPercentage > 100 - sums.nextPanesSize - this.panes[panesToResize[1]].min) {\n panesToResize[1] = this.findNextExpandedPane(splitterIndex).index;\n sums.nextReachedMinPanes = 0;\n if (panesToResize[1] > splitterIndex + 1) {\n this.panes.forEach((pane2, i) => {\n if (i > splitterIndex && i < panesToResize[1]) {\n pane2.size = pane2.min;\n sums.nextReachedMinPanes += pane2.min;\n }\n });\n }\n sums.nextPanesSize = this.sumNextPanesSize(panesToResize[1] - 1);\n if (panesToResize[1] === void 0) {\n sums.nextReachedMinPanes = 0;\n this.panes[this.panesCount - 1].size = this.panes[this.panesCount - 1].min;\n this.panes.forEach((pane2, i) => {\n if (i < this.panesCount - 1 && i >= splitterIndex + 1) {\n pane2.size = pane2.min;\n sums.nextReachedMinPanes += pane2.min;\n }\n });\n this.panes[panesToResize[0]].size = 100 - sums.prevPanesSize - sums.nextReachedMinPanes - this.panes[this.panesCount - 1].min - sums.nextPanesSize;\n return null;\n }\n }\n return { sums, panesToResize };\n },\n sumPrevPanesSize(splitterIndex) {\n return this.panes.reduce((total, pane2, i) => total + (i < splitterIndex ? pane2.size : 0), 0);\n },\n sumNextPanesSize(splitterIndex) {\n return this.panes.reduce((total, pane2, i) => total + (i > splitterIndex + 1 ? pane2.size : 0), 0);\n },\n findPrevExpandedPane(splitterIndex) {\n const pane2 = [...this.panes].reverse().find((p) => p.index < splitterIndex && p.size > p.min);\n return pane2 || {};\n },\n findNextExpandedPane(splitterIndex) {\n const pane2 = this.panes.find((p) => p.index > splitterIndex + 1 && p.size > p.min);\n return pane2 || {};\n },\n checkSplitpanesNodes() {\n const children = Array.from(this.container.children);\n children.forEach((child) => {\n const isPane = child.classList.contains(\"splitpanes__pane\");\n const isSplitter = child.classList.contains(\"splitpanes__splitter\");\n if (!isPane && !isSplitter) {\n child.parentNode.removeChild(child);\n console.warn(\"Splitpanes: Only <pane> elements are allowed at the root of <splitpanes>. One of your DOM nodes was removed.\");\n return;\n }\n });\n },\n addSplitter(paneIndex, nextPaneNode, isVeryFirst = false) {\n const splitterIndex = paneIndex - 1;\n const elm = document.createElement(\"div\");\n elm.classList.add(\"splitpanes__splitter\");\n if (!isVeryFirst) {\n elm.onmousedown = (event) => this.onMouseDown(event, splitterIndex);\n if (typeof window !== \"undefined\" && \"ontouchstart\" in window) {\n elm.ontouchstart = (event) => this.onMouseDown(event, splitterIndex);\n }\n elm.onclick = (event) => this.onSplitterClick(event, splitterIndex + 1);\n }\n if (this.dblClickSplitter) {\n elm.ondblclick = (event) => this.onSplitterDblClick(event, splitterIndex + 1);\n }\n nextPaneNode.parentNode.insertBefore(elm, nextPaneNode);\n },\n removeSplitter(node) {\n node.onmousedown = void 0;\n node.onclick = void 0;\n node.ondblclick = void 0;\n node.parentNode.removeChild(node);\n },\n redoSplitters() {\n const children = Array.from(this.container.children);\n children.forEach((el) => {\n if (el.className.includes(\"splitpanes__splitter\"))\n this.removeSplitter(el);\n });\n let paneIndex = 0;\n children.forEach((el) => {\n if (el.className.includes(\"splitpanes__pane\")) {\n if (!paneIndex && this.firstSplitter)\n this.addSplitter(paneIndex, el, true);\n else if (paneIndex)\n this.addSplitter(paneIndex, el);\n paneIndex++;\n }\n });\n },\n requestUpdate(_a) {\n var _b = _a, { target } = _b, args = __objRest(_b, [\"target\"]);\n const pane2 = this.indexedPanes[target._uid];\n Object.entries(args).forEach(([key, value]) => pane2[key] = value);\n },\n onPaneAdd(pane2) {\n let index = -1;\n Array.from(pane2.$el.parentNode.children).some((el) => {\n if (el.className.includes(\"splitpanes__pane\"))\n index++;\n return el === pane2.$el;\n });\n const min = parseFloat(pane2.minSize);\n const max = parseFloat(pane2.maxSize);\n this.panes.splice(index, 0, {\n id: pane2._uid,\n index,\n min: isNaN(min) ? 0 : min,\n max: isNaN(max) ? 100 : max,\n size: pane2.size === null ? null : parseFloat(pane2.size),\n givenSize: pane2.size,\n update: pane2.update\n });\n this.panes.forEach((p, i) => p.index = i);\n if (this.ready) {\n this.$nextTick(() => {\n this.redoSplitters();\n this.resetPaneSizes({ addedPane: this.panes[index] });\n this.$emit(\"pane-add\", { index, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });\n });\n }\n },\n onPaneRemove(pane2) {\n const index = this.panes.findIndex((p) => p.id === pane2._uid);\n const removed = this.panes.splice(index, 1)[0];\n this.panes.forEach((p, i) => p.index = i);\n this.$nextTick(() => {\n this.redoSplitters();\n this.resetPaneSizes({ removedPane: __spreadProps(__spreadValues({}, removed), { index }) });\n this.$emit(\"pane-remove\", { removed, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });\n });\n },\n resetPaneSizes(changedPanes = {}) {\n if (!changedPanes.addedPane && !changedPanes.removedPane)\n this.initialPanesSizing();\n else if (this.panes.some((pane2) => pane2.givenSize !== null || pane2.min || pane2.max < 100))\n this.equalizeAfterAddOrRemove(changedPanes);\n else\n this.equalize();\n if (this.ready)\n this.$emit(\"resized\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n },\n equalize() {\n const equalSpace = 100 / this.panesCount;\n let leftToAllocate = 0;\n let ungrowable = [];\n let unshrinkable = [];\n this.panes.forEach((pane2) => {\n pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (leftToAllocate > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n },\n initialPanesSizing() {\n 100 / this.panesCount;\n let leftToAllocate = 100;\n let ungrowable = [];\n let unshrinkable = [];\n let definedSizes = 0;\n this.panes.forEach((pane2) => {\n leftToAllocate -= pane2.size;\n if (pane2.size !== null)\n definedSizes++;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n let leftToAllocate2 = 100;\n if (leftToAllocate > 0.1) {\n this.panes.forEach((pane2) => {\n if (pane2.size === null) {\n pane2.size = Math.max(Math.min(leftToAllocate / (this.panesCount - definedSizes), pane2.max), pane2.min);\n }\n leftToAllocate2 -= pane2.size;\n });\n if (leftToAllocate2 > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n }\n },\n equalizeAfterAddOrRemove({ addedPane, removedPane } = {}) {\n let equalSpace = 100 / this.panesCount;\n let leftToAllocate = 0;\n let ungrowable = [];\n let unshrinkable = [];\n if (addedPane && addedPane.givenSize !== null) {\n equalSpace = (100 - addedPane.givenSize) / (this.panesCount - 1);\n }\n this.panes.forEach((pane2) => {\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (Math.abs(leftToAllocate) < 0.1)\n return;\n this.panes.forEach((pane2) => {\n if (addedPane && addedPane.givenSize !== null && addedPane.id === pane2.id)\n ;\n else\n pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (leftToAllocate > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n },\n readjustSizes(leftToAllocate, ungrowable, unshrinkable) {\n let equalSpaceToAllocate;\n if (leftToAllocate > 0)\n equalSpaceToAllocate = leftToAllocate / (this.panesCount - ungrowable.length);\n else\n equalSpaceToAllocate = leftToAllocate / (this.panesCount - unshrinkable.length);\n this.panes.forEach((pane2, i) => {\n if (leftToAllocate > 0 && !ungrowable.includes(pane2.id)) {\n const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);\n const allocated = newPaneSize - pane2.size;\n leftToAllocate -= allocated;\n pane2.size = newPaneSize;\n } else if (!unshrinkable.includes(pane2.id)) {\n const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);\n const allocated = newPaneSize - pane2.size;\n leftToAllocate -= allocated;\n pane2.size = newPaneSize;\n }\n pane2.update({\n [this.horizontal ? \"height\" : \"width\"]: `${this.indexedPanes[pane2.id].size}%`\n });\n });\n if (Math.abs(leftToAllocate) > 0.1) {\n this.$nextTick(() => {\n if (this.ready) {\n console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n }\n });\n }\n }\n },\n watch: {\n panes: {\n deep: true,\n immediate: false,\n handler() {\n this.updatePaneComponents();\n }\n },\n horizontal() {\n this.updatePaneComponents();\n },\n firstSplitter() {\n this.redoSplitters();\n },\n dblClickSplitter(enable) {\n const splitters = [...this.container.querySelectorAll(\".splitpanes__splitter\")];\n splitters.forEach((splitter, i) => {\n splitter.ondblclick = enable ? (event) => this.onSplitterDblClick(event, i) : void 0;\n });\n }\n },\n beforeDestroy() {\n this.ready = false;\n },\n mounted() {\n this.container = this.$refs.container;\n this.checkSplitpanesNodes();\n this.redoSplitters();\n this.resetPaneSizes();\n this.$emit(\"ready\");\n this.ready = true;\n },\n render(h) {\n return h(\"div\", {\n ref: \"container\",\n class: [\n \"splitpanes\",\n `splitpanes--${this.horizontal ? \"horizontal\" : \"vertical\"}`,\n {\n \"splitpanes--dragging\": this.touch.dragging\n }\n ]\n }, this.$slots.default);\n }\n};\nlet __vue2_render, __vue2_staticRenderFns;\nconst __cssModules$1 = {};\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$1, null, null, null);\nfunction __vue2_injectStyles$1(context) {\n for (let o in __cssModules$1) {\n this[o] = __cssModules$1[o];\n }\n}\nvar splitpanes = /* @__PURE__ */ function() {\n return __component__$1.exports;\n}();\nvar render = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { staticClass: \"splitpanes__pane\", style: _vm.style, on: { \"click\": function($event) {\n return _vm.onPaneClick($event, _vm._uid);\n } } }, [_vm._t(\"default\")], 2);\n};\nvar staticRenderFns = [];\nconst __vue2_script = {\n name: \"pane\",\n inject: [\"requestUpdate\", \"onPaneAdd\", \"onPaneRemove\", \"onPaneClick\"],\n props: {\n size: { type: [Number, String], default: null },\n minSize: { type: [Number, String], default: 0 },\n maxSize: { type: [Number, String], default: 100 }\n },\n data: () => ({\n style: {}\n }),\n mounted() {\n this.onPaneAdd(this);\n },\n beforeDestroy() {\n this.onPaneRemove(this);\n },\n methods: {\n update(style) {\n this.style = style;\n }\n },\n computed: {\n sizeNumber() {\n return this.size || this.size === 0 ? parseFloat(this.size) : null;\n },\n minSizeNumber() {\n return parseFloat(this.minSize);\n },\n maxSizeNumber() {\n return parseFloat(this.maxSize);\n }\n },\n watch: {\n sizeNumber(size) {\n this.requestUpdate({ target: this, size });\n },\n minSizeNumber(min) {\n this.requestUpdate({ target: this, min });\n },\n maxSizeNumber(max) {\n this.requestUpdate({ target: this, max });\n }\n }\n};\nconst __cssModules = {};\nvar __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);\nfunction __vue2_injectStyles(context) {\n for (let o in __cssModules) {\n this[o] = __cssModules[o];\n }\n}\nvar pane = /* @__PURE__ */ function() {\n return __component__.exports;\n}();\nexport { pane as Pane, splitpanes as Splitpanes };\n","import '../assets/NcAppContent-SZz3PTd8.css';\nimport l from \"../Components/NcButton.mjs\";\nimport { r as p, y as r, a as c } from \"./_l10n-FmsZpnE4.mjs\";\nimport \"../Directives/Tooltip.mjs\";\nimport { emit as a } from \"@nextcloud/event-bus\";\nimport { A as u } from \"./ArrowRight-16bLxoZc.mjs\";\nimport { n as o } from \"./_plugin-vue2_normalizer-u6G_3nkj.mjs\";\nimport { VTooltip as h } from \"floating-vue\";\nimport { useIsMobile as f } from \"../Composables/useIsMobile.mjs\";\nimport { getBuilder as g } from \"@nextcloud/browser-storage\";\nimport { useSwipe as d } from \"@vueuse/core\";\nimport { Pane as m, Splitpanes as _ } from \"splitpanes\";\nimport \"splitpanes/dist/splitpanes.css\";\np(r);\nconst z = {\n name: \"NcAppDetailsToggle\",\n directives: {\n tooltip: h\n },\n components: {\n NcButton: l,\n ArrowRight: u\n },\n computed: {\n title() {\n return c(\"Go back to the list\");\n }\n },\n beforeMount() {\n this.toggleAppNavigationButton(!0);\n },\n beforeDestroy() {\n this.toggleAppNavigationButton(!1);\n },\n methods: {\n toggleAppNavigationButton(e = !0) {\n const t = document.querySelector(\".app-navigation .app-navigation-toggle\");\n t && (t.style.display = e ? \"none\" : null, e === !0 && a(\"toggle-navigation\", { open: !1 }));\n }\n }\n};\nvar S = function() {\n var t = this, i = t._self._c;\n return i(\"NcButton\", { directives: [{ name: \"tooltip\", rawName: \"v-tooltip\", value: t.title, expression: \"title\" }], staticClass: \"app-details-toggle\", attrs: { \"aria-label\": t.title }, scopedSlots: t._u([{ key: \"icon\", fn: function() {\n return [i(\"ArrowRight\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) });\n}, v = [], w = /* @__PURE__ */ o(\n z,\n S,\n v,\n !1,\n null,\n \"5244e83e\",\n null,\n null\n);\nconst C = w.exports, n = g(\"nextcloud\").persist().build(), N = {\n name: \"NcAppContent\",\n components: {\n NcAppDetailsToggle: C,\n Pane: m,\n Splitpanes: _\n },\n props: {\n /**\n * Allows to disable the control by swipe of the app navigation open state\n */\n allowSwipeNavigation: {\n type: Boolean,\n default: !0\n },\n /**\n * Allows you to set the default width of the resizable list in %\n * Must be between listMinWidth and listMaxWidth\n */\n listSize: {\n type: Number,\n default: 20\n },\n /**\n * Allows you to set the minimum width of the list column in %\n */\n listMinWidth: {\n type: Number,\n default: 15\n },\n /**\n * Allows you to set the maximum width of the list column in %\n */\n listMaxWidth: {\n type: Number,\n default: 40\n },\n /**\n * Specify the config key for the pane config sizes\n * Default is the global var appName if you use the webpack-vue-config\n */\n paneConfigKey: {\n type: String,\n default: \"\"\n },\n /**\n * When in mobile view, only the list or the details are shown\n * If you provide a list, you need to provide a variable\n * that will be set to true by the user when an element of\n * the list gets selected. The details will then show a back\n * arrow to return to the list that will update this prop to false.\n */\n showDetails: {\n type: Boolean,\n default: !0\n },\n /**\n * Specify the `<h1>` page heading\n */\n pageHeading: {\n type: String,\n default: null\n }\n },\n emits: [\n \"update:showDetails\",\n \"resize:list\"\n ],\n setup() {\n return {\n isMobile: f()\n };\n },\n data() {\n return {\n contentHeight: 0,\n hasList: !1,\n swiping: {},\n listPaneSize: this.restorePaneConfig()\n };\n },\n computed: {\n paneConfigID() {\n if (this.paneConfigKey !== \"\")\n return `pane-list-size-${this.paneConfigKey}`;\n try {\n return `pane-list-size-${appName}`;\n } catch {\n return console.info(\"[INFO] AppContent:\", \"falling back to global nextcloud pane config\"), \"pane-list-size-nextcloud\";\n }\n },\n detailsPaneSize() {\n return this.listPaneSize ? 100 - this.listPaneSize : this.paneDefaults.details.size;\n },\n paneDefaults() {\n return {\n list: {\n size: this.listSize,\n min: this.listMinWidth,\n max: this.listMaxWidth\n },\n // set the inverse values of the details column\n // based on the provided (or default) values of the list column\n details: {\n size: 100 - this.listSize,\n min: 100 - this.listMaxWidth,\n max: 100 - this.listMinWidth\n }\n };\n }\n },\n updated() {\n this.checkListSlot();\n },\n mounted() {\n this.allowSwipeNavigation && (this.swiping = d(this.$el, {\n onSwipeEnd: this.handleSwipe\n })), this.checkListSlot(), this.restorePaneConfig();\n },\n methods: {\n /**\n * handle the swipe event\n *\n * @param {TouchEvent} e The touch event\n * @param {import('@vueuse/core').SwipeDirection} direction The swipe direction of the event\n */\n handleSwipe(e, t) {\n Math.abs(this.swiping.lengthX) > 70 && (this.swiping.coordsStart.x < 300 / 2 && t === \"right\" ? a(\"toggle-navigation\", {\n open: !0\n }) : this.swiping.coordsStart.x < 300 * 1.5 && t === \"left\" && a(\"toggle-navigation\", {\n open: !1\n }));\n },\n handlePaneResize(e) {\n const t = parseInt(e[0].size, 10);\n n.setItem(this.paneConfigID, JSON.stringify(t)), this.listPaneSize = t, this.$emit(\"resize:list\", { size: t }), console.debug(\"AppContent pane config\", t);\n },\n // $slots is not reactive, we need to update this manually\n checkListSlot() {\n const e = !!this.$slots.list;\n this.hasList !== e && (this.hasList = e);\n },\n // browserStorage is not reactive, we need to update this manually\n restorePaneConfig() {\n const e = parseInt(n.getItem(this.paneConfigID), 10);\n if (!isNaN(e) && e !== this.listPaneSize)\n return console.debug(\"AppContent pane config\", e), this.listPaneSize = e, e;\n },\n /**\n * The user clicked the back arrow from the details view\n */\n hideDetails() {\n this.$emit(\"update:showDetails\", !1);\n }\n }\n};\nvar D = function() {\n var t = this, i = t._self._c;\n return i(\"main\", { staticClass: \"app-content no-snapper\", class: { \"app-content--has-list\": t.hasList }, attrs: { id: \"app-content-vue\" } }, [t.pageHeading ? i(\"h1\", { staticClass: \"hidden-visually\" }, [t._v(\" \" + t._s(t.pageHeading) + \" \")]) : t._e(), t.hasList ? [t.isMobile ? i(\"div\", { staticClass: \"app-content-wrapper app-content-wrapper--mobile\", class: t.showDetails ? \"app-content-wrapper--show-details\" : \"app-content-wrapper--show-list\" }, [t.hasList && t.showDetails ? i(\"NcAppDetailsToggle\", { nativeOn: { click: function(s) {\n return s.stopPropagation(), s.preventDefault(), t.hideDetails.apply(null, arguments);\n } } }) : t._e(), t._t(\"list\"), t._t(\"default\")], 2) : i(\"div\", { staticClass: \"app-content-wrapper\" }, [i(\"Splitpanes\", { staticClass: \"default-theme\", on: { resized: t.handlePaneResize } }, [i(\"Pane\", { staticClass: \"splitpanes__pane-list\", attrs: { size: t.listPaneSize || t.paneDefaults.list.size, \"min-size\": t.paneDefaults.list.min, \"max-size\": t.paneDefaults.list.max } }, [t._t(\"list\")], 2), i(\"Pane\", { staticClass: \"splitpanes__pane-details\", attrs: { size: t.detailsPaneSize, \"min-size\": t.paneDefaults.details.min, \"max-size\": t.paneDefaults.details.max } }, [t._t(\"default\")], 2)], 1)], 1)] : t._t(\"default\")], 2);\n}, y = [], P = /* @__PURE__ */ o(\n N,\n D,\n y,\n !1,\n null,\n \"27fc3f3a\",\n null,\n null\n);\nconst H = P.exports;\nexport {\n H as N\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 * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\nimport { getCurrentInstance, effectScope, shallowReactive, onUnmounted, computed, unref } from 'vue';\n\n// dev only warn if no current instance\n\nfunction throwNoCurrentInstance (method) {\n if (!getCurrentInstance()) {\n throw new Error(\n (\"[vue-router]: Missing current instance. \" + method + \"() must be called inside <script setup> or setup().\")\n )\n }\n}\n\nfunction useRouter () {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useRouter');\n }\n\n return getCurrentInstance().proxy.$root.$router\n}\n\nfunction useRoute () {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useRoute');\n }\n\n var root = getCurrentInstance().proxy.$root;\n if (!root._$route) {\n var route = effectScope(true).run(function () { return shallowReactive(Object.assign({}, root.$router.currentRoute)); }\n );\n root._$route = route;\n\n root.$router.afterEach(function (to) {\n Object.assign(route, to);\n });\n }\n\n return root._$route\n}\n\nfunction onBeforeRouteUpdate (guard) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('onBeforeRouteUpdate');\n }\n\n return useFilteredGuard(guard, isUpdateNavigation)\n}\nfunction isUpdateNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return (\n toMatched.length >= depth &&\n toMatched\n .slice(0, depth + 1)\n .every(function (record, i) { return record === fromMatched[i]; })\n )\n}\n\nfunction isLeaveNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return toMatched.length < depth || toMatched[depth] !== fromMatched[depth]\n}\n\nfunction onBeforeRouteLeave (guard) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('onBeforeRouteLeave');\n }\n\n return useFilteredGuard(guard, isLeaveNavigation)\n}\n\nvar noop = function () {};\nfunction useFilteredGuard (guard, fn) {\n var instance = getCurrentInstance();\n var router = useRouter();\n\n var target = instance.proxy;\n // find the nearest RouterView to know the depth\n while (\n target &&\n target.$vnode &&\n target.$vnode.data &&\n target.$vnode.data.routerViewDepth == null\n ) {\n target = target.$parent;\n }\n\n var depth =\n target && target.$vnode && target.$vnode.data\n ? target.$vnode.data.routerViewDepth\n : null;\n\n if (depth != null) {\n var removeGuard = router.beforeEach(function (to, from, next) {\n return fn(to, from, depth) ? guard(to, from, next) : next()\n });\n\n onUnmounted(removeGuard);\n return removeGuard\n }\n\n return noop\n}\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 includesParams (outer, inner) {\n var loop = function ( key ) {\n var innerValue = inner[key];\n var outerValue = outer[key];\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue) { return { v: false } }\n } else {\n if (\n !Array.isArray(outerValue) ||\n outerValue.length !== innerValue.length ||\n innerValue.some(function (value, i) { return value !== outerValue[i]; })\n ) {\n return { v: false }\n }\n }\n };\n\n for (var key in inner) {\n var returned = loop( key );\n\n if ( returned ) return returned.v;\n }\n\n return true\n}\n\n// helpers from vue router 4\n\nfunction isSameRouteLocationParamsValue (a, b) {\n return Array.isArray(a)\n ? isEquivalentArray(a, b)\n : Array.isArray(b)\n ? isEquivalentArray(b, a)\n : a === b\n}\n\nfunction isEquivalentArray (a, b) {\n return Array.isArray(b)\n ? a.length === b.length && a.every(function (value, i) { return value === b[i]; })\n : a.length === 1 && a[0] === b\n}\n\nfunction isSameRouteLocationParams (a, b) {\n if (Object.keys(a).length !== Object.keys(b).length) { return false }\n\n for (var key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key])) { return false }\n }\n\n return true\n}\n\nfunction useLink (props) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useLink');\n }\n\n var router = useRouter();\n var currentRoute = useRoute();\n\n var resolvedRoute = computed(function () { return router.resolve(unref(props.to), currentRoute); });\n\n var activeRecordIndex = computed(function () {\n var route = resolvedRoute.value.route;\n var matched = route.matched;\n var length = matched.length;\n var routeMatched = matched[length - 1];\n var currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length) { return -1 }\n var index = currentMatched.indexOf(routeMatched);\n if (index > -1) { return index }\n // possible parent record\n var parentRecord = currentMatched[currentMatched.length - 2];\n\n return (\n // we are dealing with nested routes\n length > 1 &&\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n parentRecord && parentRecord === routeMatched.parent\n )\n });\n\n var isActive = computed(\n function () { return activeRecordIndex.value > -1 &&\n includesParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n var isExactActive = computed(\n function () { return activeRecordIndex.value > -1 &&\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\n isSameRouteLocationParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n\n var navigate = function (e) {\n var href = resolvedRoute.value.route;\n if (guardEvent(e)) {\n return props.replace\n ? router.replace(href)\n : router.push(href)\n }\n return Promise.resolve()\n };\n\n return {\n href: computed(function () { return resolvedRoute.value.href; }),\n route: computed(function () { return resolvedRoute.value.route; }),\n isExactActive: isExactActive,\n isActive: isActive,\n navigate: navigate\n }\n}\n\nexport { isSameRouteLocationParams, onBeforeRouteLeave, onBeforeRouteUpdate, useLink, useRoute, useRouter };\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{{ headingTitle }}\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 '../utils/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'\nimport { loadState } from '@nextcloud/initial-state'\nimport { useRoute } from 'vue-router/composables'\n\ninterface INavigationEntry {\n\tid: string\n\ticon?: string\n\tname: string\n\turl: string\n}\n\nconst navigationList = loadState<INavigationEntry[]>(appName, 'navigationList')\n\nconst route = useRoute()\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\nconst headingTitle = computed(() => {\n\treturn navigationList.find((navigationEl) => navigationEl.id === route.params.filter).name\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","import '../assets/NcAppNavigationToggle-3vMKtCQL.css';\nimport r from \"../Components/NcButton.mjs\";\nimport { r as s, x as o, a as l } from \"./_l10n-FmsZpnE4.mjs\";\nimport { n as i } from \"./_plugin-vue2_normalizer-u6G_3nkj.mjs\";\ns(o);\nconst c = {\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 p = 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 ? null : !0, \"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}, u = [], _ = /* @__PURE__ */ i(\n c,\n p,\n u,\n !1,\n null,\n null,\n null,\n null\n);\nconst m = _.exports, f = {\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 g = 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 ? null : !0, \"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}, d = [], v = /* @__PURE__ */ i(\n f,\n g,\n d,\n !1,\n null,\n null,\n null,\n null\n);\nconst h = v.exports, C = {\n name: \"NcAppNavigationToggle\",\n components: {\n NcButton: r,\n MenuIcon: m,\n MenuOpenIcon: h\n },\n props: {\n /**\n * Tracks whether the toggle has been clicked or not.\n * If it has been clicked, switches between the different MenuIcons\n * and emits a boolean indicating its opened status\n */\n open: {\n type: Boolean,\n required: !0\n }\n },\n emits: [\"update:open\"],\n computed: {\n label() {\n return this.open ? l(\"Close navigation\") : l(\"Open navigation\");\n }\n },\n methods: {\n /**\n * Once the toggle has been clicked, emits the toggle status\n * so parent components can gauge the status of the navigation button\n */\n toggleNavigation() {\n this.$emit(\"update:open\", !this.open);\n }\n }\n};\nvar M = function() {\n var t = this, e = t._self._c;\n return e(\"div\", { staticClass: \"app-navigation-toggle-wrapper\" }, [e(\"NcButton\", { staticClass: \"app-navigation-toggle\", attrs: { type: \"tertiary\", \"aria-expanded\": t.open ? \"true\" : \"false\", \"aria-label\": t.label, title: 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 }]) })], 1);\n}, $ = [], H = /* @__PURE__ */ i(\n C,\n M,\n $,\n !1,\n null,\n \"e1dc2b3e\",\n null,\n null\n);\nconst N = H.exports;\nexport {\n N\n};\n","import '../assets/NcAppNavigation-vjqOL-kR.css';\nimport { useIsMobile as n } from \"../Composables/useIsMobile.mjs\";\nimport { g as s } from \"./focusTrap-Py2bQ9-r.mjs\";\nimport { subscribe as p, emit as o, unsubscribe as r } from \"@nextcloud/event-bus\";\nimport { createFocusTrap as l } from \"focus-trap\";\nimport { N as g } from \"./NcAppNavigationToggle-KT8eqw6r.mjs\";\nimport u from \"vue\";\nimport { n as c } from \"./_plugin-vue2_normalizer-u6G_3nkj.mjs\";\nconst d = {\n name: \"NcAppNavigation\",\n components: {\n NcAppNavigationToggle: g\n },\n // Injected from NcContent\n inject: {\n setHasAppNavigation: {\n default: () => () => u.util.warn(\"NcAppNavigation is not mounted inside NcContent, this is probably an error.\"),\n from: \"NcContent:setHasAppNavigation\"\n }\n },\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 setup() {\n return {\n isMobile: n()\n };\n },\n data() {\n return {\n open: !this.isMobile,\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 this.setHasAppNavigation(!0), p(\"toggle-navigation\", this.toggleNavigationByEventBus), o(\"navigation-toggled\", {\n open: this.open\n }), this.focusTrap = l(this.$refs.appNavigationContainer, {\n allowOutsideClick: !0,\n fallbackFocus: this.$refs.appNavigationContainer,\n trapStack: s(),\n escapeDeactivates: !1\n }), this.toggleFocusTrap();\n },\n unmounted() {\n this.setHasAppNavigation(!1), 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(a) {\n if (this.open === a) {\n o(\"navigation-toggled\", {\n open: this.open\n });\n return;\n }\n this.open = typeof a > \"u\" ? !this.open : a;\n const t = getComputedStyle(document.body), e = parseInt(t.getPropertyValue(\"--animation-quick\")) || 100;\n setTimeout(() => {\n o(\"navigation-toggled\", {\n open: this.open\n });\n }, 1.5 * e);\n },\n toggleNavigationByEventBus({ open: a }) {\n this.toggleNavigation(a);\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 f = function() {\n var t = this, e = t._self._c;\n return e(\"div\", { ref: \"appNavigationContainer\", staticClass: \"app-navigation\", class: { \"app-navigation--close\": !t.open } }, [e(\"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\"), e(\"ul\", { staticClass: \"app-navigation__list\" }, [t._t(\"list\")], 2), t._t(\"footer\")], 2), e(\"NcAppNavigationToggle\", { attrs: { open: t.open }, on: { \"update:open\": t.toggleNavigation } })], 1);\n}, v = [], h = /* @__PURE__ */ c(\n d,\n f,\n v,\n !1,\n null,\n \"80612854\",\n null,\n null\n);\nconst k = h.exports;\nexport {\n k as N\n};\n","import '../assets/NcActionButton-1Z9lN7ar.css';\nimport { C as s } from \"../chunks/Check-qy5XrF1J.mjs\";\nimport { C as n } from \"../chunks/ChevronRight-9owhU_17.mjs\";\nimport { A as a } from \"../chunks/actionText-bMy_49i8.mjs\";\nimport { n as o } from \"../chunks/_plugin-vue2_normalizer-u6G_3nkj.mjs\";\nconst l = {\n name: \"NcActionButton\",\n components: {\n CheckIcon: s,\n ChevronRightIcon: n\n },\n mixins: [a],\n inject: {\n isInSemanticMenu: {\n from: \"NcActions:isSemanticMenu\",\n default: !1\n }\n },\n props: {\n /**\n * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n * otherwise root element will inherit incorrect aria-hidden.\n */\n ariaHidden: {\n type: Boolean,\n default: null\n },\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: !1\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: !1\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (e) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(e)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of `<input type=\"radio\">`\n */\n value: {\n type: String,\n default: null\n }\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n return this.type === \"radio\" && typeof this.modelValue != \"boolean\" ? this.modelValue === this.value : this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n return this.type === \"submit\" || this.type === \"reset\" ? this.type : \"button\";\n },\n /**\n * HTML attributes to bind to the <button>\n */\n buttonAttributes() {\n const e = {};\n return this.isInSemanticMenu ? (e.role = \"menuitem\", this.type === \"radio\" ? (e.role = \"menuitemradio\", e[\"aria-checked\"] = this.isChecked ? \"true\" : \"false\") : (this.type === \"checkbox\" || this.nativeType === \"button\" && this.modelValue !== null) && (e.role = \"menuitemcheckbox\", e[\"aria-checked\"] = this.modelValue === null ? \"mixed\" : this.modelValue ? \"true\" : \"false\")) : this.modelValue !== null && this.nativeType === \"button\" && (e[\"aria-pressed\"] = this.modelValue ? \"true\" : \"false\"), e;\n }\n },\n methods: {\n /**\n * Forward click event, let mixin handle the close-after-click and emit new modelValue if needed\n * @param {MouseEvent} event The click event\n */\n handleClick(e) {\n this.onClick(e), (this.modelValue !== null || this.type !== \"button\") && (this.type === \"radio\" ? typeof this.modelValue != \"boolean\" ? this.isChecked || this.$emit(\"update:modelValue\", this.value) : this.$emit(\"update:modelValue\", !this.isChecked) : this.$emit(\"update:modelValue\", !this.isChecked));\n }\n }\n};\nvar u = function() {\n var t = this, i = t._self._c;\n return i(\"li\", { staticClass: \"action\", class: { \"action--disabled\": t.disabled }, attrs: { role: t.isInSemanticMenu && \"presentation\" } }, [i(\"button\", t._b({ class: [\"action-button button-vue\", {\n \"action-button--active\": t.isChecked,\n focusable: t.isFocusable\n }], attrs: { \"aria-label\": t.ariaLabel, title: t.title, type: t.nativeType }, on: { click: t.handleClick } }, \"button\", t.buttonAttributes, !1), [t._t(\"icon\", function() {\n return [i(\"span\", { staticClass: \"action-button__icon\", class: [t.isIconUrl ? \"action-button__icon--url\" : t.icon], style: { backgroundImage: t.isIconUrl ? `url(${t.icon})` : null }, attrs: { \"aria-hidden\": \"true\" } })];\n }), t.name ? i(\"span\", { staticClass: \"action-button__longtext-wrapper\" }, [i(\"strong\", { staticClass: \"action-button__name\" }, [t._v(\" \" + t._s(t.name) + \" \")]), i(\"br\"), i(\"span\", { staticClass: \"action-button__longtext\", domProps: { textContent: t._s(t.text) } })]) : t.isLongText ? i(\"span\", { staticClass: \"action-button__longtext\", domProps: { textContent: t._s(t.text) } }) : i(\"span\", { staticClass: \"action-button__text\" }, [t._v(t._s(t.text))]), t.isMenu ? i(\"ChevronRightIcon\", { staticClass: \"action-button__menu-icon\", attrs: { size: 20 } }) : t.isChecked === !0 ? i(\"CheckIcon\", { staticClass: \"action-button__pressed-icon\", attrs: { size: 20 } }) : t.isChecked === !1 ? i(\"span\", { staticClass: \"action-button__pressed-icon material-design-icon\" }) : t._e(), t._e()], 2)]);\n}, c = [], r = /* @__PURE__ */ o(\n l,\n u,\n c,\n !1,\n null,\n \"04ec546c\",\n null,\n null\n);\nconst b = r.exports;\nexport {\n b as default\n};\n","import { n } from \"../chunks/_plugin-vue2_normalizer-u6G_3nkj.mjs\";\nconst e = {\n name: \"NcVNodes\",\n props: {\n /**\n * The vnodes to render\n */\n vnodes: {\n type: [Array, Object],\n default: null\n }\n },\n /**\n * The render function to display the component\n *\n * @param {Function} h The function to create VNodes\n * @return {object} The created VNode\n */\n render(o) {\n return this.vnodes || this.$slots?.default || this.$scopedSlots?.default?.();\n }\n}, s = null, t = null;\nvar l = /* @__PURE__ */ n(\n e,\n s,\n t,\n !1,\n null,\n null,\n null,\n null\n);\nconst a = l.exports;\nexport {\n a as default\n};\n","import '../assets/NcInputConfirmCancel-ks8z8dIn.css';\nimport o from \"../Components/NcButton.mjs\";\nimport { r as i, m as l, a } from \"./_l10n-FmsZpnE4.mjs\";\nimport { A as u } from \"./ArrowRight-16bLxoZc.mjs\";\nimport { C as c } from \"./Close-QtH6_3PP.mjs\";\nimport { n as p } from \"./_plugin-vue2_normalizer-u6G_3nkj.mjs\";\ni(l);\nconst s = {\n name: \"NcInputConfirmCancel\",\n components: {\n NcButton: o,\n ArrowRight: u,\n Close: c\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 f = 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}, m = [], y = /* @__PURE__ */ p(\n s,\n f,\n m,\n !1,\n null,\n \"dcf0becf\",\n null,\n null\n);\nconst v = y.exports;\nexport {\n v as N\n};\n","import '../assets/NcAppNavigationItem-caMsw_N_.css';\nimport { N as u } from \"./NcActions-5_igU-CH.mjs\";\nimport p from \"../Components/NcActionButton.mjs\";\nimport d from \"../Components/NcLoadingIcon.mjs\";\nimport f from \"../Components/NcVNodes.mjs\";\nimport _ from \"../Components/NcButton.mjs\";\nimport { r, M as m, a as s, c as h, N as g } from \"./_l10n-FmsZpnE4.mjs\";\nimport { C as v } from \"./ChevronDown-suAKKmeb.mjs\";\nimport { n as l } from \"./_plugin-vue2_normalizer-u6G_3nkj.mjs\";\nimport { useIsMobile as y } from \"../Composables/useIsMobile.mjs\";\nimport { N as C } from \"./NcInputConfirmCancel-z3ANO-1N.mjs\";\nimport { G as b } from \"./GenRandomId-VodkdWbp.mjs\";\nr(m);\nconst k = {\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 $ = 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 ? null : !0, \"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}, N = [], B = /* @__PURE__ */ l(\n k,\n $,\n N,\n !1,\n null,\n null,\n null,\n null\n);\nconst L = B.exports, S = {\n name: \"NcAppNavigationIconCollapsible\",\n components: {\n NcButton: _,\n ChevronDown: v,\n ChevronUp: L\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 A = 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}, x = [], I = /* @__PURE__ */ l(\n S,\n A,\n x,\n !1,\n null,\n \"07582bf6\",\n null,\n null\n);\nconst z = I.exports;\nr(g, h);\nconst w = {\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 V = 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 ? null : !0, \"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}, M = [], U = /* @__PURE__ */ l(\n w,\n V,\n M,\n !1,\n null,\n null,\n null,\n null\n);\nconst D = U.exports, E = {\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 O = 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 ? null : !0, \"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}, R = [], P = /* @__PURE__ */ l(\n E,\n O,\n R,\n !1,\n null,\n null,\n null,\n null\n);\nconst K = P.exports, T = {\n name: \"NcAppNavigationItem\",\n components: {\n NcActions: u,\n NcActionButton: p,\n NcAppNavigationIconCollapsible: z,\n NcInputConfirmCancel: C,\n NcLoadingIcon: d,\n NcVNodes: f,\n Pencil: D,\n Undo: K\n },\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-\" + b(),\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 setup() {\n return {\n isMobile: y()\n };\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?.(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 F = 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: c, 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, c, 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 || e.active }, 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 || e.active ? \"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}, H = [], Z = /* @__PURE__ */ l(\n T,\n F,\n H,\n !1,\n null,\n \"6a7129ac\",\n null,\n null\n);\nconst ie = Z.exports;\nexport {\n ie as N\n};\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @author Georg Ehrke <georg-nextcloud@ehrke.email>\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 */\nconst t = {\n props: {\n /**\n * A query-selector or an array of query-selectors\n * to be ignored when clicking outside an element\n */\n excludeClickOutsideSelectors: {\n type: [String, Array],\n default: () => []\n }\n },\n computed: {\n clickOutsideOptions() {\n return { ignore: Array.isArray(this.excludeClickOutsideSelectors) ? this.excludeClickOutsideSelectors : [this.excludeClickOutsideSelectors] };\n }\n }\n};\nexport {\n t as default\n};\n","import '../assets/NcMentionBubble-YYl1ib_F.css';\nimport '../assets/NcAppNavigationSettings-Jx_6RpSn.css';\nimport { r as o, s as r, a } from \"./_l10n-FmsZpnE4.mjs\";\nimport l from \"../Mixins/clickOutsideOptions.mjs\";\nimport \"../Composables/useIsFullscreen.mjs\";\nimport \"../Composables/useIsMobile.mjs\";\nimport \"@nextcloud/router\";\n/* empty css */\nimport { n as i } from \"./_plugin-vue2_normalizer-u6G_3nkj.mjs\";\nimport \"linkify-string\";\nimport \"escape-html\";\nimport \"striptags\";\nimport \"vue\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/capabilities\";\nimport { vOnClickOutside as c } from \"@vueuse/components\";\no(r);\nconst p = {\n name: \"CogIcon\",\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 t = this, e = t._self._c;\n return e(\"span\", t._b({ staticClass: \"material-design-icon cog-icon\", attrs: { \"aria-hidden\": t.title ? null : !0, \"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: \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\" } }, [t.title ? e(\"title\", [t._v(t._s(t.title))]) : t._e()])])]);\n}, _ = [], m = /* @__PURE__ */ i(\n p,\n u,\n _,\n !1,\n null,\n null,\n null,\n null\n);\nconst d = m.exports, C = {\n directives: {\n ClickOutside: c\n },\n components: {\n Cog: d\n },\n mixins: [\n l\n ],\n props: {\n name: {\n type: String,\n required: !1,\n default: a(\"Settings\")\n }\n },\n data() {\n return {\n open: !1\n };\n },\n computed: {\n clickOutsideConfig() {\n return [\n this.closeMenu,\n this.clickOutsideOptions\n ];\n }\n },\n methods: {\n toggleMenu() {\n this.open = !this.open;\n },\n closeMenu() {\n this.open = !1;\n }\n }\n};\nvar f = function() {\n var t = this, e = t._self._c;\n return e(\"div\", { directives: [{ name: \"click-outside\", rawName: \"v-click-outside\", value: t.clickOutsideConfig, expression: \"clickOutsideConfig\" }], class: { open: t.open }, attrs: { id: \"app-settings\" } }, [e(\"div\", { attrs: { id: \"app-settings__header\" } }, [e(\"button\", { staticClass: \"settings-button\", attrs: { type: \"button\", \"aria-expanded\": t.open ? \"true\" : \"false\", \"aria-controls\": \"app-settings__content\" }, on: { click: t.toggleMenu } }, [e(\"Cog\", { staticClass: \"settings-button__icon\", attrs: { size: 20 } }), e(\"span\", { staticClass: \"settings-button__label\" }, [t._v(t._s(t.name))])], 1)]), e(\"Transition\", { attrs: { name: \"slide-up\" } }, [e(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: t.open, expression: \"open\" }], attrs: { id: \"app-settings__content\" } }, [t._t(\"default\")], 2)])], 1);\n}, g = [], v = /* @__PURE__ */ i(\n C,\n f,\n g,\n !1,\n null,\n \"4bd59bb1\",\n null,\n null\n);\nconst H = v.exports;\nexport {\n H as N\n};\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\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 :aria-label=\"t('activity', 'Activity')\">\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 NcAppNavigation from '@nextcloud/vue/dist/Components/NcAppNavigation.js'\nimport NcAppNavigationItem from '@nextcloud/vue/dist/Components/NcAppNavigationItem.js'\nimport NcAppNavigationSettings from '@nextcloud/vue/dist/Components/NcAppNavigationSettings.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'\nimport IconContentCopy from 'vue-material-design-icons/ContentCopy.vue'\nimport logger from '../utils/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.app-navigation-entry {\n\t\t&.active .navigation-icon {\n\t\t\tfilter: var(--primary-invert-if-dark);\n\t\t}\n\n\t\t&:not(.active) .navigation-icon {\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n\n\t.navigation-icon {\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","l","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","urlAlphabet","nanoid","size","id","_typeof","setSelector","selector","isBrowser","TargetContainer","nodes","Portal","_this","disabled","targetEl","g","f","d","s","C","o","r","u","p","N","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","prop","__spreadProps","__objRest","source","exclude","normalizeComponent","scriptExports","render2","staticRenderFns2","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","context","originalRender","existing","__vue2_script$1","pane2","splitterIndex","totalMinSizes","paneId","rect","clientX","clientY","drag","containerSize","sums","minDrag","maxDrag","dragPercentage","panesToResize","paneBefore","paneAfter","paneBeforeMaxReached","paneAfterMaxReached","vars","total","isPane","isSplitter","paneIndex","nextPaneNode","isVeryFirst","elm","node","_a","_b","min","pane3","removed","changedPanes","equalSpace","leftToAllocate","ungrowable","unshrinkable","definedSizes","leftToAllocate2","addedPane","removedPane","equalSpaceToAllocate","newPaneSize","allocated","enable","splitter","__vue2_render","__vue2_staticRenderFns","__cssModules$1","__component__$1","__vue2_injectStyles$1","splitpanes","render","_vm","_h","_c","$event","staticRenderFns","__vue2_script","style","__cssModules","__component__","__vue2_injectStyles","pane","z","t","S","w","appName","D","y","P","H","$placeholder","$fakeParent","$nextSiblingPatched","$childNodesPatched","isFrag","parentNodeDescriptor","patchParentNode","fakeParent","nextSiblingDescriptor","childNodes","patchNextSibling","getTopFragment","fromParent","_node","parentNode","getChildNodes","getChildNodesWithFragments","_childNodesDescriptor","realChildNodes","childNode","childNodesDescriptor","firstChildDescriptor","hasChildNodes","patchChildNodes","before","_this$frag$","remove","frag","getFragmentLeafNodes","_Array$prototype","addPlaceholder","insertBeforeNode","placeholder","removeChild","hasChildInFragment","_this$frag$splice","removedNode","hasChild","insertBefore","insertNode","insertNodes","_frag","_lastNode","removePlaceholder","lastNode","appendChild","lastChild","innerHTMLDescriptor","htmlString","_this2","domify","element","nextSibling","previousSibling","fragment","dateText","computed","today","moment","yesterday","first","fullDate","formatted","appIconSVG","useRoute","root","getCurrentInstance","effectScope","shallowReactive","navigationList","loadState","loading","hasMoreActivites","allActivities","lastActivityLoaded","container","useInfiniteScroll","loadActivities","groupedActivities","activity","date","headingTitle","navigationEl","since","response","ncAxios","generateOcsUrl","ActivityModel","axios","logger","showError","onMounted","watch","M","$","k","B","L","A","I","V","U","E","O","R","K","T","F","Z","ie","_sfc_main","initialRSSLink","personalSettingsLink","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,9,11,12,13,14,15,16,17,18,19]}