├── .editorconfig ├── .eslintrc.js ├── .github └── workflows │ └── codeql-analysis.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── Hotkeys.vue ├── LICENSE ├── docs ├── HOTKEYSmain.e9b9f79b.png ├── contributors.a61c02a2.js ├── contributors.a61c02a2.js.map ├── detectos.b237a7b4.js ├── detectos.b237a7b4.js.map ├── index.html ├── main.37027979.css ├── main.37027979.css.map ├── src.1f44e69c.js ├── src.1f44e69c.js.map ├── table.81992753.js └── table.81992753.js.map ├── package-lock.json ├── package.json ├── readme.md ├── screenshot.png ├── src ├── assets │ ├── HOTKEYS.png │ ├── HOTKEYS1.png │ └── HOTKEYSmain.png ├── contributors.ts ├── detectos.ts ├── index.html ├── index.ts ├── styles │ └── main.css └── table.ts └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # ---------------------------------------- 2 | # EditorConfig: Defines and enforce the 3 | # consistency of coding styles. 4 | # ---------------------------------------- 5 | 6 | root = true 7 | 8 | [*] 9 | charset = utf-8 10 | end_of_line = lf 11 | indent_size = 2 12 | indent_style = space 13 | insert_final_newline = true 14 | insert_final_newline = true 15 | trim_trailing_whitespace = true 16 | 17 | [.php] 18 | indent_size = 4 19 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | parserOptions: { 4 | parser: 'typescript-eslint/parser' 5 | }, 6 | extends: ['plugin:vue/essential', '@vue/airbnb', '@vue/typescript', 'prettier'], 7 | env: { 8 | browser: true, 9 | node: true, 10 | jquery: true 11 | }, 12 | rules: { 13 | 'arrow-parens': ['error', 'always'], 14 | 'import/prefer-default-export': 'off', 15 | camelcase: 'off', 16 | 'comma-dangle': ['error', 'only-multiline'], 17 | 'class-methods-use-this': 'off', 18 | 'function-paren-newline': 'off', 19 | indent: 'off', 20 | 'import/no-unresolved': 'off', 21 | 'import/no-extraneous-dependencies': 'off', 22 | 'import/extensions': [ 23 | 'error', 24 | 'never', 25 | { 26 | js: 'off', 27 | svg: 'always', 28 | scss: 'always', 29 | php: 'always', 30 | vue: 'always', 31 | css: 'always' 32 | } 33 | ], 34 | 'max-len': [ 35 | 'error', 36 | { 37 | code: 150, 38 | ignoreUrls: true, 39 | ignoreRegExpLiterals: true, 40 | ignoreStrings: true 41 | } 42 | ], 43 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 44 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 45 | 'no-mixed-operators': 'off', 46 | 'no-restricted-globals': 'off', 47 | 'no-underscore-dangle': 'off', 48 | 'object-curly-newline': ['error', { consistent: true }], 49 | 'require-jsdoc': [ 50 | 'warn', 51 | { 52 | require: { 53 | FunctionDeclaration: true, 54 | MethodDefinition: false, 55 | ClassDeclaration: false, 56 | ArrowFunctionExpression: false 57 | } 58 | } 59 | ] 60 | } 61 | }; 62 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | name: "CodeQL" 7 | 8 | on: 9 | push: 10 | branches: [master] 11 | pull_request: 12 | # The branches below must be a subset of the branches above 13 | branches: [master] 14 | schedule: 15 | - cron: '0 2 * * 6' 16 | 17 | jobs: 18 | analyze: 19 | name: Analyze 20 | runs-on: ubuntu-latest 21 | 22 | strategy: 23 | fail-fast: false 24 | matrix: 25 | # Override automatic language detection by changing the below list 26 | # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python'] 27 | language: ['javascript'] 28 | # Learn more... 29 | # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection 30 | 31 | steps: 32 | - name: Checkout repository 33 | uses: actions/checkout@v2 34 | with: 35 | # We must fetch at least the immediate parents so that if this is 36 | # a pull request then we can checkout the head. 37 | fetch-depth: 2 38 | 39 | # If this run was triggered by a pull request event, then checkout 40 | # the head of the pull request instead of the merge commit. 41 | - run: git checkout HEAD^2 42 | if: ${{ github.event_name == 'pull_request' }} 43 | 44 | # Initializes the CodeQL tools for scanning. 45 | - name: Initialize CodeQL 46 | uses: github/codeql-action/init@v1 47 | with: 48 | languages: ${{ matrix.language }} 49 | # If you wish to specify custom queries, you can do so here or in a config file. 50 | # By default, queries listed here will override any specified in a config file. 51 | # Prefix the list here with "+" to use these queries and those in the config file. 52 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 53 | 54 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 55 | # If this step fails, then you should remove it and run the build manually (see below) 56 | - name: Autobuild 57 | uses: github/codeql-action/autobuild@v1 58 | 59 | # ℹ️ Command-line programs to run using the OS shell. 60 | # 📚 https://git.io/JvXDl 61 | 62 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 63 | # and modify them (or add more) to build your code if your project 64 | # uses a compiled language 65 | 66 | #- run: | 67 | # make bootstrap 68 | # make release 69 | 70 | - name: Perform CodeQL Analysis 71 | uses: github/codeql-action/analyze@v1 72 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /dist 2 | /node_modules 3 | npm-debug.log 4 | .DS_Store 5 | .parcel-cache 6 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .gitlab-ci.yml 2 | *.md 3 | *.html 4 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "arrowParens": "always", 4 | "disableLanguages": [ 5 | "markdown" 6 | ], 7 | "printWidth": 150, 8 | "jsxSingleQuote": true 9 | } 10 | -------------------------------------------------------------------------------- /Hotkeys.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 97 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2023 Rogerio Taques 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/HOTKEYSmain.e9b9f79b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rogeriotaques/vue-hotkeys-rt/7e17c4cf9f7fd22ec2b37fa53880efeee9d116c1/docs/HOTKEYSmain.e9b9f79b.png -------------------------------------------------------------------------------- /docs/contributors.a61c02a2.js: -------------------------------------------------------------------------------- 1 | parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c=0&&Math.floor(t)===t&&isFinite(e)}function v(e){return o(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function h(e){return null==e?"":Array.isArray(e)||f(e)&&e.toString===u?JSON.stringify(e,null,2):String(e)}function m(e){var t=parseFloat(e);return isNaN(t)?e:t}function g(e,t){for(var n=Object.create(null),r=e.split(","),o=0;o-1)return e.splice(n,1)}}var w=Object.prototype.hasOwnProperty;function $(e,t){return w.call(e,t)}function x(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var k=/-(\w)/g,C=x(function(e){return e.replace(k,function(e,t){return t?t.toUpperCase():""})}),S=x(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),O=/\B([A-Z])/g,T=x(function(e){return e.replace(O,"-$1").toLowerCase()});var A=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 M(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function j(e,t){for(var n in t)e[n]=t[n];return e}function E(e){for(var t={},n=0;n0,Q=G&&G.indexOf("edge/")>0;G&&G.indexOf("android");var ee=G&&/iphone|ipad|ipod|ios/.test(G);G&&/chrome\/\d+/.test(G),G&&/phantomjs/.test(G);var te,ne=G&&G.match(/firefox\/(\d+)/),re={}.watch,oe=!1;if(Z)try{var ae={};Object.defineProperty(ae,"passive",{get:function(){oe=!0}}),window.addEventListener("test-passive",null,ae)}catch(ou){}var ie=function(){return void 0===te&&(te=!Z&&void 0!==t&&(t.process&&"server"===t.process.env.VUE_ENV)),te},se=Z&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ce(e){return"function"==typeof e&&/native code/.test(e.toString())}var ue,le="undefined"!=typeof Symbol&&ce(Symbol)&&"undefined"!=typeof Reflect&&ce(Reflect.ownKeys);ue="undefined"!=typeof Set&&ce(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 fe=null;function de(e){void 0===e&&(e=null),e||fe&&fe._scope.off(),fe=e,e&&e._scope.on()}var pe,ve=function(){function e(e,t,n,r,o,a,i,s){this.tag=e,this.data=t,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=a,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=i,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}return Object.defineProperty(e.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),e}(),he=function(e){void 0===e&&(e="");var t=new ve;return t.text=e,t.isComment=!0,t};function me(e){return new ve(void 0,void 0,void 0,String(e))}function ge(e){var t=new ve(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=g("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,require"),_e=function(e,t){Tr('Property or method "'.concat(t,'" is not defined on the instance but ')+"referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.",e)},be=function(e,t){Tr('Property "'.concat(t,'" must be accessed with "$data.').concat(t,'" because ')+'properties starting with "$" or "_" are not proxied in the Vue instance to prevent conflicts with Vue internals. See: https://v2.vuejs.org/v2/api/#data',e)},we="undefined"!=typeof Proxy&&ce(Proxy);if(we){var $e=g("stop,prevent,self,ctrl,shift,alt,meta,exact");B.keyCodes=new Proxy(B.keyCodes,{set:function(e,t,n){return $e(t)?(Tr("Avoid overwriting built-in modifier in config.keyCodes: .".concat(t)),!1):(e[t]=n,!0)}})}var xe={has:function(e,t){var n=t in e,r=ye(t)||"string"==typeof t&&"_"===t.charAt(0)&&!(t in e.$data);return n||r||(t in e.$data?be(e,t):_e(e,t)),n||!r}},ke={get:function(e,t){return"string"!=typeof t||t in e||(t in e.$data?be(e,t):_e(e,t)),e[t]}};pe=function(e){if(we){var t=e.$options,n=t.render&&t.render._withStripped?ke:xe;e._renderProxy=new Proxy(e,n)}else e._renderProxy=e};var Ce=function(){return(Ce=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&(vt((l=e(l,"".concat(s||"","_").concat(u)))[0])&&vt(d)&&(c[f]=me(d.text+l[0].text),l.shift()),c.push.apply(c,l)):i(l)?vt(d)?c[f]=me(d.text+l):""!==l&&c.push(me(l)):vt(l)&&vt(d)?c[f]=me(d.text+l.text):(a(t._isVList)&&o(l.tag)&&r(l.key)&&o(s)&&(l.key="__vlist".concat(s,"_").concat(u,"__")),c.push(l)));return c}(e):void 0}function vt(e){return o(e)&&o(e.text)&&!1===e.isComment}var ht=1,mt=2;function gt(e,t,u,l,f,d){return(n(u)||i(u))&&(f=l,l=u,u=void 0),a(d)&&(f=mt),function(e,t,u,l,f){if(o(u)&&o(u.__ob__))return Tr("Avoid using observed data object as vnode data: ".concat(JSON.stringify(u),"\n")+"Always create fresh vnode data objects in each render!",e),he();o(u)&&o(u.is)&&(t=u.is);if(!t)return he();o(u)&&o(u.key)&&!i(u.key)&&Tr("Avoid using non-primitive value as key, use string/number value instead.",e);n(l)&&s(l[0])&&((u=u||{}).scopedSlots={default:l[0]},l.length=0);f===mt?l=pt(l):f===ht&&(l=function(e){for(var t=0;t."),e),d=new ve(B.parsePlatformTagName(t),u,l,void 0,void 0,e)):d=u&&u.pre||!o(v=Vr(e.$options,"components",t))?new ve(t,u,l,void 0,void 0,e):kr(v,u,e,l,t)}else d=kr(t,u,e,l);return n(d)?d:o(d)?(o(p)&&function e(t,n,i){t.ns=n;"foreignObject"===t.tag&&(n=void 0,i=!0);if(o(t.children))for(var s=0,c=t.children.length;s0,s=n?!!n.$stable:!i,c=n&&n.$key;if(n){if(n._normalized)return n._normalized;if(s&&o&&o!==e&&c===o.$key&&!i&&!o.$hasNormal)return o;for(var u in a={},n)n[u]&&"$"!==u[0]&&(a[u]=Rt(t,r,u,n[u]))}else a={};for(var l in r)l in a||(a[l]=Lt(r,l));return n&&Object.isExtensible(n)&&(n._normalized=a),J(a,"$stable",s),J(a,"$key",c),J(a,"$hasNormal",i),a}function Rt(e,t,r,o){var a=function(){var t=fe;de(e);var r=arguments.length?o.apply(null,arguments):o({}),a=(r=r&&"object"==typeof r&&!n(r)?[r]:pt(r))&&r[0];return de(t),r&&(!a||1===r.length&&a.isComment&&!Pt(a))?void 0:r};return o.proxy&&Object.defineProperty(t,r,{get:a,enumerable:!0,configurable:!0}),a}function Lt(e,t){return function(){return e[t]}}function Ft(t){var n=!1;return{get attrs(){if(!t._attrsProxy){var n=t._attrsProxy={};J(n,"_v_attr_proxy",!0),Ut(n,t.$attrs,e,t,"$attrs")}return t._attrsProxy},get listeners(){t._listenersProxy||Ut(t._listenersProxy={},t.$listeners,e,t,"$listeners");return t._listenersProxy},get slots(){return function(e){e._slotsProxy||Ht(e._slotsProxy={},e.$scopedSlots);return e._slotsProxy}(t)},emit:A(t.$emit,t),expose:function(e){n&&Tr("expose() should be called only once per setup().",t),n=!0,e&&Object.keys(e).forEach(function(n){return Xe(t,e,n)})}}}function Ut(e,t,n,r,o){var a=!1;for(var i in t)i in e?t[i]!==n[i]&&(a=!0):(a=!0,Vt(e,i,r,o));for(var i in e)i in t||(a=!0,delete e[i]);return a}function Vt(e,t,n,r){Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){return n[r][t]}})}function Ht(e,t){for(var n in t)e[n]=t[n];for(var n in e)n in t||delete e[n]}function Bt(){fe||Tr("useContext() called without active instance.");var e=fe;return e._setupContext||(e._setupContext=Ft(e))}var zt,qt=null;function Jt(e,t){return(e.__esModule||le&&"Module"===e[Symbol.toStringTag])&&(e=e.default),c(e)?t.extend(e):e}function Kt(e){if(n(e))for(var t=0;tdocument.createEvent("Event").timeStamp&&(vn=function(){return hn.now()})}var mn=function(e,t){if(e.post){if(!t.post)return 1}else if(t.post)return-1;return e.id-t.id};function gn(){var e,t;for(pn=vn(),fn=!0,an.sort(mn),dn=0;dnon)){Tr("You may have an infinite update loop "+(e.user?'in watcher with expression "'.concat(e.expression,'"'):"in a component render function."),e.vm);break}var n=sn.slice(),r=an.slice();dn=an.length=sn.length=0,cn={},un={},ln=fn=!1,function(e){for(var t=0;tdn&&an[n].id>e.id;)n--;an.splice(n+1,0,e)}else an.push(e);if(!ln){if(ln=!0,!B.async)return void gn();Hn(gn)}}}var _n="watcher",bn="".concat(_n," callback"),wn="".concat(_n," getter"),$n="".concat(_n," cleanup");function xn(e,t){return Sn(e,null,Ce(Ce({},t),{flush:"post"}))}var kn,Cn={};function Sn(t,r,o){var a=void 0===o?e:o,i=a.immediate,c=a.deep,u=a.flush,l=void 0===u?"pre":u,f=a.onTrack,d=a.onTrigger;r||(void 0!==i&&Tr('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),void 0!==c&&Tr('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'));var p,v,h=function(e){Tr("Invalid watch source: ".concat(e,". A watch source can only be a getter/effect ")+"function, a ref, a reactive object, or an array of these types.")},m=fe,g=function(e,t,n){return void 0===n&&(n=null),Mn(e,null,n,m,t)},y=!1,_=!1;if(Ge(t)?(p=function(){return t.value},y=Je(t)):qe(t)?(p=function(){return t.__ob__.dep.depend(),t},c=!0):n(t)?(_=!0,y=t.some(function(e){return qe(e)||Je(e)}),p=function(){return t.map(function(e){return Ge(e)?e.value:qe(e)?or(e):s(e)?g(e,wn):void h(e)})}):s(t)?p=r?function(){return g(t,wn)}:function(){if(!m||!m._isDestroyed)return v&&v(),g(t,_n,[w])}:(p=I,h(t)),r&&c){var b=p;p=function(){return or(b())}}var w=function(e){v=$.onStop=function(){g(e,$n)}};if(ie())return w=I,r?i&&g(r,bn,[p(),_?[]:void 0,w]):p(),I;var $=new ir(fe,p,I,{lazy:!0});$.noRecurse=!r;var x=_?[]:Cn;return $.run=function(){if($.active)if(r){var e=$.get();(c||y||(_?e.some(function(e,t){return F(e,x[t])}):F(e,x)))&&(v&&v(),g(r,bn,[e,x===Cn?void 0:x,w]),x=e)}else $.get()},"sync"===l?$.update=$.run:"post"===l?($.post=!0,$.update=function(){return yn($)}):$.update=function(){if(m&&m===fe&&!m._isMounted){var e=m._preWatchers||(m._preWatchers=[]);e.indexOf($)<0&&e.push($)}else yn($)},$.onTrack=f,$.onTrigger=d,r?i?$.run():x=$.get():"post"===l&&m?m.$once("hook:mounted",function(){return $.get()}):$.get(),function(){$.teardown()}}var On=function(){function e(e){void 0===e&&(e=!1),this.active=!0,this.effects=[],this.cleanups=[],!e&&kn&&(this.parent=kn,this.index=(kn.scopes||(kn.scopes=[])).push(this)-1)}return e.prototype.run=function(e){if(this.active){var t=kn;try{return kn=this,e()}finally{kn=t}}else Tr("cannot run an inactive effect scope.")},e.prototype.on=function(){kn=this},e.prototype.off=function(){kn=this.parent},e.prototype.stop=function(e){if(this.active){var t=void 0,n=void 0;for(t=0,n=this.effects.length;t1)return n&&s(t)?t.call(r):t;Tr('injection "'.concat(String(e),'" not found.'))}else Tr("inject() can only be used inside setup() or functional components.")},h:function(e,t,n){return fe||Tr("globally imported h() can only be invoked when there is an active component instance, e.g. synchronously in a component's render or setup function."),gt(fe,e,t,n,2,!0)},getCurrentInstance:function(){return fe&&{proxy:fe}},useSlots:function(){return Bt().slots},useAttrs:function(){return Bt().attrs},useListeners:function(){return Bt().listeners},mergeDefaults:function(e,t){var r=n(e)?e.reduce(function(e,t){return e[t]={},e},{}):e;for(var o in t){var a=r[o];a?n(a)||s(a)?r[o]={type:a,default:t[o]}:a.default=t[o]:null===a?r[o]={default:t[o]}:Tr('props default key "'.concat(o,'" has no corresponding declaration.'))}return r},nextTick:Hn,set:Ve,del:He,useCssModule:function(t){return Tr("useCssModule() is not supported in the global build."),e},useCssVars:function(e){if(Z){var t=fe;t?xn(function(){var n=t.$el,r=e(t,t._setupProxy);if(n&&1===n.nodeType){var o=n.style;for(var a in r)o.setProperty("--".concat(a),r[a])}}):Tr("useCssVars is called without current active component instance.")}},defineAsyncComponent:function(e){s(e)&&(e={loader:e});var t=e.loader,n=e.loadingComponent,r=e.errorComponent,o=e.delay,a=void 0===o?200:o,i=e.timeout,u=e.suspensible,l=void 0!==u&&u,f=e.onError;l&&Tr("The suspensiblbe option for async components is not supported in Vue2. It is ignored.");var d=null,p=0,v=function(){var e;return d||(e=d=t().catch(function(e){if(e=e instanceof Error?e:new Error(String(e)),f)return new Promise(function(t,n){f(e,function(){return t((p++,d=null,v()))},function(){return n(e)},p+1)});throw e}).then(function(t){if(e!==d&&d)return d;if(t||Tr("Async component loader resolved to undefined. If you are using retry(), make sure to return its return value."),t&&(t.__esModule||"Module"===t[Symbol.toStringTag])&&(t=t.default),t&&!c(t)&&!s(t))throw new Error("Invalid async component load result: ".concat(t));return t}))};return function(){return{component:v(),delay:a,timeout:i,error:r,loading:n}}},onBeforeMount:zn,onMounted:qn,onBeforeUpdate:Jn,onUpdated:Kn,onBeforeUnmount:Wn,onUnmounted:Zn,onActivated:Gn,onDeactivated:Yn,onServerPrefetch:Xn,onRenderTracked:Qn,onRenderTriggered:er,onErrorCaptured:function(e,t){void 0===t&&(t=fe),tr(e,t)}}),rr=new ue;function or(e){return function e(t,r){var o,a;var i=n(t);if(!i&&!c(t)||Object.isFrozen(t)||t instanceof ve)return;if(t.__ob__){var s=t.__ob__.dep.id;if(r.has(s))return;r.add(s)}if(i)for(o=t.length;o--;)e(t[o],r);else if(Ge(t))e(t.value,r);else for(a=Object.keys(t),o=a.length;o--;)e(t[a[o]],r)}(e,rr),rr.clear(),e}var ar=0,ir=function(){function e(e,t,n,r,o){var a,i;a=this,void 0===(i=kn&&!kn._vm?kn:e?e._scope:void 0)&&(i=kn),i&&i.active&&i.effects.push(a),(this.vm=e)&&o&&(e._watcher=this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before,this.onTrack=r.onTrack,this.onTrigger=r.onTrigger):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++ar,this.active=!0,this.post=!1,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ue,this.newDepIds=new ue,this.expression=t.toString(),s(t)?this.getter=t:(this.getter=function(e){if(!K.test(e)){var t=e.split(".");return function(e){for(var n=0;n";var n=s(e)&&null!=e.cid?e.options:e._isVue?e.$options||e.constructor.options:e,r=wr(n),o=n.__file;if(!r&&o){var a=o.match(/([^/\\]+)\.vue$/);r=a&&a[1]}return(r?"<".concat(r.replace(jr,function(e){return e.toUpperCase()}).replace(/[-_]/g,""),">"):"")+(o&&!1!==t?" at ".concat(o):"")};Sr=function(e){if(e._isVue&&e.$parent){for(var t=[],r=0;e;){if(t.length>0){var o=t[t.length-1];if(o.constructor===e.constructor){r++,e=e.$parent;continue}r>0&&(t[t.length-1]=[o,r],r=0)}t.push(e),e=e.$parent}return"\n\nfound in\n\n"+t.map(function(e,t){return"".concat(0===t?"---\x3e ":function(e,t){for(var n="";t;)t%2==1&&(n+=e),t>1&&(e+=e),t>>=1;return n}(" ",5+2*t)).concat(n(e)?"".concat(Or(e[0]),"... (").concat(e[1]," recursive calls)"):Or(e))}).join("\n")}return"\n\n(found in ".concat(Or(e),")")};var Er=B.optionMergeStrategies;function Ir(e,t){if(!t)return e;for(var n,r,o,a=le?Reflect.ownKeys(t):Object.keys(t),i=0;i-1)if(i&&!$(a,"default"))u=!1;else if(""===u||u===T(e)){var d=Wr(String,a.type);(d<0||f-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!d(e)&&e.test(t)}function no(e,t){var n=e.cache,r=e.keys,o=e._vnode;for(var a in n){var i=n[a];if(i){var s=i.name;s&&!t(s)&&ro(n,a,r,o)}}}function ro(e,t,n,r){var o=e[t];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),e[t]=null,b(n,t)}!function(t){t.prototype._init=function(t){var n,r,o=this;o._uid=mr++,B.performance&&et&&(n="vue-perf-start:".concat(o._uid),r="vue-perf-end:".concat(o._uid),et(n)),o._isVue=!0,o.__v_skip=!0,o._scope=new On(!0),o._scope._vm=!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 o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(o,t):o.$options=Ur(gr(o.constructor),t||{},o),pe(o),o._self=o,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._provided=n?n._provided:Object.create(null),e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(o),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Yt(e,t)}(o),function(t){t._vnode=null,t._staticTrees=null;var n=t.$options,r=t.$vnode=n._parentVnode,o=r&&r.context;t.$slots=It(n._renderChildren,o),t.$scopedSlots=r?Dt(t.$parent,r.data.scopedSlots,t.$slots):e,t._c=function(e,n,r,o){return gt(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return gt(t,e,n,r,o,!0)};var a=r&&r.data;Ue(t,"$attrs",a&&a.attrs||e,function(){!Qt&&Tr("$attrs is readonly.",t)},!0),Ue(t,"$listeners",n._parentListeners||e,function(){!Qt&&Tr("$listeners is readonly.",t)},!0)}(o),rn(o,"beforeCreate",void 0,!1),function(e){var t=hr(e.$options.inject,e);t&&(De(!1),Object.keys(t).forEach(function(n){Ue(e,n,t[n],function(){Tr("Avoid mutating an injected value directly since the changes will be overwritten whenever the provided component re-renders. "+'injection being mutated: "'.concat(n,'"'),e)})}),De(!0))}(o),ur(o),function(e){var t=e.$options.provide;if(t){var n=s(t)?t.call(e):t;if(!c(n))return;for(var r=Tn(e),o=le?Reflect.ownKeys(n):Object.keys(n),a=0;a1?M(r):r;for(var o=M(arguments,1),a='event handler for "'.concat(e,'"'),i=0,s=r.length;iparseInt(this.max)&&ro(e,t[0],t,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)ro(this.cache,e,this.keys)},mounted:function(){var e=this;this.cacheVNode(),this.$watch("include",function(t){no(e,function(e){return to(t,e)})}),this.$watch("exclude",function(t){no(e,function(e){return!to(t,e)})})},updated:function(){this.cacheVNode()},render:function(){var e=this.$slots.default,t=Kt(e),n=t&&t.componentOptions;if(n){var r=eo(n),o=this.include,a=this.exclude;if(o&&(!r||!to(o,r))||a&&r&&to(a,r))return t;var i=this.cache,s=this.keys,c=null==t.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):t.key;i[c]?(t.componentInstance=i[c].componentInstance,b(s,c),s.push(c)):(this.vnodeToCache=t,this.keyToCache=c),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return B},set:function(){Tr("Do not replace the Vue.config object, set individual fields instead.")}};Object.defineProperty(e,"config",t),e.util={warn:Tr,extend:j,mergeOptions:Ur,defineReactive:Ue},e.set=Ve,e.delete=He,e.nextTick=Hn,e.observable=function(e){return Fe(e),e},e.options=Object.create(null),V.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,j(e.options.components,ao),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=M(arguments,1);return n.unshift(this),s(e.install)?e.install.apply(e,n):s(e)&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=Ur(this.options,e),this}}(e),Qr(e),function(e){V.forEach(function(t){e[t]=function(e,n){return n?("component"===t&&Lr(e),"component"===t&&f(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&s(n)&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}(e)}(Xr),Object.defineProperty(Xr.prototype,"$isServer",{get:ie}),Object.defineProperty(Xr.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Xr,"FunctionalRenderContext",{value:yr}),Xr.version="2.7.10";var io=g("style,class"),so=g("input,textarea,option,select,progress"),co=function(e,t,n){return"value"===n&&so(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},uo=g("contenteditable,draggable,spellcheck"),lo=g("events,caret,typing,plaintext-only"),fo=function(e,t){return go(t)||"false"===t?"false":"contenteditable"===e&&lo(t)?t:"true"},po=g("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,truespeed,typemustmatch,visible"),vo="http://www.w3.org/1999/xlink",ho=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},mo=function(e){return ho(e)?e.slice(6,e.length):""},go=function(e){return null==e||!1===e};function yo(e){for(var t=e.data,n=e,r=e;o(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=_o(r.data,t));for(;o(n=n.parent);)n&&n.data&&(t=_o(t,n.data));return function(e,t){if(o(e)||o(t))return bo(e,wo(t));return""}(t.staticClass,t.class)}function _o(e,t){return{staticClass:bo(e.staticClass,t.staticClass),class:o(e.class)?[e.class,t.class]:t.class}}function bo(e,t){return e?t?e+" "+t:e:t||""}function wo(e){return Array.isArray(e)?function(e){for(var t,n="",r=0,a=e.length;r-1?Ko(e,t,n):po(t)?go(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):uo(t)?e.setAttribute(t,fo(t,n)):ho(t)?go(n)?e.removeAttributeNS(vo,mo(t)):e.setAttributeNS(vo,t,n):Ko(e,t,n)}function Ko(e,t,n){if(go(n))e.removeAttribute(t);else{if(Y&&!X&&"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 Wo={create:qo,update:qo};function Zo(e,t){var n=t.elm,a=t.data,i=e.data;if(!(r(a.staticClass)&&r(a.class)&&(r(i)||r(i.staticClass)&&r(i.class)))){var s=yo(t),c=n._transitionClasses;o(c)&&(s=bo(s,wo(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Go,Yo,Xo,Qo,ea,ta,na,ra={create:Zo,update:Zo},oa=/[\w).+\-_$\]]/;function aa(e){var t,n,r,o,a,i=!1,s=!1,c=!1,u=!1,l=0,f=0,d=0,p=0;for(r=0;r=0&&" "===(h=e.charAt(v));v--);h&&oa.test(h)||(u=!0)}}else void 0===o?(p=r+1,o=e.slice(0,r).trim()):m();function m(){(a||(a=[])).push(e.slice(p,r).trim()),p=r+1}if(void 0===o?o=e.slice(0,r).trim():0!==p&&m(),a)for(r=0;r-1?{exp:e.slice(0,Qo),key:'"'+e.slice(Qo+1)+'"'}:{exp:e,key:null};Yo=e,Qo=ea=ta=0;for(;!xa();)ka(Xo=$a())?Sa(Xo):91===Xo&&Ca(Xo);return{exp:e.slice(0,ea),key:e.slice(ea+1,ta)}}(e);return null===n.key?"".concat(e,"=").concat(t):"$set(".concat(n.exp,", ").concat(n.key,", ").concat(t,")")}function $a(){return Yo.charCodeAt(++Qo)}function xa(){return Qo>=Go}function ka(e){return 34===e||39===e}function Ca(e){var t=1;for(ea=Qo;!xa();)if(ka(e=$a()))Sa(e);else if(91===e&&t++,93===e&&t--,0===t){ta=Qo;break}}function Sa(e){for(var t=e;!xa()&&(e=$a())!==t;);}var Oa,Ta="__r",Aa="__c";function Ma(e,t,n){var r=Oa;return function o(){null!==t.apply(null,arguments)&&Ia(e,o,n,r)}}var ja=Nn&&!(ne&&Number(ne[1])<=53);function Ea(e,t,n,r){if(ja){var o=pn,a=t;t=a._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=o||e.timeStamp<=0||e.target.ownerDocument!==document)return a.apply(this,arguments)}}Oa.addEventListener(e,t,oe?{capture:n,passive:r}:n)}function Ia(e,t,n,r){(r||Oa).removeEventListener(e,t._wrapper||t,n)}function Na(e,t){if(!r(e.data.on)||!r(t.data.on)){var n=t.data.on||{},a=e.data.on||{};Oa=t.elm||e.elm,function(e){if(o(e[Ta])){var t=Y?"change":"input";e[t]=[].concat(e[Ta],e[t]||[]),delete e[Ta]}o(e[Aa])&&(e.change=[].concat(e[Aa],e.change||[]),delete e[Aa])}(n),lt(n,a,Ea,Ia,Ma,t.context),Oa=void 0}}var Pa,Da={create:Na,update:Na,destroy:function(e){return Na(e,No)}};function Ra(e,t){if(!r(e.data.domProps)||!r(t.data.domProps)){var n,i,s=t.elm,c=e.data.domProps||{},u=t.data.domProps||{};for(n in(o(u.__ob__)||a(u._v_attr_proxy))&&(u=t.data.domProps=j({},u)),c)n in u||(s[n]="");for(n in u){if(i=u[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),i===c[n])continue;1===s.childNodes.length&&s.removeChild(s.childNodes[0])}if("value"===n&&"PROGRESS"!==s.tagName){s._value=i;var l=r(i)?"":String(i);La(s,l)&&(s.value=l)}else if("innerHTML"===n&&ko(s.tagName)&&r(s.innerHTML)){(Pa=Pa||document.createElement("div")).innerHTML="".concat(i,"");for(var f=Pa.firstChild;s.firstChild;)s.removeChild(s.firstChild);for(;f.firstChild;)s.appendChild(f.firstChild)}else if(i!==c[n])try{s[n]=i}catch(ou){}}}}function La(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(ou){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,r=e._vModifiers;if(o(r)){if(r.number)return m(n)!==m(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var Fa={create:Ra,update:Ra},Ua=x(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 Va(e){var t=Ha(e.style);return e.staticStyle?j(e.staticStyle,t):t}function Ha(e){return Array.isArray(e)?E(e):"string"==typeof e?Ua(e):e}var Ba,za=/^--/,qa=/\s*!important$/,Ja=function(e,t,n){if(za.test(t))e.style.setProperty(t,n);else if(qa.test(n))e.style.setProperty(T(t),n.replace(qa,""),"important");else{var r=Wa(t);if(Array.isArray(n))for(var o=0,a=n.length;o-1?t.split(Ya).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" ".concat(e.getAttribute("class")||""," ");n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function Qa(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(Ya).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" ".concat(e.getAttribute("class")||""," "),r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function ei(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&j(t,ti(e.name||"v")),j(t,e),t}return"string"==typeof e?ti(e):void 0}}var ti=x(function(e){return{enterClass:"".concat(e,"-enter"),enterToClass:"".concat(e,"-enter-to"),enterActiveClass:"".concat(e,"-enter-active"),leaveClass:"".concat(e,"-leave"),leaveToClass:"".concat(e,"-leave-to"),leaveActiveClass:"".concat(e,"-leave-active")}}),ni=Z&&!X,ri="transition",oi="animation",ai="transition",ii="transitionend",si="animation",ci="animationend";ni&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(ai="WebkitTransition",ii="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(si="WebkitAnimation",ci="webkitAnimationEnd"));var ui=Z?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function li(e){ui(function(){ui(e)})}function fi(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),Xa(e,t))}function di(e,t){e._transitionClasses&&b(e._transitionClasses,t),Qa(e,t)}function pi(e,t,n){var r=hi(e,t),o=r.type,a=r.timeout,i=r.propCount;if(!o)return n();var s=o===ri?ii:ci,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++c>=i&&u()};setTimeout(function(){c0&&(n=ri,l=i,f=a.length):t===oi?u>0&&(n=oi,l=u,f=c.length):f=(n=(l=Math.max(i,u))>0?i>u?ri:oi:null)?n===ri?a.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===ri&&vi.test(r[ai+"Property"])}}function mi(e,t){for(;e.length explicit ".concat(t," duration is not a valid number - ")+"got ".concat(JSON.stringify(e),"."),n.context):isNaN(e)&&Tr(" explicit ".concat(t," duration is NaN - ")+"the duration expression might be incorrect.",n.context)}function wi(e){return"number"==typeof e&&!isNaN(e)}function $i(e){if(r(e))return!1;var t=e.fns;return o(t)?$i(Array.isArray(t)?t[0]:t):(e._length||e.length)>1}function xi(e,t){!0!==t.data.show&&yi(t)}var ki=function(e){var t,s,c={},u=e.modules,l=e.nodeOps;for(t=0;t - did you register the component correctly? For recursive components, make sure to provide the "name" option.',e.context),e.elm=e.ns?l.createElementNS(e.ns,h):l.createElement(h,e),$(e),_(e,d,t),o(f)&&w(e,t),y(n,e.elm,r),f&&f.pre&&v--):a(e.isComment)?(e.elm=l.createComment(e.text),y(n,e.elm,r)):(e.elm=l.createTextNode(e.text),y(n,e.elm,r))}}function m(e,t){o(e.data.pendingInsert)&&(t.push.apply(t,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,b(e)?(w(e,t),$(e)):(Eo(e),t.push(e))}function y(e,t,n){o(e)&&(o(n)?l.parentNode(n)===e&&l.insertBefore(e,t,n):l.appendChild(e,t))}function _(e,t,r){if(n(t)){O(t);for(var o=0;op?x(e,r(n[g+1])?null:n[g+1].elm,n,d,g,a):d>g&&C(t,f,p)}(f,v,m,n,u):o(m)?(O(m),o(e.text)&&l.setTextContent(f,""),x(f,null,m,0,m.length-1,n)):o(v)?C(v,0,v.length-1):o(e.text)&&l.setTextContent(f,""):e.text!==t.text&&l.setTextContent(f,t.text),o(p)&&o(d=p.hook)&&o(d=d.postpatch)&&d(e,t)}}}function M(e,t,n){if(a(n)&&o(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r, or missing . Bailing hydration and performing full client-side render.")}s=e,e=new ve(l.tagName(s).toLowerCase(),{},[],void 0,s)}var p=e.elm,v=l.parentNode(p);if(h(t,f,p._leaveCb?null:v,l.nextSibling(p)),o(t.parent))for(var m=t.parent,g=b(t);m;){for(var y=0;y-1,i.selected!==a&&(i.selected=a);else if(D(Ai(i),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));o||(e.selectedIndex=-1)}else Tr('