vueapp 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +43 -0
  4. data/bin/console +14 -0
  5. data/bin/setup +8 -0
  6. data/bin/vueapp +7 -0
  7. data/lib/vueapp.rb +32 -0
  8. data/lib/vueapp/cli.rb +44 -0
  9. data/lib/vueapp/core/builder.rb +37 -0
  10. data/lib/vueapp/core/builders/js_builder.rb +140 -0
  11. data/lib/vueapp/core/builders/scss_builder.rb +114 -0
  12. data/lib/vueapp/core/builders/slim_builder.rb +94 -0
  13. data/lib/vueapp/core/cli/build_helper.rb +20 -0
  14. data/lib/vueapp/core/cli/generator_helper.rb +23 -0
  15. data/lib/vueapp/core/cli/init_helper.rb +81 -0
  16. data/lib/vueapp/core/helpers/build.rb +22 -0
  17. data/lib/vueapp/core/helpers/env.rb +47 -0
  18. data/lib/vueapp/core/helpers/log.rb +16 -0
  19. data/lib/vueapp/core/helpers/path.rb +49 -0
  20. data/lib/vueapp/core/helpers/timer.rb +19 -0
  21. data/lib/vueapp/core/listener.rb +64 -0
  22. data/lib/vueapp/errors.rb +8 -0
  23. data/lib/vueapp/templates/_core/vendor/vue.dev.js +11965 -0
  24. data/lib/vueapp/templates/_core/vendor/vue.js +6 -0
  25. data/lib/vueapp/templates/_core/vendor/vue_router.js +3061 -0
  26. data/lib/vueapp/templates/api/api.js +3 -0
  27. data/lib/vueapp/templates/api/api_client.js +131 -0
  28. data/lib/vueapp/templates/api/base_api.js +27 -0
  29. data/lib/vueapp/templates/config/app.js +17 -0
  30. data/lib/vueapp/templates/config/router.js +7 -0
  31. data/lib/vueapp/templates/config/routes.js +10 -0
  32. data/lib/vueapp/templates/filters/percentage.js +7 -0
  33. data/lib/vueapp/templates/generators/component/new.js +3 -0
  34. data/lib/vueapp/templates/generators/component/new.scss +0 -0
  35. data/lib/vueapp/templates/generators/component/new.slim +2 -0
  36. data/lib/vueapp/templates/index.slim +24 -0
  37. data/lib/vueapp/templates/mixins/base.js +10 -0
  38. data/lib/vueapp/templates/pages/about_us/about_us.js +3 -0
  39. data/lib/vueapp/templates/pages/about_us/about_us.scss +0 -0
  40. data/lib/vueapp/templates/pages/about_us/about_us.slim +2 -0
  41. data/lib/vueapp/templates/pages/home/home.js +3 -0
  42. data/lib/vueapp/templates/pages/home/home.scss +0 -0
  43. data/lib/vueapp/templates/pages/home/home.slim +2 -0
  44. data/lib/vueapp/templates/styles.scss +1 -0
  45. data/lib/vueapp/version.rb +5 -0
  46. metadata +228 -0
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Vue.js v2.6.12
3
+ * (c) 2014-2020 Evan You
4
+ * Released under the MIT License.
5
+ */
6
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Vue=t()}(this,function(){"use strict";var e=Object.freeze({});function t(e){return null==e}function n(e){return null!=e}function r(e){return!0===e}function i(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function o(e){return null!==e&&"object"==typeof e}var a=Object.prototype.toString;function s(e){return"[object Object]"===a.call(e)}function c(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function u(e){return n(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function l(e){return null==e?"":Array.isArray(e)||s(e)&&e.toString===a?JSON.stringify(e,null,2):String(e)}function f(e){var t=parseFloat(e);return isNaN(t)?e:t}function p(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i<r.length;i++)n[r[i]]=!0;return t?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}var d=p("slot,component",!0),v=p("key,ref,slot,slot-scope,is");function h(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}var m=Object.prototype.hasOwnProperty;function y(e,t){return m.call(e,t)}function g(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var _=/-(\w)/g,b=g(function(e){return e.replace(_,function(e,t){return t?t.toUpperCase():""})}),$=g(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),w=/\B([A-Z])/g,C=g(function(e){return e.replace(w,"-$1").toLowerCase()});var x=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function k(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function A(e,t){for(var n in t)e[n]=t[n];return e}function O(e){for(var t={},n=0;n<e.length;n++)e[n]&&A(t,e[n]);return t}function S(e,t,n){}var T=function(e,t,n){return!1},E=function(e){return e};function N(e,t){if(e===t)return!0;var n=o(e),r=o(t);if(!n||!r)return!n&&!r&&String(e)===String(t);try{var i=Array.isArray(e),a=Array.isArray(t);if(i&&a)return e.length===t.length&&e.every(function(e,n){return N(e,t[n])});if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(i||a)return!1;var s=Object.keys(e),c=Object.keys(t);return s.length===c.length&&s.every(function(n){return N(e[n],t[n])})}catch(e){return!1}}function j(e,t){for(var n=0;n<e.length;n++)if(N(e[n],t))return n;return-1}function D(e){var t=!1;return function(){t||(t=!0,e.apply(this,arguments))}}var L="data-server-rendered",M=["component","directive","filter"],I=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],F={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:T,isReservedAttr:T,isUnknownElement:T,getTagNamespace:S,parsePlatformTagName:E,mustUseProp:T,async:!0,_lifecycleHooks:I},P=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function R(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var H=new RegExp("[^"+P.source+".$_\\d]");var B,U="__proto__"in{},z="undefined"!=typeof window,V="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,K=V&&WXEnvironment.platform.toLowerCase(),J=z&&window.navigator.userAgent.toLowerCase(),q=J&&/msie|trident/.test(J),W=J&&J.indexOf("msie 9.0")>0,Z=J&&J.indexOf("edge/")>0,G=(J&&J.indexOf("android"),J&&/iphone|ipad|ipod|ios/.test(J)||"ios"===K),X=(J&&/chrome\/\d+/.test(J),J&&/phantomjs/.test(J),J&&J.match(/firefox\/(\d+)/)),Y={}.watch,Q=!1;if(z)try{var ee={};Object.defineProperty(ee,"passive",{get:function(){Q=!0}}),window.addEventListener("test-passive",null,ee)}catch(e){}var te=function(){return void 0===B&&(B=!z&&!V&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),B},ne=z&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function re(e){return"function"==typeof e&&/native code/.test(e.toString())}var ie,oe="undefined"!=typeof Symbol&&re(Symbol)&&"undefined"!=typeof Reflect&&re(Reflect.ownKeys);ie="undefined"!=typeof Set&&re(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var ae=S,se=0,ce=function(){this.id=se++,this.subs=[]};ce.prototype.addSub=function(e){this.subs.push(e)},ce.prototype.removeSub=function(e){h(this.subs,e)},ce.prototype.depend=function(){ce.target&&ce.target.addDep(this)},ce.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t<n;t++)e[t].update()},ce.target=null;var ue=[];function le(e){ue.push(e),ce.target=e}function fe(){ue.pop(),ce.target=ue[ue.length-1]}var pe=function(e,t,n,r,i,o,a,s){this.tag=e,this.data=t,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},de={child:{configurable:!0}};de.child.get=function(){return this.componentInstance},Object.defineProperties(pe.prototype,de);var ve=function(e){void 0===e&&(e="");var t=new pe;return t.text=e,t.isComment=!0,t};function he(e){return new pe(void 0,void 0,void 0,String(e))}function me(e){var t=new pe(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.asyncMeta=e.asyncMeta,t.isCloned=!0,t}var ye=Array.prototype,ge=Object.create(ye);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(e){var t=ye[e];R(ge,e,function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var i,o=t.apply(this,n),a=this.__ob__;switch(e){case"push":case"unshift":i=n;break;case"splice":i=n.slice(2)}return i&&a.observeArray(i),a.dep.notify(),o})});var _e=Object.getOwnPropertyNames(ge),be=!0;function $e(e){be=e}var we=function(e){var t;this.value=e,this.dep=new ce,this.vmCount=0,R(e,"__ob__",this),Array.isArray(e)?(U?(t=ge,e.__proto__=t):function(e,t,n){for(var r=0,i=n.length;r<i;r++){var o=n[r];R(e,o,t[o])}}(e,ge,_e),this.observeArray(e)):this.walk(e)};function Ce(e,t){var n;if(o(e)&&!(e instanceof pe))return y(e,"__ob__")&&e.__ob__ instanceof we?n=e.__ob__:be&&!te()&&(Array.isArray(e)||s(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new we(e)),t&&n&&n.vmCount++,n}function xe(e,t,n,r,i){var o=new ce,a=Object.getOwnPropertyDescriptor(e,t);if(!a||!1!==a.configurable){var s=a&&a.get,c=a&&a.set;s&&!c||2!==arguments.length||(n=e[t]);var u=!i&&Ce(n);Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){var t=s?s.call(e):n;return ce.target&&(o.depend(),u&&(u.dep.depend(),Array.isArray(t)&&function e(t){for(var n=void 0,r=0,i=t.length;r<i;r++)(n=t[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&e(n)}(t))),t},set:function(t){var r=s?s.call(e):n;t===r||t!=t&&r!=r||s&&!c||(c?c.call(e,t):n=t,u=!i&&Ce(t),o.notify())}})}}function ke(e,t,n){if(Array.isArray(e)&&c(t))return e.length=Math.max(e.length,t),e.splice(t,1,n),n;if(t in e&&!(t in Object.prototype))return e[t]=n,n;var r=e.__ob__;return e._isVue||r&&r.vmCount?n:r?(xe(r.value,t,n),r.dep.notify(),n):(e[t]=n,n)}function Ae(e,t){if(Array.isArray(e)&&c(t))e.splice(t,1);else{var n=e.__ob__;e._isVue||n&&n.vmCount||y(e,t)&&(delete e[t],n&&n.dep.notify())}}we.prototype.walk=function(e){for(var t=Object.keys(e),n=0;n<t.length;n++)xe(e,t[n])},we.prototype.observeArray=function(e){for(var t=0,n=e.length;t<n;t++)Ce(e[t])};var Oe=F.optionMergeStrategies;function Se(e,t){if(!t)return e;for(var n,r,i,o=oe?Reflect.ownKeys(t):Object.keys(t),a=0;a<o.length;a++)"__ob__"!==(n=o[a])&&(r=e[n],i=t[n],y(e,n)?r!==i&&s(r)&&s(i)&&Se(r,i):ke(e,n,i));return e}function Te(e,t,n){return n?function(){var r="function"==typeof t?t.call(n,n):t,i="function"==typeof e?e.call(n,n):e;return r?Se(r,i):i}:t?e?function(){return Se("function"==typeof t?t.call(this,this):t,"function"==typeof e?e.call(this,this):e)}:t:e}function Ee(e,t){var n=t?e?e.concat(t):Array.isArray(t)?t:[t]:e;return n?function(e){for(var t=[],n=0;n<e.length;n++)-1===t.indexOf(e[n])&&t.push(e[n]);return t}(n):n}function Ne(e,t,n,r){var i=Object.create(e||null);return t?A(i,t):i}Oe.data=function(e,t,n){return n?Te(e,t,n):t&&"function"!=typeof t?e:Te(e,t)},I.forEach(function(e){Oe[e]=Ee}),M.forEach(function(e){Oe[e+"s"]=Ne}),Oe.watch=function(e,t,n,r){if(e===Y&&(e=void 0),t===Y&&(t=void 0),!t)return Object.create(e||null);if(!e)return t;var i={};for(var o in A(i,e),t){var a=i[o],s=t[o];a&&!Array.isArray(a)&&(a=[a]),i[o]=a?a.concat(s):Array.isArray(s)?s:[s]}return i},Oe.props=Oe.methods=Oe.inject=Oe.computed=function(e,t,n,r){if(!e)return t;var i=Object.create(null);return A(i,e),t&&A(i,t),i},Oe.provide=Te;var je=function(e,t){return void 0===t?e:t};function De(e,t,n){if("function"==typeof t&&(t=t.options),function(e,t){var n=e.props;if(n){var r,i,o={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(i=n[r])&&(o[b(i)]={type:null});else if(s(n))for(var a in n)i=n[a],o[b(a)]=s(i)?i:{type:i};e.props=o}}(t),function(e,t){var n=e.inject;if(n){var r=e.inject={};if(Array.isArray(n))for(var i=0;i<n.length;i++)r[n[i]]={from:n[i]};else if(s(n))for(var o in n){var a=n[o];r[o]=s(a)?A({from:o},a):{from:a}}}}(t),function(e){var t=e.directives;if(t)for(var n in t){var r=t[n];"function"==typeof r&&(t[n]={bind:r,update:r})}}(t),!t._base&&(t.extends&&(e=De(e,t.extends,n)),t.mixins))for(var r=0,i=t.mixins.length;r<i;r++)e=De(e,t.mixins[r],n);var o,a={};for(o in e)c(o);for(o in t)y(e,o)||c(o);function c(r){var i=Oe[r]||je;a[r]=i(e[r],t[r],n,r)}return a}function Le(e,t,n,r){if("string"==typeof n){var i=e[t];if(y(i,n))return i[n];var o=b(n);if(y(i,o))return i[o];var a=$(o);return y(i,a)?i[a]:i[n]||i[o]||i[a]}}function Me(e,t,n,r){var i=t[e],o=!y(n,e),a=n[e],s=Pe(Boolean,i.type);if(s>-1)if(o&&!y(i,"default"))a=!1;else if(""===a||a===C(e)){var c=Pe(String,i.type);(c<0||s<c)&&(a=!0)}if(void 0===a){a=function(e,t,n){if(!y(t,"default"))return;var r=t.default;if(e&&e.$options.propsData&&void 0===e.$options.propsData[n]&&void 0!==e._props[n])return e._props[n];return"function"==typeof r&&"Function"!==Ie(t.type)?r.call(e):r}(r,i,e);var u=be;$e(!0),Ce(a),$e(u)}return a}function Ie(e){var t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:""}function Fe(e,t){return Ie(e)===Ie(t)}function Pe(e,t){if(!Array.isArray(t))return Fe(t,e)?0:-1;for(var n=0,r=t.length;n<r;n++)if(Fe(t[n],e))return n;return-1}function Re(e,t,n){le();try{if(t)for(var r=t;r=r.$parent;){var i=r.$options.errorCaptured;if(i)for(var o=0;o<i.length;o++)try{if(!1===i[o].call(r,e,t,n))return}catch(e){Be(e,r,"errorCaptured hook")}}Be(e,t,n)}finally{fe()}}function He(e,t,n,r,i){var o;try{(o=n?e.apply(t,n):e.call(t))&&!o._isVue&&u(o)&&!o._handled&&(o.catch(function(e){return Re(e,r,i+" (Promise/async)")}),o._handled=!0)}catch(e){Re(e,r,i)}return o}function Be(e,t,n){if(F.errorHandler)try{return F.errorHandler.call(null,e,t,n)}catch(t){t!==e&&Ue(t,null,"config.errorHandler")}Ue(e,t,n)}function Ue(e,t,n){if(!z&&!V||"undefined"==typeof console)throw e;console.error(e)}var ze,Ve=!1,Ke=[],Je=!1;function qe(){Je=!1;var e=Ke.slice(0);Ke.length=0;for(var t=0;t<e.length;t++)e[t]()}if("undefined"!=typeof Promise&&re(Promise)){var We=Promise.resolve();ze=function(){We.then(qe),G&&setTimeout(S)},Ve=!0}else if(q||"undefined"==typeof MutationObserver||!re(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())ze="undefined"!=typeof setImmediate&&re(setImmediate)?function(){setImmediate(qe)}:function(){setTimeout(qe,0)};else{var Ze=1,Ge=new MutationObserver(qe),Xe=document.createTextNode(String(Ze));Ge.observe(Xe,{characterData:!0}),ze=function(){Ze=(Ze+1)%2,Xe.data=String(Ze)},Ve=!0}function Ye(e,t){var n;if(Ke.push(function(){if(e)try{e.call(t)}catch(e){Re(e,t,"nextTick")}else n&&n(t)}),Je||(Je=!0,ze()),!e&&"undefined"!=typeof Promise)return new Promise(function(e){n=e})}var Qe=new ie;function et(e){!function e(t,n){var r,i;var a=Array.isArray(t);if(!a&&!o(t)||Object.isFrozen(t)||t instanceof pe)return;if(t.__ob__){var s=t.__ob__.dep.id;if(n.has(s))return;n.add(s)}if(a)for(r=t.length;r--;)e(t[r],n);else for(i=Object.keys(t),r=i.length;r--;)e(t[i[r]],n)}(e,Qe),Qe.clear()}var tt=g(function(e){var t="&"===e.charAt(0),n="~"===(e=t?e.slice(1):e).charAt(0),r="!"===(e=n?e.slice(1):e).charAt(0);return{name:e=r?e.slice(1):e,once:n,capture:r,passive:t}});function nt(e,t){function n(){var e=arguments,r=n.fns;if(!Array.isArray(r))return He(r,null,arguments,t,"v-on handler");for(var i=r.slice(),o=0;o<i.length;o++)He(i[o],null,e,t,"v-on handler")}return n.fns=e,n}function rt(e,n,i,o,a,s){var c,u,l,f;for(c in e)u=e[c],l=n[c],f=tt(c),t(u)||(t(l)?(t(u.fns)&&(u=e[c]=nt(u,s)),r(f.once)&&(u=e[c]=a(f.name,u,f.capture)),i(f.name,u,f.capture,f.passive,f.params)):u!==l&&(l.fns=u,e[c]=l));for(c in n)t(e[c])&&o((f=tt(c)).name,n[c],f.capture)}function it(e,i,o){var a;e instanceof pe&&(e=e.data.hook||(e.data.hook={}));var s=e[i];function c(){o.apply(this,arguments),h(a.fns,c)}t(s)?a=nt([c]):n(s.fns)&&r(s.merged)?(a=s).fns.push(c):a=nt([s,c]),a.merged=!0,e[i]=a}function ot(e,t,r,i,o){if(n(t)){if(y(t,r))return e[r]=t[r],o||delete t[r],!0;if(y(t,i))return e[r]=t[i],o||delete t[i],!0}return!1}function at(e){return i(e)?[he(e)]:Array.isArray(e)?function e(o,a){var s=[];var c,u,l,f;for(c=0;c<o.length;c++)t(u=o[c])||"boolean"==typeof u||(l=s.length-1,f=s[l],Array.isArray(u)?u.length>0&&(st((u=e(u,(a||"")+"_"+c))[0])&&st(f)&&(s[l]=he(f.text+u[0].text),u.shift()),s.push.apply(s,u)):i(u)?st(f)?s[l]=he(f.text+u):""!==u&&s.push(he(u)):st(u)&&st(f)?s[l]=he(f.text+u.text):(r(o._isVList)&&n(u.tag)&&t(u.key)&&n(a)&&(u.key="__vlist"+a+"_"+c+"__"),s.push(u)));return s}(e):void 0}function st(e){return n(e)&&n(e.text)&&!1===e.isComment}function ct(e,t){if(e){for(var n=Object.create(null),r=oe?Reflect.ownKeys(e):Object.keys(e),i=0;i<r.length;i++){var o=r[i];if("__ob__"!==o){for(var a=e[o].from,s=t;s;){if(s._provided&&y(s._provided,a)){n[o]=s._provided[a];break}s=s.$parent}if(!s&&"default"in e[o]){var c=e[o].default;n[o]="function"==typeof c?c.call(t):c}}}return n}}function ut(e,t){if(!e||!e.length)return{};for(var n={},r=0,i=e.length;r<i;r++){var o=e[r],a=o.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,o.context!==t&&o.fnContext!==t||!a||null==a.slot)(n.default||(n.default=[])).push(o);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===o.tag?c.push.apply(c,o.children||[]):c.push(o)}}for(var u in n)n[u].every(lt)&&delete n[u];return n}function lt(e){return e.isComment&&!e.asyncFactory||" "===e.text}function ft(t,n,r){var i,o=Object.keys(n).length>0,a=t?!!t.$stable:!o,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&r&&r!==e&&s===r.$key&&!o&&!r.$hasNormal)return r;for(var c in i={},t)t[c]&&"$"!==c[0]&&(i[c]=pt(n,c,t[c]))}else i={};for(var u in n)u in i||(i[u]=dt(n,u));return t&&Object.isExtensible(t)&&(t._normalized=i),R(i,"$stable",a),R(i,"$key",s),R(i,"$hasNormal",o),i}function pt(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({});return(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:at(e))&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function dt(e,t){return function(){return e[t]}}function vt(e,t){var r,i,a,s,c;if(Array.isArray(e)||"string"==typeof e)for(r=new Array(e.length),i=0,a=e.length;i<a;i++)r[i]=t(e[i],i);else if("number"==typeof e)for(r=new Array(e),i=0;i<e;i++)r[i]=t(i+1,i);else if(o(e))if(oe&&e[Symbol.iterator]){r=[];for(var u=e[Symbol.iterator](),l=u.next();!l.done;)r.push(t(l.value,r.length)),l=u.next()}else for(s=Object.keys(e),r=new Array(s.length),i=0,a=s.length;i<a;i++)c=s[i],r[i]=t(e[c],c,i);return n(r)||(r=[]),r._isVList=!0,r}function ht(e,t,n,r){var i,o=this.$scopedSlots[e];o?(n=n||{},r&&(n=A(A({},r),n)),i=o(n)||t):i=this.$slots[e]||t;var a=n&&n.slot;return a?this.$createElement("template",{slot:a},i):i}function mt(e){return Le(this.$options,"filters",e)||E}function yt(e,t){return Array.isArray(e)?-1===e.indexOf(t):e!==t}function gt(e,t,n,r,i){var o=F.keyCodes[t]||n;return i&&r&&!F.keyCodes[t]?yt(i,r):o?yt(o,e):r?C(r)!==t:void 0}function _t(e,t,n,r,i){if(n)if(o(n)){var a;Array.isArray(n)&&(n=O(n));var s=function(o){if("class"===o||"style"===o||v(o))a=e;else{var s=e.attrs&&e.attrs.type;a=r||F.mustUseProp(t,s,o)?e.domProps||(e.domProps={}):e.attrs||(e.attrs={})}var c=b(o),u=C(o);c in a||u in a||(a[o]=n[o],i&&((e.on||(e.on={}))["update:"+o]=function(e){n[o]=e}))};for(var c in n)s(c)}else;return e}function bt(e,t){var n=this._staticTrees||(this._staticTrees=[]),r=n[e];return r&&!t?r:(wt(r=n[e]=this.$options.staticRenderFns[e].call(this._renderProxy,null,this),"__static__"+e,!1),r)}function $t(e,t,n){return wt(e,"__once__"+t+(n?"_"+n:""),!0),e}function wt(e,t,n){if(Array.isArray(e))for(var r=0;r<e.length;r++)e[r]&&"string"!=typeof e[r]&&Ct(e[r],t+"_"+r,n);else Ct(e,t,n)}function Ct(e,t,n){e.isStatic=!0,e.key=t,e.isOnce=n}function xt(e,t){if(t)if(s(t)){var n=e.on=e.on?A({},e.on):{};for(var r in t){var i=n[r],o=t[r];n[r]=i?[].concat(i,o):o}}else;return e}function kt(e,t,n,r){t=t||{$stable:!n};for(var i=0;i<e.length;i++){var o=e[i];Array.isArray(o)?kt(o,t,n):o&&(o.proxy&&(o.fn.proxy=!0),t[o.key]=o.fn)}return r&&(t.$key=r),t}function At(e,t){for(var n=0;n<t.length;n+=2){var r=t[n];"string"==typeof r&&r&&(e[t[n]]=t[n+1])}return e}function Ot(e,t){return"string"==typeof e?t+e:e}function St(e){e._o=$t,e._n=f,e._s=l,e._l=vt,e._t=ht,e._q=N,e._i=j,e._m=bt,e._f=mt,e._k=gt,e._b=_t,e._v=he,e._e=ve,e._u=kt,e._g=xt,e._d=At,e._p=Ot}function Tt(t,n,i,o,a){var s,c=this,u=a.options;y(o,"_uid")?(s=Object.create(o))._original=o:(s=o,o=o._original);var l=r(u._compiled),f=!l;this.data=t,this.props=n,this.children=i,this.parent=o,this.listeners=t.on||e,this.injections=ct(u.inject,o),this.slots=function(){return c.$slots||ft(t.scopedSlots,c.$slots=ut(i,o)),c.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return ft(t.scopedSlots,this.slots())}}),l&&(this.$options=u,this.$slots=this.slots(),this.$scopedSlots=ft(t.scopedSlots,this.$slots)),u._scopeId?this._c=function(e,t,n,r){var i=Pt(s,e,t,n,r,f);return i&&!Array.isArray(i)&&(i.fnScopeId=u._scopeId,i.fnContext=o),i}:this._c=function(e,t,n,r){return Pt(s,e,t,n,r,f)}}function Et(e,t,n,r,i){var o=me(e);return o.fnContext=n,o.fnOptions=r,t.slot&&((o.data||(o.data={})).slot=t.slot),o}function Nt(e,t){for(var n in t)e[b(n)]=t[n]}St(Tt.prototype);var jt={init:function(e,t){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var r=e;jt.prepatch(r,r)}else{(e.componentInstance=function(e,t){var r={_isComponent:!0,_parentVnode:e,parent:t},i=e.data.inlineTemplate;n(i)&&(r.render=i.render,r.staticRenderFns=i.staticRenderFns);return new e.componentOptions.Ctor(r)}(e,Wt)).$mount(t?e.elm:void 0,t)}},prepatch:function(t,n){var r=n.componentOptions;!function(t,n,r,i,o){var a=i.data.scopedSlots,s=t.$scopedSlots,c=!!(a&&!a.$stable||s!==e&&!s.$stable||a&&t.$scopedSlots.$key!==a.$key),u=!!(o||t.$options._renderChildren||c);t.$options._parentVnode=i,t.$vnode=i,t._vnode&&(t._vnode.parent=i);if(t.$options._renderChildren=o,t.$attrs=i.data.attrs||e,t.$listeners=r||e,n&&t.$options.props){$e(!1);for(var l=t._props,f=t.$options._propKeys||[],p=0;p<f.length;p++){var d=f[p],v=t.$options.props;l[d]=Me(d,v,n,t)}$e(!0),t.$options.propsData=n}r=r||e;var h=t.$options._parentListeners;t.$options._parentListeners=r,qt(t,r,h),u&&(t.$slots=ut(o,i.context),t.$forceUpdate())}(n.componentInstance=t.componentInstance,r.propsData,r.listeners,n,r.children)},insert:function(e){var t,n=e.context,r=e.componentInstance;r._isMounted||(r._isMounted=!0,Yt(r,"mounted")),e.data.keepAlive&&(n._isMounted?((t=r)._inactive=!1,en.push(t)):Xt(r,!0))},destroy:function(e){var t=e.componentInstance;t._isDestroyed||(e.data.keepAlive?function e(t,n){if(n&&(t._directInactive=!0,Gt(t)))return;if(!t._inactive){t._inactive=!0;for(var r=0;r<t.$children.length;r++)e(t.$children[r]);Yt(t,"deactivated")}}(t,!0):t.$destroy())}},Dt=Object.keys(jt);function Lt(i,a,s,c,l){if(!t(i)){var f=s.$options._base;if(o(i)&&(i=f.extend(i)),"function"==typeof i){var p;if(t(i.cid)&&void 0===(i=function(e,i){if(r(e.error)&&n(e.errorComp))return e.errorComp;if(n(e.resolved))return e.resolved;var a=Ht;a&&n(e.owners)&&-1===e.owners.indexOf(a)&&e.owners.push(a);if(r(e.loading)&&n(e.loadingComp))return e.loadingComp;if(a&&!n(e.owners)){var s=e.owners=[a],c=!0,l=null,f=null;a.$on("hook:destroyed",function(){return h(s,a)});var p=function(e){for(var t=0,n=s.length;t<n;t++)s[t].$forceUpdate();e&&(s.length=0,null!==l&&(clearTimeout(l),l=null),null!==f&&(clearTimeout(f),f=null))},d=D(function(t){e.resolved=Bt(t,i),c?s.length=0:p(!0)}),v=D(function(t){n(e.errorComp)&&(e.error=!0,p(!0))}),m=e(d,v);return o(m)&&(u(m)?t(e.resolved)&&m.then(d,v):u(m.component)&&(m.component.then(d,v),n(m.error)&&(e.errorComp=Bt(m.error,i)),n(m.loading)&&(e.loadingComp=Bt(m.loading,i),0===m.delay?e.loading=!0:l=setTimeout(function(){l=null,t(e.resolved)&&t(e.error)&&(e.loading=!0,p(!1))},m.delay||200)),n(m.timeout)&&(f=setTimeout(function(){f=null,t(e.resolved)&&v(null)},m.timeout)))),c=!1,e.loading?e.loadingComp:e.resolved}}(p=i,f)))return function(e,t,n,r,i){var o=ve();return o.asyncFactory=e,o.asyncMeta={data:t,context:n,children:r,tag:i},o}(p,a,s,c,l);a=a||{},$n(i),n(a.model)&&function(e,t){var r=e.model&&e.model.prop||"value",i=e.model&&e.model.event||"input";(t.attrs||(t.attrs={}))[r]=t.model.value;var o=t.on||(t.on={}),a=o[i],s=t.model.callback;n(a)?(Array.isArray(a)?-1===a.indexOf(s):a!==s)&&(o[i]=[s].concat(a)):o[i]=s}(i.options,a);var d=function(e,r,i){var o=r.options.props;if(!t(o)){var a={},s=e.attrs,c=e.props;if(n(s)||n(c))for(var u in o){var l=C(u);ot(a,c,u,l,!0)||ot(a,s,u,l,!1)}return a}}(a,i);if(r(i.options.functional))return function(t,r,i,o,a){var s=t.options,c={},u=s.props;if(n(u))for(var l in u)c[l]=Me(l,u,r||e);else n(i.attrs)&&Nt(c,i.attrs),n(i.props)&&Nt(c,i.props);var f=new Tt(i,c,a,o,t),p=s.render.call(null,f._c,f);if(p instanceof pe)return Et(p,i,f.parent,s);if(Array.isArray(p)){for(var d=at(p)||[],v=new Array(d.length),h=0;h<d.length;h++)v[h]=Et(d[h],i,f.parent,s);return v}}(i,d,a,s,c);var v=a.on;if(a.on=a.nativeOn,r(i.options.abstract)){var m=a.slot;a={},m&&(a.slot=m)}!function(e){for(var t=e.hook||(e.hook={}),n=0;n<Dt.length;n++){var r=Dt[n],i=t[r],o=jt[r];i===o||i&&i._merged||(t[r]=i?Mt(o,i):o)}}(a);var y=i.options.name||l;return new pe("vue-component-"+i.cid+(y?"-"+y:""),a,void 0,void 0,void 0,s,{Ctor:i,propsData:d,listeners:v,tag:l,children:c},p)}}}function Mt(e,t){var n=function(n,r){e(n,r),t(n,r)};return n._merged=!0,n}var It=1,Ft=2;function Pt(e,a,s,c,u,l){return(Array.isArray(s)||i(s))&&(u=c,c=s,s=void 0),r(l)&&(u=Ft),function(e,i,a,s,c){if(n(a)&&n(a.__ob__))return ve();n(a)&&n(a.is)&&(i=a.is);if(!i)return ve();Array.isArray(s)&&"function"==typeof s[0]&&((a=a||{}).scopedSlots={default:s[0]},s.length=0);c===Ft?s=at(s):c===It&&(s=function(e){for(var t=0;t<e.length;t++)if(Array.isArray(e[t]))return Array.prototype.concat.apply([],e);return e}(s));var u,l;if("string"==typeof i){var f;l=e.$vnode&&e.$vnode.ns||F.getTagNamespace(i),u=F.isReservedTag(i)?new pe(F.parsePlatformTagName(i),a,s,void 0,void 0,e):a&&a.pre||!n(f=Le(e.$options,"components",i))?new pe(i,a,s,void 0,void 0,e):Lt(f,a,e,s,i)}else u=Lt(i,a,e,s);return Array.isArray(u)?u:n(u)?(n(l)&&function e(i,o,a){i.ns=o;"foreignObject"===i.tag&&(o=void 0,a=!0);if(n(i.children))for(var s=0,c=i.children.length;s<c;s++){var u=i.children[s];n(u.tag)&&(t(u.ns)||r(a)&&"svg"!==u.tag)&&e(u,o,a)}}(u,l),n(a)&&function(e){o(e.style)&&et(e.style);o(e.class)&&et(e.class)}(a),u):ve()}(e,a,s,c,u)}var Rt,Ht=null;function Bt(e,t){return(e.__esModule||oe&&"Module"===e[Symbol.toStringTag])&&(e=e.default),o(e)?t.extend(e):e}function Ut(e){return e.isComment&&e.asyncFactory}function zt(e){if(Array.isArray(e))for(var t=0;t<e.length;t++){var r=e[t];if(n(r)&&(n(r.componentOptions)||Ut(r)))return r}}function Vt(e,t){Rt.$on(e,t)}function Kt(e,t){Rt.$off(e,t)}function Jt(e,t){var n=Rt;return function r(){null!==t.apply(null,arguments)&&n.$off(e,r)}}function qt(e,t,n){Rt=e,rt(t,n||{},Vt,Kt,Jt,e),Rt=void 0}var Wt=null;function Zt(e){var t=Wt;return Wt=e,function(){Wt=t}}function Gt(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function Xt(e,t){if(t){if(e._directInactive=!1,Gt(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var n=0;n<e.$children.length;n++)Xt(e.$children[n]);Yt(e,"activated")}}function Yt(e,t){le();var n=e.$options[t],r=t+" hook";if(n)for(var i=0,o=n.length;i<o;i++)He(n[i],e,null,e,r);e._hasHookEvent&&e.$emit("hook:"+t),fe()}var Qt=[],en=[],tn={},nn=!1,rn=!1,on=0;var an=0,sn=Date.now;if(z&&!q){var cn=window.performance;cn&&"function"==typeof cn.now&&sn()>document.createEvent("Event").timeStamp&&(sn=function(){return cn.now()})}function un(){var e,t;for(an=sn(),rn=!0,Qt.sort(function(e,t){return e.id-t.id}),on=0;on<Qt.length;on++)(e=Qt[on]).before&&e.before(),t=e.id,tn[t]=null,e.run();var n=en.slice(),r=Qt.slice();on=Qt.length=en.length=0,tn={},nn=rn=!1,function(e){for(var t=0;t<e.length;t++)e[t]._inactive=!0,Xt(e[t],!0)}(n),function(e){var t=e.length;for(;t--;){var n=e[t],r=n.vm;r._watcher===n&&r._isMounted&&!r._isDestroyed&&Yt(r,"updated")}}(r),ne&&F.devtools&&ne.emit("flush")}var ln=0,fn=function(e,t,n,r,i){this.vm=e,i&&(e._watcher=this),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++ln,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ie,this.newDepIds=new ie,this.expression="","function"==typeof t?this.getter=t:(this.getter=function(e){if(!H.test(e)){var t=e.split(".");return function(e){for(var n=0;n<t.length;n++){if(!e)return;e=e[t[n]]}return e}}}(t),this.getter||(this.getter=S)),this.value=this.lazy?void 0:this.get()};fn.prototype.get=function(){var e;le(this);var t=this.vm;try{e=this.getter.call(t,t)}catch(e){if(!this.user)throw e;Re(e,t,'getter for watcher "'+this.expression+'"')}finally{this.deep&&et(e),fe(),this.cleanupDeps()}return e},fn.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},fn.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},fn.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(e){var t=e.id;if(null==tn[t]){if(tn[t]=!0,rn){for(var n=Qt.length-1;n>on&&Qt[n].id>e.id;)n--;Qt.splice(n+1,0,e)}else Qt.push(e);nn||(nn=!0,Ye(un))}}(this)},fn.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||o(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Re(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},fn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},fn.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},fn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||h(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var pn={enumerable:!0,configurable:!0,get:S,set:S};function dn(e,t,n){pn.get=function(){return this[t][n]},pn.set=function(e){this[t][n]=e},Object.defineProperty(e,n,pn)}function vn(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[];e.$parent&&$e(!1);var o=function(o){i.push(o);var a=Me(o,t,n,e);xe(r,o,a),o in e||dn(e,"_props",o)};for(var a in t)o(a);$e(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]="function"!=typeof t[n]?S:x(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;s(t=e._data="function"==typeof t?function(e,t){le();try{return e.call(t,t)}catch(e){return Re(e,t,"data()"),{}}finally{fe()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];r&&y(r,o)||(a=void 0,36!==(a=(o+"").charCodeAt(0))&&95!==a&&dn(e,"_data",o))}var a;Ce(t,!0)}(e):Ce(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=te();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new fn(e,a||S,S,hn)),i in e||mn(e,i,o)}}(e,t.computed),t.watch&&t.watch!==Y&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i<r.length;i++)_n(e,n,r[i]);else _n(e,n,r)}}(e,t.watch)}var hn={lazy:!0};function mn(e,t,n){var r=!te();"function"==typeof n?(pn.get=r?yn(t):gn(n),pn.set=S):(pn.get=n.get?r&&!1!==n.cache?yn(t):gn(n.get):S,pn.set=n.set||S),Object.defineProperty(e,t,pn)}function yn(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),ce.target&&t.depend(),t.value}}function gn(e){return function(){return e.call(this,this)}}function _n(e,t,n,r){return s(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=e[n]),e.$watch(t,n,r)}var bn=0;function $n(e){var t=e.options;if(e.super){var n=$n(e.super);if(n!==e.superOptions){e.superOptions=n;var r=function(e){var t,n=e.options,r=e.sealedOptions;for(var i in n)n[i]!==r[i]&&(t||(t={}),t[i]=n[i]);return t}(e);r&&A(e.extendOptions,r),(t=e.options=De(n,e.extendOptions)).name&&(t.components[t.name]=e)}}return t}function wn(e){this._init(e)}function Cn(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,i=e._Ctor||(e._Ctor={});if(i[r])return i[r];var o=e.name||n.options.name,a=function(e){this._init(e)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=t++,a.options=De(n.options,e),a.super=n,a.options.props&&function(e){var t=e.options.props;for(var n in t)dn(e.prototype,"_props",n)}(a),a.options.computed&&function(e){var t=e.options.computed;for(var n in t)mn(e.prototype,n,t[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,M.forEach(function(e){a[e]=n[e]}),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=e,a.sealedOptions=A({},a.options),i[r]=a,a}}function xn(e){return e&&(e.Ctor.options.name||e.tag)}function kn(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"==typeof e?e.split(",").indexOf(t)>-1:(n=e,"[object RegExp]"===a.call(n)&&e.test(t));var n}function An(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=xn(a.componentOptions);s&&!t(s)&&On(n,o,r,i)}}}function On(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,h(n,t)}!function(t){t.prototype._init=function(t){var n=this;n._uid=bn++,n._isVue=!0,t&&t._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(n,t):n.$options=De($n(n.constructor),t||{},n),n._renderProxy=n,n._self=n,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(n),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&qt(e,t)}(n),function(t){t._vnode=null,t._staticTrees=null;var n=t.$options,r=t.$vnode=n._parentVnode,i=r&&r.context;t.$slots=ut(n._renderChildren,i),t.$scopedSlots=e,t._c=function(e,n,r,i){return Pt(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return Pt(t,e,n,r,i,!0)};var o=r&&r.data;xe(t,"$attrs",o&&o.attrs||e,null,!0),xe(t,"$listeners",n._parentListeners||e,null,!0)}(n),Yt(n,"beforeCreate"),function(e){var t=ct(e.$options.inject,e);t&&($e(!1),Object.keys(t).forEach(function(n){xe(e,n,t[n])}),$e(!0))}(n),vn(n),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(n),Yt(n,"created"),n.$options.el&&n.$mount(n.$options.el)}}(wn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=ke,e.prototype.$delete=Ae,e.prototype.$watch=function(e,t,n){if(s(t))return _n(this,e,t,n);(n=n||{}).user=!0;var r=new fn(this,e,t,n);if(n.immediate)try{t.call(this,r.value)}catch(e){Re(e,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(wn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var i=0,o=e.length;i<o;i++)r.$on(e[i],n);else(r._events[e]||(r._events[e]=[])).push(n),t.test(e)&&(r._hasHookEvent=!0);return r},e.prototype.$once=function(e,t){var n=this;function r(){n.$off(e,r),t.apply(n,arguments)}return r.fn=t,n.$on(e,r),n},e.prototype.$off=function(e,t){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(e)){for(var r=0,i=e.length;r<i;r++)n.$off(e[r],t);return n}var o,a=n._events[e];if(!a)return n;if(!t)return n._events[e]=null,n;for(var s=a.length;s--;)if((o=a[s])===t||o.fn===t){a.splice(s,1);break}return n},e.prototype.$emit=function(e){var t=this._events[e];if(t){t=t.length>1?k(t):t;for(var n=k(arguments,1),r='event handler for "'+e+'"',i=0,o=t.length;i<o;i++)He(t[i],this,n,this,r)}return this}}(wn),function(e){e.prototype._update=function(e,t){var n=this,r=n.$el,i=n._vnode,o=Zt(n);n._vnode=e,n.$el=i?n.__patch__(i,e):n.__patch__(n.$el,e,t,!1),o(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},e.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},e.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){Yt(e,"beforeDestroy"),e._isBeingDestroyed=!0;var t=e.$parent;!t||t._isBeingDestroyed||e.$options.abstract||h(t.$children,e),e._watcher&&e._watcher.teardown();for(var n=e._watchers.length;n--;)e._watchers[n].teardown();e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),Yt(e,"destroyed"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}}}(wn),function(e){St(e.prototype),e.prototype.$nextTick=function(e){return Ye(e,this)},e.prototype._render=function(){var e,t=this,n=t.$options,r=n.render,i=n._parentVnode;i&&(t.$scopedSlots=ft(i.data.scopedSlots,t.$slots,t.$scopedSlots)),t.$vnode=i;try{Ht=t,e=r.call(t._renderProxy,t.$createElement)}catch(n){Re(n,t,"render"),e=t._vnode}finally{Ht=null}return Array.isArray(e)&&1===e.length&&(e=e[0]),e instanceof pe||(e=ve()),e.parent=i,e}}(wn);var Sn=[String,RegExp,Array],Tn={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:Sn,exclude:Sn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)On(this.cache,e,this.keys)},mounted:function(){var e=this;this.$watch("include",function(t){An(e,function(e){return kn(t,e)})}),this.$watch("exclude",function(t){An(e,function(e){return!kn(t,e)})})},render:function(){var e=this.$slots.default,t=zt(e),n=t&&t.componentOptions;if(n){var r=xn(n),i=this.include,o=this.exclude;if(i&&(!r||!kn(i,r))||o&&r&&kn(o,r))return t;var a=this.cache,s=this.keys,c=null==t.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):t.key;a[c]?(t.componentInstance=a[c].componentInstance,h(s,c),s.push(c)):(a[c]=t,s.push(c),this.max&&s.length>parseInt(this.max)&&On(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return F}};Object.defineProperty(e,"config",t),e.util={warn:ae,extend:A,mergeOptions:De,defineReactive:xe},e.set=ke,e.delete=Ae,e.nextTick=Ye,e.observable=function(e){return Ce(e),e},e.options=Object.create(null),M.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,A(e.options.components,Tn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=k(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=De(this.options,e),this}}(e),Cn(e),function(e){M.forEach(function(t){e[t]=function(e,n){return n?("component"===t&&s(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}(e)}(wn),Object.defineProperty(wn.prototype,"$isServer",{get:te}),Object.defineProperty(wn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(wn,"FunctionalRenderContext",{value:Tt}),wn.version="2.6.12";var En=p("style,class"),Nn=p("input,textarea,option,select,progress"),jn=function(e,t,n){return"value"===n&&Nn(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Dn=p("contenteditable,draggable,spellcheck"),Ln=p("events,caret,typing,plaintext-only"),Mn=function(e,t){return Hn(t)||"false"===t?"false":"contenteditable"===e&&Ln(t)?t:"true"},In=p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Fn="http://www.w3.org/1999/xlink",Pn=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Rn=function(e){return Pn(e)?e.slice(6,e.length):""},Hn=function(e){return null==e||!1===e};function Bn(e){for(var t=e.data,r=e,i=e;n(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(t=Un(i.data,t));for(;n(r=r.parent);)r&&r.data&&(t=Un(t,r.data));return function(e,t){if(n(e)||n(t))return zn(e,Vn(t));return""}(t.staticClass,t.class)}function Un(e,t){return{staticClass:zn(e.staticClass,t.staticClass),class:n(e.class)?[e.class,t.class]:t.class}}function zn(e,t){return e?t?e+" "+t:e:t||""}function Vn(e){return Array.isArray(e)?function(e){for(var t,r="",i=0,o=e.length;i<o;i++)n(t=Vn(e[i]))&&""!==t&&(r&&(r+=" "),r+=t);return r}(e):o(e)?function(e){var t="";for(var n in e)e[n]&&(t&&(t+=" "),t+=n);return t}(e):"string"==typeof e?e:""}var Kn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Jn=p("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),qn=p("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Wn=function(e){return Jn(e)||qn(e)};function Zn(e){return qn(e)?"svg":"math"===e?"math":void 0}var Gn=Object.create(null);var Xn=p("text,number,password,search,email,tel,url");function Yn(e){if("string"==typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}var Qn=Object.freeze({createElement:function(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(e,t){return document.createElementNS(Kn[e],t)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,t,n){e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},appendChild:function(e,t){e.appendChild(t)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,t){e.textContent=t},setStyleScope:function(e,t){e.setAttribute(t,"")}}),er={create:function(e,t){tr(t)},update:function(e,t){e.data.ref!==t.data.ref&&(tr(e,!0),tr(t))},destroy:function(e){tr(e,!0)}};function tr(e,t){var r=e.data.ref;if(n(r)){var i=e.context,o=e.componentInstance||e.elm,a=i.$refs;t?Array.isArray(a[r])?h(a[r],o):a[r]===o&&(a[r]=void 0):e.data.refInFor?Array.isArray(a[r])?a[r].indexOf(o)<0&&a[r].push(o):a[r]=[o]:a[r]=o}}var nr=new pe("",{},[]),rr=["create","activate","update","remove","destroy"];function ir(e,i){return e.key===i.key&&(e.tag===i.tag&&e.isComment===i.isComment&&n(e.data)===n(i.data)&&function(e,t){if("input"!==e.tag)return!0;var r,i=n(r=e.data)&&n(r=r.attrs)&&r.type,o=n(r=t.data)&&n(r=r.attrs)&&r.type;return i===o||Xn(i)&&Xn(o)}(e,i)||r(e.isAsyncPlaceholder)&&e.asyncFactory===i.asyncFactory&&t(i.asyncFactory.error))}function or(e,t,r){var i,o,a={};for(i=t;i<=r;++i)n(o=e[i].key)&&(a[o]=i);return a}var ar={create:sr,update:sr,destroy:function(e){sr(e,nr)}};function sr(e,t){(e.data.directives||t.data.directives)&&function(e,t){var n,r,i,o=e===nr,a=t===nr,s=ur(e.data.directives,e.context),c=ur(t.data.directives,t.context),u=[],l=[];for(n in c)r=s[n],i=c[n],r?(i.oldValue=r.value,i.oldArg=r.arg,fr(i,"update",t,e),i.def&&i.def.componentUpdated&&l.push(i)):(fr(i,"bind",t,e),i.def&&i.def.inserted&&u.push(i));if(u.length){var f=function(){for(var n=0;n<u.length;n++)fr(u[n],"inserted",t,e)};o?it(t,"insert",f):f()}l.length&&it(t,"postpatch",function(){for(var n=0;n<l.length;n++)fr(l[n],"componentUpdated",t,e)});if(!o)for(n in s)c[n]||fr(s[n],"unbind",e,e,a)}(e,t)}var cr=Object.create(null);function ur(e,t){var n,r,i=Object.create(null);if(!e)return i;for(n=0;n<e.length;n++)(r=e[n]).modifiers||(r.modifiers=cr),i[lr(r)]=r,r.def=Le(t.$options,"directives",r.name);return i}function lr(e){return e.rawName||e.name+"."+Object.keys(e.modifiers||{}).join(".")}function fr(e,t,n,r,i){var o=e.def&&e.def[t];if(o)try{o(n.elm,e,n,r,i)}catch(r){Re(r,n.context,"directive "+e.name+" "+t+" hook")}}var pr=[er,ar];function dr(e,r){var i=r.componentOptions;if(!(n(i)&&!1===i.Ctor.options.inheritAttrs||t(e.data.attrs)&&t(r.data.attrs))){var o,a,s=r.elm,c=e.data.attrs||{},u=r.data.attrs||{};for(o in n(u.__ob__)&&(u=r.data.attrs=A({},u)),u)a=u[o],c[o]!==a&&vr(s,o,a);for(o in(q||Z)&&u.value!==c.value&&vr(s,"value",u.value),c)t(u[o])&&(Pn(o)?s.removeAttributeNS(Fn,Rn(o)):Dn(o)||s.removeAttribute(o))}}function vr(e,t,n){e.tagName.indexOf("-")>-1?hr(e,t,n):In(t)?Hn(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Dn(t)?e.setAttribute(t,Mn(t,n)):Pn(t)?Hn(n)?e.removeAttributeNS(Fn,Rn(t)):e.setAttributeNS(Fn,t,n):hr(e,t,n)}function hr(e,t,n){if(Hn(n))e.removeAttribute(t);else{if(q&&!W&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var mr={create:dr,update:dr};function yr(e,r){var i=r.elm,o=r.data,a=e.data;if(!(t(o.staticClass)&&t(o.class)&&(t(a)||t(a.staticClass)&&t(a.class)))){var s=Bn(r),c=i._transitionClasses;n(c)&&(s=zn(s,Vn(c))),s!==i._prevClass&&(i.setAttribute("class",s),i._prevClass=s)}}var gr,_r,br,$r,wr,Cr,xr={create:yr,update:yr},kr=/[\w).+\-_$\]]/;function Ar(e){var t,n,r,i,o,a=!1,s=!1,c=!1,u=!1,l=0,f=0,p=0,d=0;for(r=0;r<e.length;r++)if(n=t,t=e.charCodeAt(r),a)39===t&&92!==n&&(a=!1);else if(s)34===t&&92!==n&&(s=!1);else if(c)96===t&&92!==n&&(c=!1);else if(u)47===t&&92!==n&&(u=!1);else if(124!==t||124===e.charCodeAt(r+1)||124===e.charCodeAt(r-1)||l||f||p){switch(t){case 34:s=!0;break;case 39:a=!0;break;case 96:c=!0;break;case 40:p++;break;case 41:p--;break;case 91:f++;break;case 93:f--;break;case 123:l++;break;case 125:l--}if(47===t){for(var v=r-1,h=void 0;v>=0&&" "===(h=e.charAt(v));v--);h&&kr.test(h)||(u=!0)}}else void 0===i?(d=r+1,i=e.slice(0,r).trim()):m();function m(){(o||(o=[])).push(e.slice(d,r).trim()),d=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==d&&m(),o)for(r=0;r<o.length;r++)i=Or(i,o[r]);return i}function Or(e,t){var n=t.indexOf("(");if(n<0)return'_f("'+t+'")('+e+")";var r=t.slice(0,n),i=t.slice(n+1);return'_f("'+r+'")('+e+(")"!==i?","+i:i)}function Sr(e,t){console.error("[Vue compiler]: "+e)}function Tr(e,t){return e?e.map(function(e){return e[t]}).filter(function(e){return e}):[]}function Er(e,t,n,r,i){(e.props||(e.props=[])).push(Rr({name:t,value:n,dynamic:i},r)),e.plain=!1}function Nr(e,t,n,r,i){(i?e.dynamicAttrs||(e.dynamicAttrs=[]):e.attrs||(e.attrs=[])).push(Rr({name:t,value:n,dynamic:i},r)),e.plain=!1}function jr(e,t,n,r){e.attrsMap[t]=n,e.attrsList.push(Rr({name:t,value:n},r))}function Dr(e,t,n,r,i,o,a,s){(e.directives||(e.directives=[])).push(Rr({name:t,rawName:n,value:r,arg:i,isDynamicArg:o,modifiers:a},s)),e.plain=!1}function Lr(e,t,n){return n?"_p("+t+',"'+e+'")':e+t}function Mr(t,n,r,i,o,a,s,c){var u;(i=i||e).right?c?n="("+n+")==='click'?'contextmenu':("+n+")":"click"===n&&(n="contextmenu",delete i.right):i.middle&&(c?n="("+n+")==='click'?'mouseup':("+n+")":"click"===n&&(n="mouseup")),i.capture&&(delete i.capture,n=Lr("!",n,c)),i.once&&(delete i.once,n=Lr("~",n,c)),i.passive&&(delete i.passive,n=Lr("&",n,c)),i.native?(delete i.native,u=t.nativeEvents||(t.nativeEvents={})):u=t.events||(t.events={});var l=Rr({value:r.trim(),dynamic:c},s);i!==e&&(l.modifiers=i);var f=u[n];Array.isArray(f)?o?f.unshift(l):f.push(l):u[n]=f?o?[l,f]:[f,l]:l,t.plain=!1}function Ir(e,t,n){var r=Fr(e,":"+t)||Fr(e,"v-bind:"+t);if(null!=r)return Ar(r);if(!1!==n){var i=Fr(e,t);if(null!=i)return JSON.stringify(i)}}function Fr(e,t,n){var r;if(null!=(r=e.attrsMap[t]))for(var i=e.attrsList,o=0,a=i.length;o<a;o++)if(i[o].name===t){i.splice(o,1);break}return n&&delete e.attrsMap[t],r}function Pr(e,t){for(var n=e.attrsList,r=0,i=n.length;r<i;r++){var o=n[r];if(t.test(o.name))return n.splice(r,1),o}}function Rr(e,t){return t&&(null!=t.start&&(e.start=t.start),null!=t.end&&(e.end=t.end)),e}function Hr(e,t,n){var r=n||{},i=r.number,o="$$v";r.trim&&(o="(typeof $$v === 'string'? $$v.trim(): $$v)"),i&&(o="_n("+o+")");var a=Br(t,o);e.model={value:"("+t+")",expression:JSON.stringify(t),callback:"function ($$v) {"+a+"}"}}function Br(e,t){var n=function(e){if(e=e.trim(),gr=e.length,e.indexOf("[")<0||e.lastIndexOf("]")<gr-1)return($r=e.lastIndexOf("."))>-1?{exp:e.slice(0,$r),key:'"'+e.slice($r+1)+'"'}:{exp:e,key:null};_r=e,$r=wr=Cr=0;for(;!zr();)Vr(br=Ur())?Jr(br):91===br&&Kr(br);return{exp:e.slice(0,wr),key:e.slice(wr+1,Cr)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function Ur(){return _r.charCodeAt(++$r)}function zr(){return $r>=gr}function Vr(e){return 34===e||39===e}function Kr(e){var t=1;for(wr=$r;!zr();)if(Vr(e=Ur()))Jr(e);else if(91===e&&t++,93===e&&t--,0===t){Cr=$r;break}}function Jr(e){for(var t=e;!zr()&&(e=Ur())!==t;);}var qr,Wr="__r",Zr="__c";function Gr(e,t,n){var r=qr;return function i(){null!==t.apply(null,arguments)&&Qr(e,i,n,r)}}var Xr=Ve&&!(X&&Number(X[1])<=53);function Yr(e,t,n,r){if(Xr){var i=an,o=t;t=o._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return o.apply(this,arguments)}}qr.addEventListener(e,t,Q?{capture:n,passive:r}:n)}function Qr(e,t,n,r){(r||qr).removeEventListener(e,t._wrapper||t,n)}function ei(e,r){if(!t(e.data.on)||!t(r.data.on)){var i=r.data.on||{},o=e.data.on||{};qr=r.elm,function(e){if(n(e[Wr])){var t=q?"change":"input";e[t]=[].concat(e[Wr],e[t]||[]),delete e[Wr]}n(e[Zr])&&(e.change=[].concat(e[Zr],e.change||[]),delete e[Zr])}(i),rt(i,o,Yr,Qr,Gr,r.context),qr=void 0}}var ti,ni={create:ei,update:ei};function ri(e,r){if(!t(e.data.domProps)||!t(r.data.domProps)){var i,o,a=r.elm,s=e.data.domProps||{},c=r.data.domProps||{};for(i in n(c.__ob__)&&(c=r.data.domProps=A({},c)),s)i in c||(a[i]="");for(i in c){if(o=c[i],"textContent"===i||"innerHTML"===i){if(r.children&&(r.children.length=0),o===s[i])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===i&&"PROGRESS"!==a.tagName){a._value=o;var u=t(o)?"":String(o);ii(a,u)&&(a.value=u)}else if("innerHTML"===i&&qn(a.tagName)&&t(a.innerHTML)){(ti=ti||document.createElement("div")).innerHTML="<svg>"+o+"</svg>";for(var l=ti.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else if(o!==s[i])try{a[i]=o}catch(e){}}}}function ii(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var r=e.value,i=e._vModifiers;if(n(i)){if(i.number)return f(r)!==f(t);if(i.trim)return r.trim()!==t.trim()}return r!==t}(e,t))}var oi={create:ri,update:ri},ai=g(function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach(function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t});function si(e){var t=ci(e.style);return e.staticStyle?A(e.staticStyle,t):t}function ci(e){return Array.isArray(e)?O(e):"string"==typeof e?ai(e):e}var ui,li=/^--/,fi=/\s*!important$/,pi=function(e,t,n){if(li.test(t))e.style.setProperty(t,n);else if(fi.test(n))e.style.setProperty(C(t),n.replace(fi,""),"important");else{var r=vi(t);if(Array.isArray(n))for(var i=0,o=n.length;i<o;i++)e.style[r]=n[i];else e.style[r]=n}},di=["Webkit","Moz","ms"],vi=g(function(e){if(ui=ui||document.createElement("div").style,"filter"!==(e=b(e))&&e in ui)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<di.length;n++){var r=di[n]+t;if(r in ui)return r}});function hi(e,r){var i=r.data,o=e.data;if(!(t(i.staticStyle)&&t(i.style)&&t(o.staticStyle)&&t(o.style))){var a,s,c=r.elm,u=o.staticStyle,l=o.normalizedStyle||o.style||{},f=u||l,p=ci(r.data.style)||{};r.data.normalizedStyle=n(p.__ob__)?A({},p):p;var d=function(e,t){var n,r={};if(t)for(var i=e;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=si(i.data))&&A(r,n);(n=si(e.data))&&A(r,n);for(var o=e;o=o.parent;)o.data&&(n=si(o.data))&&A(r,n);return r}(r,!0);for(s in f)t(d[s])&&pi(c,s,"");for(s in d)(a=d[s])!==f[s]&&pi(c,s,null==a?"":a)}}var mi={create:hi,update:hi},yi=/\s+/;function gi(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(yi).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function _i(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(yi).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function bi(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&A(t,$i(e.name||"v")),A(t,e),t}return"string"==typeof e?$i(e):void 0}}var $i=g(function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}}),wi=z&&!W,Ci="transition",xi="animation",ki="transition",Ai="transitionend",Oi="animation",Si="animationend";wi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(ki="WebkitTransition",Ai="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Oi="WebkitAnimation",Si="webkitAnimationEnd"));var Ti=z?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Ei(e){Ti(function(){Ti(e)})}function Ni(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),gi(e,t))}function ji(e,t){e._transitionClasses&&h(e._transitionClasses,t),_i(e,t)}function Di(e,t,n){var r=Mi(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Ci?Ai:Si,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++c>=a&&u()};setTimeout(function(){c<a&&u()},o+1),e.addEventListener(s,l)}var Li=/\b(transform|all)(,|$)/;function Mi(e,t){var n,r=window.getComputedStyle(e),i=(r[ki+"Delay"]||"").split(", "),o=(r[ki+"Duration"]||"").split(", "),a=Ii(i,o),s=(r[Oi+"Delay"]||"").split(", "),c=(r[Oi+"Duration"]||"").split(", "),u=Ii(s,c),l=0,f=0;return t===Ci?a>0&&(n=Ci,l=a,f=o.length):t===xi?u>0&&(n=xi,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?Ci:xi:null)?n===Ci?o.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Ci&&Li.test(r[ki+"Property"])}}function Ii(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max.apply(null,t.map(function(t,n){return Fi(t)+Fi(e[n])}))}function Fi(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function Pi(e,r){var i=e.elm;n(i._leaveCb)&&(i._leaveCb.cancelled=!0,i._leaveCb());var a=bi(e.data.transition);if(!t(a)&&!n(i._enterCb)&&1===i.nodeType){for(var s=a.css,c=a.type,u=a.enterClass,l=a.enterToClass,p=a.enterActiveClass,d=a.appearClass,v=a.appearToClass,h=a.appearActiveClass,m=a.beforeEnter,y=a.enter,g=a.afterEnter,_=a.enterCancelled,b=a.beforeAppear,$=a.appear,w=a.afterAppear,C=a.appearCancelled,x=a.duration,k=Wt,A=Wt.$vnode;A&&A.parent;)k=A.context,A=A.parent;var O=!k._isMounted||!e.isRootInsert;if(!O||$||""===$){var S=O&&d?d:u,T=O&&h?h:p,E=O&&v?v:l,N=O&&b||m,j=O&&"function"==typeof $?$:y,L=O&&w||g,M=O&&C||_,I=f(o(x)?x.enter:x),F=!1!==s&&!W,P=Bi(j),R=i._enterCb=D(function(){F&&(ji(i,E),ji(i,T)),R.cancelled?(F&&ji(i,S),M&&M(i)):L&&L(i),i._enterCb=null});e.data.show||it(e,"insert",function(){var t=i.parentNode,n=t&&t._pending&&t._pending[e.key];n&&n.tag===e.tag&&n.elm._leaveCb&&n.elm._leaveCb(),j&&j(i,R)}),N&&N(i),F&&(Ni(i,S),Ni(i,T),Ei(function(){ji(i,S),R.cancelled||(Ni(i,E),P||(Hi(I)?setTimeout(R,I):Di(i,c,R)))})),e.data.show&&(r&&r(),j&&j(i,R)),F||P||R()}}}function Ri(e,r){var i=e.elm;n(i._enterCb)&&(i._enterCb.cancelled=!0,i._enterCb());var a=bi(e.data.transition);if(t(a)||1!==i.nodeType)return r();if(!n(i._leaveCb)){var s=a.css,c=a.type,u=a.leaveClass,l=a.leaveToClass,p=a.leaveActiveClass,d=a.beforeLeave,v=a.leave,h=a.afterLeave,m=a.leaveCancelled,y=a.delayLeave,g=a.duration,_=!1!==s&&!W,b=Bi(v),$=f(o(g)?g.leave:g),w=i._leaveCb=D(function(){i.parentNode&&i.parentNode._pending&&(i.parentNode._pending[e.key]=null),_&&(ji(i,l),ji(i,p)),w.cancelled?(_&&ji(i,u),m&&m(i)):(r(),h&&h(i)),i._leaveCb=null});y?y(C):C()}function C(){w.cancelled||(!e.data.show&&i.parentNode&&((i.parentNode._pending||(i.parentNode._pending={}))[e.key]=e),d&&d(i),_&&(Ni(i,u),Ni(i,p),Ei(function(){ji(i,u),w.cancelled||(Ni(i,l),b||(Hi($)?setTimeout(w,$):Di(i,c,w)))})),v&&v(i,w),_||b||w())}}function Hi(e){return"number"==typeof e&&!isNaN(e)}function Bi(e){if(t(e))return!1;var r=e.fns;return n(r)?Bi(Array.isArray(r)?r[0]:r):(e._length||e.length)>1}function Ui(e,t){!0!==t.data.show&&Pi(t)}var zi=function(e){var o,a,s={},c=e.modules,u=e.nodeOps;for(o=0;o<rr.length;++o)for(s[rr[o]]=[],a=0;a<c.length;++a)n(c[a][rr[o]])&&s[rr[o]].push(c[a][rr[o]]);function l(e){var t=u.parentNode(e);n(t)&&u.removeChild(t,e)}function f(e,t,i,o,a,c,l){if(n(e.elm)&&n(c)&&(e=c[l]=me(e)),e.isRootInsert=!a,!function(e,t,i,o){var a=e.data;if(n(a)){var c=n(e.componentInstance)&&a.keepAlive;if(n(a=a.hook)&&n(a=a.init)&&a(e,!1),n(e.componentInstance))return d(e,t),v(i,e.elm,o),r(c)&&function(e,t,r,i){for(var o,a=e;a.componentInstance;)if(a=a.componentInstance._vnode,n(o=a.data)&&n(o=o.transition)){for(o=0;o<s.activate.length;++o)s.activate[o](nr,a);t.push(a);break}v(r,e.elm,i)}(e,t,i,o),!0}}(e,t,i,o)){var f=e.data,p=e.children,m=e.tag;n(m)?(e.elm=e.ns?u.createElementNS(e.ns,m):u.createElement(m,e),g(e),h(e,p,t),n(f)&&y(e,t),v(i,e.elm,o)):r(e.isComment)?(e.elm=u.createComment(e.text),v(i,e.elm,o)):(e.elm=u.createTextNode(e.text),v(i,e.elm,o))}}function d(e,t){n(e.data.pendingInsert)&&(t.push.apply(t,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,m(e)?(y(e,t),g(e)):(tr(e),t.push(e))}function v(e,t,r){n(e)&&(n(r)?u.parentNode(r)===e&&u.insertBefore(e,t,r):u.appendChild(e,t))}function h(e,t,n){if(Array.isArray(t))for(var r=0;r<t.length;++r)f(t[r],n,e.elm,null,!0,t,r);else i(e.text)&&u.appendChild(e.elm,u.createTextNode(String(e.text)))}function m(e){for(;e.componentInstance;)e=e.componentInstance._vnode;return n(e.tag)}function y(e,t){for(var r=0;r<s.create.length;++r)s.create[r](nr,e);n(o=e.data.hook)&&(n(o.create)&&o.create(nr,e),n(o.insert)&&t.push(e))}function g(e){var t;if(n(t=e.fnScopeId))u.setStyleScope(e.elm,t);else for(var r=e;r;)n(t=r.context)&&n(t=t.$options._scopeId)&&u.setStyleScope(e.elm,t),r=r.parent;n(t=Wt)&&t!==e.context&&t!==e.fnContext&&n(t=t.$options._scopeId)&&u.setStyleScope(e.elm,t)}function _(e,t,n,r,i,o){for(;r<=i;++r)f(n[r],o,e,t,!1,n,r)}function b(e){var t,r,i=e.data;if(n(i))for(n(t=i.hook)&&n(t=t.destroy)&&t(e),t=0;t<s.destroy.length;++t)s.destroy[t](e);if(n(t=e.children))for(r=0;r<e.children.length;++r)b(e.children[r])}function $(e,t,r){for(;t<=r;++t){var i=e[t];n(i)&&(n(i.tag)?(w(i),b(i)):l(i.elm))}}function w(e,t){if(n(t)||n(e.data)){var r,i=s.remove.length+1;for(n(t)?t.listeners+=i:t=function(e,t){function n(){0==--n.listeners&&l(e)}return n.listeners=t,n}(e.elm,i),n(r=e.componentInstance)&&n(r=r._vnode)&&n(r.data)&&w(r,t),r=0;r<s.remove.length;++r)s.remove[r](e,t);n(r=e.data.hook)&&n(r=r.remove)?r(e,t):t()}else l(e.elm)}function C(e,t,r,i){for(var o=r;o<i;o++){var a=t[o];if(n(a)&&ir(e,a))return o}}function x(e,i,o,a,c,l){if(e!==i){n(i.elm)&&n(a)&&(i=a[c]=me(i));var p=i.elm=e.elm;if(r(e.isAsyncPlaceholder))n(i.asyncFactory.resolved)?O(e.elm,i,o):i.isAsyncPlaceholder=!0;else if(r(i.isStatic)&&r(e.isStatic)&&i.key===e.key&&(r(i.isCloned)||r(i.isOnce)))i.componentInstance=e.componentInstance;else{var d,v=i.data;n(v)&&n(d=v.hook)&&n(d=d.prepatch)&&d(e,i);var h=e.children,y=i.children;if(n(v)&&m(i)){for(d=0;d<s.update.length;++d)s.update[d](e,i);n(d=v.hook)&&n(d=d.update)&&d(e,i)}t(i.text)?n(h)&&n(y)?h!==y&&function(e,r,i,o,a){for(var s,c,l,p=0,d=0,v=r.length-1,h=r[0],m=r[v],y=i.length-1,g=i[0],b=i[y],w=!a;p<=v&&d<=y;)t(h)?h=r[++p]:t(m)?m=r[--v]:ir(h,g)?(x(h,g,o,i,d),h=r[++p],g=i[++d]):ir(m,b)?(x(m,b,o,i,y),m=r[--v],b=i[--y]):ir(h,b)?(x(h,b,o,i,y),w&&u.insertBefore(e,h.elm,u.nextSibling(m.elm)),h=r[++p],b=i[--y]):ir(m,g)?(x(m,g,o,i,d),w&&u.insertBefore(e,m.elm,h.elm),m=r[--v],g=i[++d]):(t(s)&&(s=or(r,p,v)),t(c=n(g.key)?s[g.key]:C(g,r,p,v))?f(g,o,e,h.elm,!1,i,d):ir(l=r[c],g)?(x(l,g,o,i,d),r[c]=void 0,w&&u.insertBefore(e,l.elm,h.elm)):f(g,o,e,h.elm,!1,i,d),g=i[++d]);p>v?_(e,t(i[y+1])?null:i[y+1].elm,i,d,y,o):d>y&&$(r,p,v)}(p,h,y,o,l):n(y)?(n(e.text)&&u.setTextContent(p,""),_(p,null,y,0,y.length-1,o)):n(h)?$(h,0,h.length-1):n(e.text)&&u.setTextContent(p,""):e.text!==i.text&&u.setTextContent(p,i.text),n(v)&&n(d=v.hook)&&n(d=d.postpatch)&&d(e,i)}}}function k(e,t,i){if(r(i)&&n(e.parent))e.parent.data.pendingInsert=t;else for(var o=0;o<t.length;++o)t[o].data.hook.insert(t[o])}var A=p("attrs,class,staticClass,staticStyle,key");function O(e,t,i,o){var a,s=t.tag,c=t.data,u=t.children;if(o=o||c&&c.pre,t.elm=e,r(t.isComment)&&n(t.asyncFactory))return t.isAsyncPlaceholder=!0,!0;if(n(c)&&(n(a=c.hook)&&n(a=a.init)&&a(t,!0),n(a=t.componentInstance)))return d(t,i),!0;if(n(s)){if(n(u))if(e.hasChildNodes())if(n(a=c)&&n(a=a.domProps)&&n(a=a.innerHTML)){if(a!==e.innerHTML)return!1}else{for(var l=!0,f=e.firstChild,p=0;p<u.length;p++){if(!f||!O(f,u[p],i,o)){l=!1;break}f=f.nextSibling}if(!l||f)return!1}else h(t,u,i);if(n(c)){var v=!1;for(var m in c)if(!A(m)){v=!0,y(t,i);break}!v&&c.class&&et(c.class)}}else e.data!==t.text&&(e.data=t.text);return!0}return function(e,i,o,a){if(!t(i)){var c,l=!1,p=[];if(t(e))l=!0,f(i,p);else{var d=n(e.nodeType);if(!d&&ir(e,i))x(e,i,p,null,null,a);else{if(d){if(1===e.nodeType&&e.hasAttribute(L)&&(e.removeAttribute(L),o=!0),r(o)&&O(e,i,p))return k(i,p,!0),e;c=e,e=new pe(u.tagName(c).toLowerCase(),{},[],void 0,c)}var v=e.elm,h=u.parentNode(v);if(f(i,p,v._leaveCb?null:h,u.nextSibling(v)),n(i.parent))for(var y=i.parent,g=m(i);y;){for(var _=0;_<s.destroy.length;++_)s.destroy[_](y);if(y.elm=i.elm,g){for(var w=0;w<s.create.length;++w)s.create[w](nr,y);var C=y.data.hook.insert;if(C.merged)for(var A=1;A<C.fns.length;A++)C.fns[A]()}else tr(y);y=y.parent}n(h)?$([e],0,0):n(e.tag)&&b(e)}}return k(i,p,l),i.elm}n(e)&&b(e)}}({nodeOps:Qn,modules:[mr,xr,ni,oi,mi,z?{create:Ui,activate:Ui,remove:function(e,t){!0!==e.data.show?Ri(e,t):t()}}:{}].concat(pr)});W&&document.addEventListener("selectionchange",function(){var e=document.activeElement;e&&e.vmodel&&Xi(e,"input")});var Vi={inserted:function(e,t,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?it(n,"postpatch",function(){Vi.componentUpdated(e,t,n)}):Ki(e,t,n.context),e._vOptions=[].map.call(e.options,Wi)):("textarea"===n.tag||Xn(e.type))&&(e._vModifiers=t.modifiers,t.modifiers.lazy||(e.addEventListener("compositionstart",Zi),e.addEventListener("compositionend",Gi),e.addEventListener("change",Gi),W&&(e.vmodel=!0)))},componentUpdated:function(e,t,n){if("select"===n.tag){Ki(e,t,n.context);var r=e._vOptions,i=e._vOptions=[].map.call(e.options,Wi);if(i.some(function(e,t){return!N(e,r[t])}))(e.multiple?t.value.some(function(e){return qi(e,i)}):t.value!==t.oldValue&&qi(t.value,i))&&Xi(e,"change")}}};function Ki(e,t,n){Ji(e,t,n),(q||Z)&&setTimeout(function(){Ji(e,t,n)},0)}function Ji(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=e.options.length;s<c;s++)if(a=e.options[s],i)o=j(r,Wi(a))>-1,a.selected!==o&&(a.selected=o);else if(N(Wi(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function qi(e,t){return t.every(function(t){return!N(t,e)})}function Wi(e){return"_value"in e?e._value:e.value}function Zi(e){e.target.composing=!0}function Gi(e){e.target.composing&&(e.target.composing=!1,Xi(e.target,"input"))}function Xi(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Yi(e){return!e.componentInstance||e.data&&e.data.transition?e:Yi(e.componentInstance._vnode)}var Qi={model:Vi,show:{bind:function(e,t,n){var r=t.value,i=(n=Yi(n)).data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,Pi(n,function(){e.style.display=o})):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=Yi(n)).data&&n.data.transition?(n.data.show=!0,r?Pi(n,function(){e.style.display=e.__vOriginalDisplay}):Ri(n,function(){e.style.display="none"})):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},eo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function to(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?to(zt(t.children)):e}function no(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[b(o)]=i[o];return t}function ro(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var io=function(e){return e.tag||Ut(e)},oo=function(e){return"show"===e.name},ao={name:"transition",props:eo,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(io)).length){var r=this.mode,o=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return o;var a=to(o);if(!a)return o;if(this._leaving)return ro(e,o);var s="__transition-"+this._uid+"-";a.key=null==a.key?a.isComment?s+"comment":s+a.tag:i(a.key)?0===String(a.key).indexOf(s)?a.key:s+a.key:a.key;var c=(a.data||(a.data={})).transition=no(this),u=this._vnode,l=to(u);if(a.data.directives&&a.data.directives.some(oo)&&(a.data.show=!0),l&&l.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(a,l)&&!Ut(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=A({},c);if("out-in"===r)return this._leaving=!0,it(f,"afterLeave",function(){t._leaving=!1,t.$forceUpdate()}),ro(e,o);if("in-out"===r){if(Ut(a))return u;var p,d=function(){p()};it(c,"afterEnter",d),it(c,"enterCancelled",d),it(f,"delayLeave",function(e){p=e})}}return o}}},so=A({tag:String,moveClass:String},eo);function co(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function uo(e){e.data.newPos=e.elm.getBoundingClientRect()}function lo(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete so.mode;var fo={Transition:ao,TransitionGroup:{props:so,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=Zt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=no(this),s=0;s<i.length;s++){var c=i[s];c.tag&&null!=c.key&&0!==String(c.key).indexOf("__vlist")&&(o.push(c),n[c.key]=c,(c.data||(c.data={})).transition=a)}if(r){for(var u=[],l=[],f=0;f<r.length;f++){var p=r[f];p.data.transition=a,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?u.push(p):l.push(p)}this.kept=e(t,null,u),this.removed=l}return e(t,null,o)},updated:function(){var e=this.prevChildren,t=this.moveClass||(this.name||"v")+"-move";e.length&&this.hasMove(e[0].elm,t)&&(e.forEach(co),e.forEach(uo),e.forEach(lo),this._reflow=document.body.offsetHeight,e.forEach(function(e){if(e.data.moved){var n=e.elm,r=n.style;Ni(n,t),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(Ai,n._moveCb=function e(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(Ai,e),n._moveCb=null,ji(n,t))})}}))},methods:{hasMove:function(e,t){if(!wi)return!1;if(this._hasMove)return this._hasMove;var n=e.cloneNode();e._transitionClasses&&e._transitionClasses.forEach(function(e){_i(n,e)}),gi(n,t),n.style.display="none",this.$el.appendChild(n);var r=Mi(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};wn.config.mustUseProp=jn,wn.config.isReservedTag=Wn,wn.config.isReservedAttr=En,wn.config.getTagNamespace=Zn,wn.config.isUnknownElement=function(e){if(!z)return!0;if(Wn(e))return!1;if(e=e.toLowerCase(),null!=Gn[e])return Gn[e];var t=document.createElement(e);return e.indexOf("-")>-1?Gn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Gn[e]=/HTMLUnknownElement/.test(t.toString())},A(wn.options.directives,Qi),A(wn.options.components,fo),wn.prototype.__patch__=z?zi:S,wn.prototype.$mount=function(e,t){return function(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=ve),Yt(e,"beforeMount"),r=function(){e._update(e._render(),n)},new fn(e,r,S,{before:function(){e._isMounted&&!e._isDestroyed&&Yt(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Yt(e,"mounted")),e}(this,e=e&&z?Yn(e):void 0,t)},z&&setTimeout(function(){F.devtools&&ne&&ne.emit("init",wn)},0);var po=/\{\{((?:.|\r?\n)+?)\}\}/g,vo=/[-.*+?^${}()|[\]\/\\]/g,ho=g(function(e){var t=e[0].replace(vo,"\\$&"),n=e[1].replace(vo,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")});var mo={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=Fr(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=Ir(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var yo,go={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=Fr(e,"style");n&&(e.staticStyle=JSON.stringify(ai(n)));var r=Ir(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},_o=function(e){return(yo=yo||document.createElement("div")).innerHTML=e,yo.textContent},bo=p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),$o=p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),wo=p("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),Co=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,xo=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,ko="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+P.source+"]*",Ao="((?:"+ko+"\\:)?"+ko+")",Oo=new RegExp("^<"+Ao),So=/^\s*(\/?)>/,To=new RegExp("^<\\/"+Ao+"[^>]*>"),Eo=/^<!DOCTYPE [^>]+>/i,No=/^<!\--/,jo=/^<!\[/,Do=p("script,style,textarea",!0),Lo={},Mo={"&lt;":"<","&gt;":">","&quot;":'"',"&amp;":"&","&#10;":"\n","&#9;":"\t","&#39;":"'"},Io=/&(?:lt|gt|quot|amp|#39);/g,Fo=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Po=p("pre,textarea",!0),Ro=function(e,t){return e&&Po(e)&&"\n"===t[0]};function Ho(e,t){var n=t?Fo:Io;return e.replace(n,function(e){return Mo[e]})}var Bo,Uo,zo,Vo,Ko,Jo,qo,Wo,Zo=/^@|^v-on:/,Go=/^v-|^@|^:|^#/,Xo=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Yo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Qo=/^\(|\)$/g,ea=/^\[.*\]$/,ta=/:(.*)$/,na=/^:|^\.|^v-bind:/,ra=/\.[^.\]]+(?=[^\]]*$)/g,ia=/^v-slot(:|$)|^#/,oa=/[\r\n]/,aa=/\s+/g,sa=g(_o),ca="_empty_";function ua(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:ma(t),rawAttrsMap:{},parent:n,children:[]}}function la(e,t){Bo=t.warn||Sr,Jo=t.isPreTag||T,qo=t.mustUseProp||T,Wo=t.getTagNamespace||T;t.isReservedTag;zo=Tr(t.modules,"transformNode"),Vo=Tr(t.modules,"preTransformNode"),Ko=Tr(t.modules,"postTransformNode"),Uo=t.delimiters;var n,r,i=[],o=!1!==t.preserveWhitespace,a=t.whitespace,s=!1,c=!1;function u(e){if(l(e),s||e.processed||(e=fa(e,t)),i.length||e===n||n.if&&(e.elseif||e.else)&&da(n,{exp:e.elseif,block:e}),r&&!e.forbidden)if(e.elseif||e.else)a=e,(u=function(e){var t=e.length;for(;t--;){if(1===e[t].type)return e[t];e.pop()}}(r.children))&&u.if&&da(u,{exp:a.elseif,block:a});else{if(e.slotScope){var o=e.slotTarget||'"default"';(r.scopedSlots||(r.scopedSlots={}))[o]=e}r.children.push(e),e.parent=r}var a,u;e.children=e.children.filter(function(e){return!e.slotScope}),l(e),e.pre&&(s=!1),Jo(e.tag)&&(c=!1);for(var f=0;f<Ko.length;f++)Ko[f](e,t)}function l(e){if(!c)for(var t;(t=e.children[e.children.length-1])&&3===t.type&&" "===t.text;)e.children.pop()}return function(e,t){for(var n,r,i=[],o=t.expectHTML,a=t.isUnaryTag||T,s=t.canBeLeftOpenTag||T,c=0;e;){if(n=e,r&&Do(r)){var u=0,l=r.toLowerCase(),f=Lo[l]||(Lo[l]=new RegExp("([\\s\\S]*?)(</"+l+"[^>]*>)","i")),p=e.replace(f,function(e,n,r){return u=r.length,Do(l)||"noscript"===l||(n=n.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),Ro(l,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""});c+=e.length-p.length,e=p,A(l,c-u,c)}else{var d=e.indexOf("<");if(0===d){if(No.test(e)){var v=e.indexOf("--\x3e");if(v>=0){t.shouldKeepComment&&t.comment(e.substring(4,v),c,c+v+3),C(v+3);continue}}if(jo.test(e)){var h=e.indexOf("]>");if(h>=0){C(h+2);continue}}var m=e.match(Eo);if(m){C(m[0].length);continue}var y=e.match(To);if(y){var g=c;C(y[0].length),A(y[1],g,c);continue}var _=x();if(_){k(_),Ro(_.tagName,e)&&C(1);continue}}var b=void 0,$=void 0,w=void 0;if(d>=0){for($=e.slice(d);!(To.test($)||Oo.test($)||No.test($)||jo.test($)||(w=$.indexOf("<",1))<0);)d+=w,$=e.slice(d);b=e.substring(0,d)}d<0&&(b=e),b&&C(b.length),t.chars&&b&&t.chars(b,c-b.length,c)}if(e===n){t.chars&&t.chars(e);break}}function C(t){c+=t,e=e.substring(t)}function x(){var t=e.match(Oo);if(t){var n,r,i={tagName:t[1],attrs:[],start:c};for(C(t[0].length);!(n=e.match(So))&&(r=e.match(xo)||e.match(Co));)r.start=c,C(r[0].length),r.end=c,i.attrs.push(r);if(n)return i.unarySlash=n[1],C(n[0].length),i.end=c,i}}function k(e){var n=e.tagName,c=e.unarySlash;o&&("p"===r&&wo(n)&&A(r),s(n)&&r===n&&A(n));for(var u=a(n)||!!c,l=e.attrs.length,f=new Array(l),p=0;p<l;p++){var d=e.attrs[p],v=d[3]||d[4]||d[5]||"",h="a"===n&&"href"===d[1]?t.shouldDecodeNewlinesForHref:t.shouldDecodeNewlines;f[p]={name:d[1],value:Ho(v,h)}}u||(i.push({tag:n,lowerCasedTag:n.toLowerCase(),attrs:f,start:e.start,end:e.end}),r=n),t.start&&t.start(n,f,u,e.start,e.end)}function A(e,n,o){var a,s;if(null==n&&(n=c),null==o&&(o=c),e)for(s=e.toLowerCase(),a=i.length-1;a>=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=i.length-1;u>=a;u--)t.end&&t.end(i[u].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?t.start&&t.start(e,[],!0,n,o):"p"===s&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}A()}(e,{warn:Bo,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,o,a,l,f){var p=r&&r.ns||Wo(e);q&&"svg"===p&&(o=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];ya.test(r.name)||(r.name=r.name.replace(ga,""),t.push(r))}return t}(o));var d,v=ua(e,o,r);p&&(v.ns=p),"style"!==(d=v).tag&&("script"!==d.tag||d.attrsMap.type&&"text/javascript"!==d.attrsMap.type)||te()||(v.forbidden=!0);for(var h=0;h<Vo.length;h++)v=Vo[h](v,t)||v;s||(!function(e){null!=Fr(e,"v-pre")&&(e.pre=!0)}(v),v.pre&&(s=!0)),Jo(v.tag)&&(c=!0),s?function(e){var t=e.attrsList,n=t.length;if(n)for(var r=e.attrs=new Array(n),i=0;i<n;i++)r[i]={name:t[i].name,value:JSON.stringify(t[i].value)},null!=t[i].start&&(r[i].start=t[i].start,r[i].end=t[i].end);else e.pre||(e.plain=!0)}(v):v.processed||(pa(v),function(e){var t=Fr(e,"v-if");if(t)e.if=t,da(e,{exp:t,block:e});else{null!=Fr(e,"v-else")&&(e.else=!0);var n=Fr(e,"v-else-if");n&&(e.elseif=n)}}(v),function(e){null!=Fr(e,"v-once")&&(e.once=!0)}(v)),n||(n=v),a?u(v):(r=v,i.push(v))},end:function(e,t,n){var o=i[i.length-1];i.length-=1,r=i[i.length-1],u(o)},chars:function(e,t,n){if(r&&(!q||"textarea"!==r.tag||r.attrsMap.placeholder!==e)){var i,u,l,f=r.children;if(e=c||e.trim()?"script"===(i=r).tag||"style"===i.tag?e:sa(e):f.length?a?"condense"===a&&oa.test(e)?"":" ":o?" ":"":"")c||"condense"!==a||(e=e.replace(aa," ")),!s&&" "!==e&&(u=function(e,t){var n=t?ho(t):po;if(n.test(e)){for(var r,i,o,a=[],s=[],c=n.lastIndex=0;r=n.exec(e);){(i=r.index)>c&&(s.push(o=e.slice(c,i)),a.push(JSON.stringify(o)));var u=Ar(r[1].trim());a.push("_s("+u+")"),s.push({"@binding":u}),c=i+r[0].length}return c<e.length&&(s.push(o=e.slice(c)),a.push(JSON.stringify(o))),{expression:a.join("+"),tokens:s}}}(e,Uo))?l={type:2,expression:u.expression,tokens:u.tokens,text:e}:" "===e&&f.length&&" "===f[f.length-1].text||(l={type:3,text:e}),l&&f.push(l)}},comment:function(e,t,n){if(r){var i={type:3,text:e,isComment:!0};r.children.push(i)}}}),n}function fa(e,t){var n,r;(r=Ir(n=e,"key"))&&(n.key=r),e.plain=!e.key&&!e.scopedSlots&&!e.attrsList.length,function(e){var t=Ir(e,"ref");t&&(e.ref=t,e.refInFor=function(e){var t=e;for(;t;){if(void 0!==t.for)return!0;t=t.parent}return!1}(e))}(e),function(e){var t;"template"===e.tag?(t=Fr(e,"scope"),e.slotScope=t||Fr(e,"slot-scope")):(t=Fr(e,"slot-scope"))&&(e.slotScope=t);var n=Ir(e,"slot");n&&(e.slotTarget='""'===n?'"default"':n,e.slotTargetDynamic=!(!e.attrsMap[":slot"]&&!e.attrsMap["v-bind:slot"]),"template"===e.tag||e.slotScope||Nr(e,"slot",n,function(e,t){return e.rawAttrsMap[":"+t]||e.rawAttrsMap["v-bind:"+t]||e.rawAttrsMap[t]}(e,"slot")));if("template"===e.tag){var r=Pr(e,ia);if(r){var i=va(r),o=i.name,a=i.dynamic;e.slotTarget=o,e.slotTargetDynamic=a,e.slotScope=r.value||ca}}else{var s=Pr(e,ia);if(s){var c=e.scopedSlots||(e.scopedSlots={}),u=va(s),l=u.name,f=u.dynamic,p=c[l]=ua("template",[],e);p.slotTarget=l,p.slotTargetDynamic=f,p.children=e.children.filter(function(e){if(!e.slotScope)return e.parent=p,!0}),p.slotScope=s.value||ca,e.children=[],e.plain=!1}}}(e),function(e){"slot"===e.tag&&(e.slotName=Ir(e,"name"))}(e),function(e){var t;(t=Ir(e,"is"))&&(e.component=t);null!=Fr(e,"inline-template")&&(e.inlineTemplate=!0)}(e);for(var i=0;i<zo.length;i++)e=zo[i](e,t)||e;return function(e){var t,n,r,i,o,a,s,c,u=e.attrsList;for(t=0,n=u.length;t<n;t++)if(r=i=u[t].name,o=u[t].value,Go.test(r))if(e.hasBindings=!0,(a=ha(r.replace(Go,"")))&&(r=r.replace(ra,"")),na.test(r))r=r.replace(na,""),o=Ar(o),(c=ea.test(r))&&(r=r.slice(1,-1)),a&&(a.prop&&!c&&"innerHtml"===(r=b(r))&&(r="innerHTML"),a.camel&&!c&&(r=b(r)),a.sync&&(s=Br(o,"$event"),c?Mr(e,'"update:"+('+r+")",s,null,!1,0,u[t],!0):(Mr(e,"update:"+b(r),s,null,!1,0,u[t]),C(r)!==b(r)&&Mr(e,"update:"+C(r),s,null,!1,0,u[t])))),a&&a.prop||!e.component&&qo(e.tag,e.attrsMap.type,r)?Er(e,r,o,u[t],c):Nr(e,r,o,u[t],c);else if(Zo.test(r))r=r.replace(Zo,""),(c=ea.test(r))&&(r=r.slice(1,-1)),Mr(e,r,o,a,!1,0,u[t],c);else{var l=(r=r.replace(Go,"")).match(ta),f=l&&l[1];c=!1,f&&(r=r.slice(0,-(f.length+1)),ea.test(f)&&(f=f.slice(1,-1),c=!0)),Dr(e,r,i,o,f,c,a,u[t])}else Nr(e,r,JSON.stringify(o),u[t]),!e.component&&"muted"===r&&qo(e.tag,e.attrsMap.type,r)&&Er(e,r,"true",u[t])}(e),e}function pa(e){var t;if(t=Fr(e,"v-for")){var n=function(e){var t=e.match(Xo);if(!t)return;var n={};n.for=t[2].trim();var r=t[1].trim().replace(Qo,""),i=r.match(Yo);i?(n.alias=r.replace(Yo,"").trim(),n.iterator1=i[1].trim(),i[2]&&(n.iterator2=i[2].trim())):n.alias=r;return n}(t);n&&A(e,n)}}function da(e,t){e.ifConditions||(e.ifConditions=[]),e.ifConditions.push(t)}function va(e){var t=e.name.replace(ia,"");return t||"#"!==e.name[0]&&(t="default"),ea.test(t)?{name:t.slice(1,-1),dynamic:!0}:{name:'"'+t+'"',dynamic:!1}}function ha(e){var t=e.match(ra);if(t){var n={};return t.forEach(function(e){n[e.slice(1)]=!0}),n}}function ma(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n].name]=e[n].value;return t}var ya=/^xmlns:NS\d+/,ga=/^NS\d+:/;function _a(e){return ua(e.tag,e.attrsList.slice(),e.parent)}var ba=[mo,go,{preTransformNode:function(e,t){if("input"===e.tag){var n,r=e.attrsMap;if(!r["v-model"])return;if((r[":type"]||r["v-bind:type"])&&(n=Ir(e,"type")),r.type||n||!r["v-bind"]||(n="("+r["v-bind"]+").type"),n){var i=Fr(e,"v-if",!0),o=i?"&&("+i+")":"",a=null!=Fr(e,"v-else",!0),s=Fr(e,"v-else-if",!0),c=_a(e);pa(c),jr(c,"type","checkbox"),fa(c,t),c.processed=!0,c.if="("+n+")==='checkbox'"+o,da(c,{exp:c.if,block:c});var u=_a(e);Fr(u,"v-for",!0),jr(u,"type","radio"),fa(u,t),da(c,{exp:"("+n+")==='radio'"+o,block:u});var l=_a(e);return Fr(l,"v-for",!0),jr(l,":type",n),fa(l,t),da(c,{exp:i,block:l}),a?c.else=!0:s&&(c.elseif=s),c}}}}];var $a,wa,Ca={expectHTML:!0,modules:ba,directives:{model:function(e,t,n){var r=t.value,i=t.modifiers,o=e.tag,a=e.attrsMap.type;if(e.component)return Hr(e,r,i),!1;if("select"===o)!function(e,t,n){var r='var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(n&&n.number?"_n(val)":"val")+"});";r=r+" "+Br(t,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),Mr(e,"change",r,null,!0)}(e,r,i);else if("input"===o&&"checkbox"===a)!function(e,t,n){var r=n&&n.number,i=Ir(e,"value")||"null",o=Ir(e,"true-value")||"true",a=Ir(e,"false-value")||"false";Er(e,"checked","Array.isArray("+t+")?_i("+t+","+i+")>-1"+("true"===o?":("+t+")":":_q("+t+","+o+")")),Mr(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Br(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Br(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Br(t,"$$c")+"}",null,!0)}(e,r,i);else if("input"===o&&"radio"===a)!function(e,t,n){var r=n&&n.number,i=Ir(e,"value")||"null";Er(e,"checked","_q("+t+","+(i=r?"_n("+i+")":i)+")"),Mr(e,"change",Br(t,i),null,!0)}(e,r,i);else if("input"===o||"textarea"===o)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,u=o?"change":"range"===r?Wr:"input",l="$event.target.value";s&&(l="$event.target.value.trim()"),a&&(l="_n("+l+")");var f=Br(t,l);c&&(f="if($event.target.composing)return;"+f),Er(e,"value","("+t+")"),Mr(e,u,f,null,!0),(s||a)&&Mr(e,"blur","$forceUpdate()")}(e,r,i);else if(!F.isReservedTag(o))return Hr(e,r,i),!1;return!0},text:function(e,t){t.value&&Er(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&Er(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:bo,mustUseProp:jn,canBeLeftOpenTag:$o,isReservedTag:Wn,getTagNamespace:Zn,staticKeys:function(e){return e.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(",")}(ba)},xa=g(function(e){return p("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))});function ka(e,t){e&&($a=xa(t.staticKeys||""),wa=t.isReservedTag||T,function e(t){t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||d(e.tag)||!wa(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every($a)))}(t);if(1===t.type){if(!wa(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n<r;n++){var i=t.children[n];e(i),i.static||(t.static=!1)}if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++){var s=t.ifConditions[o].block;e(s),s.static||(t.static=!1)}}}(e),function e(t,n){if(1===t.type){if((t.static||t.once)&&(t.staticInFor=n),t.static&&t.children.length&&(1!==t.children.length||3!==t.children[0].type))return void(t.staticRoot=!0);if(t.staticRoot=!1,t.children)for(var r=0,i=t.children.length;r<i;r++)e(t.children[r],n||!!t.for);if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++)e(t.ifConditions[o].block,n)}}(e,!1))}var Aa=/^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/,Oa=/\([^)]*?\);*$/,Sa=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Ta={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ea={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Na=function(e){return"if("+e+")return null;"},ja={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Na("$event.target !== $event.currentTarget"),ctrl:Na("!$event.ctrlKey"),shift:Na("!$event.shiftKey"),alt:Na("!$event.altKey"),meta:Na("!$event.metaKey"),left:Na("'button' in $event && $event.button !== 0"),middle:Na("'button' in $event && $event.button !== 1"),right:Na("'button' in $event && $event.button !== 2")};function Da(e,t){var n=t?"nativeOn:":"on:",r="",i="";for(var o in e){var a=La(e[o]);e[o]&&e[o].dynamic?i+=o+","+a+",":r+='"'+o+'":'+a+","}return r="{"+r.slice(0,-1)+"}",i?n+"_d("+r+",["+i.slice(0,-1)+"])":n+r}function La(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return La(e)}).join(",")+"]";var t=Sa.test(e.value),n=Aa.test(e.value),r=Sa.test(e.value.replace(Oa,""));if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(ja[s])o+=ja[s],Ta[s]&&a.push(s);else if("exact"===s){var c=e.modifiers;o+=Na(["ctrl","shift","alt","meta"].filter(function(e){return!c[e]}).map(function(e){return"$event."+e+"Key"}).join("||"))}else a.push(s);return a.length&&(i+=function(e){return"if(!$event.type.indexOf('key')&&"+e.map(Ma).join("&&")+")return null;"}(a)),o&&(i+=o),"function($event){"+i+(t?"return "+e.value+"($event)":n?"return ("+e.value+")($event)":r?"return "+e.value:e.value)+"}"}return t||n?e.value:"function($event){"+(r?"return "+e.value:e.value)+"}"}function Ma(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=Ta[e],r=Ea[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var Ia={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(n){return"_b("+n+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:S},Fa=function(e){this.options=e,this.warn=e.warn||Sr,this.transforms=Tr(e.modules,"transformCode"),this.dataGenFns=Tr(e.modules,"genData"),this.directives=A(A({},Ia),e.directives);var t=e.isReservedTag||T;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Pa(e,t){var n=new Fa(t);return{render:"with(this){return "+(e?Ra(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function Ra(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Ha(e,t);if(e.once&&!e.onceProcessed)return Ba(e,t);if(e.for&&!e.forProcessed)return za(e,t);if(e.if&&!e.ifProcessed)return Ua(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=qa(e,t),i="_t("+n+(r?","+r:""),o=e.attrs||e.dynamicAttrs?Ga((e.attrs||[]).concat(e.dynamicAttrs||[]).map(function(e){return{name:b(e.name),value:e.value,dynamic:e.dynamic}})):null,a=e.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(e,t);var n;if(e.component)n=function(e,t,n){var r=t.inlineTemplate?null:qa(t,n,!0);return"_c("+e+","+Va(t,n)+(r?","+r:"")+")"}(e.component,e,t);else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=Va(e,t));var i=e.inlineTemplate?null:qa(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o<t.transforms.length;o++)n=t.transforms[o](e,n);return n}return qa(e,t)||"void 0"}function Ha(e,t){e.staticProcessed=!0;var n=t.pre;return e.pre&&(t.pre=e.pre),t.staticRenderFns.push("with(this){return "+Ra(e,t)+"}"),t.pre=n,"_m("+(t.staticRenderFns.length-1)+(e.staticInFor?",true":"")+")"}function Ba(e,t){if(e.onceProcessed=!0,e.if&&!e.ifProcessed)return Ua(e,t);if(e.staticInFor){for(var n="",r=e.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?"_o("+Ra(e,t)+","+t.onceId+++","+n+")":Ra(e,t)}return Ha(e,t)}function Ua(e,t,n,r){return e.ifProcessed=!0,function e(t,n,r,i){if(!t.length)return i||"_e()";var o=t.shift();return o.exp?"("+o.exp+")?"+a(o.block)+":"+e(t,n,r,i):""+a(o.block);function a(e){return r?r(e,n):e.once?Ba(e,n):Ra(e,n)}}(e.ifConditions.slice(),t,n,r)}function za(e,t,n,r){var i=e.for,o=e.alias,a=e.iterator1?","+e.iterator1:"",s=e.iterator2?","+e.iterator2:"";return e.forProcessed=!0,(r||"_l")+"(("+i+"),function("+o+a+s+"){return "+(n||Ra)(e,t)+"})"}function Va(e,t){var n="{",r=function(e,t){var n=e.directives;if(!n)return;var r,i,o,a,s="directives:[",c=!1;for(r=0,i=n.length;r<i;r++){o=n[r],a=!0;var u=t.directives[o.name];u&&(a=!!u(e,o,t.warn)),a&&(c=!0,s+='{name:"'+o.name+'",rawName:"'+o.rawName+'"'+(o.value?",value:("+o.value+"),expression:"+JSON.stringify(o.value):"")+(o.arg?",arg:"+(o.isDynamicArg?o.arg:'"'+o.arg+'"'):"")+(o.modifiers?",modifiers:"+JSON.stringify(o.modifiers):"")+"},")}if(c)return s.slice(0,-1)+"]"}(e,t);r&&(n+=r+","),e.key&&(n+="key:"+e.key+","),e.ref&&(n+="ref:"+e.ref+","),e.refInFor&&(n+="refInFor:true,"),e.pre&&(n+="pre:true,"),e.component&&(n+='tag:"'+e.tag+'",');for(var i=0;i<t.dataGenFns.length;i++)n+=t.dataGenFns[i](e);if(e.attrs&&(n+="attrs:"+Ga(e.attrs)+","),e.props&&(n+="domProps:"+Ga(e.props)+","),e.events&&(n+=Da(e.events,!1)+","),e.nativeEvents&&(n+=Da(e.nativeEvents,!0)+","),e.slotTarget&&!e.slotScope&&(n+="slot:"+e.slotTarget+","),e.scopedSlots&&(n+=function(e,t,n){var r=e.for||Object.keys(t).some(function(e){var n=t[e];return n.slotTargetDynamic||n.if||n.for||Ka(n)}),i=!!e.if;if(!r)for(var o=e.parent;o;){if(o.slotScope&&o.slotScope!==ca||o.for){r=!0;break}o.if&&(i=!0),o=o.parent}var a=Object.keys(t).map(function(e){return Ja(t[e],n)}).join(",");return"scopedSlots:_u(["+a+"]"+(r?",null,true":"")+(!r&&i?",null,false,"+function(e){var t=5381,n=e.length;for(;n;)t=33*t^e.charCodeAt(--n);return t>>>0}(a):"")+")"}(e,e.scopedSlots,t)+","),e.model&&(n+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var o=function(e,t){var n=e.children[0];if(n&&1===n.type){var r=Pa(n,t.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map(function(e){return"function(){"+e+"}"}).join(",")+"]}"}}(e,t);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",e.dynamicAttrs&&(n="_b("+n+',"'+e.tag+'",'+Ga(e.dynamicAttrs)+")"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function Ka(e){return 1===e.type&&("slot"===e.tag||e.children.some(Ka))}function Ja(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return Ua(e,t,Ja,"null");if(e.for&&!e.forProcessed)return za(e,t,Ja);var r=e.slotScope===ca?"":String(e.slotScope),i="function("+r+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(qa(e,t)||"undefined")+":undefined":qa(e,t)||"undefined":Ra(e,t))+"}",o=r?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+o+"}"}function qa(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?t.maybeComponent(a)?",1":",0":"";return""+(r||Ra)(a,t)+s}var c=n?function(e,t){for(var n=0,r=0;r<e.length;r++){var i=e[r];if(1===i.type){if(Wa(i)||i.ifConditions&&i.ifConditions.some(function(e){return Wa(e.block)})){n=2;break}(t(i)||i.ifConditions&&i.ifConditions.some(function(e){return t(e.block)}))&&(n=1)}}return n}(o,t.maybeComponent):0,u=i||Za;return"["+o.map(function(e){return u(e,t)}).join(",")+"]"+(c?","+c:"")}}function Wa(e){return void 0!==e.for||"template"===e.tag||"slot"===e.tag}function Za(e,t){return 1===e.type?Ra(e,t):3===e.type&&e.isComment?(r=e,"_e("+JSON.stringify(r.text)+")"):"_v("+(2===(n=e).type?n.expression:Xa(JSON.stringify(n.text)))+")";var n,r}function Ga(e){for(var t="",n="",r=0;r<e.length;r++){var i=e[r],o=Xa(i.value);i.dynamic?n+=i.name+","+o+",":t+='"'+i.name+'":'+o+","}return t="{"+t.slice(0,-1)+"}",n?"_d("+t+",["+n.slice(0,-1)+"])":t}function Xa(e){return e.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b");function Ya(e,t){try{return new Function(e)}catch(n){return t.push({err:n,code:e}),S}}function Qa(e){var t=Object.create(null);return function(n,r,i){(r=A({},r)).warn;delete r.warn;var o=r.delimiters?String(r.delimiters)+n:n;if(t[o])return t[o];var a=e(n,r),s={},c=[];return s.render=Ya(a.render,c),s.staticRenderFns=a.staticRenderFns.map(function(e){return Ya(e,c)}),t[o]=s}}var es,ts,ns=(es=function(e,t){var n=la(e.trim(),t);!1!==t.optimize&&ka(n,t);var r=Pa(n,t);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}},function(e){function t(t,n){var r=Object.create(e),i=[],o=[];if(n)for(var a in n.modules&&(r.modules=(e.modules||[]).concat(n.modules)),n.directives&&(r.directives=A(Object.create(e.directives||null),n.directives)),n)"modules"!==a&&"directives"!==a&&(r[a]=n[a]);r.warn=function(e,t,n){(n?o:i).push(e)};var s=es(t.trim(),r);return s.errors=i,s.tips=o,s}return{compile:t,compileToFunctions:Qa(t)}})(Ca),rs=(ns.compile,ns.compileToFunctions);function is(e){return(ts=ts||document.createElement("div")).innerHTML=e?'<a href="\n"/>':'<div a="\n"/>',ts.innerHTML.indexOf("&#10;")>0}var os=!!z&&is(!1),as=!!z&&is(!0),ss=g(function(e){var t=Yn(e);return t&&t.innerHTML}),cs=wn.prototype.$mount;return wn.prototype.$mount=function(e,t){if((e=e&&Yn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=ss(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){var i=rs(r,{outputSourceRange:!1,shouldDecodeNewlines:os,shouldDecodeNewlinesForHref:as,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return cs.call(this,e,t)},wn.compile=rs,wn});
@@ -0,0 +1,3061 @@
1
+ /*!
2
+ * vue-router v3.4.3
3
+ * (c) 2020 Evan You
4
+ * @license MIT
5
+ */
6
+ (function (global, factory) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
+ typeof define === 'function' && define.amd ? define(factory) :
9
+ (global = global || self, global.VueRouter = factory());
10
+ }(this, function () { 'use strict';
11
+
12
+ /* */
13
+
14
+ function assert (condition, message) {
15
+ if (!condition) {
16
+ throw new Error(("[vue-router] " + message))
17
+ }
18
+ }
19
+
20
+ function warn (condition, message) {
21
+ if ( !condition) {
22
+ typeof console !== 'undefined' && console.warn(("[vue-router] " + message));
23
+ }
24
+ }
25
+
26
+ function extend (a, b) {
27
+ for (var key in b) {
28
+ a[key] = b[key];
29
+ }
30
+ return a
31
+ }
32
+
33
+ var View = {
34
+ name: 'RouterView',
35
+ functional: true,
36
+ props: {
37
+ name: {
38
+ type: String,
39
+ default: 'default'
40
+ }
41
+ },
42
+ render: function render (_, ref) {
43
+ var props = ref.props;
44
+ var children = ref.children;
45
+ var parent = ref.parent;
46
+ var data = ref.data;
47
+
48
+ // used by devtools to display a router-view badge
49
+ data.routerView = true;
50
+
51
+ // directly use parent context's createElement() function
52
+ // so that components rendered by router-view can resolve named slots
53
+ var h = parent.$createElement;
54
+ var name = props.name;
55
+ var route = parent.$route;
56
+ var cache = parent._routerViewCache || (parent._routerViewCache = {});
57
+
58
+ // determine current view depth, also check to see if the tree
59
+ // has been toggled inactive but kept-alive.
60
+ var depth = 0;
61
+ var inactive = false;
62
+ while (parent && parent._routerRoot !== parent) {
63
+ var vnodeData = parent.$vnode ? parent.$vnode.data : {};
64
+ if (vnodeData.routerView) {
65
+ depth++;
66
+ }
67
+ if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {
68
+ inactive = true;
69
+ }
70
+ parent = parent.$parent;
71
+ }
72
+ data.routerViewDepth = depth;
73
+
74
+ // render previous view if the tree is inactive and kept-alive
75
+ if (inactive) {
76
+ var cachedData = cache[name];
77
+ var cachedComponent = cachedData && cachedData.component;
78
+ if (cachedComponent) {
79
+ // #2301
80
+ // pass props
81
+ if (cachedData.configProps) {
82
+ fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);
83
+ }
84
+ return h(cachedComponent, data, children)
85
+ } else {
86
+ // render previous empty view
87
+ return h()
88
+ }
89
+ }
90
+
91
+ var matched = route.matched[depth];
92
+ var component = matched && matched.components[name];
93
+
94
+ // render empty node if no matched route or no config component
95
+ if (!matched || !component) {
96
+ cache[name] = null;
97
+ return h()
98
+ }
99
+
100
+ // cache component
101
+ cache[name] = { component: component };
102
+
103
+ // attach instance registration hook
104
+ // this will be called in the instance's injected lifecycle hooks
105
+ data.registerRouteInstance = function (vm, val) {
106
+ // val could be undefined for unregistration
107
+ var current = matched.instances[name];
108
+ if (
109
+ (val && current !== vm) ||
110
+ (!val && current === vm)
111
+ ) {
112
+ matched.instances[name] = val;
113
+ }
114
+ }
115
+
116
+ // also register instance in prepatch hook
117
+ // in case the same component instance is reused across different routes
118
+ ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {
119
+ matched.instances[name] = vnode.componentInstance;
120
+ };
121
+
122
+ // register instance in init hook
123
+ // in case kept-alive component be actived when routes changed
124
+ data.hook.init = function (vnode) {
125
+ if (vnode.data.keepAlive &&
126
+ vnode.componentInstance &&
127
+ vnode.componentInstance !== matched.instances[name]
128
+ ) {
129
+ matched.instances[name] = vnode.componentInstance;
130
+ }
131
+ };
132
+
133
+ var configProps = matched.props && matched.props[name];
134
+ // save route and configProps in cache
135
+ if (configProps) {
136
+ extend(cache[name], {
137
+ route: route,
138
+ configProps: configProps
139
+ });
140
+ fillPropsinData(component, data, route, configProps);
141
+ }
142
+
143
+ return h(component, data, children)
144
+ }
145
+ };
146
+
147
+ function fillPropsinData (component, data, route, configProps) {
148
+ // resolve props
149
+ var propsToPass = data.props = resolveProps(route, configProps);
150
+ if (propsToPass) {
151
+ // clone to prevent mutation
152
+ propsToPass = data.props = extend({}, propsToPass);
153
+ // pass non-declared props as attrs
154
+ var attrs = data.attrs = data.attrs || {};
155
+ for (var key in propsToPass) {
156
+ if (!component.props || !(key in component.props)) {
157
+ attrs[key] = propsToPass[key];
158
+ delete propsToPass[key];
159
+ }
160
+ }
161
+ }
162
+ }
163
+
164
+ function resolveProps (route, config) {
165
+ switch (typeof config) {
166
+ case 'undefined':
167
+ return
168
+ case 'object':
169
+ return config
170
+ case 'function':
171
+ return config(route)
172
+ case 'boolean':
173
+ return config ? route.params : undefined
174
+ default:
175
+ {
176
+ warn(
177
+ false,
178
+ "props in \"" + (route.path) + "\" is a " + (typeof config) + ", " +
179
+ "expecting an object, function or boolean."
180
+ );
181
+ }
182
+ }
183
+ }
184
+
185
+ /* */
186
+
187
+ var encodeReserveRE = /[!'()*]/g;
188
+ var encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };
189
+ var commaRE = /%2C/g;
190
+
191
+ // fixed encodeURIComponent which is more conformant to RFC3986:
192
+ // - escapes [!'()*]
193
+ // - preserve commas
194
+ var encode = function (str) { return encodeURIComponent(str)
195
+ .replace(encodeReserveRE, encodeReserveReplacer)
196
+ .replace(commaRE, ','); };
197
+
198
+ var decode = decodeURIComponent;
199
+
200
+ function resolveQuery (
201
+ query,
202
+ extraQuery,
203
+ _parseQuery
204
+ ) {
205
+ if ( extraQuery === void 0 ) extraQuery = {};
206
+
207
+ var parse = _parseQuery || parseQuery;
208
+ var parsedQuery;
209
+ try {
210
+ parsedQuery = parse(query || '');
211
+ } catch (e) {
212
+ warn(false, e.message);
213
+ parsedQuery = {};
214
+ }
215
+ for (var key in extraQuery) {
216
+ var value = extraQuery[key];
217
+ parsedQuery[key] = Array.isArray(value)
218
+ ? value.map(castQueryParamValue)
219
+ : castQueryParamValue(value);
220
+ }
221
+ return parsedQuery
222
+ }
223
+
224
+ var castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };
225
+
226
+ function parseQuery (query) {
227
+ var res = {};
228
+
229
+ query = query.trim().replace(/^(\?|#|&)/, '');
230
+
231
+ if (!query) {
232
+ return res
233
+ }
234
+
235
+ query.split('&').forEach(function (param) {
236
+ var parts = param.replace(/\+/g, ' ').split('=');
237
+ var key = decode(parts.shift());
238
+ var val = parts.length > 0 ? decode(parts.join('=')) : null;
239
+
240
+ if (res[key] === undefined) {
241
+ res[key] = val;
242
+ } else if (Array.isArray(res[key])) {
243
+ res[key].push(val);
244
+ } else {
245
+ res[key] = [res[key], val];
246
+ }
247
+ });
248
+
249
+ return res
250
+ }
251
+
252
+ function stringifyQuery (obj) {
253
+ var res = obj
254
+ ? Object.keys(obj)
255
+ .map(function (key) {
256
+ var val = obj[key];
257
+
258
+ if (val === undefined) {
259
+ return ''
260
+ }
261
+
262
+ if (val === null) {
263
+ return encode(key)
264
+ }
265
+
266
+ if (Array.isArray(val)) {
267
+ var result = [];
268
+ val.forEach(function (val2) {
269
+ if (val2 === undefined) {
270
+ return
271
+ }
272
+ if (val2 === null) {
273
+ result.push(encode(key));
274
+ } else {
275
+ result.push(encode(key) + '=' + encode(val2));
276
+ }
277
+ });
278
+ return result.join('&')
279
+ }
280
+
281
+ return encode(key) + '=' + encode(val)
282
+ })
283
+ .filter(function (x) { return x.length > 0; })
284
+ .join('&')
285
+ : null;
286
+ return res ? ("?" + res) : ''
287
+ }
288
+
289
+ /* */
290
+
291
+ var trailingSlashRE = /\/?$/;
292
+
293
+ function createRoute (
294
+ record,
295
+ location,
296
+ redirectedFrom,
297
+ router
298
+ ) {
299
+ var stringifyQuery = router && router.options.stringifyQuery;
300
+
301
+ var query = location.query || {};
302
+ try {
303
+ query = clone(query);
304
+ } catch (e) {}
305
+
306
+ var route = {
307
+ name: location.name || (record && record.name),
308
+ meta: (record && record.meta) || {},
309
+ path: location.path || '/',
310
+ hash: location.hash || '',
311
+ query: query,
312
+ params: location.params || {},
313
+ fullPath: getFullPath(location, stringifyQuery),
314
+ matched: record ? formatMatch(record) : []
315
+ };
316
+ if (redirectedFrom) {
317
+ route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);
318
+ }
319
+ return Object.freeze(route)
320
+ }
321
+
322
+ function clone (value) {
323
+ if (Array.isArray(value)) {
324
+ return value.map(clone)
325
+ } else if (value && typeof value === 'object') {
326
+ var res = {};
327
+ for (var key in value) {
328
+ res[key] = clone(value[key]);
329
+ }
330
+ return res
331
+ } else {
332
+ return value
333
+ }
334
+ }
335
+
336
+ // the starting route that represents the initial state
337
+ var START = createRoute(null, {
338
+ path: '/'
339
+ });
340
+
341
+ function formatMatch (record) {
342
+ var res = [];
343
+ while (record) {
344
+ res.unshift(record);
345
+ record = record.parent;
346
+ }
347
+ return res
348
+ }
349
+
350
+ function getFullPath (
351
+ ref,
352
+ _stringifyQuery
353
+ ) {
354
+ var path = ref.path;
355
+ var query = ref.query; if ( query === void 0 ) query = {};
356
+ var hash = ref.hash; if ( hash === void 0 ) hash = '';
357
+
358
+ var stringify = _stringifyQuery || stringifyQuery;
359
+ return (path || '/') + stringify(query) + hash
360
+ }
361
+
362
+ function isSameRoute (a, b) {
363
+ if (b === START) {
364
+ return a === b
365
+ } else if (!b) {
366
+ return false
367
+ } else if (a.path && b.path) {
368
+ return (
369
+ a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&
370
+ a.hash === b.hash &&
371
+ isObjectEqual(a.query, b.query)
372
+ )
373
+ } else if (a.name && b.name) {
374
+ return (
375
+ a.name === b.name &&
376
+ a.hash === b.hash &&
377
+ isObjectEqual(a.query, b.query) &&
378
+ isObjectEqual(a.params, b.params)
379
+ )
380
+ } else {
381
+ return false
382
+ }
383
+ }
384
+
385
+ function isObjectEqual (a, b) {
386
+ if ( a === void 0 ) a = {};
387
+ if ( b === void 0 ) b = {};
388
+
389
+ // handle null value #1566
390
+ if (!a || !b) { return a === b }
391
+ var aKeys = Object.keys(a);
392
+ var bKeys = Object.keys(b);
393
+ if (aKeys.length !== bKeys.length) {
394
+ return false
395
+ }
396
+ return aKeys.every(function (key) {
397
+ var aVal = a[key];
398
+ var bVal = b[key];
399
+ // query values can be null and undefined
400
+ if (aVal == null || bVal == null) { return aVal === bVal }
401
+ // check nested equality
402
+ if (typeof aVal === 'object' && typeof bVal === 'object') {
403
+ return isObjectEqual(aVal, bVal)
404
+ }
405
+ return String(aVal) === String(bVal)
406
+ })
407
+ }
408
+
409
+ function isIncludedRoute (current, target) {
410
+ return (
411
+ current.path.replace(trailingSlashRE, '/').indexOf(
412
+ target.path.replace(trailingSlashRE, '/')
413
+ ) === 0 &&
414
+ (!target.hash || current.hash === target.hash) &&
415
+ queryIncludes(current.query, target.query)
416
+ )
417
+ }
418
+
419
+ function queryIncludes (current, target) {
420
+ for (var key in target) {
421
+ if (!(key in current)) {
422
+ return false
423
+ }
424
+ }
425
+ return true
426
+ }
427
+
428
+ /* */
429
+
430
+ function resolvePath (
431
+ relative,
432
+ base,
433
+ append
434
+ ) {
435
+ var firstChar = relative.charAt(0);
436
+ if (firstChar === '/') {
437
+ return relative
438
+ }
439
+
440
+ if (firstChar === '?' || firstChar === '#') {
441
+ return base + relative
442
+ }
443
+
444
+ var stack = base.split('/');
445
+
446
+ // remove trailing segment if:
447
+ // - not appending
448
+ // - appending to trailing slash (last segment is empty)
449
+ if (!append || !stack[stack.length - 1]) {
450
+ stack.pop();
451
+ }
452
+
453
+ // resolve relative path
454
+ var segments = relative.replace(/^\//, '').split('/');
455
+ for (var i = 0; i < segments.length; i++) {
456
+ var segment = segments[i];
457
+ if (segment === '..') {
458
+ stack.pop();
459
+ } else if (segment !== '.') {
460
+ stack.push(segment);
461
+ }
462
+ }
463
+
464
+ // ensure leading slash
465
+ if (stack[0] !== '') {
466
+ stack.unshift('');
467
+ }
468
+
469
+ return stack.join('/')
470
+ }
471
+
472
+ function parsePath (path) {
473
+ var hash = '';
474
+ var query = '';
475
+
476
+ var hashIndex = path.indexOf('#');
477
+ if (hashIndex >= 0) {
478
+ hash = path.slice(hashIndex);
479
+ path = path.slice(0, hashIndex);
480
+ }
481
+
482
+ var queryIndex = path.indexOf('?');
483
+ if (queryIndex >= 0) {
484
+ query = path.slice(queryIndex + 1);
485
+ path = path.slice(0, queryIndex);
486
+ }
487
+
488
+ return {
489
+ path: path,
490
+ query: query,
491
+ hash: hash
492
+ }
493
+ }
494
+
495
+ function cleanPath (path) {
496
+ return path.replace(/\/\//g, '/')
497
+ }
498
+
499
+ var isarray = Array.isArray || function (arr) {
500
+ return Object.prototype.toString.call(arr) == '[object Array]';
501
+ };
502
+
503
+ /**
504
+ * Expose `pathToRegexp`.
505
+ */
506
+ var pathToRegexp_1 = pathToRegexp;
507
+ var parse_1 = parse;
508
+ var compile_1 = compile;
509
+ var tokensToFunction_1 = tokensToFunction;
510
+ var tokensToRegExp_1 = tokensToRegExp;
511
+
512
+ /**
513
+ * The main path matching regexp utility.
514
+ *
515
+ * @type {RegExp}
516
+ */
517
+ var PATH_REGEXP = new RegExp([
518
+ // Match escaped characters that would otherwise appear in future matches.
519
+ // This allows the user to escape special characters that won't transform.
520
+ '(\\\\.)',
521
+ // Match Express-style parameters and un-named parameters with a prefix
522
+ // and optional suffixes. Matches appear as:
523
+ //
524
+ // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined]
525
+ // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined]
526
+ // "/*" => ["/", undefined, undefined, undefined, undefined, "*"]
527
+ '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))'
528
+ ].join('|'), 'g');
529
+
530
+ /**
531
+ * Parse a string for the raw tokens.
532
+ *
533
+ * @param {string} str
534
+ * @param {Object=} options
535
+ * @return {!Array}
536
+ */
537
+ function parse (str, options) {
538
+ var tokens = [];
539
+ var key = 0;
540
+ var index = 0;
541
+ var path = '';
542
+ var defaultDelimiter = options && options.delimiter || '/';
543
+ var res;
544
+
545
+ while ((res = PATH_REGEXP.exec(str)) != null) {
546
+ var m = res[0];
547
+ var escaped = res[1];
548
+ var offset = res.index;
549
+ path += str.slice(index, offset);
550
+ index = offset + m.length;
551
+
552
+ // Ignore already escaped sequences.
553
+ if (escaped) {
554
+ path += escaped[1];
555
+ continue
556
+ }
557
+
558
+ var next = str[index];
559
+ var prefix = res[2];
560
+ var name = res[3];
561
+ var capture = res[4];
562
+ var group = res[5];
563
+ var modifier = res[6];
564
+ var asterisk = res[7];
565
+
566
+ // Push the current path onto the tokens.
567
+ if (path) {
568
+ tokens.push(path);
569
+ path = '';
570
+ }
571
+
572
+ var partial = prefix != null && next != null && next !== prefix;
573
+ var repeat = modifier === '+' || modifier === '*';
574
+ var optional = modifier === '?' || modifier === '*';
575
+ var delimiter = res[2] || defaultDelimiter;
576
+ var pattern = capture || group;
577
+
578
+ tokens.push({
579
+ name: name || key++,
580
+ prefix: prefix || '',
581
+ delimiter: delimiter,
582
+ optional: optional,
583
+ repeat: repeat,
584
+ partial: partial,
585
+ asterisk: !!asterisk,
586
+ pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')
587
+ });
588
+ }
589
+
590
+ // Match any characters still remaining.
591
+ if (index < str.length) {
592
+ path += str.substr(index);
593
+ }
594
+
595
+ // If the path exists, push it onto the end.
596
+ if (path) {
597
+ tokens.push(path);
598
+ }
599
+
600
+ return tokens
601
+ }
602
+
603
+ /**
604
+ * Compile a string to a template function for the path.
605
+ *
606
+ * @param {string} str
607
+ * @param {Object=} options
608
+ * @return {!function(Object=, Object=)}
609
+ */
610
+ function compile (str, options) {
611
+ return tokensToFunction(parse(str, options), options)
612
+ }
613
+
614
+ /**
615
+ * Prettier encoding of URI path segments.
616
+ *
617
+ * @param {string}
618
+ * @return {string}
619
+ */
620
+ function encodeURIComponentPretty (str) {
621
+ return encodeURI(str).replace(/[\/?#]/g, function (c) {
622
+ return '%' + c.charCodeAt(0).toString(16).toUpperCase()
623
+ })
624
+ }
625
+
626
+ /**
627
+ * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.
628
+ *
629
+ * @param {string}
630
+ * @return {string}
631
+ */
632
+ function encodeAsterisk (str) {
633
+ return encodeURI(str).replace(/[?#]/g, function (c) {
634
+ return '%' + c.charCodeAt(0).toString(16).toUpperCase()
635
+ })
636
+ }
637
+
638
+ /**
639
+ * Expose a method for transforming tokens into the path function.
640
+ */
641
+ function tokensToFunction (tokens, options) {
642
+ // Compile all the tokens into regexps.
643
+ var matches = new Array(tokens.length);
644
+
645
+ // Compile all the patterns before compilation.
646
+ for (var i = 0; i < tokens.length; i++) {
647
+ if (typeof tokens[i] === 'object') {
648
+ matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));
649
+ }
650
+ }
651
+
652
+ return function (obj, opts) {
653
+ var path = '';
654
+ var data = obj || {};
655
+ var options = opts || {};
656
+ var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;
657
+
658
+ for (var i = 0; i < tokens.length; i++) {
659
+ var token = tokens[i];
660
+
661
+ if (typeof token === 'string') {
662
+ path += token;
663
+
664
+ continue
665
+ }
666
+
667
+ var value = data[token.name];
668
+ var segment;
669
+
670
+ if (value == null) {
671
+ if (token.optional) {
672
+ // Prepend partial segment prefixes.
673
+ if (token.partial) {
674
+ path += token.prefix;
675
+ }
676
+
677
+ continue
678
+ } else {
679
+ throw new TypeError('Expected "' + token.name + '" to be defined')
680
+ }
681
+ }
682
+
683
+ if (isarray(value)) {
684
+ if (!token.repeat) {
685
+ throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`')
686
+ }
687
+
688
+ if (value.length === 0) {
689
+ if (token.optional) {
690
+ continue
691
+ } else {
692
+ throw new TypeError('Expected "' + token.name + '" to not be empty')
693
+ }
694
+ }
695
+
696
+ for (var j = 0; j < value.length; j++) {
697
+ segment = encode(value[j]);
698
+
699
+ if (!matches[i].test(segment)) {
700
+ throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`')
701
+ }
702
+
703
+ path += (j === 0 ? token.prefix : token.delimiter) + segment;
704
+ }
705
+
706
+ continue
707
+ }
708
+
709
+ segment = token.asterisk ? encodeAsterisk(value) : encode(value);
710
+
711
+ if (!matches[i].test(segment)) {
712
+ throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"')
713
+ }
714
+
715
+ path += token.prefix + segment;
716
+ }
717
+
718
+ return path
719
+ }
720
+ }
721
+
722
+ /**
723
+ * Escape a regular expression string.
724
+ *
725
+ * @param {string} str
726
+ * @return {string}
727
+ */
728
+ function escapeString (str) {
729
+ return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g, '\\$1')
730
+ }
731
+
732
+ /**
733
+ * Escape the capturing group by escaping special characters and meaning.
734
+ *
735
+ * @param {string} group
736
+ * @return {string}
737
+ */
738
+ function escapeGroup (group) {
739
+ return group.replace(/([=!:$\/()])/g, '\\$1')
740
+ }
741
+
742
+ /**
743
+ * Attach the keys as a property of the regexp.
744
+ *
745
+ * @param {!RegExp} re
746
+ * @param {Array} keys
747
+ * @return {!RegExp}
748
+ */
749
+ function attachKeys (re, keys) {
750
+ re.keys = keys;
751
+ return re
752
+ }
753
+
754
+ /**
755
+ * Get the flags for a regexp from the options.
756
+ *
757
+ * @param {Object} options
758
+ * @return {string}
759
+ */
760
+ function flags (options) {
761
+ return options && options.sensitive ? '' : 'i'
762
+ }
763
+
764
+ /**
765
+ * Pull out keys from a regexp.
766
+ *
767
+ * @param {!RegExp} path
768
+ * @param {!Array} keys
769
+ * @return {!RegExp}
770
+ */
771
+ function regexpToRegexp (path, keys) {
772
+ // Use a negative lookahead to match only capturing groups.
773
+ var groups = path.source.match(/\((?!\?)/g);
774
+
775
+ if (groups) {
776
+ for (var i = 0; i < groups.length; i++) {
777
+ keys.push({
778
+ name: i,
779
+ prefix: null,
780
+ delimiter: null,
781
+ optional: false,
782
+ repeat: false,
783
+ partial: false,
784
+ asterisk: false,
785
+ pattern: null
786
+ });
787
+ }
788
+ }
789
+
790
+ return attachKeys(path, keys)
791
+ }
792
+
793
+ /**
794
+ * Transform an array into a regexp.
795
+ *
796
+ * @param {!Array} path
797
+ * @param {Array} keys
798
+ * @param {!Object} options
799
+ * @return {!RegExp}
800
+ */
801
+ function arrayToRegexp (path, keys, options) {
802
+ var parts = [];
803
+
804
+ for (var i = 0; i < path.length; i++) {
805
+ parts.push(pathToRegexp(path[i], keys, options).source);
806
+ }
807
+
808
+ var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));
809
+
810
+ return attachKeys(regexp, keys)
811
+ }
812
+
813
+ /**
814
+ * Create a path regexp from string input.
815
+ *
816
+ * @param {string} path
817
+ * @param {!Array} keys
818
+ * @param {!Object} options
819
+ * @return {!RegExp}
820
+ */
821
+ function stringToRegexp (path, keys, options) {
822
+ return tokensToRegExp(parse(path, options), keys, options)
823
+ }
824
+
825
+ /**
826
+ * Expose a function for taking tokens and returning a RegExp.
827
+ *
828
+ * @param {!Array} tokens
829
+ * @param {(Array|Object)=} keys
830
+ * @param {Object=} options
831
+ * @return {!RegExp}
832
+ */
833
+ function tokensToRegExp (tokens, keys, options) {
834
+ if (!isarray(keys)) {
835
+ options = /** @type {!Object} */ (keys || options);
836
+ keys = [];
837
+ }
838
+
839
+ options = options || {};
840
+
841
+ var strict = options.strict;
842
+ var end = options.end !== false;
843
+ var route = '';
844
+
845
+ // Iterate over the tokens and create our regexp string.
846
+ for (var i = 0; i < tokens.length; i++) {
847
+ var token = tokens[i];
848
+
849
+ if (typeof token === 'string') {
850
+ route += escapeString(token);
851
+ } else {
852
+ var prefix = escapeString(token.prefix);
853
+ var capture = '(?:' + token.pattern + ')';
854
+
855
+ keys.push(token);
856
+
857
+ if (token.repeat) {
858
+ capture += '(?:' + prefix + capture + ')*';
859
+ }
860
+
861
+ if (token.optional) {
862
+ if (!token.partial) {
863
+ capture = '(?:' + prefix + '(' + capture + '))?';
864
+ } else {
865
+ capture = prefix + '(' + capture + ')?';
866
+ }
867
+ } else {
868
+ capture = prefix + '(' + capture + ')';
869
+ }
870
+
871
+ route += capture;
872
+ }
873
+ }
874
+
875
+ var delimiter = escapeString(options.delimiter || '/');
876
+ var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;
877
+
878
+ // In non-strict mode we allow a slash at the end of match. If the path to
879
+ // match already ends with a slash, we remove it for consistency. The slash
880
+ // is valid at the end of a path match, not in the middle. This is important
881
+ // in non-ending mode, where "/test/" shouldn't match "/test//route".
882
+ if (!strict) {
883
+ route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';
884
+ }
885
+
886
+ if (end) {
887
+ route += '$';
888
+ } else {
889
+ // In non-ending mode, we need the capturing groups to match as much as
890
+ // possible by using a positive lookahead to the end or next path segment.
891
+ route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';
892
+ }
893
+
894
+ return attachKeys(new RegExp('^' + route, flags(options)), keys)
895
+ }
896
+
897
+ /**
898
+ * Normalize the given path string, returning a regular expression.
899
+ *
900
+ * An empty array can be passed in for the keys, which will hold the
901
+ * placeholder key descriptions. For example, using `/user/:id`, `keys` will
902
+ * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.
903
+ *
904
+ * @param {(string|RegExp|Array)} path
905
+ * @param {(Array|Object)=} keys
906
+ * @param {Object=} options
907
+ * @return {!RegExp}
908
+ */
909
+ function pathToRegexp (path, keys, options) {
910
+ if (!isarray(keys)) {
911
+ options = /** @type {!Object} */ (keys || options);
912
+ keys = [];
913
+ }
914
+
915
+ options = options || {};
916
+
917
+ if (path instanceof RegExp) {
918
+ return regexpToRegexp(path, /** @type {!Array} */ (keys))
919
+ }
920
+
921
+ if (isarray(path)) {
922
+ return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)
923
+ }
924
+
925
+ return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)
926
+ }
927
+ pathToRegexp_1.parse = parse_1;
928
+ pathToRegexp_1.compile = compile_1;
929
+ pathToRegexp_1.tokensToFunction = tokensToFunction_1;
930
+ pathToRegexp_1.tokensToRegExp = tokensToRegExp_1;
931
+
932
+ /* */
933
+
934
+ // $flow-disable-line
935
+ var regexpCompileCache = Object.create(null);
936
+
937
+ function fillParams (
938
+ path,
939
+ params,
940
+ routeMsg
941
+ ) {
942
+ params = params || {};
943
+ try {
944
+ var filler =
945
+ regexpCompileCache[path] ||
946
+ (regexpCompileCache[path] = pathToRegexp_1.compile(path));
947
+
948
+ // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}
949
+ // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string
950
+ if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }
951
+
952
+ return filler(params, { pretty: true })
953
+ } catch (e) {
954
+ {
955
+ // Fix #3072 no warn if `pathMatch` is string
956
+ warn(typeof params.pathMatch === 'string', ("missing param for " + routeMsg + ": " + (e.message)));
957
+ }
958
+ return ''
959
+ } finally {
960
+ // delete the 0 if it was added
961
+ delete params[0];
962
+ }
963
+ }
964
+
965
+ /* */
966
+
967
+ function normalizeLocation (
968
+ raw,
969
+ current,
970
+ append,
971
+ router
972
+ ) {
973
+ var next = typeof raw === 'string' ? { path: raw } : raw;
974
+ // named target
975
+ if (next._normalized) {
976
+ return next
977
+ } else if (next.name) {
978
+ next = extend({}, raw);
979
+ var params = next.params;
980
+ if (params && typeof params === 'object') {
981
+ next.params = extend({}, params);
982
+ }
983
+ return next
984
+ }
985
+
986
+ // relative params
987
+ if (!next.path && next.params && current) {
988
+ next = extend({}, next);
989
+ next._normalized = true;
990
+ var params$1 = extend(extend({}, current.params), next.params);
991
+ if (current.name) {
992
+ next.name = current.name;
993
+ next.params = params$1;
994
+ } else if (current.matched.length) {
995
+ var rawPath = current.matched[current.matched.length - 1].path;
996
+ next.path = fillParams(rawPath, params$1, ("path " + (current.path)));
997
+ } else {
998
+ warn(false, "relative params navigation requires a current route.");
999
+ }
1000
+ return next
1001
+ }
1002
+
1003
+ var parsedPath = parsePath(next.path || '');
1004
+ var basePath = (current && current.path) || '/';
1005
+ var path = parsedPath.path
1006
+ ? resolvePath(parsedPath.path, basePath, append || next.append)
1007
+ : basePath;
1008
+
1009
+ var query = resolveQuery(
1010
+ parsedPath.query,
1011
+ next.query,
1012
+ router && router.options.parseQuery
1013
+ );
1014
+
1015
+ var hash = next.hash || parsedPath.hash;
1016
+ if (hash && hash.charAt(0) !== '#') {
1017
+ hash = "#" + hash;
1018
+ }
1019
+
1020
+ return {
1021
+ _normalized: true,
1022
+ path: path,
1023
+ query: query,
1024
+ hash: hash
1025
+ }
1026
+ }
1027
+
1028
+ /* */
1029
+
1030
+ // work around weird flow bug
1031
+ var toTypes = [String, Object];
1032
+ var eventTypes = [String, Array];
1033
+
1034
+ var noop = function () {};
1035
+
1036
+ var Link = {
1037
+ name: 'RouterLink',
1038
+ props: {
1039
+ to: {
1040
+ type: toTypes,
1041
+ required: true
1042
+ },
1043
+ tag: {
1044
+ type: String,
1045
+ default: 'a'
1046
+ },
1047
+ exact: Boolean,
1048
+ append: Boolean,
1049
+ replace: Boolean,
1050
+ activeClass: String,
1051
+ exactActiveClass: String,
1052
+ ariaCurrentValue: {
1053
+ type: String,
1054
+ default: 'page'
1055
+ },
1056
+ event: {
1057
+ type: eventTypes,
1058
+ default: 'click'
1059
+ }
1060
+ },
1061
+ render: function render (h) {
1062
+ var this$1 = this;
1063
+
1064
+ var router = this.$router;
1065
+ var current = this.$route;
1066
+ var ref = router.resolve(
1067
+ this.to,
1068
+ current,
1069
+ this.append
1070
+ );
1071
+ var location = ref.location;
1072
+ var route = ref.route;
1073
+ var href = ref.href;
1074
+
1075
+ var classes = {};
1076
+ var globalActiveClass = router.options.linkActiveClass;
1077
+ var globalExactActiveClass = router.options.linkExactActiveClass;
1078
+ // Support global empty active class
1079
+ var activeClassFallback =
1080
+ globalActiveClass == null ? 'router-link-active' : globalActiveClass;
1081
+ var exactActiveClassFallback =
1082
+ globalExactActiveClass == null
1083
+ ? 'router-link-exact-active'
1084
+ : globalExactActiveClass;
1085
+ var activeClass =
1086
+ this.activeClass == null ? activeClassFallback : this.activeClass;
1087
+ var exactActiveClass =
1088
+ this.exactActiveClass == null
1089
+ ? exactActiveClassFallback
1090
+ : this.exactActiveClass;
1091
+
1092
+ var compareTarget = route.redirectedFrom
1093
+ ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)
1094
+ : route;
1095
+
1096
+ classes[exactActiveClass] = isSameRoute(current, compareTarget);
1097
+ classes[activeClass] = this.exact
1098
+ ? classes[exactActiveClass]
1099
+ : isIncludedRoute(current, compareTarget);
1100
+
1101
+ var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;
1102
+
1103
+ var handler = function (e) {
1104
+ if (guardEvent(e)) {
1105
+ if (this$1.replace) {
1106
+ router.replace(location, noop);
1107
+ } else {
1108
+ router.push(location, noop);
1109
+ }
1110
+ }
1111
+ };
1112
+
1113
+ var on = { click: guardEvent };
1114
+ if (Array.isArray(this.event)) {
1115
+ this.event.forEach(function (e) {
1116
+ on[e] = handler;
1117
+ });
1118
+ } else {
1119
+ on[this.event] = handler;
1120
+ }
1121
+
1122
+ var data = { class: classes };
1123
+
1124
+ var scopedSlot =
1125
+ !this.$scopedSlots.$hasNormal &&
1126
+ this.$scopedSlots.default &&
1127
+ this.$scopedSlots.default({
1128
+ href: href,
1129
+ route: route,
1130
+ navigate: handler,
1131
+ isActive: classes[activeClass],
1132
+ isExactActive: classes[exactActiveClass]
1133
+ });
1134
+
1135
+ if (scopedSlot) {
1136
+ if (scopedSlot.length === 1) {
1137
+ return scopedSlot[0]
1138
+ } else if (scopedSlot.length > 1 || !scopedSlot.length) {
1139
+ {
1140
+ warn(
1141
+ false,
1142
+ ("RouterLink with to=\"" + (this.to) + "\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.")
1143
+ );
1144
+ }
1145
+ return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)
1146
+ }
1147
+ }
1148
+
1149
+ if (this.tag === 'a') {
1150
+ data.on = on;
1151
+ data.attrs = { href: href, 'aria-current': ariaCurrentValue };
1152
+ } else {
1153
+ // find the first <a> child and apply listener and href
1154
+ var a = findAnchor(this.$slots.default);
1155
+ if (a) {
1156
+ // in case the <a> is a static node
1157
+ a.isStatic = false;
1158
+ var aData = (a.data = extend({}, a.data));
1159
+ aData.on = aData.on || {};
1160
+ // transform existing events in both objects into arrays so we can push later
1161
+ for (var event in aData.on) {
1162
+ var handler$1 = aData.on[event];
1163
+ if (event in on) {
1164
+ aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];
1165
+ }
1166
+ }
1167
+ // append new listeners for router-link
1168
+ for (var event$1 in on) {
1169
+ if (event$1 in aData.on) {
1170
+ // on[event] is always a function
1171
+ aData.on[event$1].push(on[event$1]);
1172
+ } else {
1173
+ aData.on[event$1] = handler;
1174
+ }
1175
+ }
1176
+
1177
+ var aAttrs = (a.data.attrs = extend({}, a.data.attrs));
1178
+ aAttrs.href = href;
1179
+ aAttrs['aria-current'] = ariaCurrentValue;
1180
+ } else {
1181
+ // doesn't have <a> child, apply listener to self
1182
+ data.on = on;
1183
+ }
1184
+ }
1185
+
1186
+ return h(this.tag, data, this.$slots.default)
1187
+ }
1188
+ };
1189
+
1190
+ function guardEvent (e) {
1191
+ // don't redirect with control keys
1192
+ if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }
1193
+ // don't redirect when preventDefault called
1194
+ if (e.defaultPrevented) { return }
1195
+ // don't redirect on right click
1196
+ if (e.button !== undefined && e.button !== 0) { return }
1197
+ // don't redirect if `target="_blank"`
1198
+ if (e.currentTarget && e.currentTarget.getAttribute) {
1199
+ var target = e.currentTarget.getAttribute('target');
1200
+ if (/\b_blank\b/i.test(target)) { return }
1201
+ }
1202
+ // this may be a Weex event which doesn't have this method
1203
+ if (e.preventDefault) {
1204
+ e.preventDefault();
1205
+ }
1206
+ return true
1207
+ }
1208
+
1209
+ function findAnchor (children) {
1210
+ if (children) {
1211
+ var child;
1212
+ for (var i = 0; i < children.length; i++) {
1213
+ child = children[i];
1214
+ if (child.tag === 'a') {
1215
+ return child
1216
+ }
1217
+ if (child.children && (child = findAnchor(child.children))) {
1218
+ return child
1219
+ }
1220
+ }
1221
+ }
1222
+ }
1223
+
1224
+ var _Vue;
1225
+
1226
+ function install (Vue) {
1227
+ if (install.installed && _Vue === Vue) { return }
1228
+ install.installed = true;
1229
+
1230
+ _Vue = Vue;
1231
+
1232
+ var isDef = function (v) { return v !== undefined; };
1233
+
1234
+ var registerInstance = function (vm, callVal) {
1235
+ var i = vm.$options._parentVnode;
1236
+ if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {
1237
+ i(vm, callVal);
1238
+ }
1239
+ };
1240
+
1241
+ Vue.mixin({
1242
+ beforeCreate: function beforeCreate () {
1243
+ if (isDef(this.$options.router)) {
1244
+ this._routerRoot = this;
1245
+ this._router = this.$options.router;
1246
+ this._router.init(this);
1247
+ Vue.util.defineReactive(this, '_route', this._router.history.current);
1248
+ } else {
1249
+ this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;
1250
+ }
1251
+ registerInstance(this, this);
1252
+ },
1253
+ destroyed: function destroyed () {
1254
+ registerInstance(this);
1255
+ }
1256
+ });
1257
+
1258
+ Object.defineProperty(Vue.prototype, '$router', {
1259
+ get: function get () { return this._routerRoot._router }
1260
+ });
1261
+
1262
+ Object.defineProperty(Vue.prototype, '$route', {
1263
+ get: function get () { return this._routerRoot._route }
1264
+ });
1265
+
1266
+ Vue.component('RouterView', View);
1267
+ Vue.component('RouterLink', Link);
1268
+
1269
+ var strats = Vue.config.optionMergeStrategies;
1270
+ // use the same hook merging strategy for route hooks
1271
+ strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;
1272
+ }
1273
+
1274
+ /* */
1275
+
1276
+ var inBrowser = typeof window !== 'undefined';
1277
+
1278
+ /* */
1279
+
1280
+ function createRouteMap (
1281
+ routes,
1282
+ oldPathList,
1283
+ oldPathMap,
1284
+ oldNameMap
1285
+ ) {
1286
+ // the path list is used to control path matching priority
1287
+ var pathList = oldPathList || [];
1288
+ // $flow-disable-line
1289
+ var pathMap = oldPathMap || Object.create(null);
1290
+ // $flow-disable-line
1291
+ var nameMap = oldNameMap || Object.create(null);
1292
+
1293
+ routes.forEach(function (route) {
1294
+ addRouteRecord(pathList, pathMap, nameMap, route);
1295
+ });
1296
+
1297
+ // ensure wildcard routes are always at the end
1298
+ for (var i = 0, l = pathList.length; i < l; i++) {
1299
+ if (pathList[i] === '*') {
1300
+ pathList.push(pathList.splice(i, 1)[0]);
1301
+ l--;
1302
+ i--;
1303
+ }
1304
+ }
1305
+
1306
+ {
1307
+ // warn if routes do not include leading slashes
1308
+ var found = pathList
1309
+ // check for missing leading slash
1310
+ .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });
1311
+
1312
+ if (found.length > 0) {
1313
+ var pathNames = found.map(function (path) { return ("- " + path); }).join('\n');
1314
+ warn(false, ("Non-nested routes must include a leading slash character. Fix the following routes: \n" + pathNames));
1315
+ }
1316
+ }
1317
+
1318
+ return {
1319
+ pathList: pathList,
1320
+ pathMap: pathMap,
1321
+ nameMap: nameMap
1322
+ }
1323
+ }
1324
+
1325
+ function addRouteRecord (
1326
+ pathList,
1327
+ pathMap,
1328
+ nameMap,
1329
+ route,
1330
+ parent,
1331
+ matchAs
1332
+ ) {
1333
+ var path = route.path;
1334
+ var name = route.name;
1335
+ {
1336
+ assert(path != null, "\"path\" is required in a route configuration.");
1337
+ assert(
1338
+ typeof route.component !== 'string',
1339
+ "route config \"component\" for path: " + (String(
1340
+ path || name
1341
+ )) + " cannot be a " + "string id. Use an actual component instead."
1342
+ );
1343
+ }
1344
+
1345
+ var pathToRegexpOptions =
1346
+ route.pathToRegexpOptions || {};
1347
+ var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);
1348
+
1349
+ if (typeof route.caseSensitive === 'boolean') {
1350
+ pathToRegexpOptions.sensitive = route.caseSensitive;
1351
+ }
1352
+
1353
+ var record = {
1354
+ path: normalizedPath,
1355
+ regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),
1356
+ components: route.components || { default: route.component },
1357
+ instances: {},
1358
+ name: name,
1359
+ parent: parent,
1360
+ matchAs: matchAs,
1361
+ redirect: route.redirect,
1362
+ beforeEnter: route.beforeEnter,
1363
+ meta: route.meta || {},
1364
+ props:
1365
+ route.props == null
1366
+ ? {}
1367
+ : route.components
1368
+ ? route.props
1369
+ : { default: route.props }
1370
+ };
1371
+
1372
+ if (route.children) {
1373
+ // Warn if route is named, does not redirect and has a default child route.
1374
+ // If users navigate to this route by name, the default child will
1375
+ // not be rendered (GH Issue #629)
1376
+ {
1377
+ if (
1378
+ route.name &&
1379
+ !route.redirect &&
1380
+ route.children.some(function (child) { return /^\/?$/.test(child.path); })
1381
+ ) {
1382
+ warn(
1383
+ false,
1384
+ "Named Route '" + (route.name) + "' has a default child route. " +
1385
+ "When navigating to this named route (:to=\"{name: '" + (route.name) + "'\"), " +
1386
+ "the default child route will not be rendered. Remove the name from " +
1387
+ "this route and use the name of the default child route for named " +
1388
+ "links instead."
1389
+ );
1390
+ }
1391
+ }
1392
+ route.children.forEach(function (child) {
1393
+ var childMatchAs = matchAs
1394
+ ? cleanPath((matchAs + "/" + (child.path)))
1395
+ : undefined;
1396
+ addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);
1397
+ });
1398
+ }
1399
+
1400
+ if (!pathMap[record.path]) {
1401
+ pathList.push(record.path);
1402
+ pathMap[record.path] = record;
1403
+ }
1404
+
1405
+ if (route.alias !== undefined) {
1406
+ var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];
1407
+ for (var i = 0; i < aliases.length; ++i) {
1408
+ var alias = aliases[i];
1409
+ if ( alias === path) {
1410
+ warn(
1411
+ false,
1412
+ ("Found an alias with the same value as the path: \"" + path + "\". You have to remove that alias. It will be ignored in development.")
1413
+ );
1414
+ // skip in dev to make it work
1415
+ continue
1416
+ }
1417
+
1418
+ var aliasRoute = {
1419
+ path: alias,
1420
+ children: route.children
1421
+ };
1422
+ addRouteRecord(
1423
+ pathList,
1424
+ pathMap,
1425
+ nameMap,
1426
+ aliasRoute,
1427
+ parent,
1428
+ record.path || '/' // matchAs
1429
+ );
1430
+ }
1431
+ }
1432
+
1433
+ if (name) {
1434
+ if (!nameMap[name]) {
1435
+ nameMap[name] = record;
1436
+ } else if ( !matchAs) {
1437
+ warn(
1438
+ false,
1439
+ "Duplicate named routes definition: " +
1440
+ "{ name: \"" + name + "\", path: \"" + (record.path) + "\" }"
1441
+ );
1442
+ }
1443
+ }
1444
+ }
1445
+
1446
+ function compileRouteRegex (
1447
+ path,
1448
+ pathToRegexpOptions
1449
+ ) {
1450
+ var regex = pathToRegexp_1(path, [], pathToRegexpOptions);
1451
+ {
1452
+ var keys = Object.create(null);
1453
+ regex.keys.forEach(function (key) {
1454
+ warn(
1455
+ !keys[key.name],
1456
+ ("Duplicate param keys in route with path: \"" + path + "\"")
1457
+ );
1458
+ keys[key.name] = true;
1459
+ });
1460
+ }
1461
+ return regex
1462
+ }
1463
+
1464
+ function normalizePath (
1465
+ path,
1466
+ parent,
1467
+ strict
1468
+ ) {
1469
+ if (!strict) { path = path.replace(/\/$/, ''); }
1470
+ if (path[0] === '/') { return path }
1471
+ if (parent == null) { return path }
1472
+ return cleanPath(((parent.path) + "/" + path))
1473
+ }
1474
+
1475
+ /* */
1476
+
1477
+
1478
+
1479
+ function createMatcher (
1480
+ routes,
1481
+ router
1482
+ ) {
1483
+ var ref = createRouteMap(routes);
1484
+ var pathList = ref.pathList;
1485
+ var pathMap = ref.pathMap;
1486
+ var nameMap = ref.nameMap;
1487
+
1488
+ function addRoutes (routes) {
1489
+ createRouteMap(routes, pathList, pathMap, nameMap);
1490
+ }
1491
+
1492
+ function match (
1493
+ raw,
1494
+ currentRoute,
1495
+ redirectedFrom
1496
+ ) {
1497
+ var location = normalizeLocation(raw, currentRoute, false, router);
1498
+ var name = location.name;
1499
+
1500
+ if (name) {
1501
+ var record = nameMap[name];
1502
+ {
1503
+ warn(record, ("Route with name '" + name + "' does not exist"));
1504
+ }
1505
+ if (!record) { return _createRoute(null, location) }
1506
+ var paramNames = record.regex.keys
1507
+ .filter(function (key) { return !key.optional; })
1508
+ .map(function (key) { return key.name; });
1509
+
1510
+ if (typeof location.params !== 'object') {
1511
+ location.params = {};
1512
+ }
1513
+
1514
+ if (currentRoute && typeof currentRoute.params === 'object') {
1515
+ for (var key in currentRoute.params) {
1516
+ if (!(key in location.params) && paramNames.indexOf(key) > -1) {
1517
+ location.params[key] = currentRoute.params[key];
1518
+ }
1519
+ }
1520
+ }
1521
+
1522
+ location.path = fillParams(record.path, location.params, ("named route \"" + name + "\""));
1523
+ return _createRoute(record, location, redirectedFrom)
1524
+ } else if (location.path) {
1525
+ location.params = {};
1526
+ for (var i = 0; i < pathList.length; i++) {
1527
+ var path = pathList[i];
1528
+ var record$1 = pathMap[path];
1529
+ if (matchRoute(record$1.regex, location.path, location.params)) {
1530
+ return _createRoute(record$1, location, redirectedFrom)
1531
+ }
1532
+ }
1533
+ }
1534
+ // no match
1535
+ return _createRoute(null, location)
1536
+ }
1537
+
1538
+ function redirect (
1539
+ record,
1540
+ location
1541
+ ) {
1542
+ var originalRedirect = record.redirect;
1543
+ var redirect = typeof originalRedirect === 'function'
1544
+ ? originalRedirect(createRoute(record, location, null, router))
1545
+ : originalRedirect;
1546
+
1547
+ if (typeof redirect === 'string') {
1548
+ redirect = { path: redirect };
1549
+ }
1550
+
1551
+ if (!redirect || typeof redirect !== 'object') {
1552
+ {
1553
+ warn(
1554
+ false, ("invalid redirect option: " + (JSON.stringify(redirect)))
1555
+ );
1556
+ }
1557
+ return _createRoute(null, location)
1558
+ }
1559
+
1560
+ var re = redirect;
1561
+ var name = re.name;
1562
+ var path = re.path;
1563
+ var query = location.query;
1564
+ var hash = location.hash;
1565
+ var params = location.params;
1566
+ query = re.hasOwnProperty('query') ? re.query : query;
1567
+ hash = re.hasOwnProperty('hash') ? re.hash : hash;
1568
+ params = re.hasOwnProperty('params') ? re.params : params;
1569
+
1570
+ if (name) {
1571
+ // resolved named direct
1572
+ var targetRecord = nameMap[name];
1573
+ {
1574
+ assert(targetRecord, ("redirect failed: named route \"" + name + "\" not found."));
1575
+ }
1576
+ return match({
1577
+ _normalized: true,
1578
+ name: name,
1579
+ query: query,
1580
+ hash: hash,
1581
+ params: params
1582
+ }, undefined, location)
1583
+ } else if (path) {
1584
+ // 1. resolve relative redirect
1585
+ var rawPath = resolveRecordPath(path, record);
1586
+ // 2. resolve params
1587
+ var resolvedPath = fillParams(rawPath, params, ("redirect route with path \"" + rawPath + "\""));
1588
+ // 3. rematch with existing query and hash
1589
+ return match({
1590
+ _normalized: true,
1591
+ path: resolvedPath,
1592
+ query: query,
1593
+ hash: hash
1594
+ }, undefined, location)
1595
+ } else {
1596
+ {
1597
+ warn(false, ("invalid redirect option: " + (JSON.stringify(redirect))));
1598
+ }
1599
+ return _createRoute(null, location)
1600
+ }
1601
+ }
1602
+
1603
+ function alias (
1604
+ record,
1605
+ location,
1606
+ matchAs
1607
+ ) {
1608
+ var aliasedPath = fillParams(matchAs, location.params, ("aliased route with path \"" + matchAs + "\""));
1609
+ var aliasedMatch = match({
1610
+ _normalized: true,
1611
+ path: aliasedPath
1612
+ });
1613
+ if (aliasedMatch) {
1614
+ var matched = aliasedMatch.matched;
1615
+ var aliasedRecord = matched[matched.length - 1];
1616
+ location.params = aliasedMatch.params;
1617
+ return _createRoute(aliasedRecord, location)
1618
+ }
1619
+ return _createRoute(null, location)
1620
+ }
1621
+
1622
+ function _createRoute (
1623
+ record,
1624
+ location,
1625
+ redirectedFrom
1626
+ ) {
1627
+ if (record && record.redirect) {
1628
+ return redirect(record, redirectedFrom || location)
1629
+ }
1630
+ if (record && record.matchAs) {
1631
+ return alias(record, location, record.matchAs)
1632
+ }
1633
+ return createRoute(record, location, redirectedFrom, router)
1634
+ }
1635
+
1636
+ return {
1637
+ match: match,
1638
+ addRoutes: addRoutes
1639
+ }
1640
+ }
1641
+
1642
+ function matchRoute (
1643
+ regex,
1644
+ path,
1645
+ params
1646
+ ) {
1647
+ var m = path.match(regex);
1648
+
1649
+ if (!m) {
1650
+ return false
1651
+ } else if (!params) {
1652
+ return true
1653
+ }
1654
+
1655
+ for (var i = 1, len = m.length; i < len; ++i) {
1656
+ var key = regex.keys[i - 1];
1657
+ var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];
1658
+ if (key) {
1659
+ // Fix #1994: using * with props: true generates a param named 0
1660
+ params[key.name || 'pathMatch'] = val;
1661
+ }
1662
+ }
1663
+
1664
+ return true
1665
+ }
1666
+
1667
+ function resolveRecordPath (path, record) {
1668
+ return resolvePath(path, record.parent ? record.parent.path : '/', true)
1669
+ }
1670
+
1671
+ /* */
1672
+
1673
+ // use User Timing api (if present) for more accurate key precision
1674
+ var Time =
1675
+ inBrowser && window.performance && window.performance.now
1676
+ ? window.performance
1677
+ : Date;
1678
+
1679
+ function genStateKey () {
1680
+ return Time.now().toFixed(3)
1681
+ }
1682
+
1683
+ var _key = genStateKey();
1684
+
1685
+ function getStateKey () {
1686
+ return _key
1687
+ }
1688
+
1689
+ function setStateKey (key) {
1690
+ return (_key = key)
1691
+ }
1692
+
1693
+ /* */
1694
+
1695
+ var positionStore = Object.create(null);
1696
+
1697
+ function setupScroll () {
1698
+ // Prevent browser scroll behavior on History popstate
1699
+ if ('scrollRestoration' in window.history) {
1700
+ window.history.scrollRestoration = 'manual';
1701
+ }
1702
+ // Fix for #1585 for Firefox
1703
+ // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678
1704
+ // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with
1705
+ // window.location.protocol + '//' + window.location.host
1706
+ // location.host contains the port and location.hostname doesn't
1707
+ var protocolAndPath = window.location.protocol + '//' + window.location.host;
1708
+ var absolutePath = window.location.href.replace(protocolAndPath, '');
1709
+ // preserve existing history state as it could be overriden by the user
1710
+ var stateCopy = extend({}, window.history.state);
1711
+ stateCopy.key = getStateKey();
1712
+ window.history.replaceState(stateCopy, '', absolutePath);
1713
+ window.addEventListener('popstate', handlePopState);
1714
+ return function () {
1715
+ window.removeEventListener('popstate', handlePopState);
1716
+ }
1717
+ }
1718
+
1719
+ function handleScroll (
1720
+ router,
1721
+ to,
1722
+ from,
1723
+ isPop
1724
+ ) {
1725
+ if (!router.app) {
1726
+ return
1727
+ }
1728
+
1729
+ var behavior = router.options.scrollBehavior;
1730
+ if (!behavior) {
1731
+ return
1732
+ }
1733
+
1734
+ {
1735
+ assert(typeof behavior === 'function', "scrollBehavior must be a function");
1736
+ }
1737
+
1738
+ // wait until re-render finishes before scrolling
1739
+ router.app.$nextTick(function () {
1740
+ var position = getScrollPosition();
1741
+ var shouldScroll = behavior.call(
1742
+ router,
1743
+ to,
1744
+ from,
1745
+ isPop ? position : null
1746
+ );
1747
+
1748
+ if (!shouldScroll) {
1749
+ return
1750
+ }
1751
+
1752
+ if (typeof shouldScroll.then === 'function') {
1753
+ shouldScroll
1754
+ .then(function (shouldScroll) {
1755
+ scrollToPosition((shouldScroll), position);
1756
+ })
1757
+ .catch(function (err) {
1758
+ {
1759
+ assert(false, err.toString());
1760
+ }
1761
+ });
1762
+ } else {
1763
+ scrollToPosition(shouldScroll, position);
1764
+ }
1765
+ });
1766
+ }
1767
+
1768
+ function saveScrollPosition () {
1769
+ var key = getStateKey();
1770
+ if (key) {
1771
+ positionStore[key] = {
1772
+ x: window.pageXOffset,
1773
+ y: window.pageYOffset
1774
+ };
1775
+ }
1776
+ }
1777
+
1778
+ function handlePopState (e) {
1779
+ saveScrollPosition();
1780
+ if (e.state && e.state.key) {
1781
+ setStateKey(e.state.key);
1782
+ }
1783
+ }
1784
+
1785
+ function getScrollPosition () {
1786
+ var key = getStateKey();
1787
+ if (key) {
1788
+ return positionStore[key]
1789
+ }
1790
+ }
1791
+
1792
+ function getElementPosition (el, offset) {
1793
+ var docEl = document.documentElement;
1794
+ var docRect = docEl.getBoundingClientRect();
1795
+ var elRect = el.getBoundingClientRect();
1796
+ return {
1797
+ x: elRect.left - docRect.left - offset.x,
1798
+ y: elRect.top - docRect.top - offset.y
1799
+ }
1800
+ }
1801
+
1802
+ function isValidPosition (obj) {
1803
+ return isNumber(obj.x) || isNumber(obj.y)
1804
+ }
1805
+
1806
+ function normalizePosition (obj) {
1807
+ return {
1808
+ x: isNumber(obj.x) ? obj.x : window.pageXOffset,
1809
+ y: isNumber(obj.y) ? obj.y : window.pageYOffset
1810
+ }
1811
+ }
1812
+
1813
+ function normalizeOffset (obj) {
1814
+ return {
1815
+ x: isNumber(obj.x) ? obj.x : 0,
1816
+ y: isNumber(obj.y) ? obj.y : 0
1817
+ }
1818
+ }
1819
+
1820
+ function isNumber (v) {
1821
+ return typeof v === 'number'
1822
+ }
1823
+
1824
+ var hashStartsWithNumberRE = /^#\d/;
1825
+
1826
+ function scrollToPosition (shouldScroll, position) {
1827
+ var isObject = typeof shouldScroll === 'object';
1828
+ if (isObject && typeof shouldScroll.selector === 'string') {
1829
+ // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]
1830
+ // but at the same time, it doesn't make much sense to select an element with an id and an extra selector
1831
+ var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line
1832
+ ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line
1833
+ : document.querySelector(shouldScroll.selector);
1834
+
1835
+ if (el) {
1836
+ var offset =
1837
+ shouldScroll.offset && typeof shouldScroll.offset === 'object'
1838
+ ? shouldScroll.offset
1839
+ : {};
1840
+ offset = normalizeOffset(offset);
1841
+ position = getElementPosition(el, offset);
1842
+ } else if (isValidPosition(shouldScroll)) {
1843
+ position = normalizePosition(shouldScroll);
1844
+ }
1845
+ } else if (isObject && isValidPosition(shouldScroll)) {
1846
+ position = normalizePosition(shouldScroll);
1847
+ }
1848
+
1849
+ if (position) {
1850
+ window.scrollTo(position.x, position.y);
1851
+ }
1852
+ }
1853
+
1854
+ /* */
1855
+
1856
+ var supportsPushState =
1857
+ inBrowser &&
1858
+ (function () {
1859
+ var ua = window.navigator.userAgent;
1860
+
1861
+ if (
1862
+ (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&
1863
+ ua.indexOf('Mobile Safari') !== -1 &&
1864
+ ua.indexOf('Chrome') === -1 &&
1865
+ ua.indexOf('Windows Phone') === -1
1866
+ ) {
1867
+ return false
1868
+ }
1869
+
1870
+ return window.history && typeof window.history.pushState === 'function'
1871
+ })();
1872
+
1873
+ function pushState (url, replace) {
1874
+ saveScrollPosition();
1875
+ // try...catch the pushState call to get around Safari
1876
+ // DOM Exception 18 where it limits to 100 pushState calls
1877
+ var history = window.history;
1878
+ try {
1879
+ if (replace) {
1880
+ // preserve existing history state as it could be overriden by the user
1881
+ var stateCopy = extend({}, history.state);
1882
+ stateCopy.key = getStateKey();
1883
+ history.replaceState(stateCopy, '', url);
1884
+ } else {
1885
+ history.pushState({ key: setStateKey(genStateKey()) }, '', url);
1886
+ }
1887
+ } catch (e) {
1888
+ window.location[replace ? 'replace' : 'assign'](url);
1889
+ }
1890
+ }
1891
+
1892
+ function replaceState (url) {
1893
+ pushState(url, true);
1894
+ }
1895
+
1896
+ /* */
1897
+
1898
+ function runQueue (queue, fn, cb) {
1899
+ var step = function (index) {
1900
+ if (index >= queue.length) {
1901
+ cb();
1902
+ } else {
1903
+ if (queue[index]) {
1904
+ fn(queue[index], function () {
1905
+ step(index + 1);
1906
+ });
1907
+ } else {
1908
+ step(index + 1);
1909
+ }
1910
+ }
1911
+ };
1912
+ step(0);
1913
+ }
1914
+
1915
+ var NavigationFailureType = {
1916
+ redirected: 2,
1917
+ aborted: 4,
1918
+ cancelled: 8,
1919
+ duplicated: 16
1920
+ };
1921
+
1922
+ function createNavigationRedirectedError (from, to) {
1923
+ return createRouterError(
1924
+ from,
1925
+ to,
1926
+ NavigationFailureType.redirected,
1927
+ ("Redirected when going from \"" + (from.fullPath) + "\" to \"" + (stringifyRoute(
1928
+ to
1929
+ )) + "\" via a navigation guard.")
1930
+ )
1931
+ }
1932
+
1933
+ function createNavigationDuplicatedError (from, to) {
1934
+ var error = createRouterError(
1935
+ from,
1936
+ to,
1937
+ NavigationFailureType.duplicated,
1938
+ ("Avoided redundant navigation to current location: \"" + (from.fullPath) + "\".")
1939
+ );
1940
+ // backwards compatible with the first introduction of Errors
1941
+ error.name = 'NavigationDuplicated';
1942
+ return error
1943
+ }
1944
+
1945
+ function createNavigationCancelledError (from, to) {
1946
+ return createRouterError(
1947
+ from,
1948
+ to,
1949
+ NavigationFailureType.cancelled,
1950
+ ("Navigation cancelled from \"" + (from.fullPath) + "\" to \"" + (to.fullPath) + "\" with a new navigation.")
1951
+ )
1952
+ }
1953
+
1954
+ function createNavigationAbortedError (from, to) {
1955
+ return createRouterError(
1956
+ from,
1957
+ to,
1958
+ NavigationFailureType.aborted,
1959
+ ("Navigation aborted from \"" + (from.fullPath) + "\" to \"" + (to.fullPath) + "\" via a navigation guard.")
1960
+ )
1961
+ }
1962
+
1963
+ function createRouterError (from, to, type, message) {
1964
+ var error = new Error(message);
1965
+ error._isRouter = true;
1966
+ error.from = from;
1967
+ error.to = to;
1968
+ error.type = type;
1969
+
1970
+ return error
1971
+ }
1972
+
1973
+ var propertiesToLog = ['params', 'query', 'hash'];
1974
+
1975
+ function stringifyRoute (to) {
1976
+ if (typeof to === 'string') { return to }
1977
+ if ('path' in to) { return to.path }
1978
+ var location = {};
1979
+ propertiesToLog.forEach(function (key) {
1980
+ if (key in to) { location[key] = to[key]; }
1981
+ });
1982
+ return JSON.stringify(location, null, 2)
1983
+ }
1984
+
1985
+ function isError (err) {
1986
+ return Object.prototype.toString.call(err).indexOf('Error') > -1
1987
+ }
1988
+
1989
+ function isNavigationFailure (err, errorType) {
1990
+ return (
1991
+ isError(err) &&
1992
+ err._isRouter &&
1993
+ (errorType == null || err.type === errorType)
1994
+ )
1995
+ }
1996
+
1997
+ /* */
1998
+
1999
+ function resolveAsyncComponents (matched) {
2000
+ return function (to, from, next) {
2001
+ var hasAsync = false;
2002
+ var pending = 0;
2003
+ var error = null;
2004
+
2005
+ flatMapComponents(matched, function (def, _, match, key) {
2006
+ // if it's a function and doesn't have cid attached,
2007
+ // assume it's an async component resolve function.
2008
+ // we are not using Vue's default async resolving mechanism because
2009
+ // we want to halt the navigation until the incoming component has been
2010
+ // resolved.
2011
+ if (typeof def === 'function' && def.cid === undefined) {
2012
+ hasAsync = true;
2013
+ pending++;
2014
+
2015
+ var resolve = once(function (resolvedDef) {
2016
+ if (isESModule(resolvedDef)) {
2017
+ resolvedDef = resolvedDef.default;
2018
+ }
2019
+ // save resolved on async factory in case it's used elsewhere
2020
+ def.resolved = typeof resolvedDef === 'function'
2021
+ ? resolvedDef
2022
+ : _Vue.extend(resolvedDef);
2023
+ match.components[key] = resolvedDef;
2024
+ pending--;
2025
+ if (pending <= 0) {
2026
+ next();
2027
+ }
2028
+ });
2029
+
2030
+ var reject = once(function (reason) {
2031
+ var msg = "Failed to resolve async component " + key + ": " + reason;
2032
+ warn(false, msg);
2033
+ if (!error) {
2034
+ error = isError(reason)
2035
+ ? reason
2036
+ : new Error(msg);
2037
+ next(error);
2038
+ }
2039
+ });
2040
+
2041
+ var res;
2042
+ try {
2043
+ res = def(resolve, reject);
2044
+ } catch (e) {
2045
+ reject(e);
2046
+ }
2047
+ if (res) {
2048
+ if (typeof res.then === 'function') {
2049
+ res.then(resolve, reject);
2050
+ } else {
2051
+ // new syntax in Vue 2.3
2052
+ var comp = res.component;
2053
+ if (comp && typeof comp.then === 'function') {
2054
+ comp.then(resolve, reject);
2055
+ }
2056
+ }
2057
+ }
2058
+ }
2059
+ });
2060
+
2061
+ if (!hasAsync) { next(); }
2062
+ }
2063
+ }
2064
+
2065
+ function flatMapComponents (
2066
+ matched,
2067
+ fn
2068
+ ) {
2069
+ return flatten(matched.map(function (m) {
2070
+ return Object.keys(m.components).map(function (key) { return fn(
2071
+ m.components[key],
2072
+ m.instances[key],
2073
+ m, key
2074
+ ); })
2075
+ }))
2076
+ }
2077
+
2078
+ function flatten (arr) {
2079
+ return Array.prototype.concat.apply([], arr)
2080
+ }
2081
+
2082
+ var hasSymbol =
2083
+ typeof Symbol === 'function' &&
2084
+ typeof Symbol.toStringTag === 'symbol';
2085
+
2086
+ function isESModule (obj) {
2087
+ return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')
2088
+ }
2089
+
2090
+ // in Webpack 2, require.ensure now also returns a Promise
2091
+ // so the resolve/reject functions may get called an extra time
2092
+ // if the user uses an arrow function shorthand that happens to
2093
+ // return that Promise.
2094
+ function once (fn) {
2095
+ var called = false;
2096
+ return function () {
2097
+ var args = [], len = arguments.length;
2098
+ while ( len-- ) args[ len ] = arguments[ len ];
2099
+
2100
+ if (called) { return }
2101
+ called = true;
2102
+ return fn.apply(this, args)
2103
+ }
2104
+ }
2105
+
2106
+ /* */
2107
+
2108
+ var History = function History (router, base) {
2109
+ this.router = router;
2110
+ this.base = normalizeBase(base);
2111
+ // start with a route object that stands for "nowhere"
2112
+ this.current = START;
2113
+ this.pending = null;
2114
+ this.ready = false;
2115
+ this.readyCbs = [];
2116
+ this.readyErrorCbs = [];
2117
+ this.errorCbs = [];
2118
+ this.listeners = [];
2119
+ };
2120
+
2121
+ History.prototype.listen = function listen (cb) {
2122
+ this.cb = cb;
2123
+ };
2124
+
2125
+ History.prototype.onReady = function onReady (cb, errorCb) {
2126
+ if (this.ready) {
2127
+ cb();
2128
+ } else {
2129
+ this.readyCbs.push(cb);
2130
+ if (errorCb) {
2131
+ this.readyErrorCbs.push(errorCb);
2132
+ }
2133
+ }
2134
+ };
2135
+
2136
+ History.prototype.onError = function onError (errorCb) {
2137
+ this.errorCbs.push(errorCb);
2138
+ };
2139
+
2140
+ History.prototype.transitionTo = function transitionTo (
2141
+ location,
2142
+ onComplete,
2143
+ onAbort
2144
+ ) {
2145
+ var this$1 = this;
2146
+
2147
+ var route;
2148
+ // catch redirect option https://github.com/vuejs/vue-router/issues/3201
2149
+ try {
2150
+ route = this.router.match(location, this.current);
2151
+ } catch (e) {
2152
+ this.errorCbs.forEach(function (cb) {
2153
+ cb(e);
2154
+ });
2155
+ // Exception should still be thrown
2156
+ throw e
2157
+ }
2158
+ this.confirmTransition(
2159
+ route,
2160
+ function () {
2161
+ var prev = this$1.current;
2162
+ this$1.updateRoute(route);
2163
+ onComplete && onComplete(route);
2164
+ this$1.ensureURL();
2165
+ this$1.router.afterHooks.forEach(function (hook) {
2166
+ hook && hook(route, prev);
2167
+ });
2168
+
2169
+ // fire ready cbs once
2170
+ if (!this$1.ready) {
2171
+ this$1.ready = true;
2172
+ this$1.readyCbs.forEach(function (cb) {
2173
+ cb(route);
2174
+ });
2175
+ }
2176
+ },
2177
+ function (err) {
2178
+ if (onAbort) {
2179
+ onAbort(err);
2180
+ }
2181
+ if (err && !this$1.ready) {
2182
+ this$1.ready = true;
2183
+ // Initial redirection should still trigger the onReady onSuccess
2184
+ // https://github.com/vuejs/vue-router/issues/3225
2185
+ if (!isNavigationFailure(err, NavigationFailureType.redirected)) {
2186
+ this$1.readyErrorCbs.forEach(function (cb) {
2187
+ cb(err);
2188
+ });
2189
+ } else {
2190
+ this$1.readyCbs.forEach(function (cb) {
2191
+ cb(route);
2192
+ });
2193
+ }
2194
+ }
2195
+ }
2196
+ );
2197
+ };
2198
+
2199
+ History.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {
2200
+ var this$1 = this;
2201
+
2202
+ var current = this.current;
2203
+ var abort = function (err) {
2204
+ // changed after adding errors with
2205
+ // https://github.com/vuejs/vue-router/pull/3047 before that change,
2206
+ // redirect and aborted navigation would produce an err == null
2207
+ if (!isNavigationFailure(err) && isError(err)) {
2208
+ if (this$1.errorCbs.length) {
2209
+ this$1.errorCbs.forEach(function (cb) {
2210
+ cb(err);
2211
+ });
2212
+ } else {
2213
+ warn(false, 'uncaught error during route navigation:');
2214
+ console.error(err);
2215
+ }
2216
+ }
2217
+ onAbort && onAbort(err);
2218
+ };
2219
+ var lastRouteIndex = route.matched.length - 1;
2220
+ var lastCurrentIndex = current.matched.length - 1;
2221
+ if (
2222
+ isSameRoute(route, current) &&
2223
+ // in the case the route map has been dynamically appended to
2224
+ lastRouteIndex === lastCurrentIndex &&
2225
+ route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]
2226
+ ) {
2227
+ this.ensureURL();
2228
+ return abort(createNavigationDuplicatedError(current, route))
2229
+ }
2230
+
2231
+ var ref = resolveQueue(
2232
+ this.current.matched,
2233
+ route.matched
2234
+ );
2235
+ var updated = ref.updated;
2236
+ var deactivated = ref.deactivated;
2237
+ var activated = ref.activated;
2238
+
2239
+ var queue = [].concat(
2240
+ // in-component leave guards
2241
+ extractLeaveGuards(deactivated),
2242
+ // global before hooks
2243
+ this.router.beforeHooks,
2244
+ // in-component update hooks
2245
+ extractUpdateHooks(updated),
2246
+ // in-config enter guards
2247
+ activated.map(function (m) { return m.beforeEnter; }),
2248
+ // async components
2249
+ resolveAsyncComponents(activated)
2250
+ );
2251
+
2252
+ this.pending = route;
2253
+ var iterator = function (hook, next) {
2254
+ if (this$1.pending !== route) {
2255
+ return abort(createNavigationCancelledError(current, route))
2256
+ }
2257
+ try {
2258
+ hook(route, current, function (to) {
2259
+ if (to === false) {
2260
+ // next(false) -> abort navigation, ensure current URL
2261
+ this$1.ensureURL(true);
2262
+ abort(createNavigationAbortedError(current, route));
2263
+ } else if (isError(to)) {
2264
+ this$1.ensureURL(true);
2265
+ abort(to);
2266
+ } else if (
2267
+ typeof to === 'string' ||
2268
+ (typeof to === 'object' &&
2269
+ (typeof to.path === 'string' || typeof to.name === 'string'))
2270
+ ) {
2271
+ // next('/') or next({ path: '/' }) -> redirect
2272
+ abort(createNavigationRedirectedError(current, route));
2273
+ if (typeof to === 'object' && to.replace) {
2274
+ this$1.replace(to);
2275
+ } else {
2276
+ this$1.push(to);
2277
+ }
2278
+ } else {
2279
+ // confirm transition and pass on the value
2280
+ next(to);
2281
+ }
2282
+ });
2283
+ } catch (e) {
2284
+ abort(e);
2285
+ }
2286
+ };
2287
+
2288
+ runQueue(queue, iterator, function () {
2289
+ var postEnterCbs = [];
2290
+ var isValid = function () { return this$1.current === route; };
2291
+ // wait until async components are resolved before
2292
+ // extracting in-component enter guards
2293
+ var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);
2294
+ var queue = enterGuards.concat(this$1.router.resolveHooks);
2295
+ runQueue(queue, iterator, function () {
2296
+ if (this$1.pending !== route) {
2297
+ return abort(createNavigationCancelledError(current, route))
2298
+ }
2299
+ this$1.pending = null;
2300
+ onComplete(route);
2301
+ if (this$1.router.app) {
2302
+ this$1.router.app.$nextTick(function () {
2303
+ postEnterCbs.forEach(function (cb) {
2304
+ cb();
2305
+ });
2306
+ });
2307
+ }
2308
+ });
2309
+ });
2310
+ };
2311
+
2312
+ History.prototype.updateRoute = function updateRoute (route) {
2313
+ this.current = route;
2314
+ this.cb && this.cb(route);
2315
+ };
2316
+
2317
+ History.prototype.setupListeners = function setupListeners () {
2318
+ // Default implementation is empty
2319
+ };
2320
+
2321
+ History.prototype.teardownListeners = function teardownListeners () {
2322
+ this.listeners.forEach(function (cleanupListener) {
2323
+ cleanupListener();
2324
+ });
2325
+ this.listeners = [];
2326
+ };
2327
+
2328
+ function normalizeBase (base) {
2329
+ if (!base) {
2330
+ if (inBrowser) {
2331
+ // respect <base> tag
2332
+ var baseEl = document.querySelector('base');
2333
+ base = (baseEl && baseEl.getAttribute('href')) || '/';
2334
+ // strip full URL origin
2335
+ base = base.replace(/^https?:\/\/[^\/]+/, '');
2336
+ } else {
2337
+ base = '/';
2338
+ }
2339
+ }
2340
+ // make sure there's the starting slash
2341
+ if (base.charAt(0) !== '/') {
2342
+ base = '/' + base;
2343
+ }
2344
+ // remove trailing slash
2345
+ return base.replace(/\/$/, '')
2346
+ }
2347
+
2348
+ function resolveQueue (
2349
+ current,
2350
+ next
2351
+ ) {
2352
+ var i;
2353
+ var max = Math.max(current.length, next.length);
2354
+ for (i = 0; i < max; i++) {
2355
+ if (current[i] !== next[i]) {
2356
+ break
2357
+ }
2358
+ }
2359
+ return {
2360
+ updated: next.slice(0, i),
2361
+ activated: next.slice(i),
2362
+ deactivated: current.slice(i)
2363
+ }
2364
+ }
2365
+
2366
+ function extractGuards (
2367
+ records,
2368
+ name,
2369
+ bind,
2370
+ reverse
2371
+ ) {
2372
+ var guards = flatMapComponents(records, function (def, instance, match, key) {
2373
+ var guard = extractGuard(def, name);
2374
+ if (guard) {
2375
+ return Array.isArray(guard)
2376
+ ? guard.map(function (guard) { return bind(guard, instance, match, key); })
2377
+ : bind(guard, instance, match, key)
2378
+ }
2379
+ });
2380
+ return flatten(reverse ? guards.reverse() : guards)
2381
+ }
2382
+
2383
+ function extractGuard (
2384
+ def,
2385
+ key
2386
+ ) {
2387
+ if (typeof def !== 'function') {
2388
+ // extend now so that global mixins are applied.
2389
+ def = _Vue.extend(def);
2390
+ }
2391
+ return def.options[key]
2392
+ }
2393
+
2394
+ function extractLeaveGuards (deactivated) {
2395
+ return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)
2396
+ }
2397
+
2398
+ function extractUpdateHooks (updated) {
2399
+ return extractGuards(updated, 'beforeRouteUpdate', bindGuard)
2400
+ }
2401
+
2402
+ function bindGuard (guard, instance) {
2403
+ if (instance) {
2404
+ return function boundRouteGuard () {
2405
+ return guard.apply(instance, arguments)
2406
+ }
2407
+ }
2408
+ }
2409
+
2410
+ function extractEnterGuards (
2411
+ activated,
2412
+ cbs,
2413
+ isValid
2414
+ ) {
2415
+ return extractGuards(
2416
+ activated,
2417
+ 'beforeRouteEnter',
2418
+ function (guard, _, match, key) {
2419
+ return bindEnterGuard(guard, match, key, cbs, isValid)
2420
+ }
2421
+ )
2422
+ }
2423
+
2424
+ function bindEnterGuard (
2425
+ guard,
2426
+ match,
2427
+ key,
2428
+ cbs,
2429
+ isValid
2430
+ ) {
2431
+ return function routeEnterGuard (to, from, next) {
2432
+ return guard(to, from, function (cb) {
2433
+ if (typeof cb === 'function') {
2434
+ cbs.push(function () {
2435
+ // #750
2436
+ // if a router-view is wrapped with an out-in transition,
2437
+ // the instance may not have been registered at this time.
2438
+ // we will need to poll for registration until current route
2439
+ // is no longer valid.
2440
+ poll(cb, match.instances, key, isValid);
2441
+ });
2442
+ }
2443
+ next(cb);
2444
+ })
2445
+ }
2446
+ }
2447
+
2448
+ function poll (
2449
+ cb, // somehow flow cannot infer this is a function
2450
+ instances,
2451
+ key,
2452
+ isValid
2453
+ ) {
2454
+ if (
2455
+ instances[key] &&
2456
+ !instances[key]._isBeingDestroyed // do not reuse being destroyed instance
2457
+ ) {
2458
+ cb(instances[key]);
2459
+ } else if (isValid()) {
2460
+ setTimeout(function () {
2461
+ poll(cb, instances, key, isValid);
2462
+ }, 16);
2463
+ }
2464
+ }
2465
+
2466
+ /* */
2467
+
2468
+ var HTML5History = /*@__PURE__*/(function (History) {
2469
+ function HTML5History (router, base) {
2470
+ History.call(this, router, base);
2471
+
2472
+ this._startLocation = getLocation(this.base);
2473
+ }
2474
+
2475
+ if ( History ) HTML5History.__proto__ = History;
2476
+ HTML5History.prototype = Object.create( History && History.prototype );
2477
+ HTML5History.prototype.constructor = HTML5History;
2478
+
2479
+ HTML5History.prototype.setupListeners = function setupListeners () {
2480
+ var this$1 = this;
2481
+
2482
+ if (this.listeners.length > 0) {
2483
+ return
2484
+ }
2485
+
2486
+ var router = this.router;
2487
+ var expectScroll = router.options.scrollBehavior;
2488
+ var supportsScroll = supportsPushState && expectScroll;
2489
+
2490
+ if (supportsScroll) {
2491
+ this.listeners.push(setupScroll());
2492
+ }
2493
+
2494
+ var handleRoutingEvent = function () {
2495
+ var current = this$1.current;
2496
+
2497
+ // Avoiding first `popstate` event dispatched in some browsers but first
2498
+ // history route not updated since async guard at the same time.
2499
+ var location = getLocation(this$1.base);
2500
+ if (this$1.current === START && location === this$1._startLocation) {
2501
+ return
2502
+ }
2503
+
2504
+ this$1.transitionTo(location, function (route) {
2505
+ if (supportsScroll) {
2506
+ handleScroll(router, route, current, true);
2507
+ }
2508
+ });
2509
+ };
2510
+ window.addEventListener('popstate', handleRoutingEvent);
2511
+ this.listeners.push(function () {
2512
+ window.removeEventListener('popstate', handleRoutingEvent);
2513
+ });
2514
+ };
2515
+
2516
+ HTML5History.prototype.go = function go (n) {
2517
+ window.history.go(n);
2518
+ };
2519
+
2520
+ HTML5History.prototype.push = function push (location, onComplete, onAbort) {
2521
+ var this$1 = this;
2522
+
2523
+ var ref = this;
2524
+ var fromRoute = ref.current;
2525
+ this.transitionTo(location, function (route) {
2526
+ pushState(cleanPath(this$1.base + route.fullPath));
2527
+ handleScroll(this$1.router, route, fromRoute, false);
2528
+ onComplete && onComplete(route);
2529
+ }, onAbort);
2530
+ };
2531
+
2532
+ HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {
2533
+ var this$1 = this;
2534
+
2535
+ var ref = this;
2536
+ var fromRoute = ref.current;
2537
+ this.transitionTo(location, function (route) {
2538
+ replaceState(cleanPath(this$1.base + route.fullPath));
2539
+ handleScroll(this$1.router, route, fromRoute, false);
2540
+ onComplete && onComplete(route);
2541
+ }, onAbort);
2542
+ };
2543
+
2544
+ HTML5History.prototype.ensureURL = function ensureURL (push) {
2545
+ if (getLocation(this.base) !== this.current.fullPath) {
2546
+ var current = cleanPath(this.base + this.current.fullPath);
2547
+ push ? pushState(current) : replaceState(current);
2548
+ }
2549
+ };
2550
+
2551
+ HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {
2552
+ return getLocation(this.base)
2553
+ };
2554
+
2555
+ return HTML5History;
2556
+ }(History));
2557
+
2558
+ function getLocation (base) {
2559
+ var path = decodeURI(window.location.pathname);
2560
+ if (base && path.toLowerCase().indexOf(base.toLowerCase()) === 0) {
2561
+ path = path.slice(base.length);
2562
+ }
2563
+ return (path || '/') + window.location.search + window.location.hash
2564
+ }
2565
+
2566
+ /* */
2567
+
2568
+ var HashHistory = /*@__PURE__*/(function (History) {
2569
+ function HashHistory (router, base, fallback) {
2570
+ History.call(this, router, base);
2571
+ // check history fallback deeplinking
2572
+ if (fallback && checkFallback(this.base)) {
2573
+ return
2574
+ }
2575
+ ensureSlash();
2576
+ }
2577
+
2578
+ if ( History ) HashHistory.__proto__ = History;
2579
+ HashHistory.prototype = Object.create( History && History.prototype );
2580
+ HashHistory.prototype.constructor = HashHistory;
2581
+
2582
+ // this is delayed until the app mounts
2583
+ // to avoid the hashchange listener being fired too early
2584
+ HashHistory.prototype.setupListeners = function setupListeners () {
2585
+ var this$1 = this;
2586
+
2587
+ if (this.listeners.length > 0) {
2588
+ return
2589
+ }
2590
+
2591
+ var router = this.router;
2592
+ var expectScroll = router.options.scrollBehavior;
2593
+ var supportsScroll = supportsPushState && expectScroll;
2594
+
2595
+ if (supportsScroll) {
2596
+ this.listeners.push(setupScroll());
2597
+ }
2598
+
2599
+ var handleRoutingEvent = function () {
2600
+ var current = this$1.current;
2601
+ if (!ensureSlash()) {
2602
+ return
2603
+ }
2604
+ this$1.transitionTo(getHash(), function (route) {
2605
+ if (supportsScroll) {
2606
+ handleScroll(this$1.router, route, current, true);
2607
+ }
2608
+ if (!supportsPushState) {
2609
+ replaceHash(route.fullPath);
2610
+ }
2611
+ });
2612
+ };
2613
+ var eventType = supportsPushState ? 'popstate' : 'hashchange';
2614
+ window.addEventListener(
2615
+ eventType,
2616
+ handleRoutingEvent
2617
+ );
2618
+ this.listeners.push(function () {
2619
+ window.removeEventListener(eventType, handleRoutingEvent);
2620
+ });
2621
+ };
2622
+
2623
+ HashHistory.prototype.push = function push (location, onComplete, onAbort) {
2624
+ var this$1 = this;
2625
+
2626
+ var ref = this;
2627
+ var fromRoute = ref.current;
2628
+ this.transitionTo(
2629
+ location,
2630
+ function (route) {
2631
+ pushHash(route.fullPath);
2632
+ handleScroll(this$1.router, route, fromRoute, false);
2633
+ onComplete && onComplete(route);
2634
+ },
2635
+ onAbort
2636
+ );
2637
+ };
2638
+
2639
+ HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {
2640
+ var this$1 = this;
2641
+
2642
+ var ref = this;
2643
+ var fromRoute = ref.current;
2644
+ this.transitionTo(
2645
+ location,
2646
+ function (route) {
2647
+ replaceHash(route.fullPath);
2648
+ handleScroll(this$1.router, route, fromRoute, false);
2649
+ onComplete && onComplete(route);
2650
+ },
2651
+ onAbort
2652
+ );
2653
+ };
2654
+
2655
+ HashHistory.prototype.go = function go (n) {
2656
+ window.history.go(n);
2657
+ };
2658
+
2659
+ HashHistory.prototype.ensureURL = function ensureURL (push) {
2660
+ var current = this.current.fullPath;
2661
+ if (getHash() !== current) {
2662
+ push ? pushHash(current) : replaceHash(current);
2663
+ }
2664
+ };
2665
+
2666
+ HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {
2667
+ return getHash()
2668
+ };
2669
+
2670
+ return HashHistory;
2671
+ }(History));
2672
+
2673
+ function checkFallback (base) {
2674
+ var location = getLocation(base);
2675
+ if (!/^\/#/.test(location)) {
2676
+ window.location.replace(cleanPath(base + '/#' + location));
2677
+ return true
2678
+ }
2679
+ }
2680
+
2681
+ function ensureSlash () {
2682
+ var path = getHash();
2683
+ if (path.charAt(0) === '/') {
2684
+ return true
2685
+ }
2686
+ replaceHash('/' + path);
2687
+ return false
2688
+ }
2689
+
2690
+ function getHash () {
2691
+ // We can't use window.location.hash here because it's not
2692
+ // consistent across browsers - Firefox will pre-decode it!
2693
+ var href = window.location.href;
2694
+ var index = href.indexOf('#');
2695
+ // empty path
2696
+ if (index < 0) { return '' }
2697
+
2698
+ href = href.slice(index + 1);
2699
+ // decode the hash but not the search or hash
2700
+ // as search(query) is already decoded
2701
+ // https://github.com/vuejs/vue-router/issues/2708
2702
+ var searchIndex = href.indexOf('?');
2703
+ if (searchIndex < 0) {
2704
+ var hashIndex = href.indexOf('#');
2705
+ if (hashIndex > -1) {
2706
+ href = decodeURI(href.slice(0, hashIndex)) + href.slice(hashIndex);
2707
+ } else { href = decodeURI(href); }
2708
+ } else {
2709
+ href = decodeURI(href.slice(0, searchIndex)) + href.slice(searchIndex);
2710
+ }
2711
+
2712
+ return href
2713
+ }
2714
+
2715
+ function getUrl (path) {
2716
+ var href = window.location.href;
2717
+ var i = href.indexOf('#');
2718
+ var base = i >= 0 ? href.slice(0, i) : href;
2719
+ return (base + "#" + path)
2720
+ }
2721
+
2722
+ function pushHash (path) {
2723
+ if (supportsPushState) {
2724
+ pushState(getUrl(path));
2725
+ } else {
2726
+ window.location.hash = path;
2727
+ }
2728
+ }
2729
+
2730
+ function replaceHash (path) {
2731
+ if (supportsPushState) {
2732
+ replaceState(getUrl(path));
2733
+ } else {
2734
+ window.location.replace(getUrl(path));
2735
+ }
2736
+ }
2737
+
2738
+ /* */
2739
+
2740
+ var AbstractHistory = /*@__PURE__*/(function (History) {
2741
+ function AbstractHistory (router, base) {
2742
+ History.call(this, router, base);
2743
+ this.stack = [];
2744
+ this.index = -1;
2745
+ }
2746
+
2747
+ if ( History ) AbstractHistory.__proto__ = History;
2748
+ AbstractHistory.prototype = Object.create( History && History.prototype );
2749
+ AbstractHistory.prototype.constructor = AbstractHistory;
2750
+
2751
+ AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {
2752
+ var this$1 = this;
2753
+
2754
+ this.transitionTo(
2755
+ location,
2756
+ function (route) {
2757
+ this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);
2758
+ this$1.index++;
2759
+ onComplete && onComplete(route);
2760
+ },
2761
+ onAbort
2762
+ );
2763
+ };
2764
+
2765
+ AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {
2766
+ var this$1 = this;
2767
+
2768
+ this.transitionTo(
2769
+ location,
2770
+ function (route) {
2771
+ this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);
2772
+ onComplete && onComplete(route);
2773
+ },
2774
+ onAbort
2775
+ );
2776
+ };
2777
+
2778
+ AbstractHistory.prototype.go = function go (n) {
2779
+ var this$1 = this;
2780
+
2781
+ var targetIndex = this.index + n;
2782
+ if (targetIndex < 0 || targetIndex >= this.stack.length) {
2783
+ return
2784
+ }
2785
+ var route = this.stack[targetIndex];
2786
+ this.confirmTransition(
2787
+ route,
2788
+ function () {
2789
+ this$1.index = targetIndex;
2790
+ this$1.updateRoute(route);
2791
+ },
2792
+ function (err) {
2793
+ if (isNavigationFailure(err, NavigationFailureType.duplicated)) {
2794
+ this$1.index = targetIndex;
2795
+ }
2796
+ }
2797
+ );
2798
+ };
2799
+
2800
+ AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {
2801
+ var current = this.stack[this.stack.length - 1];
2802
+ return current ? current.fullPath : '/'
2803
+ };
2804
+
2805
+ AbstractHistory.prototype.ensureURL = function ensureURL () {
2806
+ // noop
2807
+ };
2808
+
2809
+ return AbstractHistory;
2810
+ }(History));
2811
+
2812
+ /* */
2813
+
2814
+ var VueRouter = function VueRouter (options) {
2815
+ if ( options === void 0 ) options = {};
2816
+
2817
+ this.app = null;
2818
+ this.apps = [];
2819
+ this.options = options;
2820
+ this.beforeHooks = [];
2821
+ this.resolveHooks = [];
2822
+ this.afterHooks = [];
2823
+ this.matcher = createMatcher(options.routes || [], this);
2824
+
2825
+ var mode = options.mode || 'hash';
2826
+ this.fallback =
2827
+ mode === 'history' && !supportsPushState && options.fallback !== false;
2828
+ if (this.fallback) {
2829
+ mode = 'hash';
2830
+ }
2831
+ if (!inBrowser) {
2832
+ mode = 'abstract';
2833
+ }
2834
+ this.mode = mode;
2835
+
2836
+ switch (mode) {
2837
+ case 'history':
2838
+ this.history = new HTML5History(this, options.base);
2839
+ break
2840
+ case 'hash':
2841
+ this.history = new HashHistory(this, options.base, this.fallback);
2842
+ break
2843
+ case 'abstract':
2844
+ this.history = new AbstractHistory(this, options.base);
2845
+ break
2846
+ default:
2847
+ {
2848
+ assert(false, ("invalid mode: " + mode));
2849
+ }
2850
+ }
2851
+ };
2852
+
2853
+ var prototypeAccessors = { currentRoute: { configurable: true } };
2854
+
2855
+ VueRouter.prototype.match = function match (raw, current, redirectedFrom) {
2856
+ return this.matcher.match(raw, current, redirectedFrom)
2857
+ };
2858
+
2859
+ prototypeAccessors.currentRoute.get = function () {
2860
+ return this.history && this.history.current
2861
+ };
2862
+
2863
+ VueRouter.prototype.init = function init (app /* Vue component instance */) {
2864
+ var this$1 = this;
2865
+
2866
+
2867
+ assert(
2868
+ install.installed,
2869
+ "not installed. Make sure to call `Vue.use(VueRouter)` " +
2870
+ "before creating root instance."
2871
+ );
2872
+
2873
+ this.apps.push(app);
2874
+
2875
+ // set up app destroyed handler
2876
+ // https://github.com/vuejs/vue-router/issues/2639
2877
+ app.$once('hook:destroyed', function () {
2878
+ // clean out app from this.apps array once destroyed
2879
+ var index = this$1.apps.indexOf(app);
2880
+ if (index > -1) { this$1.apps.splice(index, 1); }
2881
+ // ensure we still have a main app or null if no apps
2882
+ // we do not release the router so it can be reused
2883
+ if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }
2884
+
2885
+ if (!this$1.app) {
2886
+ // clean up event listeners
2887
+ // https://github.com/vuejs/vue-router/issues/2341
2888
+ this$1.history.teardownListeners();
2889
+ }
2890
+ });
2891
+
2892
+ // main app previously initialized
2893
+ // return as we don't need to set up new history listener
2894
+ if (this.app) {
2895
+ return
2896
+ }
2897
+
2898
+ this.app = app;
2899
+
2900
+ var history = this.history;
2901
+
2902
+ if (history instanceof HTML5History || history instanceof HashHistory) {
2903
+ var handleInitialScroll = function (routeOrError) {
2904
+ var from = history.current;
2905
+ var expectScroll = this$1.options.scrollBehavior;
2906
+ var supportsScroll = supportsPushState && expectScroll;
2907
+
2908
+ if (supportsScroll && 'fullPath' in routeOrError) {
2909
+ handleScroll(this$1, routeOrError, from, false);
2910
+ }
2911
+ };
2912
+ var setupListeners = function (routeOrError) {
2913
+ history.setupListeners();
2914
+ handleInitialScroll(routeOrError);
2915
+ };
2916
+ history.transitionTo(
2917
+ history.getCurrentLocation(),
2918
+ setupListeners,
2919
+ setupListeners
2920
+ );
2921
+ }
2922
+
2923
+ history.listen(function (route) {
2924
+ this$1.apps.forEach(function (app) {
2925
+ app._route = route;
2926
+ });
2927
+ });
2928
+ };
2929
+
2930
+ VueRouter.prototype.beforeEach = function beforeEach (fn) {
2931
+ return registerHook(this.beforeHooks, fn)
2932
+ };
2933
+
2934
+ VueRouter.prototype.beforeResolve = function beforeResolve (fn) {
2935
+ return registerHook(this.resolveHooks, fn)
2936
+ };
2937
+
2938
+ VueRouter.prototype.afterEach = function afterEach (fn) {
2939
+ return registerHook(this.afterHooks, fn)
2940
+ };
2941
+
2942
+ VueRouter.prototype.onReady = function onReady (cb, errorCb) {
2943
+ this.history.onReady(cb, errorCb);
2944
+ };
2945
+
2946
+ VueRouter.prototype.onError = function onError (errorCb) {
2947
+ this.history.onError(errorCb);
2948
+ };
2949
+
2950
+ VueRouter.prototype.push = function push (location, onComplete, onAbort) {
2951
+ var this$1 = this;
2952
+
2953
+ // $flow-disable-line
2954
+ if (!onComplete && !onAbort && typeof Promise !== 'undefined') {
2955
+ return new Promise(function (resolve, reject) {
2956
+ this$1.history.push(location, resolve, reject);
2957
+ })
2958
+ } else {
2959
+ this.history.push(location, onComplete, onAbort);
2960
+ }
2961
+ };
2962
+
2963
+ VueRouter.prototype.replace = function replace (location, onComplete, onAbort) {
2964
+ var this$1 = this;
2965
+
2966
+ // $flow-disable-line
2967
+ if (!onComplete && !onAbort && typeof Promise !== 'undefined') {
2968
+ return new Promise(function (resolve, reject) {
2969
+ this$1.history.replace(location, resolve, reject);
2970
+ })
2971
+ } else {
2972
+ this.history.replace(location, onComplete, onAbort);
2973
+ }
2974
+ };
2975
+
2976
+ VueRouter.prototype.go = function go (n) {
2977
+ this.history.go(n);
2978
+ };
2979
+
2980
+ VueRouter.prototype.back = function back () {
2981
+ this.go(-1);
2982
+ };
2983
+
2984
+ VueRouter.prototype.forward = function forward () {
2985
+ this.go(1);
2986
+ };
2987
+
2988
+ VueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {
2989
+ var route = to
2990
+ ? to.matched
2991
+ ? to
2992
+ : this.resolve(to).route
2993
+ : this.currentRoute;
2994
+ if (!route) {
2995
+ return []
2996
+ }
2997
+ return [].concat.apply(
2998
+ [],
2999
+ route.matched.map(function (m) {
3000
+ return Object.keys(m.components).map(function (key) {
3001
+ return m.components[key]
3002
+ })
3003
+ })
3004
+ )
3005
+ };
3006
+
3007
+ VueRouter.prototype.resolve = function resolve (
3008
+ to,
3009
+ current,
3010
+ append
3011
+ ) {
3012
+ current = current || this.history.current;
3013
+ var location = normalizeLocation(to, current, append, this);
3014
+ var route = this.match(location, current);
3015
+ var fullPath = route.redirectedFrom || route.fullPath;
3016
+ var base = this.history.base;
3017
+ var href = createHref(base, fullPath, this.mode);
3018
+ return {
3019
+ location: location,
3020
+ route: route,
3021
+ href: href,
3022
+ // for backwards compat
3023
+ normalizedTo: location,
3024
+ resolved: route
3025
+ }
3026
+ };
3027
+
3028
+ VueRouter.prototype.addRoutes = function addRoutes (routes) {
3029
+ this.matcher.addRoutes(routes);
3030
+ if (this.history.current !== START) {
3031
+ this.history.transitionTo(this.history.getCurrentLocation());
3032
+ }
3033
+ };
3034
+
3035
+ Object.defineProperties( VueRouter.prototype, prototypeAccessors );
3036
+
3037
+ function registerHook (list, fn) {
3038
+ list.push(fn);
3039
+ return function () {
3040
+ var i = list.indexOf(fn);
3041
+ if (i > -1) { list.splice(i, 1); }
3042
+ }
3043
+ }
3044
+
3045
+ function createHref (base, fullPath, mode) {
3046
+ var path = mode === 'hash' ? '#' + fullPath : fullPath;
3047
+ return base ? cleanPath(base + '/' + path) : path
3048
+ }
3049
+
3050
+ VueRouter.install = install;
3051
+ VueRouter.version = '3.4.3';
3052
+ VueRouter.isNavigationFailure = isNavigationFailure;
3053
+ VueRouter.NavigationFailureType = NavigationFailureType;
3054
+
3055
+ if (inBrowser && window.Vue) {
3056
+ window.Vue.use(VueRouter);
3057
+ }
3058
+
3059
+ return VueRouter;
3060
+
3061
+ }));