diff --git a/.babelrc b/.babelrc index 2121220..6743478 100644 --- a/.babelrc +++ b/.babelrc @@ -1,4 +1,11 @@ { - "presets": ["es2015"], - "plugins": ["transform-object-rest-spread","transform-vue-jsx"] + "presets": [ + ["@babel/preset-env", { + "modules": "commonjs", + "targets": { + "browsers": ["> 1%", "last 2 versions", "not ie <= 8"], + "node": "current" + } + }] + ] } diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..95cf0b0 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +/build/ +/config/ +/dist/ \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..f71b192 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,25 @@ +module.exports = { + root: true, + parserOptions: { + parser: 'babel-eslint' + }, + env: { + browser: true, + node: true, + mocha: true + }, + "globals": { + "expect": true + }, + extends: [ + 'plugin:vue/recommended', + 'standard' + ], + plugins: [ + 'vue' + ], + rules: { + 'generator-star-spacing': 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' + } +} diff --git a/.gitignore b/.gitignore index c2658d7..9d79657 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,61 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# jest test coverage +.jest_coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# built files +dist diff --git a/README.md b/README.md index 6bee578..f2275c1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ # vue file base64 +This package is based on the [vue-file-base64](https://github.com/BosNaufal/vue-file-base64) package by Naufal Rabbani. + [Vue](http://vuejs.org) Component for Converting Files to base64. It's based on [Dev Mozilla Website](https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL) [DEMO](https://rawgit.com/BosNaufal/vue-file-base64/master/index.html) @@ -57,15 +59,9 @@ Is your component support multiple file? #### done (Function) Callback Function When File has done proceed - ## Thank You for Making this useful~ -## Let's talk about some projects with me -Just Contact Me At: -- Email: [bosnaufalemail@gmail.com](mailto:bosnaufalemail@gmail.com) -- Skype Id: bosnaufal254 -- twitter: [@BosNaufal](https://twitter.com/BosNaufal) - ## License -[MIT](http://opensource.org/licenses/MIT) -Copyright (c) 2016 - forever Naufal Rabbani +This package is based on the [vue-file-base64](https://github.com/BosNaufal/vue-file-base64) package by Naufal Rabbani. + +It is licensed as [MIT](http://opensource.org/licenses/MIT) diff --git a/src/sass/main.sass b/assets/css/app.styl similarity index 100% rename from src/sass/main.sass rename to assets/css/app.styl diff --git a/build/build.js b/build/build.js deleted file mode 100644 index 0ad2a46..0000000 --- a/build/build.js +++ /dev/null @@ -1,8 +0,0 @@ -!function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return t[i].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){var i=n(11),r=n(9);i.config.debug=!0,i.config.devTools=!0,new i({el:"body",components:{App:r}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(10),s=i(r);n(6),e["default"]={data:function(){return{files:[]}},components:{fileBase64:s["default"]},methods:{getFiles:function(t){this.files=t}}}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e["default"]={props:{multiple:{type:Boolean,"default":!1},done:{type:Function,"default":function(){}}},methods:{onChange:function(t){for(var e=this,n=t.target.files,i=[],r=function(){var t=n[s],r=new FileReader;r.readAsDataURL(t),r.onload=function(){var s={name:t.name,type:t.type,size:Math.round(t.size/1e3)+" kB",base64:r.result,file:t};i.push(s),i.length==n.length&&(e.multiple?e.done(i):e.done(i[0]))}},s=0;s=0&&b.splice(e,1)}function a(t){var e=document.createElement("style");return e.type="text/css",s(t,e),e}function l(t){var e=document.createElement("link");return e.rel="stylesheet",s(t,e),e}function h(t,e){var n,i,r;if(e.singleton){var s=_++;n=g||(g=a(e)),i=c.bind(null,n,s,!1),r=c.bind(null,n,s,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=l(e),i=f.bind(null,n),r=function(){o(n),n.href&&URL.revokeObjectURL(n.href)}):(n=a(e),i=u.bind(null,n),r=function(){o(n)});return i(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;i(t=e)}else r()}}function c(t,e,n,i){var r=n?"":i.css;if(t.styleSheet)t.styleSheet.cssText=y(e,r);else{var s=document.createTextNode(r),o=t.childNodes;o[e]&&t.removeChild(o[e]),o.length?t.insertBefore(s,o[e]):t.appendChild(s)}}function u(t,e){var n=e.css,i=e.media;if(i&&t.setAttribute("media",i),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function f(t,e){var n=e.css,i=e.sourceMap;i&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */");var r=new Blob([n],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(r),s&&URL.revokeObjectURL(s)}var p={},d=function(t){var e;return function(){return"undefined"==typeof e&&(e=t.apply(this,arguments)),e}},v=d(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),m=d(function(){return document.head||document.getElementsByTagName("head")[0]}),g=null,_=0,b=[];t.exports=function(t,e){e=e||{},"undefined"==typeof e.singleton&&(e.singleton=v()),"undefined"==typeof e.insertAt&&(e.insertAt="bottom");var n=r(t);return i(n,e),function(t){for(var s=[],o=0;o

Vue File to Base64 Converter

*) Try To Upload Some Image~

Callback Object

{{ files | json 2 }}
'},function(t,e){t.exports=""},function(t,e,n){var i,r;i=n(1),r=n(7),t.exports=i||{},t.exports.__esModule&&(t.exports=t.exports["default"]),r&&(("function"==typeof t.exports?t.exports.options||(t.exports.options={}):t.exports).template=r)},function(t,e,n){var i,r;i=n(2),r=n(8),t.exports=i||{},t.exports.__esModule&&(t.exports=t.exports["default"]),r&&(("function"==typeof t.exports?t.exports.options||(t.exports.options={}):t.exports).template=r)},function(t,e,n){(function(e,n){/*! - * Vue.js v1.0.24 - * (c) 2016 Evan You - * Released under the MIT License. - */ -"use strict";function i(t,e,n){if(s(t,e))return void(t[e]=n);if(t._isVue)return void i(t._data,e,n);var r=t.__ob__;if(!r)return void(t[e]=n);if(r.convert(e,n),r.dep.notify(),r.vms)for(var o=r.vms.length;o--;){var a=r.vms[o];a._proxy(e),a._digest()}return n}function r(t,e){if(s(t,e)){delete t[e];var n=t.__ob__;if(!n)return void(t._isVue&&(delete t._data[e],t._digest()));if(n.dep.notify(),n.vms)for(var i=n.vms.length;i--;){var r=n.vms[i];r._unproxy(e),r._digest()}}}function s(t,e){return jn.call(t,e)}function o(t){return Vn.test(t)}function a(t){var e=(t+"").charCodeAt(0);return 36===e||95===e}function l(t){return null==t?"":t.toString()}function h(t){if("string"!=typeof t)return t;var e=Number(t);return isNaN(e)?t:e}function c(t){return"true"===t||"false"!==t&&t}function u(t){var e=t.charCodeAt(0),n=t.charCodeAt(t.length-1);return e!==n||34!==e&&39!==e?t:t.slice(1,-1)}function f(t){return t.replace(Sn,p)}function p(t,e){return e?e.toUpperCase():""}function d(t){return t.replace(Fn,"$1-$2").toLowerCase()}function v(t){return t.replace(Rn,p)}function m(t,e){return function(n){var i=arguments.length;return i?i>1?t.apply(e,arguments):t.call(e,n):t.call(e)}}function g(t,e){e=e||0;for(var n=t.length-e,i=new Array(n);n--;)i[n]=t[n+e];return i}function _(t,e){for(var n=Object.keys(e),i=n.length;i--;)t[n[i]]=e[n[i]];return t}function b(t){return null!==t&&"object"==typeof t}function y(t){return Ln.call(t)===Pn}function w(t,e,n,i){Object.defineProperty(t,e,{value:n,enumerable:!!i,writable:!0,configurable:!0})}function C(t,e){var n,i,r,s,o,a=function l(){var a=Date.now()-s;a=0?n=setTimeout(l,e-a):(n=null,o=t.apply(r,i),n||(r=i=null))};return function(){return r=this,i=arguments,s=Date.now(),n||(n=setTimeout(a,e)),o}}function N(t,e){for(var n=t.length;n--;)if(t[n]===e)return n;return-1}function E(t){var e=function n(){if(!n.cancelled)return t.apply(this,arguments)};return e.cancel=function(){e.cancelled=!0},e}function $(t,e){return t==e||!(!b(t)||!b(e))&&JSON.stringify(t)===JSON.stringify(e)}function x(t){this.size=0,this.limit=t,this.head=this.tail=void 0,this._keymap=Object.create(null)}function k(){var t,e=ii.slice(hi,ai).trim();if(e){t={};var n=e.match(mi);t.name=n[0],n.length>1&&(t.args=n.slice(1).map(O))}t&&(ri.filters=ri.filters||[]).push(t),hi=ai+1}function O(t){if(gi.test(t))return{value:h(t),dynamic:!1};var e=u(t),n=e===t;return{value:n?t:e,dynamic:n}}function A(t){var e=vi.get(t);if(e)return e;for(ii=t,ci=ui=!1,fi=pi=di=0,hi=0,ri={},ai=0,li=ii.length;aih&&l.push({value:t.slice(h,i)}),r=Ci.test(n[0]),s=r?n[1]:n[2],o=s.charCodeAt(0),a=42===o,s=a?s.slice(1):s,l.push({tag:!0,value:s.trim(),html:r,oneTime:a}),h=i+n[0].length;return h1?t.map(function(t){return S(t,e)}).join("+"):S(t[0],e,!0)}function S(t,e,n){return t.tag?t.oneTime&&e?'"'+e.$eval(t.value)+'"':F(t.value,n):'"'+t.value+'"'}function F(t,e){if(Ni.test(t)){var n=A(t);return n.filters?"this._applyFilters("+n.expression+",null,"+JSON.stringify(n.filters)+",false)":"("+t+")"}return e?t:"("+t+")"}function R(t,e,n,i){M(t,1,function(){e.appendChild(t)},n,i)}function L(t,e,n,i){M(t,1,function(){z(t,e)},n,i)}function P(t,e,n){M(t,-1,function(){J(t)},e,n)}function M(t,e,n,i,r){var s=t.__v_trans;if(!s||!s.hooks&&!Qn||!i._isCompiled||i.$parent&&!i.$parent._isCompiled)return n(),void(r&&r());var o=e>0?"enter":"leave";s[o](n,r)}function I(t){if("string"==typeof t){var e=t;t=document.querySelector(t),t||"production"!==n.env.NODE_ENV&&Oi("Cannot find element: "+e)}return t}function H(t){if(!t)return!1;var e=t.ownerDocument.documentElement,n=t.parentNode;return e===t||e===n||!(!n||1!==n.nodeType||!e.contains(n))}function U(t,e){var n=t.getAttribute(e);return null!==n&&t.removeAttribute(e),n}function B(t,e){var n=U(t,":"+e);return null===n&&(n=U(t,"v-bind:"+e)),n}function W(t,e){return t.hasAttribute(e)||t.hasAttribute(":"+e)||t.hasAttribute("v-bind:"+e)}function z(t,e){e.parentNode.insertBefore(t,e)}function q(t,e){e.nextSibling?z(t,e.nextSibling):e.parentNode.appendChild(t)}function J(t){t.parentNode.removeChild(t)}function Y(t,e){e.firstChild?z(t,e.firstChild):e.appendChild(t)}function Q(t,e){var n=t.parentNode;n&&n.replaceChild(e,t)}function Z(t,e,n,i){t.addEventListener(e,n,i)}function G(t,e,n){t.removeEventListener(e,n)}function X(t){var e=t.className;return"object"==typeof e&&(e=e.baseVal||""),e}function K(t,e){Wn&&!/svg$/.test(t.namespaceURI)?t.className=e:t.setAttribute("class",e)}function tt(t,e){if(t.classList)t.classList.add(e);else{var n=" "+X(t)+" ";n.indexOf(" "+e+" ")<0&&K(t,(n+e).trim())}}function et(t,e){if(t.classList)t.classList.remove(e);else{for(var n=" "+X(t)+" ",i=" "+e+" ";n.indexOf(i)>=0;)n=n.replace(i," ");K(t,n.trim())}t.className||t.removeAttribute("class")}function nt(t,e){var n,i;if(st(t)&&ct(t.content)&&(t=t.content),t.hasChildNodes())for(it(t),i=e?document.createDocumentFragment():document.createElement("div");n=t.firstChild;)i.appendChild(n);return i}function it(t){for(var e;e=t.firstChild,rt(e);)t.removeChild(e);for(;e=t.lastChild,rt(e);)t.removeChild(e)}function rt(t){return t&&(3===t.nodeType&&!t.data.trim()||8===t.nodeType)}function st(t){return t.tagName&&"template"===t.tagName.toLowerCase()}function ot(t,e){var n=ki.debug?document.createComment(t):document.createTextNode(e?" ":"");return n.__v_anchor=!0,n}function at(t){if(t.hasAttributes())for(var e=t.attributes,n=0,i=e.length;n=l.length){for(var t=0;t - did you mean <"+o+">? HTML is case-insensitive, remember to use kebab-case in templates."):Si(t,i)&&Oi("Unknown custom element: <"+i+'> - did you register the component correctly? For recursive components, make sure to provide the "name" option.')}}}function pt(t,e){var n=t.getAttribute("is");if(null!=n){if(yt(e,"components",n))return t.removeAttribute("is"),{id:n}}else if(n=B(t,"is"),null!=n)return{id:n,dynamic:!0}}function dt(t,e){var n,r,o;for(n in e)r=t[n],o=e[n],s(t,n)?b(r)&&b(o)&&dt(r,o):i(t,n,o);return t}function vt(t,e){var n=Object.create(t||null);return e?_(n,_t(e)):n}function mt(t){if(t.components){var e,i=t.components=_t(t.components),r=Object.keys(i);if("production"!==n.env.NODE_ENV)var s=t._componentNameMap={};for(var o=0,a=r.length;o=97&&e<=122||e>=65&&e<=90?"ident":e>=49&&e<=57?"number":"else"}function Dt(t){var e=t.trim();return("0"!==t.charAt(0)||!isNaN(t))&&(o(e)?u(e):"*"+e)}function Tt(t){function e(){var e=t[c+1];if(u===tr&&"'"===e||u===er&&'"'===e)return c++,i="\\"+e,p[zi](),!0}var n,i,r,s,o,a,l,h=[],c=-1,u=Qi,f=0,p=[];for(p[qi]=function(){void 0!==r&&(h.push(r),r=void 0)},p[zi]=function(){void 0===r?r=i:r+=i},p[Ji]=function(){p[zi](),f++},p[Yi]=function(){if(f>0)f--,u=Ki,p[zi]();else{if(f=0,r=Dt(r),r===!1)return!1;p[qi]()}};null!=u;)if(c++,n=t[c],"\\"!==n||!e()){if(s=At(n),l=rr[u],o=l[s]||l["else"]||ir,o===ir)return;if(u=o[0],a=p[o[1]],a&&(i=o[2],i=void 0===i?n:i,a()===!1))return;if(u===nr)return h.raw=t,h}}function jt(t){var e=Wi.get(t);return e||(e=Tt(t),e&&Wi.put(t,e)),e}function Vt(t,e){return Ht(e).get(t)}function St(t,e,r){var s=t;if("string"==typeof e&&(e=Tt(e)),!e||!b(t))return!1;for(var o,a,l=0,h=e.length;l-1?n.replace(vr,Lt):n,e+"scope."+n)}function Lt(t,e){return br[e]}function Pt(t){ur.test(t)&&"production"!==n.env.NODE_ENV&&Oi("Avoid using reserved keywords in expression: "+t),br.length=0;var e=t.replace(dr,Ft).replace(fr,"");return e=(" "+e).replace(gr,Rt).replace(vr,Lt),Mt(e)}function Mt(t){try{return new Function("scope","return "+t+";")}catch(e){"production"!==n.env.NODE_ENV&&Oi("Invalid expression. Generated function body: "+t)}}function It(t){var e=jt(t);return e?function(t,n){St(t,e,n)}:void("production"!==n.env.NODE_ENV&&Oi("Invalid setter expression: "+t))}function Ht(t,e){t=t.trim();var n=ar.get(t);if(n)return e&&!n.set&&(n.set=It(n.exp)),n;var i={exp:t};return i.get=Ut(t)&&t.indexOf("[")<0?Mt("scope."+t):Pt(t),e&&(i.set=It(t)),ar.put(t,i),i}function Ut(t){return mr.test(t)&&!_r.test(t)&&"Math."!==t.slice(0,5)}function Bt(){wr.length=0,Cr.length=0,Nr={},Er={},$r=!1}function Wt(){for(var t=!0;t;)t=!1,zt(wr),zt(Cr),wr.length?t=!0:(Un&&ki.devtools&&Un.emit("flush"),Bt())}function zt(t){for(var e=0;eki._maxUpdateCount)){Oi('You may have an infinite update loop for watcher with expression "'+i.expression+'"',i.vm);break}}t.length=0}function qt(t){var e=t.id;if(null==Nr[e]){var n=t.user?Cr:wr;Nr[e]=n.length,n.push(t),$r||($r=!0,ti(Wt))}}function Jt(t,e,n,i){i&&_(this,i);var r="function"==typeof e;if(this.vm=t,t._watchers.push(this),this.expression=e,this.cb=n,this.id=++xr,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ei,this.newDepIds=new ei,this.prevError=null,r)this.getter=e,this.setter=void 0;else{var s=Ht(e,this.twoWay);this.getter=s.get,this.setter=s.set}this.value=this.lazy?void 0:this.get(),this.queued=this.shallow=!1}function Yt(t,e){var n=void 0,i=void 0;e||(e=kr,e.clear());var r=Mn(t),s=b(t);if(r||s){if(t.__ob__){var o=t.__ob__.dep.id;if(e.has(o))return;e.add(o)}if(r)for(n=t.length;n--;)Yt(t[n],e);else if(s)for(i=Object.keys(t),n=i.length;n--;)Yt(t[i[n]],e)}}function Qt(t){return st(t)&&ct(t.content)}function Zt(t,e){var n=e?t:t.trim(),i=Ar.get(n);if(i)return i;var r=document.createDocumentFragment(),s=t.match(jr),o=Vr.test(t);if(s||o){var a=s&&s[1],l=Tr[a]||Tr.efault,h=l[0],c=l[1],u=l[2],f=document.createElement("div");for(f.innerHTML=c+t+u;h--;)f=f.lastChild;for(var p;p=f.firstChild;)r.appendChild(p)}else r.appendChild(document.createTextNode(t));return e||it(r),Ar.put(n,r),r}function Gt(t){if(Qt(t))return Zt(t.innerHTML);if("SCRIPT"===t.tagName)return Zt(t.textContent);for(var e,n=Xt(t),i=document.createDocumentFragment();e=n.firstChild;)i.appendChild(e);return it(i),i}function Xt(t){if(!t.querySelectorAll)return t.cloneNode();var e,n,i,r=t.cloneNode(!0);if(Sr){var s=r;if(Qt(t)&&(t=t.content,s=r.content),n=t.querySelectorAll("template"),n.length)for(i=s.querySelectorAll("template"),e=i.length;e--;)i[e].parentNode.replaceChild(Xt(n[e]),i[e])}if(Fr)if("TEXTAREA"===t.tagName)r.value=t.value;else if(n=t.querySelectorAll("textarea"),n.length)for(i=r.querySelectorAll("textarea"),e=i.length;e--;)i[e].value=n[e].value;return r}function Kt(t,e,n){var i,r;return ct(t)?(it(t),e?Xt(t):t):("string"==typeof t?n||"#"!==t.charAt(0)?r=Zt(t,n):(r=Dr.get(t),r||(i=document.getElementById(t.slice(1)),i&&(r=Gt(i),Dr.put(t,r)))):t.nodeType&&(r=Gt(t)),r&&e?Xt(r):r)}function te(t,e,n,i,r,s){this.children=[],this.childFrags=[],this.vm=e,this.scope=r,this.inserted=!1,this.parentFrag=s,s&&s.childFrags.push(this),this.unlink=t(e,n,i,r,this);var o=this.single=1===n.childNodes.length&&!n.childNodes[0].__v_anchor;o?(this.node=n.childNodes[0],this.before=ee,this.remove=ne):(this.node=ot("fragment-start"),this.end=ot("fragment-end"),this.frag=n,Y(this.node,n),n.appendChild(this.end),this.before=ie,this.remove=re),this.node.__v_frag=this}function ee(t,e){this.inserted=!0;var n=e!==!1?L:z;n(this.node,t,this.vm),H(this.node)&&this.callHook(se)}function ne(){this.inserted=!1;var t=H(this.node),e=this;this.beforeRemove(),P(this.node,this.vm,function(){t&&e.callHook(oe),e.destroy()})}function ie(t,e){this.inserted=!0;var n=this.vm,i=e!==!1?L:z;lt(this.node,this.end,function(e){i(e,t,n)}),H(this.node)&&this.callHook(se)}function re(){this.inserted=!1;var t=this,e=H(this.node);this.beforeRemove(),ht(this.node,this.end,this.vm,this.frag,function(){e&&t.callHook(oe),t.destroy()})}function se(t){!t._isAttached&&H(t.$el)&&t._callHook("attached")}function oe(t){t._isAttached&&!H(t.$el)&&t._callHook("detached")}function ae(t,e){this.vm=t;var n,i="string"==typeof e;i||st(e)&&!e.hasAttribute("v-if")?n=Kt(e,!0):(n=document.createDocumentFragment(),n.appendChild(e)),this.template=n;var r,s=t.constructor.cid;if(s>0){var o=s+(i?e:ut(e));r=Pr.get(o),r||(r=Pe(n,t.$options,!0),Pr.put(o,r))}else r=Pe(n,t.$options,!0);this.linker=r}function le(t,e,n){var i=t.node.previousSibling;if(i){for(t=i.__v_frag;!(t&&t.forId===n&&t.inserted||i===e);){if(i=i.previousSibling,!i)return;t=i.__v_frag}return t}}function he(t){var e=t.node;if(t.end)for(;!e.__vue__&&e!==t.end&&e.nextSibling;)e=e.nextSibling;return e.__vue__}function ce(t){for(var e=-1,n=new Array(Math.floor(t));++e47&&e<58?parseInt(t,10):1===t.length&&(e=t.toUpperCase().charCodeAt(0),e>64&&e<91)?e:ss[t]});return n=[].concat.apply([],n),function(e){if(n.indexOf(e.keyCode)>-1)return t.call(this,e)}}function ve(t){return function(e){return e.stopPropagation(),t.call(this,e)}}function me(t){return function(e){return e.preventDefault(),t.call(this,e)}}function ge(t){return function(e){if(e.target===e.currentTarget)return t.call(this,e)}}function _e(t){if(cs[t])return cs[t];var e=be(t);return cs[t]=cs[e]=e,e}function be(t){t=d(t);var e=f(t),n=e.charAt(0).toUpperCase()+e.slice(1);us||(us=document.createElement("div"));var i,r=as.length;if("filter"!==e&&e in us.style)return{kebab:t,camel:e};for(;r--;)if(i=ls[r]+n,i in us.style)return{kebab:as[r]+t,camel:i}}function ye(t){var e=[];if(Mn(t))for(var n=0,i=t.length;n=r?n():t[s].call(e,i)}var r=t.length,s=0;t[0].call(e,i)}function Ne(t,e,i){for(var r,s,a,l,h,c,u,p=[],v=Object.keys(e),m=v.length;m--;)if(s=v[m],r=e[s]||ks,"production"===n.env.NODE_ENV||"$data"!==s)if(h=f(s),Os.test(h)){if(u={name:s,path:h,options:r,mode:xs.ONE_WAY,raw:null},a=d(s),null===(l=B(t,a))&&(null!==(l=B(t,a+".sync"))?u.mode=xs.TWO_WAY:null!==(l=B(t,a+".once"))&&(u.mode=xs.ONE_TIME)),null!==l)u.raw=l,c=A(l),l=c.expression,u.filters=c.filters,o(l)&&!c.filters?u.optimizedLiteral=!0:(u.dynamic=!0,"production"===n.env.NODE_ENV||u.mode!==xs.TWO_WAY||As.test(l)||(u.mode=xs.ONE_WAY,Oi("Cannot bind two-way prop with non-settable parent path: "+l,i))),u.parentPath=l,"production"!==n.env.NODE_ENV&&r.twoWay&&u.mode!==xs.TWO_WAY&&Oi('Prop "'+s+'" expects a two-way binding type.',i);else if(null!==(l=U(t,a)))u.raw=l;else if("production"!==n.env.NODE_ENV){var g=h.toLowerCase();l=/[A-Z\-]/.test(s)&&(t.getAttribute(g)||t.getAttribute(":"+g)||t.getAttribute("v-bind:"+g)||t.getAttribute(":"+g+".once")||t.getAttribute("v-bind:"+g+".once")||t.getAttribute(":"+g+".sync")||t.getAttribute("v-bind:"+g+".sync")),l?Oi("Possible usage error for prop `"+g+"` - did you mean `"+a+"`? HTML is case-insensitive, remember to use kebab-case for props in templates.",i):r.required&&Oi("Missing required prop: "+s,i)}p.push(u)}else"production"!==n.env.NODE_ENV&&Oi('Invalid prop key: "'+s+'". Prop keys must be valid identifiers.',i);else Oi("Do not use $data as prop.",i);return Ee(p)}function Ee(t){return function(e,n){e._props={};for(var i,r,o,a,l,f=e.$options.propsData,p=t.length;p--;)if(i=t[p],l=i.raw,r=i.path,o=i.options,e._props[r]=i,f&&s(f,r)&&xe(e,i,f[r]),null===l)xe(e,i,void 0);else if(i.dynamic)i.mode===xs.ONE_TIME?(a=(n||e._context||e).$get(i.parentPath),xe(e,i,a)):e._context?e._bindDir({name:"prop",def:Ts,prop:i},null,null,n):xe(e,i,e.$get(i.parentPath));else if(i.optimizedLiteral){var v=u(l);a=v===l?c(h(l)):v,xe(e,i,a)}else a=o.type===Boolean&&(""===l||l===d(i.name))||l,xe(e,i,a)}}function $e(t,e,n,i){var r=e.dynamic&&Ut(e.parentPath),s=n;void 0===s&&(s=Oe(t,e)),s=De(e,s);var o=s!==n;Ae(e,s,t)||(s=void 0),r&&!o?Ct(function(){i(s)}):i(s)}function xe(t,e,n){$e(t,e,n,function(n){kt(t,e.path,n)})}function ke(t,e,n){$e(t,e,n,function(n){t[e.path]=n})}function Oe(t,e){var i=e.options;if(!s(i,"default"))return i.type!==Boolean&&void 0;var r=i["default"];return b(r)&&"production"!==n.env.NODE_ENV&&Oi('Invalid default value for prop "'+e.name+'": Props with type Object/Array must use a factory function to return the default value.',t),"function"==typeof r&&i.type!==Function?r.call(t):r}function Ae(t,e,i){if(!t.options.required&&(null===t.raw||null==e))return!0;var r=t.options,s=r.type,o=!s,a=[];if(s){Mn(s)||(s=[s]);for(var l=0;le?-1:t===e?0:1}function He(t,e,n,i){function r(r){Ue(t,e,r),n&&i&&Ue(n,i)}return r.dirs=e,r}function Ue(t,e,i){for(var r=e.length;r--;)e[r]._teardown(),"production"===n.env.NODE_ENV||i||t._directives.$remove(e[r])}function Be(t,e,n,i){var r=Ne(e,n,t),s=Me(function(){r(t,i)},t);return He(t,s)}function We(t,e,i){var r,s,o=e._containerAttrs,a=e._replacerAttrs;if(11!==t.nodeType)e._asComponent?(o&&i&&(r=sn(o,i)),a&&(s=sn(a,e))):s=sn(t.attributes,e);else if("production"!==n.env.NODE_ENV&&o){var l=o.filter(function(t){return t.name.indexOf("_v-")<0&&!Ws.test(t.name)&&"slot"!==t.name}).map(function(t){return'"'+t.name+'"'});if(l.length){var h=l.length>1;Oi("Attribute"+(h?"s ":" ")+l.join(", ")+(h?" are":" is")+" ignored on component <"+e.el.tagName.toLowerCase()+"> because the component is a fragment instance: http://vuejs.org/guide/components.html#Fragment-Instance")}}return e._containerAttrs=e._replacerAttrs=null,function(t,e,n){var i,o=t._context;o&&r&&(i=Me(function(){r(o,e,null,n)},o));var a=Me(function(){s&&s(t,e)},t);return He(t,a,o,i)}}function ze(t,e){var n=t.nodeType;return 1!==n||hn(t)?3===n&&t.data.trim()?Je(t,e):null:qe(t,e)}function qe(t,e){if("TEXTAREA"===t.tagName){var n=j(t.value);n&&(t.setAttribute(":value",V(n)),t.value="")}var i,r=t.hasAttributes(),s=r&&g(t.attributes);return r&&(i=en(t,s,e)),i||(i=Ke(t,e)),i||(i=tn(t,e)),!i&&r&&(i=sn(s,e)),i}function Je(t,e){if(t._skip)return Ye;var n=j(t.wholeText);if(!n)return null;for(var i=t.nextSibling;i&&3===i.nodeType;)i._skip=!0,i=i.nextSibling;for(var r,s,o=document.createDocumentFragment(),a=0,l=n.length;ap.priority)&&(p=f,c=r.name,a=on(r.name),o=r.value,h=l[1],u=l[2]));return p?rn(t,h,o,n,p,c,u,a):void 0}function nn(){}function rn(t,e,n,i,r,s,o,a){var l=A(n),h={name:e,arg:o,expression:l.expression,filters:l.filters,raw:n,attr:s,modifiers:a,def:r};"for"!==e&&"router-view"!==e||(h.ref=at(t));var c=function(t,e,n,i,r){h.ref&&kt((i||t).$refs,h.ref,null),t._bindDir(h,e,n,i,r)};return c.terminal=!0,c}function sn(t,e){function i(t,e,n){var i=n&&ln(n),r=!i&&A(o);m.push({name:t,attr:a,raw:l,def:e,arg:c,modifiers:u,expression:r&&r.expression,filters:r&&r.filters,interp:n,hasOneTime:i})}for(var r,s,o,a,l,h,c,u,f,p,d,v=t.length,m=[];v--;)if(r=t[v],s=a=r.name,o=l=r.value,p=j(o),c=null,u=on(s),s=s.replace(qs,""),p)o=V(p),c=s,i("bind",Ns.bind,p),"production"!==n.env.NODE_ENV&&"class"===s&&Array.prototype.some.call(t,function(t){return":class"===t.name||"v-bind:class"===t.name})&&Oi('class="'+l+'": Do not mix mustache interpolation and v-bind for "class" on the same element. Use one or the other.',e);else if(Js.test(s))u.literal=!Bs.test(s),i("transition",Us.transition);else if(Ws.test(s))c=s.replace(Ws,""),i("on",Ns.on);else if(Bs.test(s))h=s.replace(Bs,""),"style"===h||"class"===h?i(h,Us[h]):(c=h,i("bind",Ns.bind));else if(d=s.match(zs)){if(h=d[1],c=d[2],"else"===h)continue;f=yt(e,"directives",h,!0),f&&i(h,f)}if(m.length)return an(m)}function on(t){var e=Object.create(null),n=t.match(qs);if(n)for(var i=n.length;i--;)e[n[i].slice(1)]=!0;return e}function an(t){return function(e,n,i,r,s){for(var o=t.length;o--;)e._bindDir(t[o],n,i,r,s)}}function ln(t){for(var e=t.length;e--;)if(t[e].oneTime)return!0}function hn(t){return"SCRIPT"===t.tagName&&(!t.hasAttribute("type")||"text/javascript"===t.getAttribute("type"))}function cn(t,e){return e&&(e._containerAttrs=fn(t)),st(t)&&(t=Kt(t)),e&&(e._asComponent&&!e.template&&(e.template=""),e.template&&(e._content=nt(t),t=un(t,e))),ct(t)&&(Y(ot("v-start",!0),t),t.appendChild(ot("v-end",!0))),t}function un(t,e){var i=e.template,r=Kt(i,!0);if(r){var s=r.firstChild,o=s.tagName&&s.tagName.toLowerCase();return e.replace?(t===document.body&&"production"!==n.env.NODE_ENV&&Oi("You are mounting an instance with a template to . This will replace entirely. You should probably use `replace: false` here."),r.childNodes.length>1||1!==s.nodeType||"component"===o||yt(e,"components",o)||W(s,"is")||yt(e,"elementDirectives",o)||s.hasAttribute("v-for")||s.hasAttribute("v-if")?r:(e._replacerAttrs=fn(s),pn(t,s),s)):(t.appendChild(r),t)}"production"!==n.env.NODE_ENV&&Oi("Invalid template option: "+i)}function fn(t){if(1===t.nodeType&&t.hasAttributes())return g(t.attributes)}function pn(t,e){for(var n,i,r=t.attributes,s=r.length;s--;)n=r[s].name,i=r[s].value,e.hasAttribute(n)||Zs.test(n)?"class"===n&&!j(i)&&(i=i.trim())&&i.split(/\s+/).forEach(function(t){tt(e,t)}):e.setAttribute(n,i)}function dn(t,e){if(e){for(var i,r,s=t._slotContents=Object.create(null),o=0,a=e.children.length;o1?g(n):n;var r=e&&n.some(function(t){return t._fromParent});r&&(i=!1);for(var s=g(arguments,1),o=0,a=n.length;oe?s:-s}var n=null,i=void 0;t=io(t);var r=g(arguments,1),s=r[r.length-1];"number"==typeof s?(s=s<0?-1:1,r=r.length>1?r.slice(0,-1):r):s=1;var o=r[0];return o?("function"==typeof o?n=function(t,e){return o(t,e)*s}:(i=Array.prototype.concat.apply([],r),n=function(t,r,s){return s=s||0,s>=i.length-1?e(t,r,s):e(t,r,s)||n(t,r,s+1)}),t.slice().sort(n)):t}function Dn(t,e){var n;if(y(t)){var i=Object.keys(t);for(n=i.length;n--;)if(Dn(t[i[n]],e))return!0}else if(Mn(t)){for(n=t.length;n--;)if(Dn(t[n],e))return!0}else if(null!=t)return t.toString().toLowerCase().indexOf(e)>-1}function Tn(t){function e(t){return new Function("return function "+v(t)+" (options) { this._init(options) }")()}t.options={directives:Ns,elementDirectives:no,filters:so,transitions:{},components:{},partials:{},replace:!0},t.util=Ui,t.config=ki,t.set=i,t["delete"]=r,t.nextTick=ti,t.compiler=Gs,t.FragmentFactory=ae,t.internalDirectives=Us,t.parsers={path:or,text:Ei,template:Rr,directive:_i,expression:yr},t.cid=0;var s=1;t.extend=function(t){t=t||{};var i=this,r=0===i.cid;if(r&&t._Ctor)return t._Ctor;var o=t.name||i.options.name;"production"!==n.env.NODE_ENV&&(/^[a-zA-Z][\w-]*$/.test(o)||(Oi('Invalid component name: "'+o+'". Component names can only contain alphanumeric characaters and the hyphen.'),o=null));var a=e(o||"VueComponent");return a.prototype=Object.create(i.prototype),a.prototype.constructor=a,a.cid=s++,a.options=bt(i.options,t),a["super"]=i,a.extend=i.extend,ki._assetTypes.forEach(function(t){a[t]=i[t]}),o&&(a.options.components[o]=a),r&&(t._Ctor=a),a},t.use=function(t){if(!t.installed){var e=g(arguments,1);return e.unshift(this),"function"==typeof t.install?t.install.apply(t,e):t.apply(null,e),t.installed=!0,this}},t.mixin=function(e){t.options=bt(t.options,e)},ki._assetTypes.forEach(function(e){t[e]=function(i,r){return r?("production"!==n.env.NODE_ENV&&"component"===e&&(ji.test(i)||Vi.test(i))&&Oi("Do not use built-in or reserved HTML elements as component id: "+i),"component"===e&&y(r)&&(r.name=i,r=t.extend(r)),this.options[e+"s"][i]=r,r):this.options[e+"s"][i]}}),_(t.transition,Di)}var jn=Object.prototype.hasOwnProperty,Vn=/^\s?(true|false|-?[\d\.]+|'[^']*'|"[^"]*")\s?$/,Sn=/-(\w)/g,Fn=/([a-z\d])([A-Z])/g,Rn=/(?:^|[-_\/])(\w)/g,Ln=Object.prototype.toString,Pn="[object Object]",Mn=Array.isArray,In="__proto__"in{},Hn="undefined"!=typeof window&&"[object Object]"!==Object.prototype.toString.call(window),Un=Hn&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,Bn=Hn&&window.navigator.userAgent.toLowerCase(),Wn=Bn&&Bn.indexOf("msie 9.0")>0,zn=Bn&&Bn.indexOf("android")>0,qn=Bn&&/(iphone|ipad|ipod|ios)/i.test(Bn),Jn=Bn&&Bn.indexOf("micromessenger")>0,Yn=void 0,Qn=void 0,Zn=void 0,Gn=void 0;if(Hn&&!Wn){var Xn=void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend,Kn=void 0===window.onanimationend&&void 0!==window.onwebkitanimationend;Yn=Xn?"WebkitTransition":"transition",Qn=Xn?"webkitTransitionEnd":"transitionend",Zn=Kn?"WebkitAnimation":"animation",Gn=Kn?"webkitAnimationEnd":"animationend"}var ti=function(){function t(){r=!1;var t=i.slice(0);i=[];for(var e=0;e)":""}}();var Di=Object.freeze({appendWithTransition:R,beforeWithTransition:L,removeWithTransition:P,applyTransition:M}),Ti=/^v-ref:/,ji=/^(div|p|span|img|a|b|i|br|ul|ol|li|h1|h2|h3|h4|h5|h6|code|pre|table|th|td|tr|form|label|input|select|option|nav|article|section|header|footer)$/i,Vi=/^(slot|partial|component)$/i,Si=void 0;"production"!==n.env.NODE_ENV&&(Si=function(t,e){return e.indexOf("-")>-1?t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:/HTMLUnknownElement/.test(t.toString())&&!/^(data|time|rtc|rb)$/.test(e)});var Fi=ki.optionMergeStrategies=Object.create(null);Fi.data=function(t,e,i){return i?t||e?function(){var n="function"==typeof e?e.call(i):e,r="function"==typeof t?t.call(i):void 0;return n?dt(n,r):r}:void 0:e?"function"!=typeof e?("production"!==n.env.NODE_ENV&&Oi('The "data" option should be a function that returns a per-instance value in component definitions.',i),t):t?function(){return dt(e.call(this),t.call(this))}:e:t},Fi.el=function(t,e,i){if(!i&&e&&"function"!=typeof e)return void("production"!==n.env.NODE_ENV&&Oi('The "el" option should be a function that returns a per-instance value in component definitions.',i));var r=e||t;return i&&"function"==typeof r?r.call(i):r},Fi.init=Fi.created=Fi.ready=Fi.attached=Fi.detached=Fi.beforeCompile=Fi.compiled=Fi.beforeDestroy=Fi.destroyed=Fi.activate=function(t,e){return e?t?t.concat(e):Mn(e)?e:[e]:t},ki._assetTypes.forEach(function(t){Fi[t+"s"]=vt}),Fi.watch=Fi.events=function(t,e){if(!e)return t;if(!t)return e;var n={};_(n,t);for(var i in e){var r=n[i],s=e[i];r&&!Mn(r)&&(r=[r]),n[i]=r?r.concat(s):[s]}return n},Fi.props=Fi.methods=Fi.computed=function(t,e){if(!e)return t;if(!t)return e;var n=Object.create(null);return _(n,t),_(n,e),n};var Ri=function(t,e){return void 0===e?t:e},Li=0;wt.target=null,wt.prototype.addSub=function(t){this.subs.push(t)},wt.prototype.removeSub=function(t){this.subs.$remove(t)},wt.prototype.depend=function(){wt.target.addDep(this)},wt.prototype.notify=function(){for(var t=g(this.subs),e=0,n=t.length;e=this.length&&(this.length=Number(t)+1),this.splice(t,1,e)[0]}),w(Pi,"$remove",function(t){if(this.length){var e=N(this,t);return e>-1?this.splice(e,1):void 0}});var Ii=Object.getOwnPropertyNames(Mi),Hi=!0;Nt.prototype.walk=function(t){for(var e=Object.keys(t),n=0,i=e.length;n",""],tr:[2,"","
"],col:[2,"","
"]};Tr.td=Tr.th=[3,"","
"],Tr.option=Tr.optgroup=[1,'"],Tr.thead=Tr.tbody=Tr.colgroup=Tr.caption=Tr.tfoot=[1,"","
"],Tr.g=Tr.defs=Tr.symbol=Tr.use=Tr.image=Tr.text=Tr.circle=Tr.ellipse=Tr.line=Tr.path=Tr.polygon=Tr.polyline=Tr.rect=[1,'',""];var jr=/<([\w:-]+)/,Vr=/&#?\w+?;/,Sr=function(){if(Hn){var t=document.createElement("div");return t.innerHTML="",!t.cloneNode(!0).firstChild.innerHTML}return!1}(),Fr=function(){if(Hn){var t=document.createElement("textarea");return t.placeholder="t","t"===t.cloneNode(!0).value}return!1}(),Rr=Object.freeze({cloneNode:Xt,parseTemplate:Kt}),Lr={bind:function(){8===this.el.nodeType&&(this.nodes=[],this.anchor=ot("v-html"),Q(this.el,this.anchor))},update:function(t){t=l(t),this.nodes?this.swap(t):this.el.innerHTML=t},swap:function(t){for(var e=this.nodes.length;e--;)J(this.nodes[e]);var n=Kt(t,!0,!0);this.nodes=g(n.childNodes),z(n,this.anchor)}};te.prototype.callHook=function(t){var e,n;for(e=0,n=this.childFrags.length;e-1:$(t,i)},unbind:function(){this.vm.$off("hook:attached",this.forceUpdate)}},ns={bind:function(){function t(){var t=n.checked;return t&&n.hasOwnProperty("_trueValue")?n._trueValue:!t&&n.hasOwnProperty("_falseValue")?n._falseValue:t}var e=this,n=this.el;this.getValue=function(){return n.hasOwnProperty("_value")?n._value:e.params.number?h(n.value):n.value},this.listener=function(){var i=e._watcher.value;if(Mn(i)){var r=e.getValue();n.checked?N(i,r)<0&&i.push(r):i.$remove(r)}else e.set(t())},this.on("change",this.listener),n.hasAttribute("checked")&&(this.afterBind=this.listener)},update:function(t){var e=this.el;Mn(t)?e.checked=N(t,this.getValue())>-1:e.hasOwnProperty("_trueValue")?e.checked=$(t,e._trueValue):e.checked=!!t}},is={text:Kr,radio:ts,select:es,checkbox:ns},rs={priority:Ir,twoWay:!0,handlers:is,params:["lazy","number","debounce"],bind:function(){this.checkFilters(),this.hasRead&&!this.hasWrite&&"production"!==n.env.NODE_ENV&&Oi('It seems you are using a read-only filter with v-model="'+this.descriptor.raw+'". You might want to use a two-way filter to ensure correct behavior.',this.vm);var t,e=this.el,i=e.tagName;if("INPUT"===i)t=is[e.type]||is.text;else if("SELECT"===i)t=is.select;else{if("TEXTAREA"!==i)return void("production"!==n.env.NODE_ENV&&Oi("v-model does not support element type: "+i,this.vm));t=is.text}e.__v_model=this,t.bind.call(this),this.update=t.update,this._unbind=t.unbind},checkFilters:function(){var t=this.filters;if(t)for(var e=t.length;e--;){var n=yt(this.vm.$options,"filters",t[e].name);("function"==typeof n||n.read)&&(this.hasRead=!0),n.write&&(this.hasWrite=!0)}},unbind:function(){this.el.__v_model=null,this._unbind&&this._unbind()}},ss={esc:27,tab:9,enter:13,space:32,"delete":[8,46],up:38,left:37,right:39,down:40},os={priority:Mr,acceptStatement:!0,keyCodes:ss,bind:function(){if("IFRAME"===this.el.tagName&&"load"!==this.arg){var t=this;this.iframeBind=function(){Z(t.el.contentWindow,t.arg,t.handler,t.modifiers.capture)},this.on("load",this.iframeBind)}},update:function(t){if(this.descriptor.raw||(t=function(){}),"function"!=typeof t)return void("production"!==n.env.NODE_ENV&&Oi("v-on:"+this.arg+'="'+this.expression+'" expects a function value, got '+t,this.vm));this.modifiers.stop&&(t=ve(t)),this.modifiers.prevent&&(t=me(t)),this.modifiers.self&&(t=ge(t));var e=Object.keys(this.modifiers).filter(function(t){return"stop"!==t&&"prevent"!==t&&"self"!==t&&"capture"!==t});e.length&&(t=de(t,e)),this.reset(),this.handler=t,this.iframeBind?this.iframeBind():Z(this.el,this.arg,this.handler,this.modifiers.capture)},reset:function(){var t=this.iframeBind?this.el.contentWindow:this.el;this.handler&&G(t,this.arg,this.handler)},unbind:function(){this.reset()}},as=["-webkit-","-moz-","-ms-"],ls=["Webkit","Moz","ms"],hs=/!important;?$/,cs=Object.create(null),us=null,fs={deep:!0,update:function(t){"string"==typeof t?this.el.style.cssText=t:Mn(t)?this.handleObject(t.reduce(_,{})):this.handleObject(t||{})},handleObject:function(t){var e,n,i=this.cache||(this.cache={});for(e in i)e in t||(this.handleSingle(e,null),delete i[e]);for(e in t)n=t[e],n!==i[e]&&(i[e]=n,this.handleSingle(e,n))},handleSingle:function(t,e){if(t=_e(t))if(null!=e&&(e+=""),e){var i=hs.test(e)?"important":"";i?("production"!==n.env.NODE_ENV&&Oi("It's probably a bad idea to use !important with inline rules. This feature will be deprecated in a future version of Vue."),e=e.replace(hs,"").trim(),this.el.style.setProperty(t.kebab,e,i)):this.el.style[t.camel]=e}else this.el.style[t.camel]=""}},ps="http://www.w3.org/1999/xlink",ds=/^xlink:/,vs=/^v-|^:|^@|^(?:is|transition|transition-mode|debounce|track-by|stagger|enter-stagger|leave-stagger)$/,ms=/^(?:value|checked|selected|muted)$/,gs=/^(?:draggable|contenteditable|spellcheck)$/,_s={value:"_value","true-value":"_trueValue","false-value":"_falseValue"},bs={priority:Hr,bind:function(){var t=this.arg,e=this.el.tagName;t||(this.deep=!0);var i=this.descriptor,r=i.interp;if(r&&(i.hasOneTime&&(this.expression=V(r,this._scope||this.vm)),(vs.test(t)||"name"===t&&("PARTIAL"===e||"SLOT"===e))&&("production"!==n.env.NODE_ENV&&Oi(t+'="'+i.raw+'": attribute interpolation is not allowed in Vue.js directives and special attributes.',this.vm),this.el.removeAttribute(t),this.invalid=!0),"production"!==n.env.NODE_ENV)){var s=t+'="'+i.raw+'": ';"src"===t&&Oi(s+'interpolation in "src" attribute will cause a 404 request. Use v-bind:src instead.',this.vm),"style"===t&&Oi(s+'interpolation in "style" attribute will cause the attribute to be discarded in Internet Explorer. Use v-bind:style instead.',this.vm)}},update:function(t){if(!this.invalid){var e=this.arg;this.arg?this.handleSingle(e,t):this.handleObject(t||{})}},handleObject:fs.handleObject,handleSingle:function(t,e){var n=this.el,i=this.descriptor.interp;if(this.modifiers.camel&&(t=f(t)),!i&&ms.test(t)&&t in n){var r="value"===t&&null==e?"":e;n[t]!==r&&(n[t]=r)}var s=_s[t];if(!i&&s){n[s]=e;var o=n.__v_model;o&&o.listener()}return"value"===t&&"TEXTAREA"===n.tagName?void n.removeAttribute(t):void(gs.test(t)?n.setAttribute(t,e?"true":"false"):null!=e&&e!==!1?"class"===t?(n.__v_trans&&(e+=" "+n.__v_trans.id+"-transition"),K(n,e)):ds.test(t)?n.setAttributeNS(ps,t,e===!0?"":e):n.setAttribute(t,e===!0?"":e):n.removeAttribute(t))}},ys={priority:Br,bind:function(){if(this.arg){var t=this.id=f(this.arg),e=(this._scope||this.vm).$els;s(e,t)?e[t]=this.el:kt(e,t,this.el)}},unbind:function(){var t=(this._scope||this.vm).$els;t[this.id]===this.el&&(t[this.id]=null)}},ws={bind:function(){"production"!==n.env.NODE_ENV&&Oi("v-ref:"+this.arg+" must be used on a child component. Found on <"+this.el.tagName.toLowerCase()+">.",this.vm)}},Cs={bind:function(){var t=this.el;this.vm.$once("pre-hook:compiled",function(){t.removeAttribute("v-cloak")})}},Ns={text:Or,html:Lr,"for":Zr,"if":Gr,show:Xr,model:rs,on:os,bind:bs,el:ys,ref:ws,cloak:Cs},Es={deep:!0,update:function(t){t?"string"==typeof t?this.setClass(t.trim().split(/\s+/)):this.setClass(ye(t)):this.cleanup()},setClass:function(t){this.cleanup(t);for(var e=0,n=t.length;e1&&(this.pendingJsCb=E(this[t+"Done"])),e.call(this.vm,this.el,this.pendingJsCb))},Is.getCssTransitionType=function(t){if(!(!Qn||document.hidden||this.hooks&&this.hooks.css===!1||Le(this.el))){var e=this.type||this.typeCache[t];if(e)return e;var n=this.el.style,i=window.getComputedStyle(this.el),r=n[Rs]||i[Rs];if(r&&"0s"!==r)e=Ss;else{var s=n[Ls]||i[Ls];s&&"0s"!==s&&(e=Fs)}return e&&(this.typeCache[t]=e),e}},Is.setupCssCb=function(t,e){this.pendingCssEvent=t;var n=this,i=this.el,r=this.pendingCssCb=function(s){s.target===i&&(G(i,t,r),n.pendingCssEvent=n.pendingCssCb=null,!n.pendingJsCb&&e&&e())};Z(i,t,r)};var Hs={priority:Ur,update:function(t,e){var n=this.el,i=yt(this.vm.$options,"transitions",t);t=t||"v",n.__v_trans=new Re(n,t,i,this.vm),e&&et(n,e+"-transition"),tt(n,t+"-transition")}},Us={style:fs,"class":Es,component:$s,prop:Ts,transition:Hs},Bs=/^v-bind:|^:/,Ws=/^v-on:|^@/,zs=/^v-([^:]+)(?:$|:(.*)$)/,qs=/\.[^\.]+/g,Js=/^(v-bind:|:)?transition$/,Ys=1e3,Qs=2e3;nn.terminal=!0;var Zs=/[^\w\-:\.]/,Gs=Object.freeze({compile:Pe,compileAndLinkProps:Be,compileRoot:We,transclude:cn,resolveSlots:dn}),Xs=/^v-on:|^@/;bn.prototype._bind=function(){var t=this.name,e=this.descriptor;if(("cloak"!==t||this.vm._isCompiled)&&this.el&&this.el.removeAttribute){var n=e.attr||"v-"+t;this.el.removeAttribute(n)}var i=e.def;if("function"==typeof i?this.update=i:_(this,i),this._setupParams(),this.bind&&this.bind(),this._bound=!0,this.literal)this.update&&this.update(e.raw);else if((this.expression||this.modifiers)&&(this.update||this.twoWay)&&!this._checkStatement()){var r=this;this.update?this._update=function(t,e){r._locked||r.update(t,e)}:this._update=_n;var s=this._preProcess?m(this._preProcess,this):null,o=this._postProcess?m(this._postProcess,this):null,a=this._watcher=new Jt(this.vm,this.expression,this._update,{filters:this.filters,twoWay:this.twoWay,deep:this.deep,preProcess:s,postProcess:o,scope:this._scope});this.afterBind?this.afterBind():this.update&&this.update(a.value)}},bn.prototype._setupParams=function(){if(this.params){var t=this.params;this.params=Object.create(null);for(var e,n,i,r=t.length;r--;)e=d(t[r]),i=f(e),n=B(this.el,e),null!=n?this._setupParamWatcher(i,n):(n=U(this.el,e),null!=n&&(this.params[i]=""===n||n))}},bn.prototype._setupParamWatcher=function(t,e){var n=this,i=!1,r=(this._scope||this.vm).$watch(e,function(e,r){if(n.params[t]=e,i){var s=n.paramWatchers&&n.paramWatchers[t];s&&s.call(n,e,r)}else i=!0},{immediate:!0,user:!1});(this._paramUnwatchFns||(this._paramUnwatchFns=[])).push(r)},bn.prototype._checkStatement=function(){var t=this.expression;if(t&&this.acceptStatement&&!Ut(t)){var e=Ht(t).get,n=this._scope||this.vm,i=function(t){n.$event=t,e.call(n,n),n.$event=null};return this.filters&&(i=n._applyFilters(i,null,this.filters)),this.update(i),!0}},bn.prototype.set=function(t){this.twoWay?this._withLock(function(){this._watcher.set(t)}):"production"!==n.env.NODE_ENV&&Oi("Directive.set() can only be used inside twoWaydirectives.")},bn.prototype._withLock=function(t){var e=this;e._locked=!0,t.call(e),ti(function(){e._locked=!1})},bn.prototype.on=function(t,e,n){Z(this.el,t,e,n),(this._listeners||(this._listeners=[])).push([t,e])},bn.prototype._teardown=function(){if(this._bound){this._bound=!1,this.unbind&&this.unbind(),this._watcher&&this._watcher.teardown();var t,e=this._listeners;if(e)for(t=e.length;t--;)G(this.el,e[t][0],e[t][1]);var i=this._paramUnwatchFns;if(i)for(t=i.length;t--;)i[t]();"production"!==n.env.NODE_ENV&&this.el&&this.el._vue_directives.$remove(this),this.vm=this.el=this._watcher=this._listeners=null}};var Ks=/[^|]\|[^|]/;Ot(xn),mn(xn),gn(xn),yn(xn),wn(xn),Cn(xn),Nn(xn),En(xn),$n(xn);var to={priority:Yr,params:["name"],bind:function(){var t=this.params.name||"default",e=this.vm._slotContents&&this.vm._slotContents[t];e&&e.hasChildNodes()?this.compile(e.cloneNode(!0),this.vm._context,this.vm):this.fallback()},compile:function(t,e,n){if(t&&e){if(this.el.hasChildNodes()&&1===t.childNodes.length&&1===t.childNodes[0].nodeType&&t.childNodes[0].hasAttribute("v-if")){var i=document.createElement("template");i.setAttribute("v-else",""),i.innerHTML=this.el.innerHTML,i._context=this.vm,t.appendChild(i)}var r=n?n._scope:this._scope;this.unlink=e.$compile(t,n,r,this._frag)}t?Q(this.el,t):J(this.el)},fallback:function(){this.compile(nt(this.el,!0),this.vm)},unbind:function(){this.unlink&&this.unlink()}},eo={priority:zr,params:["name"],paramWatchers:{name:function(t){Gr.remove.call(this),t&&this.insert(t)}},bind:function(){this.anchor=ot("v-partial"),Q(this.el,this.anchor),this.insert(this.params.name)},insert:function(t){var e=yt(this.vm.$options,"partials",t,!0);e&&(this.factory=new ae(this.vm,e),Gr.insert.call(this))},unbind:function(){this.frag&&this.frag.destroy()}},no={slot:to,partial:eo},io=Zr._postProcess,ro=/(\d{3})(?=\d)/g,so={orderBy:An,filterBy:On,limitBy:kn,json:{read:function(t,e){return"string"==typeof t?t:JSON.stringify(t,null,Number(e)||2)},write:function(t){try{return JSON.parse(t)}catch(e){return t}}},capitalize:function(t){return t||0===t?(t=t.toString(),t.charAt(0).toUpperCase()+t.slice(1)):""},uppercase:function(t){return t||0===t?t.toString().toUpperCase():""},lowercase:function(t){return t||0===t?t.toString().toLowerCase():""},currency:function(t,e,n){if(t=parseFloat(t),!isFinite(t)||!t&&0!==t)return"";e=null!=e?e:"$",n=null!=n?n:2;var i=Math.abs(t).toFixed(n),r=n?i.slice(0,-1-n):i,s=r.length%3,o=s>0?r.slice(0,s)+(r.length>3?",":""):"",a=n?i.slice(-1-n):"",l=t<0?"-":"";return l+e+o+r.slice(s).replace(ro,"$1,")+a},pluralize:function(t){var e=g(arguments,1);return e.length>1?e[t%10-1]||e[e.length-1]:e[0]+(1===t?"":"s")},debounce:function(t,e){if(t)return e||(e=300),C(t,e)}};Tn(xn),xn.version="1.0.24",setTimeout(function(){ki.devtools&&(Un?Un.emit("init",xn):"production"!==n.env.NODE_ENV&&Hn&&/Chrome\/\d+/.test(window.navigator.userAgent)&&console.log("Download the Vue Devtools for a better development experience:\nhttps://github.com/vuejs/vue-devtools"))},0),t.exports=xn}).call(e,function(){return this}(),n(12))},function(t,e){function n(){u&&h&&(u=!1,h.length?c=h.concat(c):f=-1,c.length&&i())}function i(){if(!u){var t=o(n);u=!0;for(var e=c.length;e;){for(h=c,c=[];++f1)for(var n=1;n -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n return typeof value === 'string' || typeof value === 'number'\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n }\n}\n\n/**\n * Camelize a hyphen-delmited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /([^-])([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str\n .replace(hyphenateRE, '$1-$2')\n .replace(hyphenateRE, '$1-$2')\n .toLowerCase()\n});\n\n/**\n * Simple bind, faster than native\n */\nfunction bind$1 (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n // record original fn length\n boundFn._length = fn.length;\n return boundFn\n}\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/**\n * Perform no operation.\n */\nfunction noop () {}\n\n/**\n * Always return false.\n */\nvar no = function () { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\nfunction genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n return JSON.stringify(a) === JSON.stringify(b)\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/* */\n\nvar config = {\n /**\n * Option merge strategies (used in core/util/options)\n */\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Whether to enable devtools\n */\n devtools: (\"production\") !== 'production',\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * List of asset types that a component can own.\n */\n _assetTypes: [\n 'component',\n 'directive',\n 'filter'\n ],\n\n /**\n * List of lifecycle hooks.\n */\n _lifecycleHooks: [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated'\n ],\n\n /**\n * Max circular updates allowed in a scheduler flush cycle.\n */\n _maxUpdateCount: 100\n};\n\n/* */\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n } else {\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n }\n}\n\n/* */\n/* globals MutationObserver */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = UA && UA.indexOf('android') > 0;\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return /native code/.test(Ctor.toString())\n}\n\n/**\n * Defer a task to execute it asynchronously.\n */\nvar nextTick = (function () {\n var callbacks = [];\n var pending = false;\n var timerFunc;\n\n function nextTickHandler () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n\n // the nextTick behavior leverages the microtask queue, which can be accessed\n // via either native Promise.then or MutationObserver.\n // MutationObserver has wider support, however it is seriously bugged in\n // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n // completely stops working after triggering a few times... so, if native\n // Promise is available, we will use it:\n /* istanbul ignore if */\n if (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n var logError = function (err) { console.error(err); };\n timerFunc = function () {\n p.then(nextTickHandler).catch(logError);\n // in problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n } else if (typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n )) {\n // use MutationObserver where native Promise is not available,\n // e.g. PhantomJS IE11, iOS7, Android 4.4\n var counter = 1;\n var observer = new MutationObserver(nextTickHandler);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n } else {\n // fallback to setTimeout\n /* istanbul ignore next */\n timerFunc = function () {\n setTimeout(nextTickHandler, 0);\n };\n }\n\n return function queueNextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) { cb.call(ctx); }\n if (_resolve) { _resolve(ctx); }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n }\n})();\n\nvar _Set;\n/* istanbul ignore if */\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = (function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\nvar warn = noop;\nvar formatComponentName;\n\nif (false) {\n var hasConsole = typeof console !== 'undefined';\n\n warn = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.error(\"[Vue warn]: \" + msg + \" \" + (\n vm ? formatLocation(formatComponentName(vm)) : ''\n ));\n }\n };\n\n formatComponentName = function (vm) {\n if (vm.$root === vm) {\n return 'root instance'\n }\n var name = vm._isVue\n ? vm.$options.name || vm.$options._componentTag\n : vm.name;\n return (\n (name ? (\"component <\" + name + \">\") : \"anonymous component\") +\n (vm._isVue && vm.$options.__file ? (\" at \" + (vm.$options.__file)) : '')\n )\n };\n\n var formatLocation = function (str) {\n if (str === 'anonymous component') {\n str += \" - use the \\\"name\\\" option for better debugging messages.\";\n }\n return (\"\\n(found in \" + str + \")\")\n };\n}\n\n/* */\n\n\nvar uid$1 = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid$1++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove$1(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stablize the subscriber list first\n var subs = this.subs.slice();\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n if (Dep.target) { targetStack.push(Dep.target); }\n Dep.target = _target;\n}\n\nfunction popTarget () {\n Dep.target = targetStack.pop();\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);[\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n]\n.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var arguments$1 = arguments;\n\n // avoid leaking arguments:\n // http://jsperf.com/closure-with-arguments\n var i = arguments.length;\n var args = new Array(i);\n while (i--) {\n args[i] = arguments$1[i];\n }\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n inserted = args;\n break\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * By default, when a reactive property is set, the new value is\n * also converted to become reactive. However when passing down props,\n * we don't want to force conversion because the value may be a nested value\n * under a frozen data structure. Converting it would defeat the optimization.\n */\nvar observerState = {\n shouldConvert: true,\n isSettingProps: false\n};\n\n/**\n * Observer class that are attached to each observed\n * object. Once attached, the observer converts target\n * object's property keys into getter/setters that\n * collect dependencies and dispatches updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n var augment = hasProto\n ? protoAugment\n : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i], obj[keys[i]]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value)) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n observerState.shouldConvert &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n\n var childOb = observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n }\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (false) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set$1 (obj, key, val) {\n if (Array.isArray(obj)) {\n obj.length = Math.max(obj.length, key);\n obj.splice(key, 1, val);\n return val\n }\n if (hasOwn(obj, key)) {\n obj[key] = val;\n return\n }\n var ob = obj.__ob__;\n if (obj._isVue || (ob && ob.vmCount)) {\n (\"production\") !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return\n }\n if (!ob) {\n obj[key] = val;\n return\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (obj, key) {\n var ob = obj.__ob__;\n if (obj._isVue || (ob && ob.vmCount)) {\n (\"production\") !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(obj, key)) {\n return\n }\n delete obj[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (false) {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n var keys = Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set$1(to, key, fromVal);\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (typeof childVal !== 'function') {\n (\"production\") !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n childVal.call(this),\n parentVal.call(this)\n )\n }\n } else if (parentVal || childVal) {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm)\n : undefined;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n};\n\n/**\n * Hooks and param attributes are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal\n}\n\nconfig._lifecycleHooks.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (parentVal, childVal) {\n var res = Object.create(parentVal || null);\n return childVal\n ? extend(res, childVal)\n : res\n}\n\nconfig._assetTypes.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (parentVal, childVal) {\n /* istanbul ignore if */\n if (!childVal) { return parentVal }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key in childVal) {\n var parent = ret[key];\n var child = childVal[key];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key] = parent\n ? parent.concat(child)\n : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.computed = function (parentVal, childVal) {\n if (!childVal) { return parentVal }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n extend(ret, childVal);\n return ret\n};\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n var lower = key.toLowerCase();\n if (isBuiltInTag(lower) || config.isReservedTag(lower)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + key\n );\n }\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (false) {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n }\n options.props = res;\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (typeof def === 'function') {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (false) {\n checkComponents(child);\n }\n normalizeProps(child);\n normalizeDirectives(child);\n var extendsFrom = child.extends;\n if (extendsFrom) {\n parent = typeof extendsFrom === 'function'\n ? mergeOptions(parent, extendsFrom.options, vm)\n : mergeOptions(parent, extendsFrom, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n var mixin = child.mixins[i];\n if (mixin.prototype instanceof Vue$2) {\n mixin = mixin.options;\n }\n parent = mergeOptions(parent, mixin, vm);\n }\n }\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (false) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // handle boolean props\n if (isType(Boolean, prop.type)) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (!isType(String, prop.type) && (value === '' || value === hyphenate(key))) {\n value = true;\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldConvert = observerState.shouldConvert;\n observerState.shouldConvert = true;\n observe(value);\n observerState.shouldConvert = prevShouldConvert;\n }\n if (false) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (isObject(def)) {\n (\"production\") !== 'production' && warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm[key] !== undefined) {\n return vm[key]\n }\n // call factory function for non-Function types\n return typeof def === 'function' && prop.type !== Function\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType);\n valid = assertedType.valid;\n }\n }\n if (!valid) {\n warn(\n 'Invalid prop: type check failed for prop \"' + name + '\".' +\n ' Expected ' + expectedTypes.map(capitalize).join(', ') +\n ', got ' + Object.prototype.toString.call(value).slice(8, -1) + '.',\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\n/**\n * Assert the type of a value\n */\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (expectedType === 'String') {\n valid = typeof value === (expectedType = 'string');\n } else if (expectedType === 'Number') {\n valid = typeof value === (expectedType = 'number');\n } else if (expectedType === 'Boolean') {\n valid = typeof value === (expectedType = 'boolean');\n } else if (expectedType === 'Function') {\n valid = typeof value === (expectedType = 'function');\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match && match[1]\n}\n\nfunction isType (type, fn) {\n if (!Array.isArray(fn)) {\n return getType(fn) === getType(type)\n }\n for (var i = 0, len = fn.length; i < len; i++) {\n if (getType(fn[i]) === getType(type)) {\n return true\n }\n }\n /* istanbul ignore next */\n return false\n}\n\n\n\nvar util = Object.freeze({\n\tdefineReactive: defineReactive$$1,\n\t_toString: _toString,\n\ttoNumber: toNumber,\n\tmakeMap: makeMap,\n\tisBuiltInTag: isBuiltInTag,\n\tremove: remove$1,\n\thasOwn: hasOwn,\n\tisPrimitive: isPrimitive,\n\tcached: cached,\n\tcamelize: camelize,\n\tcapitalize: capitalize,\n\thyphenate: hyphenate,\n\tbind: bind$1,\n\ttoArray: toArray,\n\textend: extend,\n\tisObject: isObject,\n\tisPlainObject: isPlainObject,\n\ttoObject: toObject,\n\tnoop: noop,\n\tno: no,\n\tidentity: identity,\n\tgenStaticKeys: genStaticKeys,\n\tlooseEqual: looseEqual,\n\tlooseIndexOf: looseIndexOf,\n\tisReserved: isReserved,\n\tdef: def,\n\tparsePath: parsePath,\n\thasProto: hasProto,\n\tinBrowser: inBrowser,\n\tUA: UA,\n\tisIE: isIE,\n\tisIE9: isIE9,\n\tisEdge: isEdge,\n\tisAndroid: isAndroid,\n\tisIOS: isIOS,\n\tisServerRendering: isServerRendering,\n\tdevtools: devtools,\n\tnextTick: nextTick,\n\tget _Set () { return _Set; },\n\tmergeOptions: mergeOptions,\n\tresolveAsset: resolveAsset,\n\tget warn () { return warn; },\n\tget formatComponentName () { return formatComponentName; },\n\tvalidateProp: validateProp\n});\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (false) {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n \"referenced during render. Make sure to declare reactive data \" +\n \"properties in the data option.\",\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' &&\n Proxy.toString().match(/native code/);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';\n if (!has && !isAllowed) {\n warnNonPresent(target, key);\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n warnNonPresent(target, key);\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\n\nvar queue = [];\nvar has$1 = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n queue.length = 0;\n has$1 = {};\n if (false) {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n flushing = true;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n var watcher = queue[index];\n var id = watcher.id;\n has$1[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (false) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > config._maxUpdateCount) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n\n resetSchedulerState();\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has$1[id] == null) {\n has$1[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i >= 0 && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(Math.max(i, index) + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options\n) {\n this.vm = vm;\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = false\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = function () {};\n (\"production\") !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value = this.getter.call(this.vm, this.vm);\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n var dep = this$1.deps[i];\n if (!this$1.newDepIds.has(dep.id)) {\n dep.removeSub(this$1);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n /* istanbul ignore else */\n if (config.errorHandler) {\n config.errorHandler.call(null, e, this.vm);\n } else {\n (\"production\") !== 'production' && warn(\n (\"Error in watcher \\\"\" + (this.expression) + \"\\\"\"),\n this.vm\n );\n throw e\n }\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n var this$1 = this;\n\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed or is performing a v-for\n // re-render (the watcher list is then filtered by v-for).\n if (!this.vm._isBeingDestroyed && !this.vm._vForRemoving) {\n remove$1(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].removeSub(this$1);\n }\n this.active = false;\n }\n};\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nvar seenObjects = new _Set();\nfunction traverse (val) {\n seenObjects.clear();\n _traverse(val, seenObjects);\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || !Object.isExtensible(val)) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\n/* */\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch) { initWatch(vm, opts.watch); }\n}\n\nvar isReservedProp = { key: 1, ref: 1, slot: 1 };\n\nfunction initProps (vm, props) {\n var propsData = vm.$options.propsData || {};\n var keys = vm.$options._propKeys = Object.keys(props);\n var isRoot = !vm.$parent;\n // root instance props should be converted\n observerState.shouldConvert = isRoot;\n var loop = function ( i ) {\n var key = keys[i];\n /* istanbul ignore else */\n if (false) {\n if (isReservedProp[key]) {\n warn(\n (\"\\\"\" + key + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(vm, key, validateProp(key, props, propsData, vm), function () {\n if (vm.$parent && !observerState.isSettingProps) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(vm, key, validateProp(key, props, propsData, vm));\n }\n };\n\n for (var i = 0; i < keys.length; i++) loop( i );\n observerState.shouldConvert = true;\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? data.call(vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n (\"production\") !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var i = keys.length;\n while (i--) {\n if (props && hasOwn(props, keys[i])) {\n (\"production\") !== 'production' && warn(\n \"The data property \\\"\" + (keys[i]) + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else {\n proxy(vm, keys[i]);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nvar computedSharedDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction initComputed (vm, computed) {\n for (var key in computed) {\n var userDef = computed[key];\n if (typeof userDef === 'function') {\n computedSharedDefinition.get = makeComputedGetter(userDef, vm);\n computedSharedDefinition.set = noop;\n } else {\n computedSharedDefinition.get = userDef.get\n ? userDef.cache !== false\n ? makeComputedGetter(userDef.get, vm)\n : bind$1(userDef.get, vm)\n : noop;\n computedSharedDefinition.set = userDef.set\n ? bind$1(userDef.set, vm)\n : noop;\n }\n Object.defineProperty(vm, key, computedSharedDefinition);\n }\n}\n\nfunction makeComputedGetter (getter, owner) {\n var watcher = new Watcher(owner, getter, noop, {\n lazy: true\n });\n return function computedGetter () {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n}\n\nfunction initMethods (vm, methods) {\n for (var key in methods) {\n vm[key] = methods[key] == null ? noop : bind$1(methods[key], vm);\n if (false) {\n warn(\n \"method \\\"\" + key + \"\\\" has an undefined value in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (vm, key, handler) {\n var options;\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n vm.$watch(key, handler, options);\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () {\n return this._data\n };\n if (false) {\n dataDef.set = function (newData) {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n\n Vue.prototype.$set = set$1;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n cb.call(vm, watcher.value);\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\nfunction proxy (vm, key) {\n if (!isReserved(key)) {\n Object.defineProperty(vm, key, {\n configurable: true,\n enumerable: true,\n get: function proxyGetter () {\n return vm._data[key]\n },\n set: function proxySetter (val) {\n vm._data[key] = val;\n }\n });\n }\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.functionalContext = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.child = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n};\n\nvar createEmptyVNode = function () {\n var node = new VNode();\n node.text = '';\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n vnode.children,\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isCloned = true;\n return cloned\n}\n\nfunction cloneVNodes (vnodes) {\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneVNode(vnodes[i]);\n }\n return res\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook, key) {\n key = key + hookKey;\n var injectedHash = def.__injected || (def.__injected = {});\n if (!injectedHash[key]) {\n injectedHash[key] = true;\n var oldHook = def[hookKey];\n if (oldHook) {\n def[hookKey] = function () {\n oldHook.apply(this, arguments);\n hook.apply(this, arguments);\n };\n } else {\n def[hookKey] = hook;\n }\n }\n}\n\n/* */\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n vm\n) {\n var name, cur, old, fn, event, capture, once;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n if (!cur) {\n (\"production\") !== 'production' && warn(\n \"Invalid handler for event \\\"\" + name + \"\\\": got \" + String(cur),\n vm\n );\n } else if (!old) {\n once = name.charAt(0) === '~'; // Prefixed last, checked first\n event = once ? name.slice(1) : name;\n capture = event.charAt(0) === '!';\n event = capture ? event.slice(1) : event;\n if (Array.isArray(cur)) {\n add(event, (cur.invoker = arrInvoker(cur)), once, capture);\n } else {\n if (!cur.invoker) {\n fn = cur;\n cur = on[name] = {};\n cur.fn = fn;\n cur.invoker = fnInvoker(cur);\n }\n add(event, cur.invoker, once, capture);\n }\n } else if (cur !== old) {\n if (Array.isArray(old)) {\n old.length = cur.length;\n for (var i = 0; i < old.length; i++) { old[i] = cur[i]; }\n on[name] = old;\n } else {\n old.fn = cur;\n on[name] = old;\n }\n }\n }\n for (name in oldOn) {\n if (!on[name]) {\n once = name.charAt(0) === '~'; // Prefixed last, checked first\n event = once ? name.slice(1) : name;\n capture = event.charAt(0) === '!';\n event = capture ? event.slice(1) : event;\n remove$$1(event, oldOn[name].invoker, capture);\n }\n }\n}\n\nfunction arrInvoker (arr) {\n return function (ev) {\n var arguments$1 = arguments;\n\n var single = arguments.length === 1;\n for (var i = 0; i < arr.length; i++) {\n single ? arr[i](ev) : arr[i].apply(null, arguments$1);\n }\n }\n}\n\nfunction fnInvoker (o) {\n return function (ev) {\n var single = arguments.length === 1;\n single ? o.fn(ev) : o.fn.apply(null, arguments);\n }\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// nomralization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constrcuts that always generated nested Arrays,\n// e.g.