diff --git a/THIRD_PARTY.txt b/THIRD_PARTY.txt
index 2fbf1909..5ea5494b 100644
--- a/THIRD_PARTY.txt
+++ b/THIRD_PARTY.txt
@@ -1822,6 +1822,8 @@ https://cdnjs.cloudflare.com/ajax/libs/video.js/8.0.2/video.min.js
https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.45/vue.global.prod.js
https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/8.27.2/vue-i18n.min.js
https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/9.2.2/vue-i18n.cjs.min.js
+https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.6.5/vue-router.min.js
+https://cdnjs.cloudflare.com/ajax/libs/vue-router/4.1.6/vue-router.global.min.js
https://cdnjs.cloudflare.com/ajax/libs/vuex/3.6.2/vuex.min.js
https://cdnjs.cloudflare.com/ajax/libs/vuex/4.1.0/vuex.cjs.min.js
https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.min.js
diff --git a/audit/audit.sh b/audit/audit.sh
index 69036d96..cad55daa 100755
--- a/audit/audit.sh
+++ b/audit/audit.sh
@@ -739,6 +739,8 @@ function create_url() {
url="$JSDELIVR/npm/in-view@$version/dist/in-view.min.js"
elif [ "$folder" = "knockout" ] && [ "$version" = "3.5.1" ];then
url="$CLOUDFLARE/$folder/$version/knockout-latest.min.js"
+ elif [ "$folder" = "vue-router" ] && [ "$version" = "3.6.5" ];then
+ url="$CLOUDFLARE/$folder/$version/vue-router.min.js"
elif [ "$folder" = "ScrollMagic" ] && [ "$jfile" != "ScrollMagic.min.js" ];then
url="$CLOUDFLARE/$folder/$version/plugins/$jfile"
# --------------------------------------------------------------------------
diff --git a/core/mappings.js b/core/mappings.js
index d4f82a9c..3fcb10a3 100644
--- a/core/mappings.js
+++ b/core/mappings.js
@@ -532,6 +532,7 @@ mappings.cdn = {
'vue/{version}/vue.min.js': resources.vueJs,
'vue-i18n/{version}/vue-i18n.': resources.vueI18N,
'vue-resource/{version}/vue-resource.': resources.vueResource,
+ 'vue-router/{version}/vue-router.': resources.vueRouter,
'vuex/{version}/vuex.min.': resources.vuex,
'waypoints/{version}/noframework.waypoints.': resources.jQueryWaypoints,
'waypoints/{version}/jquery.waypoints.': resources.jQueryWaypoints,
@@ -726,6 +727,7 @@ mappings.cdn = {
'videojs-seek-buttons/dist/videojs-seek-buttons.min.js': resources.videojsSeekButtonsJS,
'vue-match-media@{version}/dist/index.': resources.vueMatchMedia,
'vue-resource@{version}/dist/vue-resource.': resources.vueResource,
+ 'vue-router@{version}/dist/vue-router.': resources.vueRouter,
'vue@{version}/dist/vue.min.js': resources.vueJs,
'vue@{version}/dist/vue.js': resources.vueJs,
'vuex@{version}/dist/vuex.': resources.vuex,
diff --git a/core/resources.js b/core/resources.js
index c8f6e244..4471ac29 100644
--- a/core/resources.js
+++ b/core/resources.js
@@ -1138,6 +1138,10 @@ var resources = {
'vueResource': {
'path': 'resources/vue-resource/{version}/vue-resource.min.jsm'
},
+ // vue-router
+ 'vueRouter': {
+ 'path': 'resources/vue-router/{version}/vue-router.global.min.jsm'
+ },
// vuex
'vuex': {
'path': 'resources/vuex/{version}/vuex.min.jsm'
diff --git a/modules/internal/targets.js b/modules/internal/targets.js
index 3767a01c..7e794ba7 100644
--- a/modules/internal/targets.js
+++ b/modules/internal/targets.js
@@ -493,6 +493,8 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/vue-i18n/9.')) return '9.2.2';
if (type.startsWith('/vue-match-media/1.')) return '1.0.3';
if (type.startsWith('/vue-resource/1.')) return '1.5.3';
+ if (type.startsWith('/vue-router/3.')) return '3.6.5';
+ if (type.startsWith('/vue-router/4.')) return '4.1.6';
if (type.startsWith('/vuex/3.')) return '3.6.2';
if (type.startsWith('/vuex/4.')) return '4.1.0';
if (type.startsWith('/waypoints/4.')) return '4.0.1';
@@ -512,6 +514,7 @@ targets.determineResourceName = function (filename) {
};
const ListOfFiles = {
+ 'vue-router.global.min.jsm': 'vue-router',
'tf.min.jsm': 'tensorflow',
'nprogress.min.jsm': 'nprogress (JS)',
'nprogress.min.css': 'nprogress (CSS)',
diff --git a/pages/updates/updates.html b/pages/updates/updates.html
index 7db8ae6d..86980aa0 100644
--- a/pages/updates/updates.html
+++ b/pages/updates/updates.html
@@ -50,6 +50,7 @@
nprogress v0.2.0 (#1254)
tensorflow v4.1.0 (#1264)
ScrollMagic (Bundle) v2.0.8 (#1277)
+ vue-router v3.6.5 & v4.1.6 (#1278)
Improved
diff --git a/resources/vue-router/3.6.5/note b/resources/vue-router/3.6.5/note
new file mode 100644
index 00000000..da3c4fa5
--- /dev/null
+++ b/resources/vue-router/3.6.5/note
@@ -0,0 +1,4 @@
+In this directory the file was renamed.
+
+Original: vue-router.min.js
+Now: vue-router.global.min.jsm
diff --git a/resources/vue-router/3.6.5/vue-router.global.min.jsm b/resources/vue-router/3.6.5/vue-router.global.min.jsm
new file mode 100644
index 00000000..993e25aa
--- /dev/null
+++ b/resources/vue-router/3.6.5/vue-router.global.min.jsm
@@ -0,0 +1,11 @@
+/*!
+ * vue-router v3.6.5
+ * (c) 2022 Evan You
+ * @license MIT
+ */
+/*!
+ * vue-router v3.6.5
+ * (c) 2022 Evan You
+ * @license MIT
+ */
+var t,e;t=this,e=function(){"use strict";function t(t,e){for(var r in e)t[r]=e[r];return t}var e=/[!'()*]/g,r=function(t){return"%"+t.charCodeAt(0).toString(16)},n=/%2C/g,o=function(t){return encodeURIComponent(t).replace(e,r).replace(n,",")};function i(t){try{return decodeURIComponent(t)}catch(t){}return t}var a=function(t){return null==t||"object"==typeof t?t:String(t)};function s(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach((function(t){var r=t.replace(/\+/g," ").split("="),n=i(r.shift()),o=r.length>0?i(r.join("=")):null;void 0===e[n]?e[n]=o:Array.isArray(e[n])?e[n].push(o):e[n]=[e[n],o]})),e):e}function u(t){var e=t?Object.keys(t).map((function(e){var r=t[e];if(void 0===r)return"";if(null===r)return o(e);if(Array.isArray(r)){var n=[];return r.forEach((function(t){void 0!==t&&(null===t?n.push(o(e)):n.push(o(e)+"="+o(t)))})),n.join("&")}return o(e)+"="+o(r)})).filter((function(t){return t.length>0})).join("&"):null;return e?"?"+e:""}var c=/\/?$/;function p(t,e,r,n){var o=n&&n.options.stringifyQuery,i=e.query||{};try{i=f(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:d(e,o),matched:t?l(t):[]};return r&&(a.redirectedFrom=d(r,o)),Object.freeze(a)}function f(t){if(Array.isArray(t))return t.map(f);if(t&&"object"==typeof t){var e={};for(var r in t)e[r]=f(t[r]);return e}return t}var h=p(null,{path:"/"});function l(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function d(t,e){var r=t.path,n=t.query;void 0===n&&(n={});var o=t.hash;return void 0===o&&(o=""),(r||"/")+(e||u)(n)+o}function v(t,e,r){return e===h?t===e:!!e&&(t.path&&e.path?t.path.replace(c,"")===e.path.replace(c,"")&&(r||t.hash===e.hash&&y(t.query,e.query)):!(!t.name||!e.name)&&t.name===e.name&&(r||t.hash===e.hash&&y(t.query,e.query)&&y(t.params,e.params)))}function y(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var r=Object.keys(t).sort(),n=Object.keys(e).sort();return r.length===n.length&&r.every((function(r,o){var i=t[r];if(n[o]!==r)return!1;var a=e[r];return null==i||null==a?i===a:"object"==typeof i&&"object"==typeof a?y(i,a):String(i)===String(a)}))}function m(t){for(var e=0;e=0&&(e=t.slice(n),t=t.slice(0,n));var o=t.indexOf("?");return o>=0&&(r=t.slice(o+1),t=t.slice(0,o)),{path:t,query:r,hash:e}}(i.path||""),h=r&&r.path||"/",l=f.path?b(f.path,h,n||i.append):h,d=function(t,e,r){void 0===e&&(e={});var n,o=r||s;try{n=o(t||"")}catch(t){n={}}for(var i in e){var u=e[i];n[i]=Array.isArray(u)?u.map(a):a(u)}return n}(f.query,i.query,o&&o.options.parseQuery),v=i.hash||f.hash;return v&&"#"!==v.charAt(0)&&(v="#"+v),{_normalized:!0,path:l,query:d,hash:v}}var H,N=function(){},F={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var r=this,n=this.$router,o=this.$route,i=n.resolve(this.to,o,this.append),a=i.location,s=i.route,u=i.href,f={},h=n.options.linkActiveClass,l=n.options.linkExactActiveClass,d=null==h?"router-link-active":h,y=null==l?"router-link-exact-active":l,m=null==this.activeClass?d:this.activeClass,g=null==this.exactActiveClass?y:this.exactActiveClass,w=s.redirectedFrom?p(null,V(s.redirectedFrom),null,n):s;f[g]=v(o,w,this.exactPath),f[m]=this.exact||this.exactPath?f[g]:function(t,e){return 0===t.path.replace(c,"/").indexOf(e.path.replace(c,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var r in e)if(!(r in t))return!1;return!0}(t.query,e.query)}(o,w);var b=f[g]?this.ariaCurrentValue:null,x=function(t){z(t)&&(r.replace?n.replace(a,N):n.push(a,N))},R={click:z};Array.isArray(this.event)?this.event.forEach((function(t){R[t]=x})):R[this.event]=x;var k={class:f},E=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:u,route:s,navigate:x,isActive:f[m],isExactActive:f[g]});if(E){if(1===E.length)return E[0];if(E.length>1||!E.length)return 0===E.length?e():e("span",{},E)}if("a"===this.tag)k.on=R,k.attrs={href:u,"aria-current":b};else{var C=function t(e){var r;if(e)for(var n=0;n-1&&(s.params[h]=r.params[h]);return s.path=M(p.path,s.params),u(p,s,a)}if(s.path){s.params={};for(var l=0;l-1}function xt(t,e){return bt(t)&&t._isRouter&&(null==e||t.type===e)}function Rt(t,e,r){var n=function(o){o>=t.length?r():t[o]?e(t[o],(function(){n(o+1)})):n(o+1)};n(0)}function kt(t){return function(e,r,n){var o=!1,i=0,a=null;Et(t,(function(t,e,r,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var u,c=Ot((function(e){var o;((o=e).__esModule||At&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:H.extend(e),r.components[s]=e,--i<=0&&n()})),p=Ot((function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=bt(t)?t:new Error(e),n(a))}));try{u=t(c,p)}catch(t){p(t)}if(u)if("function"==typeof u.then)u.then(c,p);else{var f=u.component;f&&"function"==typeof f.then&&f.then(c,p)}}})),o||n()}}function Et(t,e){return Ct(t.map((function(t){return Object.keys(t.components).map((function(r){return e(t.components[r],t.instances[r],t,r)}))})))}function Ct(t){return Array.prototype.concat.apply([],t)}var At="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ot(t){var e=!1;return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];if(!e)return e=!0,t.apply(this,r)}}var _t=function(t,e){this.router=t,this.base=function(t){if(!t)if(D){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}(e),this.current=h,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function jt(t,e,r,n){var o=Et(t,(function(t,n,o,i){var a=function(t,e){return"function"!=typeof t&&(t=H.extend(t)),t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map((function(t){return r(t,n,o,i)})):r(a,n,o,i)}));return Ct(n?o.reverse():o)}function Tt(t,e){if(e)return function(){return t.apply(e,arguments)}}_t.prototype.listen=function(t){this.cb=t},_t.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},_t.prototype.onError=function(t){this.errorCbs.push(t)},_t.prototype.transitionTo=function(t,e,r){var n,o=this;try{n=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var i=this.current;this.confirmTransition(n,(function(){o.updateRoute(n),e&&e(n),o.ensureURL(),o.router.afterHooks.forEach((function(t){t&&t(n,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(t){t(n)})))}),(function(t){r&&r(t),t&&!o.ready&&(xt(t,vt.redirected)&&i===h||(o.ready=!0,o.readyErrorCbs.forEach((function(e){e(t)}))))}))},_t.prototype.confirmTransition=function(t,e,r){var n=this,o=this.current;this.pending=t;var i,a,s=function(t){!xt(t)&&bt(t)&&(n.errorCbs.length?n.errorCbs.forEach((function(e){e(t)})):console.error(t)),r&&r(t)},u=t.matched.length-1,c=o.matched.length-1;if(v(t,o)&&u===c&&t.matched[u]===o.matched[c])return this.ensureURL(),t.hash&&nt(this.router,o,t,!1),s(((a=gt(i=o,t,vt.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var p=function(t,e){var r,n=Math.max(t.length,e.length);for(r=0;r0)){var e=this.router,r=e.options.scrollBehavior,n=ht&&r;n&&this.listeners.push(rt());var o=function(){var r=t.current,o=Pt(t.base);t.current===h&&o===t._startLocation||t.transitionTo(o,(function(t){n&&nt(e,t,r,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){lt(x(n.base+t.fullPath)),nt(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){dt(x(n.base+t.fullPath)),nt(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.ensureURL=function(t){if(Pt(this.base)!==this.current.fullPath){var e=x(this.base+this.current.fullPath);t?lt(e):dt(e)}},e.prototype.getCurrentLocation=function(){return Pt(this.base)},e}(_t);function Pt(t){var e=window.location.pathname,r=e.toLowerCase(),n=t.toLowerCase();return!t||r!==n&&0!==r.indexOf(x(n+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Lt=function(t){function e(e,r,n){t.call(this,e,r),n&&function(t){var e=Pt(t);if(!/^\/#/.test(e))return window.location.replace(x(t+"/#"+e)),!0}(this.base)||$t()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,r=ht&&e;r&&this.listeners.push(rt());var n=function(){var e=t.current;$t()&&t.transitionTo(qt(),(function(n){r&&nt(t.router,n,e,!0),ht||It(n.fullPath)}))},o=ht?"popstate":"hashchange";window.addEventListener(o,n),this.listeners.push((function(){window.removeEventListener(o,n)}))}},e.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){Bt(t.fullPath),nt(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,(function(t){It(t.fullPath),nt(n.router,t,o,!1),e&&e(t)}),r)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;qt()!==e&&(t?Bt(e):It(e))},e.prototype.getCurrentLocation=function(){return qt()},e}(_t);function $t(){var t=qt();return"/"===t.charAt(0)||(It("/"+t),!1)}function qt(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Ut(t){var e=window.location.href,r=e.indexOf("#");return(r>=0?e.slice(0,r):e)+"#"+t}function Bt(t){ht?lt(Ut(t)):window.location.hash=t}function It(t){ht?dt(Ut(t)):window.location.replace(Ut(t))}var Mt=function(t){function e(e,r){t.call(this,e,r),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,r){var n=this;this.transitionTo(t,(function(t){n.stack=n.stack.slice(0,n.index+1).concat(t),n.index++,e&&e(t)}),r)},e.prototype.replace=function(t,e,r){var n=this;this.transitionTo(t,(function(t){n.stack=n.stack.slice(0,n.index).concat(t),e&&e(t)}),r)},e.prototype.go=function(t){var e=this,r=this.index+t;if(!(r<0||r>=this.stack.length)){var n=this.stack[r];this.confirmTransition(n,(function(){var t=e.current;e.index=r,e.updateRoute(n),e.router.afterHooks.forEach((function(e){e&&e(n,t)}))}),(function(t){xt(t,vt.duplicated)&&(e.index=r)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(_t),Vt=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Q(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!ht&&!1!==t.fallback,this.fallback&&(e="hash"),D||(e="abstract"),this.mode=e,e){case"history":this.history=new St(this,t.base);break;case"hash":this.history=new Lt(this,t.base,this.fallback);break;case"abstract":this.history=new Mt(this,t.base)}},Ht={currentRoute:{configurable:!0}};Vt.prototype.match=function(t,e,r){return this.matcher.match(t,e,r)},Ht.currentRoute.get=function(){return this.history&&this.history.current},Vt.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var r=e.apps.indexOf(t);r>-1&&e.apps.splice(r,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var r=this.history;if(r instanceof St||r instanceof Lt){var n=function(t){r.setupListeners(),function(t){var n=r.current,o=e.options.scrollBehavior;ht&&o&&"fullPath"in t&&nt(e,t,n,!1)}(t)};r.transitionTo(r.getCurrentLocation(),n,n)}r.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Vt.prototype.beforeEach=function(t){return Ft(this.beforeHooks,t)},Vt.prototype.beforeResolve=function(t){return Ft(this.resolveHooks,t)},Vt.prototype.afterEach=function(t){return Ft(this.afterHooks,t)},Vt.prototype.onReady=function(t,e){this.history.onReady(t,e)},Vt.prototype.onError=function(t){this.history.onError(t)},Vt.prototype.push=function(t,e,r){var n=this;if(!e&&!r&&"undefined"!=typeof Promise)return new Promise((function(e,r){n.history.push(t,e,r)}));this.history.push(t,e,r)},Vt.prototype.replace=function(t,e,r){var n=this;if(!e&&!r&&"undefined"!=typeof Promise)return new Promise((function(e,r){n.history.replace(t,e,r)}));this.history.replace(t,e,r)},Vt.prototype.go=function(t){this.history.go(t)},Vt.prototype.back=function(){this.go(-1)},Vt.prototype.forward=function(){this.go(1)},Vt.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Vt.prototype.resolve=function(t,e,r){var n=V(t,e=e||this.history.current,r,this),o=this.match(n,e),i=o.redirectedFrom||o.fullPath;return{location:n,route:o,href:function(t,e,r){var n="hash"===r?"#"+e:e;return t?x(t+"/"+n):n}(this.history.base,i,this.mode),normalizedTo:n,resolved:o}},Vt.prototype.getRoutes=function(){return this.matcher.getRoutes()},Vt.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==h&&this.history.transitionTo(this.history.getCurrentLocation())},Vt.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==h&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Vt.prototype,Ht);var Nt=Vt;function Ft(t,e){return t.push(e),function(){var r=t.indexOf(e);r>-1&&t.splice(r,1)}}return Vt.install=function t(e){if(!t.installed||H!==e){t.installed=!0,H=e;var r=function(t){return void 0!==t},n=function(t,e){var n=t.$options._parentVnode;r(n)&&r(n=n.data)&&r(n=n.registerRouteInstance)&&n(t,e)};e.mixin({beforeCreate:function(){r(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,n(this,this)},destroyed:function(){n(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",g),e.component("RouterLink",F);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},Vt.version="3.6.5",Vt.isNavigationFailure=xt,Vt.NavigationFailureType=vt,Vt.START_LOCATION=h,D&&window.Vue&&window.Vue.use(Vt),Nt},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).VueRouter=e();
\ No newline at end of file
diff --git a/resources/vue-router/4.1.6/vue-router.global.min.jsm b/resources/vue-router/4.1.6/vue-router.global.min.jsm
new file mode 100644
index 00000000..f55070d8
--- /dev/null
+++ b/resources/vue-router/4.1.6/vue-router.global.min.jsm
@@ -0,0 +1,10 @@
+var VueRouter=function(e,L){"use strict";const N="undefined"!=typeof window;function p(e){return e.__esModule||"Module"===e[Symbol.toStringTag]}const M=Object.assign;function n(e,t){const n={};for(const r in t){const o=t[r];n[r]=D(o)?o.map(e):e(o)}return n}const U=()=>{},D=Array.isArray;function V(e){var t=Array.from(arguments).slice(1);console.warn.apply(console,["[Vue Router warn]: "+e].concat(t))}const o=/\/$/,c=e=>e.replace(o,"");function B(e,t,n="/"){let r,o={},a="",i="";var s=t.indexOf("#");let l=t.indexOf("?");return-1<(l=se===n[t]):1===e.length&&e[0]===n}var q,d,t;(t=q=q||{}).pop="pop",t.push="push",(t=d=d||{}).back="back",t.forward="forward";t.unknown="";function g(e){if(!e)if(N){const t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return"/"!==e[0]&&"#"!==e[0]&&(e="/"+e),c(e)}const y=/^[^#]+#/;function b(e,t){return e.replace(y,"#")+t}const G=()=>({left:window.pageXOffset,top:window.pageYOffset});function ie(t){let e;if("el"in t){const a=t.el;var n="string"==typeof a&&a.startsWith("#");if(!("string"!=typeof t.el||n&&document.getElementById(t.el.slice(1))))try{var r=document.querySelector(t.el);if(n&&r)return void V(`The selector "${t.el}" should be passed as "el: document.querySelector('${t.el}')" because it starts with "#".`)}catch(e){return void V(`The selector "${t.el}" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`)}r="string"==typeof a?n?document.getElementById(a.slice(1)):document.querySelector(a):a;if(!r)return void V(`Couldn't find element using selector "${t.el}" returned by scrollBehavior.`);e=(n=r,r=t,o=document.documentElement.getBoundingClientRect(),n=n.getBoundingClientRect(),{behavior:r.behavior,left:n.left-o.left-(r.left||0),top:n.top-o.top-(r.top||0)})}else e=t;var o;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(null!=e.left?e.left:window.pageXOffset,null!=e.top?e.top:window.pageYOffset)}function se(e,t){return(history.state?history.state.position-t:-1)+e}const F=new Map;let w=()=>location.protocol+"//"+location.host;function _(t,n){const{pathname:e,search:r,hash:o}=n;n=t.indexOf("#");if(-1{var t=_(a,location);const n=s.value;var r=i.value;let o=0;if(e){if(s.value=t,i.value=e,u&&u===n)return void(u=null);o=r?e.position-r.position:0}else l(t);c.forEach(e=>{e(s.value,n,{delta:o,type:q.pop,direction:o?0{var e=c.indexOf(t);-1t.location.value}),Object.defineProperty(e,"state",{enumerable:!0,get:()=>t.state.value}),e}function le(e){return"string"==typeof e||"symbol"==typeof e}const K={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},P=Symbol("navigation failure"),R=(e.NavigationFailureType=void 0,(t=e.NavigationFailureType||(e.NavigationFailureType={}))[t.aborted=4]="aborted",t[t.cancelled=8]="cancelled",t[t.duplicated=16]="duplicated",{[1]({location:e,currentLocation:t}){return`No match for
+ `+JSON.stringify(e)+(t?"\nwhile being at\n"+JSON.stringify(t):"")},2({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${function(e){if("string"==typeof e)return e;if("path"in e)return e.path;const t={};for(const n of x)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}(t)}" via a navigation guard.`},4({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},8({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},16({from:e}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}});function Q(e,t){return M(new Error(R[e](t)),{type:e,[P]:!0},t)}function H(e,t){return e instanceof Error&&P in e&&(null==t||!!(e.type&t))}const x=["params","query","hash"];const S="[^/]+?",j={sensitive:!1,strict:!1,start:!0,end:!0},A=/[.+*?^${}()[\]/\\]/g;function I(c,e){var r=M({},j,e);const t=[];let o=r.start?"^":"";const a=[];for(const h of c){const p=h.length?[]:[90];r.strict&&!h.length&&(o+="/");for(let n=0;nt.length?1===t.length&&80===t[0]?1:-1:0}(r[n],o[n]);if(a)return a;n++}if(1===Math.abs(o.length-r.length)){if(ce(r))return 1;if(ce(o))return-1}return o.length-r.length}function ce(e){var t=e[e.length-1];return 0e===n||t(n,e))}(f,y[e]));)e++;y.splice(e,0,f),f.record.name&&!me(f)&&b.set(f.record.name,f)}}return u?()=>{_(u)}:U}function _(e){if(le(e)){const n=b.get(e);n&&(b.delete(e),y.splice(y.indexOf(n),1),n.children.forEach(_),n.alias.forEach(_))}else{var t=y.indexOf(e);-1w(e)),{addRoute:w,resolve:function(e,t){let n,r={},o,a;if("name"in e&&e.name){if(!(n=b.get(e.name)))throw Q(1,{location:e});{const l=Object.keys(e.params||{}).filter(t=>!n.keys.find(e=>e.name===t));l.length&&V(`Discarded invalid param(s) "${l.join('", "')}" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`)}a=n.record.name,r=M(fe(t.params,n.keys.filter(e=>!e.optional).map(e=>e.name)),e.params&&fe(e.params,n.keys.map(e=>e.name))),o=n.stringify(r)}else if("path"in e)(o=e.path).startsWith("/")||V(`The Matcher cannot resolve relative paths but received "${o}". Unless you directly called \`matcher.resolve("${o}")\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/router.`),(n=y.find(e=>e.re.test(o)))&&(r=n.parse(o),a=n.record.name);else{if(!(n=t.name?b.get(t.name):y.find(e=>e.re.test(t.path))))throw Q(1,{location:e,currentLocation:t});a=n.record.name,r=M({},t.params,e.params),o=n.stringify(r)}const i=[];let s=n;for(;s;)i.unshift(s.record),s=s.parent;return{name:a,path:o,params:r,matched:i,meta:i.reduce((e,t)=>M(e,t.meta),{})}},removeRoute:_,getRoutes:function(){return y},getRecordMatcher:function(e){return b.get(e)}}}function fe(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function me(e){for(;e;){if(e.record.aliasOf)return 1;e=e.parent}}function ve(e,t){const n={};for(const r in e)n[r]=(r in t?t:e)[r];return n}function k(e,t){return e.name===t.name&&e.optional===t.optional&&e.repeatable===t.repeatable}const ge=/#/g,ye=/&/g,be=/\//g,we=/=/g,_e=/\?/g,ke=/\+/g,Ee=/%5B/g,$e=/%5D/g,Oe=/%5E/g,Ce=/%60/g,Pe=/%7B/g,Re=/%7C/g,xe=/%7D/g,Se=/%20/g;function z(e){return encodeURI(""+e).replace(Re,"|").replace(Ee,"[").replace($e,"]")}function a(e){return z(e).replace(ke,"%2B").replace(Se,"+").replace(ge,"%23").replace(ye,"%26").replace(Ce,"`").replace(Pe,"{").replace(xe,"}").replace(Oe,"^")}function je(e){return null==e?"":z(e).replace(ge,"%23").replace(_e,"%3F").replace(be,"%2F")}function J(t){try{return decodeURIComponent(""+t)}catch(e){V(`Error decoding "${t}". Using original value`)}return""+t}function Ae(e){const t={};if(""===e||"?"===e)return t;const n=("?"===e[0]?e.slice(1):e).split("&");for(let e=0;ee&&a(e)):[r&&a(r)];o.forEach(e=>{void 0!==e&&(n+=(n.length?"&":"")+t,null!=e&&(n+="="+e))})}}return n}const i=Symbol("router view location matched"),s=Symbol("router view depth"),X=Symbol("router"),Z=Symbol("route location"),ee=Symbol("router view location");function te(){let n=[];return{add:function(t){return n.push(t),()=>{var e=n.indexOf(t);-1n,reset:function(){n=[]}}}function Ie(e,t,n){var r=()=>{e[t].delete(n)};L.onUnmounted(r),L.onDeactivated(r),L.onActivated(()=>{e[t].add(n)}),e[t].add(n)}function ne(i,s,l,c,u){const d=c&&(c.enterCallbacks[u]=c.enterCallbacks[u]||[]);return()=>new Promise((n,r)=>{const t=e=>{var t;!1===e?r(Q(4,{from:l,to:s})):e instanceof Error?r(e):"string"==typeof(t=e)||t&&"object"==typeof t?r(Q(2,{from:s,to:e})):(d&&c.enterCallbacks[u]===d&&"function"==typeof e&&d.push(e),n())};var e=i.call(c&&c.instances[u],s,l,function(e,t,n){let r=0;return function(){1==r++&&V(`The "next" callback was called more than once in one navigation guard when going from "${n.fullPath}" to "${t.fullPath}". It should be called exactly one time in each navigation guard. This will fail in production.`),e._called=!0,1===r&&e.apply(null,arguments)}}(t,s,l));let o=Promise.resolve(e);if(i.length<3&&(o=o.then(t)),2t._called?e:(V(a),Promise.reject(new Error("Invalid navigation guard"))));else if(void 0!==e&&!t._called)return V(a),void r(new Error("Invalid navigation guard"))}o.catch(e=>r(e))})}function re(e,n,r,o){const a=[];for(const s of e){s.components||s.children.length||V(`Record with path "${s.path}" is either missing a "component(s)"`+' or "children" property.');for(const l in s.components){let t=s.components[l];if(!t||"object"!=typeof t&&"function"!=typeof t)throw V(`Component "${l}" in record with path "${s.path}" is not`+` a valid component. Received "${String(t)}".`),new Error("Invalid route component");if("then"in t){V(`Component "${l}" in record with path "${s.path}" is a `+"Promise instead of a function that returns a Promise. Did you "+`write "import('./MyPage.vue')" instead of `+`"() => import('./MyPage.vue')" ? This will break in `+"production if not fixed.");const c=t;t=()=>c}else t.__asyncLoader&&!t.__warnedDefineAsync&&(t.__warnedDefineAsync=!0,V(`Component "${l}" in record with path "${s.path}" is defined `+'using "defineAsyncComponent()". '+`Write "() => import('./MyPage.vue')" instead of `+`"defineAsyncComponent(() => import('./MyPage.vue'))".`));if("beforeRouteEnter"===n||s.instances[l])if("object"==typeof(i=t)||"displayName"in i||"props"in i||"__vccOpts"in i){i=(t.__vccOpts||t)[n];i&&a.push(ne(i,r,o,s,l))}else{let e=t();"catch"in e||(V(`Component "${l}" in record with path "${s.path}" is a function that does not return a Promise. If you were passing a functional component, make sure to add a "displayName" to the component. This will break in production if not fixed.`),e=Promise.resolve(e)),a.push(()=>e.then(e=>{if(!e)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${s.path}"`));e=p(e)?e.default:e,e=((s.components[l]=e).__vccOpts||e)[n];return e&&ne(e,r,o,s,l)()}))}}}var i;return a}function l(t){const n=L.inject(X),i=L.inject(Z),s=L.computed(()=>n.resolve(L.unref(t.to))),e=L.computed(()=>{var e=s.value["matched"],t=e["length"],n=e[t-1];const r=i.matched;if(!n||!r.length)return-1;var o=r.findIndex(W.bind(null,n));if(-1-1e!==o[t]))return!1}return!0}(i.params,s.value.params)),o=L.computed(()=>-1{l.route=s.value,l.isActive=r.value,l.isExactActive=o.value},{flush:"post"})}}return{route:s,href:L.computed(()=>s.value.href),isActive:r,isExactActive:o,navigate:function(e={}){return function(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){var t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),1}}(e)?n[L.unref(t.replace)?"replace":"push"](L.unref(t.to)).catch(U):Promise.resolve()}}}const Te=L.defineComponent({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:l,setup(t,{slots:n}){const r=L.reactive(l(t)),e=L.inject(X)["options"],o=L.computed(()=>({[Ne(t.activeClass,e.linkActiveClass,"router-link-active")]:r.isActive,[Ne(t.exactActiveClass,e.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{var e=n.default&&n.default(r);return t.custom?e:L.h("a",{"aria-current":r.isExactActive?t.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:o.value},e)}}});function Le(e){return e?(e.aliasOf||e).path:""}const Ne=(e,t,n)=>null!=e?e:null!=t?t:n;function Me(e,t){if(!e)return null;e=e(t);return 1===e.length?e[0]:e}const Ue=L.defineComponent({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(c,{attrs:u,slots:d}){{const n=L.getCurrentInstance(),o=n.parent&&n.parent.type.name;var e;o&&("KeepAlive"===o||o.includes("Transition"))&&V(' can no longer be used directly inside or .\nUse slot props instead:\n\n\n'+` <${e="KeepAlive"===o?"keep-alive":"transition"}>
+`+`
+`+` ${e}>
+`+"")}const t=L.inject(ee),h=L.computed(()=>c.route||t.value),r=L.inject(s,0),p=L.computed(()=>{let e=L.unref(r);for(var t,n=h.value["matched"];(t=n[e])&&!t.components;)e++;return e}),f=L.computed(()=>h.value.matched[p.value]),m=(L.provide(s,L.computed(()=>p.value+1)),L.provide(i,f),L.provide(ee,h),L.ref());return L.watch(()=>[m.value,f.value,c.name],([t,e,n],[r,o])=>{e&&(e.instances[n]=t,o&&o!==e&&t&&t===r&&(e.leaveGuards.size||(e.leaveGuards=o.leaveGuards),e.updateGuards.size||(e.updateGuards=o.updateGuards))),!t||!e||o&&W(e,o)&&r||(e.enterCallbacks[n]||[]).forEach(e=>e(t))},{flush:"post"}),()=>{var e=h.value;const t=c.name,n=f.value;var r=n&&n.components[t];if(!r)return Me(d.default,{Component:r,route:e});const o=n.props[t];var a=o?!0===o?e.params:"function"==typeof o?o(e):o:null;const i=L.h(r,M({},a,u,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(n.instances[t]=null)},ref:m}));if(N&&i.ref){const s={depth:p.value,name:n.name,path:n.path,meta:n.meta},l=D(i.ref)?i.ref.map(e=>e.i):[i.ref.i];l.forEach(e=>{e.__vrv_devtools=s})}return Me(d.default,{Component:i,route:e})||i}}});function De(){return"undefined"!=typeof navigator&&"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}}const Ve="function"==typeof Proxy,Be="devtools-plugin:setup";let r,We;function qe(){return void 0!==r||("undefined"!=typeof window&&window.performance?(r=!0,We=window.performance):"undefined"!=typeof global&&null!=(e=global.perf_hooks)&&e.performance?(r=!0,We=global.perf_hooks.performance):r=!1),(r?We:Date).now();var e}class Ge{constructor(e,t){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=e,this.hook=t;const n={};if(e.settings)for(const l in e.settings){var r=e.settings[l];n[l]=r.defaultValue}const o="__vue-devtools-plugin-settings__"+e.id;let a=Object.assign({},n);try{var i=localStorage.getItem(o),s=JSON.parse(i);Object.assign(a,s)}catch(e){}this.fallbacks={getSettings(){return a},setSettings(e){try{localStorage.setItem(o,JSON.stringify(e))}catch(e){}a=e},now(){return qe()}},t&&t.on("plugin:settings:set",(e,t)=>{e===this.plugin.id&&this.fallbacks.setSettings(t)}),this.proxiedOn=new Proxy({},{get:(e,t)=>this.target?this.target.on[t]:(...e)=>{this.onQueue.push({method:t,args:e})}}),this.proxiedTarget=new Proxy({},{get:(e,n)=>this.target?this.target[n]:"on"===n?this.proxiedOn:Object.keys(this.fallbacks).includes(n)?(...e)=>(this.targetQueue.push({method:n,args:e,resolve:()=>{}}),this.fallbacks[n](...e)):(...t)=>new Promise(e=>{this.targetQueue.push({method:n,args:t,resolve:e})})})}async setRealTarget(e){this.target=e;for(const t of this.onQueue)this.target.on[t.method](...t.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function Fe(e,t){var n=e;const r=De(),o=De().__VUE_DEVTOOLS_GLOBAL_HOOK__;var a=Ve&&n.enableEarlyProxy;if(!o||!r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__&&a){a=a?new Ge(n,o):null;const i=r.__VUE_DEVTOOLS_PLUGINS__=r.__VUE_DEVTOOLS_PLUGINS__||[];i.push({pluginDescriptor:n,setupFn:t,proxy:a}),a&&t(a.proxiedTarget)}else o.emit(Be,e,t)}function u(e,t){var n=M({},e,{matched:e.matched.map(e=>{{var t=e,n=["instances","children","aliasOf"];const r={};for(const o in t)n.includes(o)||(r[o]=t[o]);return r}})});return{_custom:{type:null,readOnly:!0,display:e.fullPath,tooltip:t,value:n}}}function h(e){return{_custom:{display:e}}}let Ke=0;function Qe(s,l,c){if(!l.__hasDevtools){l.__hasDevtools=!0;const e=Ke++;Fe({id:"org.vuejs.router"+(e?"."+e:""),label:"Vue Router",packageName:"vue-router",homepage:"https://router.vuejs.org",logo:"https://router.vuejs.org/logo.png",componentStateTypes:["Routing"],app:s},o=>{"function"!=typeof o.now&&console.warn("[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."),o.on.inspectComponent((e,t)=>{e.instanceData&&e.instanceData.state.push({type:"Routing",key:"$route",editable:!1,value:u(l.currentRoute.value,"Current Route")})}),o.on.visitComponentTree(({treeNode:r,componentInstance:e})=>{if(e.__vrv_devtools){const t=e.__vrv_devtools;r.tags.push({label:(t.name?t.name.toString()+": ":"")+t.path,textColor:0,tooltip:"This component is rendered by <router-view>",backgroundColor:He})}D(e.__vrl_devtools)&&(e.__devtoolsApi=o,e.__vrl_devtools.forEach(e=>{let t=Xe,n="";e.isExactActive?(t=Je,n="This is exactly active"):e.isActive&&(t=ze,n="This link is active"),r.tags.push({label:e.route.path,textColor:0,tooltip:n,backgroundColor:t})}))}),L.watch(l.currentRoute,()=>{t(),o.notifyComponentUpdate(),o.sendInspectorTree(r),o.sendInspectorState(r)});const a="router:navigations:"+e;o.addTimelineLayer({id:a,label:`Router${e?" "+e:""} Navigations`,color:4237508}),l.onError((e,t)=>{o.addTimelineEvent({layerId:a,event:{title:"Error during Navigation",subtitle:t.fullPath,logType:"error",time:o.now(),data:{error:e},groupId:t.meta.__navigationId}})});let n=0;l.beforeEach((e,t)=>{t={guard:h("beforeEach"),from:u(t,"Current Location during this navigation"),to:u(e,"Target location")};Object.defineProperty(e.meta,"__navigationId",{value:n++}),o.addTimelineEvent({layerId:a,event:{time:o.now(),title:"Start of navigation",subtitle:e.fullPath,data:t,groupId:e.meta.__navigationId}})}),l.afterEach((e,t,n)=>{const r={guard:h("afterEach")};n?(r.failure={_custom:{type:Error,readOnly:!0,display:n?n.message:"",tooltip:"Navigation Failure",value:n}},r.status=h("❌")):r.status=h("✅"),r.from=u(t,"Current Location during this navigation"),r.to=u(e,"Target location"),o.addTimelineEvent({layerId:a,event:{title:"End of navigation",subtitle:e.fullPath,time:o.now(),data:r,logType:n?"warning":"default",groupId:e.meta.__navigationId}})});const r="router-inspector:"+e;function t(){if(i){const t=i;let e=c.getRoutes().filter(e=>!e.parent);e.forEach(rt),(e=t.filter?e.filter(e=>function t(e,n){const r=String(e.re).match(nt);e.__vd_match=!1;if(!r||r.length<3)return!1;const o=new RegExp(r[1].replace(/\$$/,""),r[2]);if(o.test(n))return e.children.forEach(e=>t(e,n)),("/"!==e.record.path||"/"===n)&&(e.__vd_match=e.re.test(n),!0);const a=e.record.path.toLowerCase();const i=J(a);if(!n.startsWith("/")&&(i.includes(n)||a.includes(n)))return!0;if(i.startsWith(n)||a.startsWith(n))return!0;if(e.record.name&&String(e.record.name).includes(n))return!0;return e.children.some(e=>t(e,n))}(e,t.filter.toLowerCase())):e).forEach(e=>function t(n,r){const e=r.matched.length&&W(r.matched[r.matched.length-1],n.record);n.__vd_exactActive=n.__vd_active=e;e||(n.__vd_active=r.matched.some(e=>W(e,n.record)));n.children.forEach(e=>t(e,r))}(e,l.currentRoute.value)),t.rootNodes=e.map(et)}}o.addInspector({id:r,label:"Routes"+(e?" "+e:""),icon:"book",treeFilterPlaceholder:"Search routes"});let i;o.on.getInspectorTree(e=>{(i=e).app===s&&e.inspectorId===r&&t()}),o.on.getInspectorState(t=>{if(t.app===s&&t.inspectorId===r){const n=c.getRoutes();var e=n.find(e=>e.record.__vd_id===t.nodeId);e&&(t.state={options:function(e){const t=e["record"],n=[{editable:!1,key:"path",value:t.path}];null!=t.name&&n.push({editable:!1,key:"name",value:t.name});n.push({editable:!1,key:"regexp",value:e.re}),e.keys.length&&n.push({editable:!1,key:"keys",value:{_custom:{type:null,readOnly:!0,display:e.keys.map(e=>""+e.name+function(e){return e.optional?e.repeatable?"*":"?":e.repeatable?"+":""}(e)).join(" "),tooltip:"Param keys",value:e.keys}}});null!=t.redirect&&n.push({editable:!1,key:"redirect",value:t.redirect});e.alias.length&&n.push({editable:!1,key:"aliases",value:e.alias.map(e=>e.record.path)});Object.keys(e.record.meta).length&&n.push({editable:!1,key:"meta",value:e.record.meta});return n.push({key:"score",editable:!1,value:{_custom:{type:null,readOnly:!0,display:e.score.map(e=>e.join(", ")).join(" | "),tooltip:"Score used to sort routes",value:e.score}}}),n}(e)})}}),o.sendInspectorTree(r),o.sendInspectorState(r)})}}const He=15485081,ze=2450411,Je=8702998,Ye=2282478,Xe=16486972,Ze=6710886;function et(e){const t=[],n=e["record"];null!=n.name&&t.push({label:String(n.name),textColor:0,backgroundColor:Ye}),n.aliasOf&&t.push({label:"alias",textColor:0,backgroundColor:Xe}),e.__vd_match&&t.push({label:"matches",textColor:0,backgroundColor:He}),e.__vd_exactActive&&t.push({label:"exact",textColor:0,backgroundColor:Je}),e.__vd_active&&t.push({label:"active",textColor:0,backgroundColor:ze}),n.redirect&&t.push({label:"string"==typeof n.redirect?"redirect: "+n.redirect:"redirects",textColor:16777215,backgroundColor:Ze});let r=n.__vd_id;return null==r&&(r=String(tt++),n.__vd_id=r),{id:r,label:n.path,tags:t,children:e.children.map(et)}}let tt=0;const nt=/^\/(.*)\/([a-z]*)$/;function rt(e){e.__vd_match=!1,e.children.forEach(rt)}function oe(e){return e.reduce((e,t)=>e.then(()=>t()),Promise.resolve())}return e.RouterLink=Te,e.RouterView=Ue,e.START_LOCATION=K,e.createMemoryHistory=function(e=""){let l=[],c=[""],u=0;function n(e){++u!==c.length&&c.splice(u),c.push(e)}return e={location:"",state:{},base:e=g(e),createHref:b.bind(null,e),replace(e){c.splice(u--,1),n(e)},push(e,t){n(e)},listen(t){return l.push(t),()=>{var e=l.indexOf(t);-1c[u]}),e},e.createRouter=function(l){const c=pe(l.routes,l),u=l.parseQuery||Ae,d=l.stringifyQuery||Y,h=l.history;if(!h)throw new Error('Provide the "history" option when calling "createRouter()": https://next.router.vuejs.org/api/#history.');const p=te(),f=te(),o=te(),m=L.shallowRef(K);let v=K;N&&l.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const g=n.bind(null,e=>""+e),y=n.bind(null,je),b=n.bind(null,J);function w(e,t){if(t=M({},t||m.value),"string"==typeof e){var n=B(u,e,t.path);const o=c.resolve({path:n.path},t),i=h.createHref(n.fullPath);return i.startsWith("//")?V(`Location "${e}" resolved to "${i}". A resolved location cannot start with multiple slashes.`):o.matched.length||V(`No match found for location with path "${e}"`),M(n,o,{params:b(o.params),hash:J(n.hash),redirectedFrom:void 0,href:i})}let r;if("path"in e)"params"in e&&!("name"in e)&&Object.keys(e.params).length&&V(`Path "${e.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`),r=M({},e,{path:B(u,e.path,t.path).path});else{const s=M({},e.params);for(const l in s)null==s[l]&&delete s[l];r=M({},e,{params:y(e.params)}),t.params=y(t.params)}const o=c.resolve(r,t),a=e.hash||"";a&&!a.startsWith("#")&&V(`A \`hash\` should always start with the character "#". Replace "${a}" with "#${a}".`),o.params=g(b(o.params));n=d,t=M({},e,{hash:z(a).replace(Pe,"{").replace(xe,"}").replace(Oe,"^"),path:o.path}),n=t.query?n(t.query):"";t=t.path+(n&&"?")+n+(t.hash||"");const i=h.createHref(t);return i.startsWith("//")?V(`Location "${e}" resolved to "${i}". A resolved location cannot start with multiple slashes.`):o.matched.length||V(`No match found for location with path "${"path"in e?e.path:e}"`),M({fullPath:t,hash:a,query:d===Y?function(e){const t={};for(const n in e){const r=e[n];void 0!==r&&(t[n]=D(r)?r.map(e=>null==e?null:""+e):null==r?r:""+r)}return t}(e.query):e.query||{}},o,{redirectedFrom:void 0,href:i})}function _(e){return"string"==typeof e?B(u,e,m.value.path):M({},e)}function k(e,t){if(v!==e)return Q(8,{from:t,to:e})}function a(e){return $(e)}function E(t){var n=t.matched[t.matched.length-1];if(n&&n.redirect){const r=n["redirect"];let e="function"==typeof r?r(t):r;if("string"==typeof e&&((e=e.includes("?")||e.includes("#")?e=_(e):{path:e}).params={}),"path"in e||"name"in e)return M({query:t.query,hash:t.hash,params:"path"in e?{}:t.params},e);throw V(`Invalid redirect found:
+${JSON.stringify(e,null,2)}
+ when navigating to "${t.fullPath}". A redirect must contain a name or path. This will break in production.`),new Error("Invalid redirect")}}function $(e,t){var n=v=w(e);const r=m.value,o=e.state,a=e.force,i=!0===e.replace;e=E(n);if(e)return $(M(_(e),{state:"object"==typeof e?M({},o,e.state):o,force:a,replace:i}),t||n);const s=n;s.redirectedFrom=t;let l;return!a&&ae(d,r,n)&&(l=Q(16,{to:s,from:r}),j(r,r,!0,!1)),(l?Promise.resolve(l):O(s,r)).catch(e=>H(e)?H(e,2)?e:S(e):x(e,s,r)).then(e=>{if(e){if(H(e,2))return ae(d,w(e.to),s)&&t&&10<(t._count=t._count?t._count+1:1)?(V(`Detected an infinite redirection in a navigation guard when going from "${r.fullPath}" to "${s.fullPath}". Aborting to avoid a Stack Overflow. This will break in production if not fixed.`),Promise.reject(new Error("Infinite redirect in navigation guard"))):$(M({replace:i},_(e.to),{state:"object"==typeof e.to?M({},o,e.to.state):o,force:a}),t||s)}else e=P(s,r,!0,i,o);return C(s,r,e),e})}function O(n,r){let o;const[e,t,a]=function(t,n){const r=[],o=[],a=[],i=Math.max(n.matched.length,t.matched.length);for(let e=0;eW(e,s))?o:r).push(s),t.matched[e]);!l||n.matched.find(e=>W(e,l))||a.push(l)}return[r,o,a]}(n,r);o=re(e.reverse(),"beforeRouteLeave",n,r);for(const s of e)s.leaveGuards.forEach(e=>{o.push(ne(e,n,r))});const i=function(e,t){return(e=k(e,t))?Promise.reject(e):Promise.resolve()}.bind(null,n,r);return o.push(i),oe(o).then(()=>{o=[];for(const e of p.list())o.push(ne(e,n,r));return o.push(i),oe(o)}).then(()=>{o=re(t,"beforeRouteUpdate",n,r);for(const e of t)e.updateGuards.forEach(e=>{o.push(ne(e,n,r))});return o.push(i),oe(o)}).then(()=>{o=[];for(const e of n.matched)if(e.beforeEnter&&!r.matched.includes(e))if(D(e.beforeEnter))for(const t of e.beforeEnter)o.push(ne(t,n,r));else o.push(ne(e.beforeEnter,n,r));return o.push(i),oe(o)}).then(()=>(n.matched.forEach(e=>e.enterCallbacks={}),(o=re(a,"beforeRouteEnter",n,r)).push(i),oe(o))).then(()=>{o=[];for(const e of f.list())o.push(ne(e,n,r));return o.push(i),oe(o)}).catch(e=>H(e,8)?e:Promise.reject(e))}function C(e,t,n){for(const r of o.list())r(e,t,n)}function P(e,t,n,r,o){var a=k(e,t);if(a)return a;var a=t===K,i=N?history.state:{};n&&(r||a?h.replace(e.fullPath,M({scroll:a&&i&&i.scroll},o)):h.push(e.fullPath,o)),j(m.value=e,t,n,a),S()}let i;function e(){i=i||h.listen((e,t,n)=>{if(T.listening){const o=w(e);var r,e=E(o);if(e)$(M(e,{replace:!0}),o).catch(U);else{v=o;const a=m.value;N&&(e=se(a.fullPath,n.delta),r=G(),F.set(e,r)),O(o,a).catch(e=>H(e,12)?e:H(e,2)?($(e.to,o).then(e=>{H(e,20)&&!n.delta&&n.type===q.pop&&h.go(-1,!1)}).catch(U),Promise.reject()):(n.delta&&h.go(-n.delta,!1),x(e,o,a))).then(e=>{(e=e||P(o,a,!1))&&(n.delta&&!H(e,8)?h.go(-n.delta,!1):n.type===q.pop&&H(e,20)&&h.go(-1,!1)),C(o,a,e)}).catch(U)}}})}let r=te(),s=te(),R;function x(t,n,r){S(t);const e=s.list();return e.length?e.forEach(e=>e(t,n,r)):(V("uncaught error during route navigation:"),console.error(t)),Promise.reject(t)}function S(n){return R||(R=!n,e(),r.list().forEach(([e,t])=>n?t(n):e()),r.reset()),n}function j(t,n,e,r){const o=l["scrollBehavior"];if(!N||!o)return Promise.resolve();const a=!e&&(i=se(t.fullPath,0),s=F.get(i),F.delete(i),s)||(r||!e)&&history.state&&history.state.scroll||null;var i,s;L.nextTick().then(()=>o(t,n,a)).then(e=>e&&ie(e)).catch(e=>x(e,t,n))}const t=e=>h.go(e);let A;const I=new Set,T={currentRoute:m,listening:!0,addRoute:function(e,t){let n,r;return r=le(e)?(n=c.getRecordMatcher(e),t):e,c.addRoute(r,n)},removeRoute:function(e){var t=c.getRecordMatcher(e);t?c.removeRoute(t):V(`Cannot remove non-existent route "${String(e)}"`)},hasRoute:function(e){return!!c.getRecordMatcher(e)},getRoutes:function(){return c.getRoutes().map(e=>e.record)},resolve:w,options:l,push:a,replace:function(e){return a(M(_(e),{replace:!0}))},go:t,back:()=>t(-1),forward:()=>t(1),beforeEach:p.add,beforeResolve:f.add,afterEach:o.add,onError:s.add,isReady:function(){return R&&m.value!==K?Promise.resolve():new Promise((e,t)=>{r.add([e,t])})},install(e){e.component("RouterLink",Te),e.component("RouterView",Ue),e.config.globalProperties.$router=this,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>L.unref(m)}),N&&!A&&m.value===K&&(A=!0,a(h.location).catch(e=>{V("Unexpected error when starting the router:",e)}));const t={};for(const r in K)t[r]=L.computed(()=>m.value[r]);e.provide(X,this),e.provide(Z,L.reactive(t)),e.provide(ee,m);const n=e.unmount;I.add(e),e.unmount=function(){I.delete(e),I.size<1&&(v=K,i&&i(),i=null,m.value=K,A=!1,R=!1),n()},N&&Qe(e,this,c)}};return T},e.createRouterMatcher=pe,e.createWebHashHistory=function(e){return(e=location.host?e||location.pathname+location.search:"").includes("#")||(e+="#"),e.endsWith("#/")||e.endsWith("#")||V(`A hash base must end with a "#":
+"${e}" should be "${e.replace(/#.*$/,"#")}".`),C(e)},e.createWebHistory=C,e.isNavigationFailure=H,e.loadRouteLocation=function(e){return e.matched.every(e=>e.redirect)?Promise.reject(new Error("Cannot load a route that redirects.")):Promise.all(e.matched.map(r=>r.components&&Promise.all(Object.keys(r.components).reduce((e,t)=>{const n=r.components[t];return"function"!=typeof n||"displayName"in n||e.push(n().then(e=>{if(!e)return Promise.reject(new Error(`Couldn't resolve component "${t}" at "${r.path}". Ensure you passed a function that returns a promise.`));e=p(e)?e.default:e;r.components[t]=e})),e},[])))).then(()=>e)},e.matchedRouteKey=i,e.onBeforeRouteLeave=function(e){var t;L.getCurrentInstance()?(t=L.inject(i,{}).value)?Ie(t,"leaveGuards",e):V("No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?"):V("getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function")},e.onBeforeRouteUpdate=function(e){var t;L.getCurrentInstance()?(t=L.inject(i,{}).value)?Ie(t,"updateGuards",e):V("No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?"):V("getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function")},e.parseQuery=Ae,e.routeLocationKey=Z,e.routerKey=X,e.routerViewLocationKey=ee,e.stringifyQuery=Y,e.useLink=l,e.useRoute=function(){return L.inject(Z)},e.useRouter=function(){return L.inject(X)},e.viewDepthKey=s,Object.defineProperty(e,"__esModule",{value:!0}),e}({},Vue);
\ No newline at end of file