vuejs 1.0.36 → 1.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10234,4 +10234,4 @@ setTimeout(function () {
10234
10234
 
10235
10235
  return Vue;
10236
10236
 
10237
- })));
10237
+ })));
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Vue.js v1.0.28
3
+ * (c) 2016 Evan You
4
+ * Released under the MIT License.
5
+ */
6
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Vue=e()}(this,function(){"use strict";function t(e,n,r){if(i(e,n))return void(e[n]=r);if(e._isVue)return void t(e._data,n,r);var s=e.__ob__;if(!s)return void(e[n]=r);if(s.convert(n,r),s.dep.notify(),s.vms)for(var o=s.vms.length;o--;){var a=s.vms[o];a._proxy(n),a._digest()}return r}function e(t,e){if(i(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 r=n.vms.length;r--;){var s=n.vms[r];s._unproxy(e),s._digest()}}}function i(t,e){return Mi.call(t,e)}function n(t){return Wi.test(t)}function r(t){var e=(t+"").charCodeAt(0);return 36===e||95===e}function s(t){return null==t?"":t.toString()}function o(t){if("string"!=typeof t)return t;var e=Number(t);return isNaN(e)?t:e}function a(t){return"true"===t||"false"!==t&&t}function h(t){var e=t.charCodeAt(0),i=t.charCodeAt(t.length-1);return e!==i||34!==e&&39!==e?t:t.slice(1,-1)}function l(t){return t.replace(Vi,c)}function c(t,e){return e?e.toUpperCase():""}function u(t){return t.replace(Bi,"$1-$2").replace(Bi,"$1-$2").toLowerCase()}function f(t){return t.replace(zi,c)}function p(t,e){return function(i){var n=arguments.length;return n?n>1?t.apply(e,arguments):t.call(e,i):t.call(e)}}function d(t,e){e=e||0;for(var i=t.length-e,n=new Array(i);i--;)n[i]=t[i+e];return n}function v(t,e){for(var i=Object.keys(e),n=i.length;n--;)t[i[n]]=e[i[n]];return t}function m(t){return null!==t&&"object"==typeof t}function g(t){return Ui.call(t)===Ji}function _(t,e,i,n){Object.defineProperty(t,e,{value:i,enumerable:!!n,writable:!0,configurable:!0})}function y(t,e){var i,n,r,s,o,a=function a(){var h=Date.now()-s;h<e&&h>=0?i=setTimeout(a,e-h):(i=null,o=t.apply(r,n),i||(r=n=null))};return function(){return r=this,n=arguments,s=Date.now(),i||(i=setTimeout(a,e)),o}}function b(t,e){for(var i=t.length;i--;)if(t[i]===e)return i;return-1}function w(t){var e=function e(){if(!e.cancelled)return t.apply(this,arguments)};return e.cancel=function(){e.cancelled=!0},e}function C(t,e){return t==e||!(!m(t)||!m(e))&&JSON.stringify(t)===JSON.stringify(e)}function $(t){return/native code/.test(t.toString())}function k(t){this.size=0,this.limit=t,this.head=this.tail=void 0,this._keymap=Object.create(null)}function x(){return fn.charCodeAt(vn+1)}function A(){return fn.charCodeAt(++vn)}function O(){return vn>=dn}function T(){for(;x()===Tn;)A()}function N(t){return t===kn||t===xn}function j(t){return Nn[t]}function E(t,e){return jn[t]===e}function S(){for(var t,e=A();!O();)if(t=A(),t===On)A();else if(t===e)break}function F(t){for(var e=0,i=t;!O();)if(t=x(),N(t))S();else if(i===t&&e++,E(i,t)&&e--,A(),0===e)break}function D(){for(var t=vn;!O();)if(mn=x(),N(mn))S();else if(j(mn))F(mn);else if(mn===An){if(A(),mn=x(),mn!==An){gn!==bn&&gn!==$n||(gn=wn);break}A()}else{if(mn===Tn&&(gn===Cn||gn===$n)){T();break}gn===wn&&(gn=Cn),A()}return fn.slice(t+1,vn)||null}function P(){for(var t=[];!O();)t.push(R());return t}function R(){var t,e={};return gn=wn,e.name=D().trim(),gn=$n,t=L(),t.length&&(e.args=t),e}function L(){for(var t=[];!O()&&gn!==wn;){var e=D();if(!e)break;t.push(H(e))}return t}function H(t){if(yn.test(t))return{value:o(t),dynamic:!1};var e=h(t),i=e===t;return{value:i?t:e,dynamic:i}}function I(t){var e=_n.get(t);if(e)return e;fn=t,pn={},dn=fn.length,vn=-1,mn="",gn=bn;var i;return fn.indexOf("|")<0?pn.expression=fn.trim():(pn.expression=D().trim(),i=P(),i.length&&(pn.filters=i)),_n.put(t,pn),pn}function M(t){return t.replace(Sn,"\\$&")}function W(){var t=M(Mn.delimiters[0]),e=M(Mn.delimiters[1]),i=M(Mn.unsafeDelimiters[0]),n=M(Mn.unsafeDelimiters[1]);Dn=new RegExp(i+"((?:.|\\n)+?)"+n+"|"+t+"((?:.|\\n)+?)"+e,"g"),Pn=new RegExp("^"+i+"((?:.|\\n)+?)"+n+"$"),Fn=new k(1e3)}function V(t){Fn||W();var e=Fn.get(t);if(e)return e;if(!Dn.test(t))return null;for(var i,n,r,s,o,a,h=[],l=Dn.lastIndex=0;i=Dn.exec(t);)n=i.index,n>l&&h.push({value:t.slice(l,n)}),r=Pn.test(i[0]),s=r?i[1]:i[2],o=s.charCodeAt(0),a=42===o,s=a?s.slice(1):s,h.push({tag:!0,value:s.trim(),html:r,oneTime:a}),l=n+i[0].length;return l<t.length&&h.push({value:t.slice(l)}),Fn.put(t,h),h}function B(t,e){return t.length>1?t.map(function(t){return z(t,e)}).join("+"):z(t[0],e,!0)}function z(t,e,i){return t.tag?t.oneTime&&e?'"'+e.$eval(t.value)+'"':U(t.value,i):'"'+t.value+'"'}function U(t,e){if(Rn.test(t)){var i=I(t);return i.filters?"this._applyFilters("+i.expression+",null,"+JSON.stringify(i.filters)+",false)":"("+t+")"}return e?t:"("+t+")"}function J(t,e,i,n){G(t,1,function(){e.appendChild(t)},i,n)}function q(t,e,i,n){G(t,1,function(){et(t,e)},i,n)}function Q(t,e,i){G(t,-1,function(){nt(t)},e,i)}function G(t,e,i,n,r){var s=t.__v_trans;if(!s||!s.hooks&&!rn||!n._isCompiled||n.$parent&&!n.$parent._isCompiled)return i(),void(r&&r());var o=e>0?"enter":"leave";s[o](i,r)}function Z(t){if("string"==typeof t){t=document.querySelector(t)}return t}function X(t){if(!t)return!1;var e=t.ownerDocument.documentElement,i=t.parentNode;return e===t||e===i||!(!i||1!==i.nodeType||!e.contains(i))}function Y(t,e){var i=t.getAttribute(e);return null!==i&&t.removeAttribute(e),i}function K(t,e){var i=Y(t,":"+e);return null===i&&(i=Y(t,"v-bind:"+e)),i}function tt(t,e){return t.hasAttribute(e)||t.hasAttribute(":"+e)||t.hasAttribute("v-bind:"+e)}function et(t,e){e.parentNode.insertBefore(t,e)}function it(t,e){e.nextSibling?et(t,e.nextSibling):e.parentNode.appendChild(t)}function nt(t){t.parentNode.removeChild(t)}function rt(t,e){e.firstChild?et(t,e.firstChild):e.appendChild(t)}function st(t,e){var i=t.parentNode;i&&i.replaceChild(e,t)}function ot(t,e,i,n){t.addEventListener(e,i,n)}function at(t,e,i){t.removeEventListener(e,i)}function ht(t){var e=t.className;return"object"==typeof e&&(e=e.baseVal||""),e}function lt(t,e){Ki&&!/svg$/.test(t.namespaceURI)?t.className=e:t.setAttribute("class",e)}function ct(t,e){if(t.classList)t.classList.add(e);else{var i=" "+ht(t)+" ";i.indexOf(" "+e+" ")<0&&lt(t,(i+e).trim())}}function ut(t,e){if(t.classList)t.classList.remove(e);else{for(var i=" "+ht(t)+" ",n=" "+e+" ";i.indexOf(n)>=0;)i=i.replace(n," ");lt(t,i.trim())}t.className||t.removeAttribute("class")}function ft(t,e){var i,n;if(vt(t)&&bt(t.content)&&(t=t.content),t.hasChildNodes())for(pt(t),n=e?document.createDocumentFragment():document.createElement("div");i=t.firstChild;)n.appendChild(i);return n}function pt(t){for(var e;e=t.firstChild,dt(e);)t.removeChild(e);for(;e=t.lastChild,dt(e);)t.removeChild(e)}function dt(t){return t&&(3===t.nodeType&&!t.data.trim()||8===t.nodeType)}function vt(t){return t.tagName&&"template"===t.tagName.toLowerCase()}function mt(t,e){var i=Mn.debug?document.createComment(t):document.createTextNode(e?" ":"");return i.__v_anchor=!0,i}function gt(t){if(t.hasAttributes())for(var e=t.attributes,i=0,n=e.length;i<n;i++){var r=e[i].name;if(Bn.test(r))return l(r.replace(Bn,""))}}function _t(t,e,i){for(var n;t!==e;)n=t.nextSibling,i(t),t=n;i(e)}function yt(t,e,i,n,r){function s(){if(a++,o&&a>=h.length){for(var t=0;t<h.length;t++)n.appendChild(h[t]);r&&r()}}var o=!1,a=0,h=[];_t(t,e,function(t){t===e&&(o=!0),h.push(t),Q(t,i,s)})}function bt(t){return t&&11===t.nodeType}function wt(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}function Ct(t,e){var i=t.tagName.toLowerCase(),n=t.hasAttributes();if(zn.test(i)||Un.test(i)){if(n)return $t(t,e)}else{if(jt(e,"components",i))return{id:i};var r=n&&$t(t,e);if(r)return r}}function $t(t,e){var i=t.getAttribute("is");if(null!=i){if(jt(e,"components",i))return t.removeAttribute("is"),{id:i}}else if(i=K(t,"is"),null!=i)return{id:i,dynamic:!0}}function kt(e,n){var r,s,o;for(r in n)s=e[r],o=n[r],i(e,r)?m(s)&&m(o)&&kt(s,o):t(e,r,o);return e}function xt(t,e){var i=Object.create(t||null);return e?v(i,Tt(e)):i}function At(t){if(t.components)for(var e,i=t.components=Tt(t.components),n=Object.keys(i),r=0,s=n.length;r<s;r++){var o=n[r];zn.test(o)||Un.test(o)||(e=i[o],g(e)&&(i[o]=Di.extend(e)))}}function Ot(t){var e,i,n=t.props;if(qi(n))for(t.props={},e=n.length;e--;)i=n[e],"string"==typeof i?t.props[i]=null:i.name&&(t.props[i.name]=i);else if(g(n)){var r=Object.keys(n);for(e=r.length;e--;)i=n[r[e]],"function"==typeof i&&(n[r[e]]={type:i})}}function Tt(t){if(qi(t)){for(var e,i={},n=t.length;n--;){e=t[n];var r="function"==typeof e?e.options&&e.options.name||e.id:e.name||e.id;r&&(i[r]=e)}return i}return t}function Nt(t,e,n){function r(i){var r=Jn[i]||qn;o[i]=r(t[i],e[i],n,i)}At(e),Ot(e);var s,o={};if(e.extends&&(t="function"==typeof e.extends?Nt(t,e.extends.options,n):Nt(t,e.extends,n)),e.mixins)for(var a=0,h=e.mixins.length;a<h;a++){var l=e.mixins[a],c=l.prototype instanceof Di?l.options:l;t=Nt(t,c,n)}for(s in t)r(s);for(s in e)i(t,s)||r(s);return o}function jt(t,e,i,n){if("string"==typeof i){var r,s=t[e],o=s[i]||s[r=l(i)]||s[r.charAt(0).toUpperCase()+r.slice(1)];return o}}function Et(){this.id=Qn++,this.subs=[]}function St(t){Yn=!1,t(),Yn=!0}function Ft(t){if(this.value=t,this.dep=new Et,_(t,"__ob__",this),qi(t)){var e=Qi?Dt:Pt;e(t,Zn,Xn),this.observeArray(t)}else this.walk(t)}function Dt(t,e){t.__proto__=e}function Pt(t,e,i){for(var n=0,r=i.length;n<r;n++){var s=i[n];_(t,s,e[s])}}function Rt(t,e){if(t&&"object"==typeof t){var n;return i(t,"__ob__")&&t.__ob__ instanceof Ft?n=t.__ob__:Yn&&(qi(t)||g(t))&&Object.isExtensible(t)&&!t._isVue&&(n=new Ft(t)),n&&e&&n.addVm(e),n}}function Lt(t,e,i){var n=new Et,r=Object.getOwnPropertyDescriptor(t,e);if(!r||r.configurable!==!1){var s=r&&r.get,o=r&&r.set,a=Rt(i);Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var e=s?s.call(t):i;if(Et.target&&(n.depend(),a&&a.dep.depend(),qi(e)))for(var r,o=0,h=e.length;o<h;o++)r=e[o],r&&r.__ob__&&r.__ob__.dep.depend();return e},set:function(e){var r=s?s.call(t):i;e!==r&&(o?o.call(t,e):i=e,a=Rt(e),n.notify())}})}}function Ht(t){t.prototype._init=function(t){t=t||{},this.$el=null,this.$parent=t.parent,this.$root=this.$parent?this.$parent.$root:this,this.$children=[],this.$refs={},this.$els={},this._watchers=[],this._directives=[],this._uid=tr++,this._isVue=!0,this._events={},this._eventsCount={},this._isFragment=!1,this._fragment=this._fragmentStart=this._fragmentEnd=null,this._isCompiled=this._isDestroyed=this._isReady=this._isAttached=this._isBeingDestroyed=this._vForRemoving=!1,this._unlinkFn=null,this._context=t._context||this.$parent,this._scope=t._scope,this._frag=t._frag,this._frag&&this._frag.children.push(this),this.$parent&&this.$parent.$children.push(this),t=this.$options=Nt(this.constructor.options,t,this),this._updateRef(),this._data={},this._callHook("init"),this._initState(),this._initEvents(),this._callHook("created"),t.el&&this.$mount(t.el)}}function It(t){if(void 0===t)return"eof";var e=t.charCodeAt(0);switch(e){case 91:case 93:case 46:case 34:case 39:case 48:return t;case 95:case 36:return"ident";case 32:case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return e>=97&&e<=122||e>=65&&e<=90?"ident":e>=49&&e<=57?"number":"else"}function Mt(t){var e=t.trim();return("0"!==t.charAt(0)||!isNaN(t))&&(n(e)?h(e):"*"+e)}function Wt(t){function e(){var e=t[c+1];if(u===ur&&"'"===e||u===fr&&'"'===e)return c++,n="\\"+e,p[ir](),!0}var i,n,r,s,o,a,h,l=[],c=-1,u=or,f=0,p=[];for(p[nr]=function(){void 0!==r&&(l.push(r),r=void 0)},p[ir]=function(){void 0===r?r=n:r+=n},p[rr]=function(){p[ir](),f++},p[sr]=function(){if(f>0)f--,u=cr,p[ir]();else{if(f=0,r=Mt(r),r===!1)return!1;p[nr]()}};null!=u;)if(c++,i=t[c],"\\"!==i||!e()){if(s=It(i),h=vr[u],o=h[s]||h.else||dr,o===dr)return;if(u=o[0],a=p[o[1]],a&&(n=o[2],n=void 0===n?i:n,a()===!1))return;if(u===pr)return l.raw=t,l}}function Vt(t){var e=er.get(t);return e||(e=Wt(t),e&&er.put(t,e)),e}function Bt(t,e){return Yt(e).get(t)}function zt(e,i,n){var r=e;if("string"==typeof i&&(i=Wt(i)),!i||!m(e))return!1;for(var s,o,a=0,h=i.length;a<h;a++)s=e,o=i[a],"*"===o.charAt(0)&&(o=Yt(o.slice(1)).get.call(r,r)),a<h-1?(e=e[o],m(e)||(e={},t(s,o,e))):qi(e)?e.$set(o,n):o in e?e[o]=n:t(e,o,n);return!0}function Ut(){}function Jt(t,e){var i=Nr.length;return Nr[i]=e?t.replace($r,"\\n"):t,'"'+i+'"'}function qt(t){var e=t.charAt(0),i=t.slice(1);return yr.test(i)?t:(i=i.indexOf('"')>-1?i.replace(xr,Qt):i,e+"scope."+i)}function Qt(t,e){return Nr[e]}function Gt(t){wr.test(t),Nr.length=0;var e=t.replace(kr,Jt).replace(Cr,"");return e=(" "+e).replace(Or,qt).replace(xr,Qt),Zt(e)}function Zt(t){try{return new Function("scope","return "+t+";")}catch(t){return Ut}}function Xt(t){var e=Vt(t);if(e)return function(t,i){zt(t,e,i)}}function Yt(t,e){t=t.trim();var i=gr.get(t);if(i)return e&&!i.set&&(i.set=Xt(i.exp)),i;var n={exp:t};return n.get=Kt(t)&&t.indexOf("[")<0?Zt("scope."+t):Gt(t),e&&(n.set=Xt(t)),gr.put(t,n),n}function Kt(t){return Ar.test(t)&&!Tr.test(t)&&"Math."!==t.slice(0,5)}function te(){Er.length=0,Sr.length=0,Fr={},Dr={},Pr=!1}function ee(){for(var t=!0;t;)t=!1,ie(Er),ie(Sr),Er.length?t=!0:(Zi&&Mn.devtools&&Zi.emit("flush"),te())}function ie(t){for(var e=0;e<t.length;e++){var i=t[e],n=i.id;Fr[n]=null,i.run()}t.length=0}function ne(t){var e=t.id;if(null==Fr[e]){var i=t.user?Sr:Er;Fr[e]=i.length,i.push(t),Pr||(Pr=!0,ln(ee))}}function re(t,e,i,n){n&&v(this,n);var r="function"==typeof e;if(this.vm=t,t._watchers.push(this),this.expression=e,this.cb=i,this.id=++Rr,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new cn,this.newDepIds=new cn,this.prevError=null,r)this.getter=e,this.setter=void 0;else{var s=Yt(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 se(t,e){var i=void 0,n=void 0;e||(e=Lr,e.clear());var r=qi(t),s=m(t);if((r||s)&&Object.isExtensible(t)){if(t.__ob__){var o=t.__ob__.dep.id;if(e.has(o))return;e.add(o)}if(r)for(i=t.length;i--;)se(t[i],e);else if(s)for(n=Object.keys(t),i=n.length;i--;)se(t[n[i]],e)}}function oe(t){return vt(t)&&bt(t.content)}function ae(t,e){var i=e?t:t.trim(),n=Ir.get(i);if(n)return n;var r=document.createDocumentFragment(),s=t.match(Vr),o=Br.test(t),a=zr.test(t);if(s||o||a){var h=s&&s[1],l=Wr[h]||Wr.efault,c=l[0],u=l[1],f=l[2],p=document.createElement("div");for(p.innerHTML=u+t+f;c--;)p=p.lastChild;for(var d;d=p.firstChild;)r.appendChild(d)}else r.appendChild(document.createTextNode(t));return e||pt(r),Ir.put(i,r),r}function he(t){if(oe(t))return ae(t.innerHTML);if("SCRIPT"===t.tagName)return ae(t.textContent);for(var e,i=le(t),n=document.createDocumentFragment();e=i.firstChild;)n.appendChild(e);return pt(n),n}function le(t){if(!t.querySelectorAll)return t.cloneNode();var e,i,n,r=t.cloneNode(!0);if(Ur){var s=r;if(oe(t)&&(t=t.content,s=r.content),i=t.querySelectorAll("template"),i.length)for(n=s.querySelectorAll("template"),e=n.length;e--;)n[e].parentNode.replaceChild(le(i[e]),n[e])}if(Jr)if("TEXTAREA"===t.tagName)r.value=t.value;else if(i=t.querySelectorAll("textarea"),i.length)for(n=r.querySelectorAll("textarea"),e=n.length;e--;)n[e].value=i[e].value;return r}function ce(t,e,i){var n,r;return bt(t)?(pt(t),e?le(t):t):("string"==typeof t?i||"#"!==t.charAt(0)?r=ae(t,i):(r=Mr.get(t),r||(n=document.getElementById(t.slice(1)),n&&(r=he(n),Mr.put(t,r)))):t.nodeType&&(r=he(t)),r&&e?le(r):r)}function ue(t,e,i,n,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,i,n,r,this);var o=this.single=1===i.childNodes.length&&!i.childNodes[0].__v_anchor;o?(this.node=i.childNodes[0],this.before=fe,this.remove=pe):(this.node=mt("fragment-start"),this.end=mt("fragment-end"),this.frag=i,rt(this.node,i),i.appendChild(this.end),this.before=de,this.remove=ve),this.node.__v_frag=this}function fe(t,e){this.inserted=!0;var i=e!==!1?q:et;i(this.node,t,this.vm),X(this.node)&&this.callHook(me)}function pe(){this.inserted=!1;var t=X(this.node),e=this;this.beforeRemove(),Q(this.node,this.vm,function(){t&&e.callHook(ge),e.destroy()})}function de(t,e){this.inserted=!0;var i=this.vm,n=e!==!1?q:et;_t(this.node,this.end,function(e){n(e,t,i)}),X(this.node)&&this.callHook(me)}function ve(){this.inserted=!1;var t=this,e=X(this.node);this.beforeRemove(),yt(this.node,this.end,this.vm,this.frag,function(){e&&t.callHook(ge),t.destroy()})}function me(t){!t._isAttached&&X(t.$el)&&t._callHook("attached")}function ge(t){t._isAttached&&!X(t.$el)&&t._callHook("detached")}function _e(t,e){this.vm=t;var i,n="string"==typeof e;n||vt(e)&&!e.hasAttribute("v-if")?i=ce(e,!0):(i=document.createDocumentFragment(),i.appendChild(e)),this.template=i;var r,s=t.constructor.cid;if(s>0){var o=s+(n?e:wt(e));r=Gr.get(o),r||(r=qe(i,t.$options,!0),Gr.put(o,r))}else r=qe(i,t.$options,!0);this.linker=r}function ye(t,e,i){var n=t.node.previousSibling;if(n){for(t=n.__v_frag;!(t&&t.forId===i&&t.inserted||n===e);){if(n=n.previousSibling,!n)return;t=n.__v_frag}return t}}function be(t){for(var e=-1,i=new Array(Math.floor(t));++e<t;)i[e]=e;return i}function we(t,e,i,n){return n?"$index"===n?t:n.charAt(0).match(/\w/)?Bt(i,n):i[n]:e||i}function Ce(t){var e=t.node;if(t.end)for(;!e.__vue__&&e!==t.end&&e.nextSibling;)e=e.nextSibling;return e.__vue__}function $e(t,e,i){for(var n,r,s,o=e?[]:null,a=0,h=t.options.length;a<h;a++)if(n=t.options[a],s=i?n.hasAttribute("selected"):n.selected){if(r=n.hasOwnProperty("_value")?n._value:n.value,!e)return r;o.push(r)}return o}function ke(t,e){for(var i=t.length;i--;)if(C(t[i],e))return i;return-1}function xe(t,e){var i=e.map(function(t){var e=t.charCodeAt(0);return e>47&&e<58?parseInt(t,10):1===t.length&&(e=t.toUpperCase().charCodeAt(0),e>64&&e<91)?e:ms[t]});return i=[].concat.apply([],i),function(e){if(i.indexOf(e.keyCode)>-1)return t.call(this,e)}}function Ae(t){return function(e){return e.stopPropagation(),t.call(this,e)}}function Oe(t){return function(e){return e.preventDefault(),t.call(this,e)}}function Te(t){return function(e){if(e.target===e.currentTarget)return t.call(this,e)}}function Ne(t){if(ws[t])return ws[t];var e=je(t);return ws[t]=ws[e]=e,e}function je(t){t=u(t);var e=l(t),i=e.charAt(0).toUpperCase()+e.slice(1);Cs||(Cs=document.createElement("div"));var n,r=_s.length;if("filter"!==e&&e in Cs.style)return{kebab:t,camel:e};for(;r--;)if(n=ys[r]+i,n in Cs.style)return{kebab:_s[r]+t,camel:n}}function Ee(t){var e=[];if(qi(t))for(var i=0,n=t.length;i<n;i++){var r=t[i];if(r)if("string"==typeof r)e.push(r);else for(var s in r)r[s]&&e.push(s)}else if(m(t))for(var o in t)t[o]&&e.push(o);return e}function Se(t,e,i){if(e=e.trim(),e.indexOf(" ")===-1)return void i(t,e);for(var n=e.split(/\s+/),r=0,s=n.length;r<s;r++)i(t,n[r])}function Fe(t,e,i){function n(){++s>=r?i():t[s].call(e,n)}var r=t.length,s=0;t[0].call(e,n)}function De(t,e,i){for(var r,s,o,a,h,c,f,p=[],d=i.$options.propsData,v=Object.keys(e),m=v.length;m--;)s=v[m],r=e[s]||Hs,h=l(s),Is.test(h)&&(f={name:s,path:h,options:r,mode:Ls.ONE_WAY,raw:null},o=u(s),null===(a=K(t,o))&&(null!==(a=K(t,o+".sync"))?f.mode=Ls.TWO_WAY:null!==(a=K(t,o+".once"))&&(f.mode=Ls.ONE_TIME)),null!==a?(f.raw=a,c=I(a),a=c.expression,f.filters=c.filters,n(a)&&!c.filters?f.optimizedLiteral=!0:f.dynamic=!0,f.parentPath=a):null!==(a=Y(t,o))?f.raw=a:d&&null!==(a=d[s]||d[h])&&(f.raw=a),p.push(f));return Pe(p)}function Pe(t){return function(e,n){e._props={};for(var r,s,l,c,f,p=e.$options.propsData,d=t.length;d--;)if(r=t[d],f=r.raw,s=r.path,l=r.options,e._props[s]=r,p&&i(p,s)&&Le(e,r,p[s]),null===f)Le(e,r,void 0);else if(r.dynamic)r.mode===Ls.ONE_TIME?(c=(n||e._context||e).$get(r.parentPath),Le(e,r,c)):e._context?e._bindDir({name:"prop",def:Ws,prop:r},null,null,n):Le(e,r,e.$get(r.parentPath));else if(r.optimizedLiteral){var v=h(f);c=v===f?a(o(f)):v,Le(e,r,c)}else c=l.type===Boolean&&(""===f||f===u(r.name))||f,Le(e,r,c)}}function Re(t,e,i,n){var r=e.dynamic&&Kt(e.parentPath),s=i;void 0===s&&(s=Ie(t,e)),s=We(e,s,t);var o=s!==i;Me(e,s,t)||(s=void 0),r&&!o?St(function(){n(s)}):n(s)}function Le(t,e,i){Re(t,e,i,function(i){Lt(t,e.path,i)})}function He(t,e,i){Re(t,e,i,function(i){t[e.path]=i})}function Ie(t,e){var n=e.options;if(!i(n,"default"))return n.type!==Boolean&&void 0;var r=n.default;return m(r),"function"==typeof r&&n.type!==Function?r.call(t):r}function Me(t,e,i){if(!t.options.required&&(null===t.raw||null==e))return!0;var n=t.options,r=n.type,s=!r,o=[];if(r){qi(r)||(r=[r]);for(var a=0;a<r.length&&!s;a++){var h=Ve(e,r[a]);o.push(h.expectedType),s=h.valid}}if(!s)return!1;var l=n.validator;return!(l&&!l(e))}function We(t,e,i){var n=t.options.coerce;return n&&"function"==typeof n?n(e):e}function Ve(t,e){var i,n;return e===String?(n="string",i=typeof t===n):e===Number?(n="number",i=typeof t===n):e===Boolean?(n="boolean",i=typeof t===n):e===Function?(n="function",i=typeof t===n):e===Object?(n="object",i=g(t)):e===Array?(n="array",i=qi(t)):i=t instanceof e,{valid:i,expectedType:n}}function Be(t){Vs.push(t),Bs||(Bs=!0,ln(ze))}function ze(){for(var t=document.documentElement.offsetHeight,e=0;e<Vs.length;e++)Vs[e]();return Vs=[],Bs=!1,t}function Ue(t,e,i,n){this.id=e,this.el=t,this.enterClass=i&&i.enterClass||e+"-enter",this.leaveClass=i&&i.leaveClass||e+"-leave",this.hooks=i,this.vm=n,this.pendingCssEvent=this.pendingCssCb=this.cancel=this.pendingJsCb=this.op=this.cb=null,this.justEntered=!1,this.entered=this.left=!1,this.typeCache={},this.type=i&&i.type;var r=this;["enterNextTick","enterDone","leaveNextTick","leaveDone"].forEach(function(t){r[t]=p(r[t],r)})}function Je(t){if(/svg$/.test(t.namespaceURI)){var e=t.getBoundingClientRect();return!(e.width||e.height)}return!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)}function qe(t,e,i){var n=i||!e._asComponent?ti(t,e):null,r=n&&n.terminal||gi(t)||!t.hasChildNodes()?null:oi(t.childNodes,e);return function(t,e,i,s,o){var a=d(e.childNodes),h=Qe(function(){n&&n(t,e,i,s,o),r&&r(t,a,i,s,o)},t);return Ze(t,h)}}function Qe(t,e){e._directives=[];var i=e._directives.length;t();var n=e._directives.slice(i);Ge(n);for(var r=0,s=n.length;r<s;r++)n[r]._bind();return n}function Ge(t){if(0!==t.length){var e,i,n,r,s={},o=0,a=[];for(e=0,i=t.length;e<i;e++){var h=t[e],l=h.descriptor.def.priority||ro,c=s[l];c||(c=s[l]=[],a.push(l)),c.push(h)}for(a.sort(function(t,e){return t>e?-1:t===e?0:1}),e=0,i=a.length;e<i;e++){var u=s[a[e]];for(n=0,r=u.length;n<r;n++)t[o++]=u[n]}}}function Ze(t,e,i,n){function r(r){Xe(t,e,r),i&&n&&Xe(i,n)}return r.dirs=e,r}function Xe(t,e,i){for(var n=e.length;n--;)e[n]._teardown()}function Ye(t,e,i,n){var r=De(e,i,t),s=Qe(function(){r(t,n)},t);return Ze(t,s)}function Ke(t,e,i){var n,r,s=e._containerAttrs,o=e._replacerAttrs;return 11!==t.nodeType&&(e._asComponent?(s&&i&&(n=pi(s,i)),o&&(r=pi(o,e))):r=pi(t.attributes,e)),e._containerAttrs=e._replacerAttrs=null,function(t,e,i){var s,o=t._context;o&&n&&(s=Qe(function(){n(o,e,null,i)},o));var a=Qe(function(){r&&r(t,e)},t);return Ze(t,a,o,s)}}function ti(t,e){var i=t.nodeType;return 1!==i||gi(t)?3===i&&t.data.trim()?ii(t,e):null:ei(t,e)}function ei(t,e){if("TEXTAREA"===t.tagName){if(null!==Y(t,"v-pre"))return ui;var i=V(t.value);i&&(t.setAttribute(":value",B(i)),t.value="")}var n,r=t.hasAttributes(),s=r&&d(t.attributes);return r&&(n=ci(t,s,e)),n||(n=hi(t,e)),n||(n=li(t,e)),!n&&r&&(n=pi(s,e)),n}function ii(t,e){if(t._skip)return ni;var i=V(t.wholeText);if(!i)return null;for(var n=t.nextSibling;n&&3===n.nodeType;)n._skip=!0,n=n.nextSibling;for(var r,s,o=document.createDocumentFragment(),a=0,h=i.length;a<h;a++)s=i[a],r=s.tag?ri(s,e):document.createTextNode(s.value),o.appendChild(r);return si(i,o,e)}function ni(t,e){nt(e)}function ri(t,e){function i(e){if(!t.descriptor){var i=I(t.value);t.descriptor={name:e,def:Ds[e],expression:i.expression,filters:i.filters}}}var n;return t.oneTime?n=document.createTextNode(t.value):t.html?(n=document.createComment("v-html"),i("html")):(n=document.createTextNode(" "),i("text")),n}function si(t,e){return function(i,n,r,o){for(var a,h,l,c=e.cloneNode(!0),u=d(c.childNodes),f=0,p=t.length;f<p;f++)a=t[f],h=a.value,a.tag&&(l=u[f],a.oneTime?(h=(o||i).$eval(h),a.html?st(l,ce(h,!0)):l.data=s(h)):i._bindDir(a.descriptor,l,r,o));st(n,c)}}function oi(t,e){for(var i,n,r,s=[],o=0,a=t.length;o<a;o++)r=t[o],i=ti(r,e),n=i&&i.terminal||"SCRIPT"===r.tagName||!r.hasChildNodes()?null:oi(r.childNodes,e),s.push(i,n);return s.length?ai(s):null}function ai(t){return function(e,i,n,r,s){for(var o,a,h,l=0,c=0,u=t.length;l<u;c++){o=i[c],a=t[l++],h=t[l++];var f=d(o.childNodes);a&&a(e,o,n,r,s),h&&h(e,f,n,r,s)}}}function hi(t,e){var i=t.tagName.toLowerCase();if(!zn.test(i)){var n=jt(e,"elementDirectives",i);return n?fi(t,i,"",e,n):void 0}}function li(t,e){var i=Ct(t,e);if(i){var n=gt(t),r={name:"component",ref:n,expression:i.id,def:Ys.component,modifiers:{literal:!i.dynamic}},s=function(t,e,i,s,o){n&&Lt((s||t).$refs,n,null),t._bindDir(r,e,i,s,o)};return s.terminal=!0,s}}function ci(t,e,i){if(null!==Y(t,"v-pre"))return ui;if(t.hasAttribute("v-else")){var n=t.previousElementSibling;if(n&&n.hasAttribute("v-if"))return ui}for(var r,s,o,a,h,l,c,u,f,p,d=0,v=e.length;d<v;d++)r=e[d],s=r.name.replace(io,""),(h=s.match(eo))&&(f=jt(i,"directives",h[1]),f&&f.terminal&&(!p||(f.priority||so)>p.priority)&&(p=f,c=r.name,a=di(r.name),o=r.value,l=h[1],u=h[2]));return p?fi(t,l,o,i,p,c,u,a):void 0}function ui(){}function fi(t,e,i,n,r,s,o,a){var h=I(i),l={name:e,arg:o,expression:h.expression,filters:h.filters,raw:i,attr:s,modifiers:a,def:r};"for"!==e&&"router-view"!==e||(l.ref=gt(t));var c=function(t,e,i,n,r){l.ref&&Lt((n||t).$refs,l.ref,null),t._bindDir(l,e,i,n,r)};return c.terminal=!0,c}function pi(t,e){function i(t,e,i){var n=i&&mi(i),r=!n&&I(s);v.push({name:t,attr:o,raw:a,def:e,arg:l,modifiers:c,expression:r&&r.expression,filters:r&&r.filters,interp:i,hasOneTime:n})}for(var n,r,s,o,a,h,l,c,u,f,p,d=t.length,v=[];d--;)if(n=t[d],r=o=n.name,s=a=n.value,f=V(s),l=null,c=di(r),r=r.replace(io,""),f)s=B(f),l=r,i("bind",Ds.bind,f);else if(no.test(r))c.literal=!Ks.test(r),i("transition",Ys.transition);else if(to.test(r))l=r.replace(to,""),i("on",Ds.on);else if(Ks.test(r))h=r.replace(Ks,""),"style"===h||"class"===h?i(h,Ys[h]):(l=h,i("bind",Ds.bind));else if(p=r.match(eo)){if(h=p[1],l=p[2],"else"===h)continue;u=jt(e,"directives",h,!0),u&&i(h,u)}if(v.length)return vi(v)}function di(t){var e=Object.create(null),i=t.match(io);if(i)for(var n=i.length;n--;)e[i[n].slice(1)]=!0;return e}function vi(t){return function(e,i,n,r,s){for(var o=t.length;o--;)e._bindDir(t[o],i,n,r,s)}}function mi(t){for(var e=t.length;e--;)if(t[e].oneTime)return!0}function gi(t){return"SCRIPT"===t.tagName&&(!t.hasAttribute("type")||"text/javascript"===t.getAttribute("type"))}function _i(t,e){return e&&(e._containerAttrs=bi(t)),vt(t)&&(t=ce(t)),e&&(e._asComponent&&!e.template&&(e.template="<slot></slot>"),e.template&&(e._content=ft(t),t=yi(t,e))),bt(t)&&(rt(mt("v-start",!0),t),t.appendChild(mt("v-end",!0))),t}function yi(t,e){var i=e.template,n=ce(i,!0);if(n){var r=n.firstChild;if(!r)return n;var s=r.tagName&&r.tagName.toLowerCase();return e.replace?(t===document.body,n.childNodes.length>1||1!==r.nodeType||"component"===s||jt(e,"components",s)||tt(r,"is")||jt(e,"elementDirectives",s)||r.hasAttribute("v-for")||r.hasAttribute("v-if")?n:(e._replacerAttrs=bi(r),wi(t,r),r)):(t.appendChild(n),t)}}function bi(t){if(1===t.nodeType&&t.hasAttributes())return d(t.attributes)}function wi(t,e){for(var i,n,r=t.attributes,s=r.length;s--;)i=r[s].name,n=r[s].value,e.hasAttribute(i)||oo.test(i)?"class"===i&&!V(n)&&(n=n.trim())&&n.split(/\s+/).forEach(function(t){ct(e,t)}):e.setAttribute(i,n)}function Ci(t,e){if(e){for(var i,n,r=t._slotContents=Object.create(null),s=0,o=e.children.length;s<o;s++)i=e.children[s],(n=i.getAttribute("slot"))&&(r[n]||(r[n]=[])).push(i);for(n in r)r[n]=$i(r[n],e);if(e.hasChildNodes()){var a=e.childNodes;if(1===a.length&&3===a[0].nodeType&&!a[0].data.trim())return;r.default=$i(e.childNodes,e)}}}function $i(t,e){var i=document.createDocumentFragment();t=d(t);for(var n=0,r=t.length;n<r;n++){var s=t[n];!vt(s)||s.hasAttribute("v-if")||s.hasAttribute("v-for")||(e.removeChild(s),s=ce(s,!0)),i.appendChild(s)}return i}function ki(t){function e(){}function n(t,e){var i=new re(e,t,null,{lazy:!0});return function(){return i.dirty&&i.evaluate(),Et.target&&i.depend(),i.value}}Object.defineProperty(t.prototype,"$data",{get:function(){return this._data},set:function(t){t!==this._data&&this._setData(t)}}),t.prototype._initState=function(){this._initProps(),this._initMeta(),this._initMethods(),this._initData(),this._initComputed()},t.prototype._initProps=function(){var t=this.$options,e=t.el,i=t.props;e=t.el=Z(e),this._propsUnlinkFn=e&&1===e.nodeType&&i?Ye(this,e,i,this._scope):null},t.prototype._initData=function(){var t=this.$options.data,e=this._data=t?t():{};g(e)||(e={});var n,r,s=this._props,o=Object.keys(e);for(n=o.length;n--;)r=o[n],s&&i(s,r)||this._proxy(r);Rt(e,this)},t.prototype._setData=function(t){t=t||{};var e=this._data;this._data=t;var n,r,s;for(n=Object.keys(e),s=n.length;s--;)r=n[s],r in t||this._unproxy(r);for(n=Object.keys(t),s=n.length;s--;)r=n[s],i(this,r)||this._proxy(r);e.__ob__.removeVm(this),Rt(t,this),this._digest()},t.prototype._proxy=function(t){if(!r(t)){var e=this;Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:function(){return e._data[t]},set:function(i){e._data[t]=i}})}},t.prototype._unproxy=function(t){r(t)||delete this[t]},t.prototype._digest=function(){for(var t=0,e=this._watchers.length;t<e;t++)this._watchers[t].update(!0)},t.prototype._initComputed=function(){var t=this.$options.computed;if(t)for(var i in t){var r=t[i],s={enumerable:!0,configurable:!0};"function"==typeof r?(s.get=n(r,this),s.set=e):(s.get=r.get?r.cache!==!1?n(r.get,this):p(r.get,this):e,s.set=r.set?p(r.set,this):e),Object.defineProperty(this,i,s)}},t.prototype._initMethods=function(){var t=this.$options.methods;if(t)for(var e in t)this[e]=p(t[e],this)},t.prototype._initMeta=function(){var t=this.$options._meta;if(t)for(var e in t)Lt(this,e,t[e])}}function xi(t){function e(t,e){for(var i,n,r,s=e.attributes,o=0,a=s.length;o<a;o++)i=s[o].name,ho.test(i)&&(i=i.replace(ho,""),n=s[o].value,Kt(n)&&(n+=".apply(this, $arguments)"),r=(t._scope||t._context).$eval(n,!0),r._fromParent=!0,t.$on(i.replace(ho),r))}function i(t,e,i){if(i){var r,s,o,a;for(s in i)if(r=i[s],qi(r))for(o=0,a=r.length;o<a;o++)n(t,e,s,r[o]);else n(t,e,s,r)}}function n(t,e,i,r,s){var o=typeof r;if("function"===o)t[e](i,r,s);else if("string"===o){var a=t.$options.methods,h=a&&a[r];h&&t[e](i,h,s)}else r&&"object"===o&&n(t,e,i,r.handler,r)}function r(){this._isAttached||(this._isAttached=!0,this.$children.forEach(s))}function s(t){!t._isAttached&&X(t.$el)&&t._callHook("attached")}function o(){this._isAttached&&(this._isAttached=!1,this.$children.forEach(a))}function a(t){t._isAttached&&!X(t.$el)&&t._callHook("detached")}t.prototype._initEvents=function(){var t=this.$options;t._asComponent&&e(this,t.el),i(this,"$on",t.events),i(this,"$watch",t.watch)},t.prototype._initDOMHooks=function(){this.$on("hook:attached",r),this.$on("hook:detached",o)},t.prototype._callHook=function(t){this.$emit("pre-hook:"+t);var e=this.$options[t];if(e)for(var i=0,n=e.length;i<n;i++)e[i].call(this);this.$emit("hook:"+t)}}function Ai(){}function Oi(t,e,i,n,r,s){this.vm=e,this.el=i,this.descriptor=t,this.name=t.name,this.expression=t.expression,this.arg=t.arg,this.modifiers=t.modifiers,this.filters=t.filters,this.literal=this.modifiers&&this.modifiers.literal,this._locked=!1,this._bound=!1,this._listeners=null,this._host=n,this._scope=r,this._frag=s}function Ti(t){t.prototype._updateRef=function(t){var e=this.$options._ref;if(e){var i=(this._scope||this._context).$refs;t?i[e]===this&&(i[e]=null):i[e]=this}},t.prototype._compile=function(t){var e=this.$options,i=t;if(t=_i(t,e),this._initElement(t),1!==t.nodeType||null===Y(t,"v-pre")){var n=this._context&&this._context.$options,r=Ke(t,e,n);Ci(this,e._content);var s,o=this.constructor;e._linkerCachable&&(s=o.linker,s||(s=o.linker=qe(t,e)));var a=r(this,t,this._scope),h=s?s(this,t):qe(t,e)(this,t);
7
+ this._unlinkFn=function(){a(),h(!0)},e.replace&&st(i,t),this._isCompiled=!0,this._callHook("compiled")}},t.prototype._initElement=function(t){bt(t)?(this._isFragment=!0,this.$el=this._fragmentStart=t.firstChild,this._fragmentEnd=t.lastChild,3===this._fragmentStart.nodeType&&(this._fragmentStart.data=this._fragmentEnd.data=""),this._fragment=t):this.$el=t,this.$el.__vue__=this,this._callHook("beforeCompile")},t.prototype._bindDir=function(t,e,i,n,r){this._directives.push(new Oi(t,this,e,i,n,r))},t.prototype._destroy=function(t,e){if(this._isBeingDestroyed)return void(e||this._cleanup());var i,n,r=this,s=function(){!i||n||e||r._cleanup()};t&&this.$el&&(n=!0,this.$remove(function(){n=!1,s()})),this._callHook("beforeDestroy"),this._isBeingDestroyed=!0;var o,a=this.$parent;for(a&&!a._isBeingDestroyed&&(a.$children.$remove(this),this._updateRef(!0)),o=this.$children.length;o--;)this.$children[o].$destroy();for(this._propsUnlinkFn&&this._propsUnlinkFn(),this._unlinkFn&&this._unlinkFn(),o=this._watchers.length;o--;)this._watchers[o].teardown();this.$el&&(this.$el.__vue__=null),i=!0,s()},t.prototype._cleanup=function(){this._isDestroyed||(this._frag&&this._frag.children.$remove(this),this._data&&this._data.__ob__&&this._data.__ob__.removeVm(this),this.$el=this.$parent=this.$root=this.$children=this._watchers=this._context=this._scope=this._directives=null,this._isDestroyed=!0,this._callHook("destroyed"),this.$off())}}function Ni(t){t.prototype._applyFilters=function(t,e,i,n){var r,s,o,a,h,l,c,u,f;for(l=0,c=i.length;l<c;l++)if(r=i[n?c-l-1:l],s=jt(this.$options,"filters",r.name,!0),s&&(s=n?s.write:s.read||s,"function"==typeof s)){if(o=n?[t,e]:[t],h=n?2:1,r.args)for(u=0,f=r.args.length;u<f;u++)a=r.args[u],o[u+h]=a.dynamic?this.$get(a.value):a.value;t=s.apply(this,o)}return t},t.prototype._resolveComponent=function(e,i){var n;if(n="function"==typeof e?e:jt(this.$options,"components",e,!0))if(n.options)i(n);else if(n.resolved)i(n.resolved);else if(n.requested)n.pendingCallbacks.push(i);else{n.requested=!0;var r=n.pendingCallbacks=[i];n.call(this,function(e){g(e)&&(e=t.extend(e)),n.resolved=e;for(var i=0,s=r.length;i<s;i++)r[i](e)},function(t){})}}}function ji(t){function i(t){return JSON.parse(JSON.stringify(t))}t.prototype.$get=function(t,e){var i=Yt(t);if(i){if(e){var n=this;return function(){n.$arguments=d(arguments);var t=i.get.call(n,n);return n.$arguments=null,t}}try{return i.get.call(this,this)}catch(t){}}},t.prototype.$set=function(t,e){var i=Yt(t,!0);i&&i.set&&i.set.call(this,this,e)},t.prototype.$delete=function(t){e(this._data,t)},t.prototype.$watch=function(t,e,i){var n,r=this;"string"==typeof t&&(n=I(t),t=n.expression);var s=new re(r,t,e,{deep:i&&i.deep,sync:i&&i.sync,filters:n&&n.filters,user:!i||i.user!==!1});return i&&i.immediate&&e.call(r,s.value),function(){s.teardown()}},t.prototype.$eval=function(t,e){if(lo.test(t)){var i=I(t),n=this.$get(i.expression,e);return i.filters?this._applyFilters(n,null,i.filters):n}return this.$get(t,e)},t.prototype.$interpolate=function(t){var e=V(t),i=this;return e?1===e.length?i.$eval(e[0].value)+"":e.map(function(t){return t.tag?i.$eval(t.value):t.value}).join(""):t},t.prototype.$log=function(t){var e=t?Bt(this._data,t):this._data;if(e&&(e=i(e)),!t){var n;for(n in this.$options.computed)e[n]=i(this[n]);if(this._props)for(n in this._props)e[n]=i(this[n])}console.log(e)}}function Ei(t){function e(t,e,n,r,s,o){e=i(e);var a=!X(e),h=r===!1||a?s:o,l=!a&&!t._isAttached&&!X(t.$el);return t._isFragment?(_t(t._fragmentStart,t._fragmentEnd,function(i){h(i,e,t)}),n&&n()):h(t.$el,e,t,n),l&&t._callHook("attached"),t}function i(t){return"string"==typeof t?document.querySelector(t):t}function n(t,e,i,n){e.appendChild(t),n&&n()}function r(t,e,i,n){et(t,e),n&&n()}function s(t,e,i){nt(t),i&&i()}t.prototype.$nextTick=function(t){ln(t,this)},t.prototype.$appendTo=function(t,i,r){return e(this,t,i,r,n,J)},t.prototype.$prependTo=function(t,e,n){return t=i(t),t.hasChildNodes()?this.$before(t.firstChild,e,n):this.$appendTo(t,e,n),this},t.prototype.$before=function(t,i,n){return e(this,t,i,n,r,q)},t.prototype.$after=function(t,e,n){return t=i(t),t.nextSibling?this.$before(t.nextSibling,e,n):this.$appendTo(t.parentNode,e,n),this},t.prototype.$remove=function(t,e){if(!this.$el.parentNode)return t&&t();var i=this._isAttached&&X(this.$el);i||(e=!1);var n=this,r=function(){i&&n._callHook("detached"),t&&t()};if(this._isFragment)yt(this._fragmentStart,this._fragmentEnd,this,this._fragment,r);else{var o=e===!1?s:Q;o(this.$el,this,r)}return this}}function Si(t){function e(t,e,n){var r=t.$parent;if(r&&n&&!i.test(e))for(;r;)r._eventsCount[e]=(r._eventsCount[e]||0)+n,r=r.$parent}t.prototype.$on=function(t,i){return(this._events[t]||(this._events[t]=[])).push(i),e(this,t,1),this},t.prototype.$once=function(t,e){function i(){n.$off(t,i),e.apply(this,arguments)}var n=this;return i.fn=e,this.$on(t,i),this},t.prototype.$off=function(t,i){var n;if(!arguments.length){if(this.$parent)for(t in this._events)n=this._events[t],n&&e(this,t,-n.length);return this._events={},this}if(n=this._events[t],!n)return this;if(1===arguments.length)return e(this,t,-n.length),this._events[t]=null,this;for(var r,s=n.length;s--;)if(r=n[s],r===i||r.fn===i){e(this,t,-1),n.splice(s,1);break}return this},t.prototype.$emit=function(t){var e="string"==typeof t;t=e?t:t.name;var i=this._events[t],n=e||!i;if(i){i=i.length>1?d(i):i;var r=e&&i.some(function(t){return t._fromParent});r&&(n=!1);for(var s=d(arguments,1),o=0,a=i.length;o<a;o++){var h=i[o],l=h.apply(this,s);l!==!0||r&&!h._fromParent||(n=!0)}}return n},t.prototype.$broadcast=function(t){var e="string"==typeof t;if(t=e?t:t.name,this._eventsCount[t]){var i=this.$children,n=d(arguments);e&&(n[0]={name:t,source:this});for(var r=0,s=i.length;r<s;r++){var o=i[r],a=o.$emit.apply(o,n);a&&o.$broadcast.apply(o,n)}return this}},t.prototype.$dispatch=function(t){var e=this.$emit.apply(this,arguments);if(e){var i=this.$parent,n=d(arguments);for(n[0]={name:t,source:this};i;)e=i.$emit.apply(i,n),i=e?i.$parent:null;return this}};var i=/^hook:/}function Fi(t){function e(){this._isAttached=!0,this._isReady=!0,this._callHook("ready")}t.prototype.$mount=function(t){if(!this._isCompiled)return t=Z(t),t||(t=document.createElement("div")),this._compile(t),this._initDOMHooks(),X(this.$el)?(this._callHook("attached"),e.call(this)):this.$once("hook:attached",e),this},t.prototype.$destroy=function(t,e){this._destroy(t,e)},t.prototype.$compile=function(t,e,i,n){return qe(t,this.$options,!0)(this,t,e,i,n)}}function Di(t){this._init(t)}function Pi(t,e,i){return i=i?parseInt(i,10):0,e=o(e),"number"==typeof e?t.slice(i,i+e):t}function Ri(t,e,i){if(t=po(t),null==e)return t;if("function"==typeof e)return t.filter(e);e=(""+e).toLowerCase();for(var n,r,s,o,a="in"===i?3:2,h=Array.prototype.concat.apply([],d(arguments,a)),l=[],c=0,u=t.length;c<u;c++)if(n=t[c],s=n&&n.$value||n,o=h.length){for(;o--;)if(r=h[o],"$key"===r&&Hi(n.$key,e)||Hi(Bt(s,r),e)){l.push(n);break}}else Hi(n,e)&&l.push(n);return l}function Li(t){function e(t,e,i){var r=n[i];return r&&("$key"!==r&&(m(t)&&"$value"in t&&(t=t.$value),m(e)&&"$value"in e&&(e=e.$value)),t=m(t)?Bt(t,r):t,e=m(e)?Bt(e,r):e),t===e?0:t>e?s:-s}var i=null,n=void 0;t=po(t);var r=d(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?i=function(t,e){return o(t,e)*s}:(n=Array.prototype.concat.apply([],r),i=function(t,r,s){return s=s||0,s>=n.length-1?e(t,r,s):e(t,r,s)||i(t,r,s+1)}),t.slice().sort(i)):t}function Hi(t,e){var i;if(g(t)){var n=Object.keys(t);for(i=n.length;i--;)if(Hi(t[n[i]],e))return!0}else if(qi(t)){for(i=t.length;i--;)if(Hi(t[i],e))return!0}else if(null!=t)return t.toString().toLowerCase().indexOf(e)>-1}function Ii(i){function n(t){return new Function("return function "+f(t)+" (options) { this._init(options) }")()}i.options={directives:Ds,elementDirectives:fo,filters:mo,transitions:{},components:{},partials:{},replace:!0},i.util=Kn,i.config=Mn,i.set=t,i.delete=e,i.nextTick=ln,i.compiler=ao,i.FragmentFactory=_e,i.internalDirectives=Ys,i.parsers={path:mr,text:Ln,template:qr,directive:En,expression:jr},i.cid=0;var r=1;i.extend=function(t){t=t||{};var e=this,i=0===e.cid;if(i&&t._Ctor)return t._Ctor;var s=t.name||e.options.name,o=n(s||"VueComponent");return o.prototype=Object.create(e.prototype),o.prototype.constructor=o,o.cid=r++,o.options=Nt(e.options,t),o.super=e,o.extend=e.extend,Mn._assetTypes.forEach(function(t){o[t]=e[t]}),s&&(o.options.components[s]=o),i&&(t._Ctor=o),o},i.use=function(t){if(!t.installed){var e=d(arguments,1);return e.unshift(this),"function"==typeof t.install?t.install.apply(t,e):t.apply(null,e),t.installed=!0,this}},i.mixin=function(t){i.options=Nt(i.options,t)},Mn._assetTypes.forEach(function(t){i[t]=function(e,n){return n?("component"===t&&g(n)&&(n.name||(n.name=e),n=i.extend(n)),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}),v(i.transition,Vn)}var Mi=Object.prototype.hasOwnProperty,Wi=/^\s?(true|false|-?[\d\.]+|'[^']*'|"[^"]*")\s?$/,Vi=/-(\w)/g,Bi=/([^-])([A-Z])/g,zi=/(?:^|[-_\/])(\w)/g,Ui=Object.prototype.toString,Ji="[object Object]",qi=Array.isArray,Qi="__proto__"in{},Gi="undefined"!=typeof window&&"[object Object]"!==Object.prototype.toString.call(window),Zi=Gi&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,Xi=Gi&&window.navigator.userAgent.toLowerCase(),Yi=Xi&&Xi.indexOf("trident")>0,Ki=Xi&&Xi.indexOf("msie 9.0")>0,tn=Xi&&Xi.indexOf("android")>0,en=Xi&&/iphone|ipad|ipod|ios/.test(Xi),nn=void 0,rn=void 0,sn=void 0,on=void 0;if(Gi&&!Ki){var an=void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend,hn=void 0===window.onanimationend&&void 0!==window.onwebkitanimationend;nn=an?"WebkitTransition":"transition",rn=an?"webkitTransitionEnd":"transitionend",sn=hn?"WebkitAnimation":"animation",on=hn?"webkitAnimationEnd":"animationend"}var ln=function(){function t(){i=!1;var t=e.slice(0);e.length=0;for(var n=0;n<t.length;n++)t[n]()}var e=[],i=!1,n=void 0;if("undefined"!=typeof Promise&&$(Promise)){var r=Promise.resolve(),s=function(){};n=function(){r.then(t),en&&setTimeout(s)}}else if("undefined"!=typeof MutationObserver){var o=1,a=new MutationObserver(t),h=document.createTextNode(String(o));a.observe(h,{characterData:!0}),n=function(){o=(o+1)%2,h.data=String(o)}}else n=setTimeout;return function(r,s){var o=s?function(){r.call(s)}:r;e.push(o),i||(i=!0,n(t,0))}}(),cn=void 0;"undefined"!=typeof Set&&$(Set)?cn=Set:(cn=function(){this.set=Object.create(null)},cn.prototype.has=function(t){return void 0!==this.set[t]},cn.prototype.add=function(t){this.set[t]=1},cn.prototype.clear=function(){this.set=Object.create(null)});var un=k.prototype;un.put=function(t,e){var i,n=this.get(t,!0);return n||(this.size===this.limit&&(i=this.shift()),n={key:t},this._keymap[t]=n,this.tail?(this.tail.newer=n,n.older=this.tail):this.head=n,this.tail=n,this.size++),n.value=e,i},un.shift=function(){var t=this.head;return t&&(this.head=this.head.newer,this.head.older=void 0,t.newer=t.older=void 0,this._keymap[t.key]=void 0,this.size--),t},un.get=function(t,e){var i=this._keymap[t];if(void 0!==i)return i===this.tail?e?i:i.value:(i.newer&&(i===this.head&&(this.head=i.newer),i.newer.older=i.older),i.older&&(i.older.newer=i.newer),i.newer=void 0,i.older=this.tail,this.tail&&(this.tail.newer=i),this.tail=i,e?i:i.value)};var fn,pn,dn,vn,mn,gn,_n=new k(1e3),yn=/^in$|^-?\d+/,bn=0,wn=1,Cn=2,$n=3,kn=34,xn=39,An=124,On=92,Tn=32,Nn={91:1,123:1,40:1},jn={91:93,123:125,40:41},En=Object.freeze({parseDirective:I}),Sn=/[-.*+?^${}()|[\]\/\\]/g,Fn=void 0,Dn=void 0,Pn=void 0,Rn=/[^|]\|[^|]/,Ln=Object.freeze({compileRegex:W,parseText:V,tokensToExp:B}),Hn=["{{","}}"],In=["{{{","}}}"],Mn=Object.defineProperties({debug:!1,silent:!1,async:!0,warnExpressionErrors:!0,devtools:!1,_delimitersChanged:!0,_assetTypes:["component","directive","elementDirective","filter","transition","partial"],_propBindingModes:{ONE_WAY:0,TWO_WAY:1,ONE_TIME:2},_maxUpdateCount:100},{delimiters:{get:function(){return Hn},set:function(t){Hn=t,W()},configurable:!0,enumerable:!0},unsafeDelimiters:{get:function(){return In},set:function(t){In=t,W()},configurable:!0,enumerable:!0}}),Wn=void 0,Vn=Object.freeze({appendWithTransition:J,beforeWithTransition:q,removeWithTransition:Q,applyTransition:G}),Bn=/^v-ref:/,zn=/^(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,Un=/^(slot|partial|component)$/i,Jn=Mn.optionMergeStrategies=Object.create(null);Jn.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?kt(n,r):r}:void 0:e?"function"!=typeof e?t:t?function(){return kt(e.call(this),t.call(this))}:e:t},Jn.el=function(t,e,i){if(i||!e||"function"==typeof e){var n=e||t;return i&&"function"==typeof n?n.call(i):n}},Jn.init=Jn.created=Jn.ready=Jn.attached=Jn.detached=Jn.beforeCompile=Jn.compiled=Jn.beforeDestroy=Jn.destroyed=Jn.activate=function(t,e){return e?t?t.concat(e):qi(e)?e:[e]:t},Mn._assetTypes.forEach(function(t){Jn[t+"s"]=xt}),Jn.watch=Jn.events=function(t,e){if(!e)return t;if(!t)return e;var i={};v(i,t);for(var n in e){var r=i[n],s=e[n];r&&!qi(r)&&(r=[r]),i[n]=r?r.concat(s):[s]}return i},Jn.props=Jn.methods=Jn.computed=function(t,e){if(!e)return t;if(!t)return e;var i=Object.create(null);return v(i,t),v(i,e),i};var qn=function(t,e){return void 0===e?t:e},Qn=0;Et.target=null,Et.prototype.addSub=function(t){this.subs.push(t)},Et.prototype.removeSub=function(t){this.subs.$remove(t)},Et.prototype.depend=function(){Et.target.addDep(this)},Et.prototype.notify=function(){for(var t=d(this.subs),e=0,i=t.length;e<i;e++)t[e].update()};var Gn=Array.prototype,Zn=Object.create(Gn);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(t){var e=Gn[t];_(Zn,t,function(){for(var i=arguments.length,n=new Array(i);i--;)n[i]=arguments[i];var r,s=e.apply(this,n),o=this.__ob__;switch(t){case"push":r=n;break;case"unshift":r=n;break;case"splice":r=n.slice(2)}return r&&o.observeArray(r),o.dep.notify(),s})}),_(Gn,"$set",function(t,e){return t>=this.length&&(this.length=Number(t)+1),this.splice(t,1,e)[0]}),_(Gn,"$remove",function(t){if(this.length){var e=b(this,t);return e>-1?this.splice(e,1):void 0}});var Xn=Object.getOwnPropertyNames(Zn),Yn=!0;Ft.prototype.walk=function(t){for(var e=Object.keys(t),i=0,n=e.length;i<n;i++)this.convert(e[i],t[e[i]])},Ft.prototype.observeArray=function(t){for(var e=0,i=t.length;e<i;e++)Rt(t[e])},Ft.prototype.convert=function(t,e){Lt(this.value,t,e)},Ft.prototype.addVm=function(t){(this.vms||(this.vms=[])).push(t)},Ft.prototype.removeVm=function(t){this.vms.$remove(t)};var Kn=Object.freeze({defineReactive:Lt,set:t,del:e,hasOwn:i,isLiteral:n,isReserved:r,_toString:s,toNumber:o,toBoolean:a,stripQuotes:h,camelize:l,hyphenate:u,classify:f,bind:p,toArray:d,extend:v,isObject:m,isPlainObject:g,def:_,debounce:y,indexOf:b,cancellable:w,looseEqual:C,isArray:qi,hasProto:Qi,inBrowser:Gi,devtools:Zi,isIE:Yi,isIE9:Ki,isAndroid:tn,isIOS:en,get transitionProp(){return nn},get transitionEndEvent(){return rn},get animationProp(){return sn},get animationEndEvent(){return on},nextTick:ln,get _Set(){return cn},query:Z,inDoc:X,getAttr:Y,getBindAttr:K,hasBindAttr:tt,before:et,after:it,remove:nt,prepend:rt,replace:st,on:ot,off:at,setClass:lt,addClass:ct,removeClass:ut,extractContent:ft,trimNode:pt,isTemplate:vt,createAnchor:mt,findRef:gt,mapNodeRange:_t,removeNodeRange:yt,isFragment:bt,getOuterHTML:wt,mergeOptions:Nt,resolveAsset:jt,checkComponentAttr:Ct,commonTagRE:zn,reservedTagRE:Un,warn:Wn}),tr=0,er=new k(1e3),ir=0,nr=1,rr=2,sr=3,or=0,ar=1,hr=2,lr=3,cr=4,ur=5,fr=6,pr=7,dr=8,vr=[];vr[or]={ws:[or],ident:[lr,ir],"[":[cr],eof:[pr]},vr[ar]={ws:[ar],".":[hr],"[":[cr],eof:[pr]},vr[hr]={ws:[hr],ident:[lr,ir]},vr[lr]={ident:[lr,ir],0:[lr,ir],number:[lr,ir],ws:[ar,nr],".":[hr,nr],"[":[cr,nr],eof:[pr,nr]},vr[cr]={"'":[ur,ir],'"':[fr,ir],"[":[cr,rr],"]":[ar,sr],eof:dr,else:[cr,ir]},vr[ur]={"'":[cr,ir],eof:dr,else:[ur,ir]},vr[fr]={'"':[cr,ir],eof:dr,else:[fr,ir]};var mr=Object.freeze({parsePath:Vt,getPath:Bt,setPath:zt}),gr=new k(1e3),_r="Math,Date,this,true,false,null,undefined,Infinity,NaN,isNaN,isFinite,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,parseInt,parseFloat",yr=new RegExp("^("+_r.replace(/,/g,"\\b|")+"\\b)"),br="break,case,class,catch,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,in,instanceof,let,return,super,switch,throw,try,var,while,with,yield,enum,await,implements,package,protected,static,interface,private,public",wr=new RegExp("^("+br.replace(/,/g,"\\b|")+"\\b)"),Cr=/\s/g,$r=/\n/g,kr=/[\{,]\s*[\w\$_]+\s*:|('(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\"']|\\.)*`|`(?:[^`\\]|\\.)*`)|new |typeof |void /g,xr=/"(\d+)"/g,Ar=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\]|\[\d+\]|\[[A-Za-z_$][\w$]*\])*$/,Or=/[^\w$\.](?:[A-Za-z_$][\w$]*)/g,Tr=/^(?:true|false|null|undefined|Infinity|NaN)$/,Nr=[],jr=Object.freeze({parseExpression:Yt,isSimplePath:Kt}),Er=[],Sr=[],Fr={},Dr={},Pr=!1,Rr=0;re.prototype.get=function(){this.beforeGet();var t,e=this.scope||this.vm;try{t=this.getter.call(e,e)}catch(t){}return this.deep&&se(t),this.preProcess&&(t=this.preProcess(t)),this.filters&&(t=e._applyFilters(t,null,this.filters,!1)),this.postProcess&&(t=this.postProcess(t)),this.afterGet(),t},re.prototype.set=function(t){var e=this.scope||this.vm;this.filters&&(t=e._applyFilters(t,this.value,this.filters,!0));try{this.setter.call(e,e,t)}catch(t){}var i=e.$forContext;if(i&&i.alias===this.expression){if(i.filters)return;i._withLock(function(){e.$key?i.rawValue[e.$key]=t:i.rawValue.$set(e.$index,t)})}},re.prototype.beforeGet=function(){Et.target=this},re.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},re.prototype.afterGet=function(){Et.target=null;for(var t=this.deps.length;t--;){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var i=this.depIds;this.depIds=this.newDepIds,this.newDepIds=i,this.newDepIds.clear(),i=this.deps,this.deps=this.newDeps,this.newDeps=i,this.newDeps.length=0},re.prototype.update=function(t){this.lazy?this.dirty=!0:this.sync||!Mn.async?this.run():(this.shallow=this.queued?!!t&&this.shallow:!!t,this.queued=!0,ne(this))},re.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||(m(t)||this.deep)&&!this.shallow){var e=this.value;this.value=t;this.prevError;this.cb.call(this.vm,t,e)}this.queued=this.shallow=!1}},re.prototype.evaluate=function(){var t=Et.target;this.value=this.get(),this.dirty=!1,Et.target=t},re.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},re.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||this.vm._vForRemoving||this.vm._watchers.$remove(this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1,this.vm=this.cb=this.value=null}};var Lr=new cn,Hr={bind:function(){this.attr=3===this.el.nodeType?"data":"textContent"},update:function(t){this.el[this.attr]=s(t)}},Ir=new k(1e3),Mr=new k(1e3),Wr={efault:[0,"",""],legend:[1,"<fieldset>","</fieldset>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]};Wr.td=Wr.th=[3,"<table><tbody><tr>","</tr></tbody></table>"],Wr.option=Wr.optgroup=[1,'<select multiple="multiple">',"</select>"],Wr.thead=Wr.tbody=Wr.colgroup=Wr.caption=Wr.tfoot=[1,"<table>","</table>"],Wr.g=Wr.defs=Wr.symbol=Wr.use=Wr.image=Wr.text=Wr.circle=Wr.ellipse=Wr.line=Wr.path=Wr.polygon=Wr.polyline=Wr.rect=[1,'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"version="1.1">',"</svg>"];var Vr=/<([\w:-]+)/,Br=/&#?\w+?;/,zr=/<!--/,Ur=function(){if(Gi){var t=document.createElement("div");return t.innerHTML="<template>1</template>",!t.cloneNode(!0).firstChild.innerHTML}return!1}(),Jr=function(){if(Gi){var t=document.createElement("textarea");return t.placeholder="t","t"===t.cloneNode(!0).value}return!1}(),qr=Object.freeze({cloneNode:le,parseTemplate:ce}),Qr={bind:function(){8===this.el.nodeType&&(this.nodes=[],this.anchor=mt("v-html"),st(this.el,this.anchor))},update:function(t){t=s(t),this.nodes?this.swap(t):this.el.innerHTML=t},swap:function(t){for(var e=this.nodes.length;e--;)nt(this.nodes[e]);var i=ce(t,!0,!0);this.nodes=d(i.childNodes),et(i,this.anchor)}};ue.prototype.callHook=function(t){var e,i;for(e=0,i=this.childFrags.length;e<i;e++)this.childFrags[e].callHook(t);for(e=0,i=this.children.length;e<i;e++)t(this.children[e])},ue.prototype.beforeRemove=function(){var t,e;for(t=0,e=this.childFrags.length;t<e;t++)this.childFrags[t].beforeRemove(!1);for(t=0,e=this.children.length;t<e;t++)this.children[t].$destroy(!1,!0);var i=this.unlink.dirs;for(t=0,e=i.length;t<e;t++)i[t]._watcher&&i[t]._watcher.teardown()},ue.prototype.destroy=function(){this.parentFrag&&this.parentFrag.childFrags.$remove(this),this.node.__v_frag=null,this.unlink()};var Gr=new k(5e3);_e.prototype.create=function(t,e,i){var n=le(this.template);return new ue(this.linker,this.vm,n,t,e,i)};var Zr=700,Xr=800,Yr=850,Kr=1100,ts=1500,es=1500,is=1750,ns=2100,rs=2200,ss=2300,os=0,as={priority:rs,terminal:!0,params:["track-by","stagger","enter-stagger","leave-stagger"],bind:function(){var t=this.expression.match(/(.*) (?:in|of) (.*)/);if(t){var e=t[1].match(/\((.*),(.*)\)/);e?(this.iterator=e[1].trim(),this.alias=e[2].trim()):this.alias=t[1].trim(),this.expression=t[2]}if(this.alias){this.id="__v-for__"+ ++os;var i=this.el.tagName;this.isOption=("OPTION"===i||"OPTGROUP"===i)&&"SELECT"===this.el.parentNode.tagName,this.start=mt("v-for-start"),this.end=mt("v-for-end"),st(this.el,this.end),et(this.start,this.end),this.cache=Object.create(null),this.factory=new _e(this.vm,this.el)}},update:function(t){this.diff(t),this.updateRef(),this.updateModel()},diff:function(t){var e,n,r,s,o,a,h=t[0],l=this.fromObject=m(h)&&i(h,"$key")&&i(h,"$value"),c=this.params.trackBy,u=this.frags,f=this.frags=new Array(t.length),p=this.alias,d=this.iterator,v=this.start,g=this.end,_=X(v),y=!u;for(e=0,n=t.length;e<n;e++)h=t[e],s=l?h.$key:null,o=l?h.$value:h,a=!m(o),r=!y&&this.getCachedFrag(o,e,s),r?(r.reused=!0,r.scope.$index=e,s&&(r.scope.$key=s),d&&(r.scope[d]=null!==s?s:e),(c||l||a)&&St(function(){r.scope[p]=o})):(r=this.create(o,p,e,s),r.fresh=!y),f[e]=r,y&&r.before(g);if(!y){var b=0,w=u.length-f.length;for(this.vm._vForRemoving=!0,e=0,n=u.length;e<n;e++)r=u[e],r.reused||(this.deleteCachedFrag(r),this.remove(r,b++,w,_));this.vm._vForRemoving=!1,b&&(this.vm._watchers=this.vm._watchers.filter(function(t){return t.active}));var C,$,k,x=0;for(e=0,n=f.length;e<n;e++)r=f[e],C=f[e-1],$=C?C.staggerCb?C.staggerAnchor:C.end||C.node:v,r.reused&&!r.staggerCb?(k=ye(r,v,this.id),k===C||k&&ye(k,v,this.id)===C||this.move(r,$)):this.insert(r,x++,$,_),r.reused=r.fresh=!1}},create:function(t,e,i,n){var r=this._host,s=this._scope||this.vm,o=Object.create(s);o.$refs=Object.create(s.$refs),o.$els=Object.create(s.$els),o.$parent=s,o.$forContext=this,St(function(){Lt(o,e,t)}),Lt(o,"$index",i),n?Lt(o,"$key",n):o.$key&&_(o,"$key",null),this.iterator&&Lt(o,this.iterator,null!==n?n:i);var a=this.factory.create(r,o,this._frag);return a.forId=this.id,this.cacheFrag(t,a,i,n),a},updateRef:function(){var t=this.descriptor.ref;if(t){var e,i=(this._scope||this.vm).$refs;this.fromObject?(e={},this.frags.forEach(function(t){e[t.scope.$key]=Ce(t)})):e=this.frags.map(Ce),i[t]=e}},updateModel:function(){if(this.isOption){var t=this.start.parentNode,e=t&&t.__v_model;e&&e.forceUpdate()}},insert:function(t,e,i,n){t.staggerCb&&(t.staggerCb.cancel(),t.staggerCb=null);var r=this.getStagger(t,e,null,"enter");if(n&&r){var s=t.staggerAnchor;s||(s=t.staggerAnchor=mt("stagger-anchor"),s.__v_frag=t),it(s,i);var o=t.staggerCb=w(function(){t.staggerCb=null,t.before(s),nt(s)});setTimeout(o,r)}else{var a=i.nextSibling;a||(it(this.end,i),a=this.end),t.before(a)}},remove:function(t,e,i,n){if(t.staggerCb)return t.staggerCb.cancel(),void(t.staggerCb=null);var r=this.getStagger(t,e,i,"leave");if(n&&r){var s=t.staggerCb=w(function(){t.staggerCb=null,t.remove()});setTimeout(s,r)}else t.remove()},move:function(t,e){e.nextSibling||this.end.parentNode.appendChild(this.end),t.before(e.nextSibling,!1)},cacheFrag:function(t,e,n,r){var s,o=this.params.trackBy,a=this.cache,h=!m(t);r||o||h?(s=we(n,r,t,o),a[s]||(a[s]=e)):(s=this.id,i(t,s)?null===t[s]&&(t[s]=e):Object.isExtensible(t)&&_(t,s,e)),e.raw=t},getCachedFrag:function(t,e,i){var n,r=this.params.trackBy,s=!m(t);if(i||r||s){var o=we(e,i,t,r);n=this.cache[o]}else n=t[this.id];return n&&(n.reused||n.fresh),n},deleteCachedFrag:function(t){var e=t.raw,n=this.params.trackBy,r=t.scope,s=r.$index,o=i(r,"$key")&&r.$key,a=!m(e);if(n||o||a){var h=we(s,o,e,n);this.cache[h]=null}else e[this.id]=null,t.raw=null},getStagger:function(t,e,i,n){n+="Stagger";var r=t.node.__v_trans,s=r&&r.hooks,o=s&&(s[n]||s.stagger);return o?o.call(t,e,i):e*parseInt(this.params[n]||this.params.stagger,10)},_preProcess:function(t){return this.rawValue=t,t},_postProcess:function(t){if(qi(t))return t;if(g(t)){for(var e,i=Object.keys(t),n=i.length,r=new Array(n);n--;)e=i[n],r[n]={$key:e,$value:t[e]};return r}return"number"!=typeof t||isNaN(t)||(t=be(t)),t||[]},unbind:function(){if(this.descriptor.ref&&((this._scope||this.vm).$refs[this.descriptor.ref]=null),this.frags)for(var t,e=this.frags.length;e--;)t=this.frags[e],this.deleteCachedFrag(t),t.destroy()}},hs={priority:ns,terminal:!0,bind:function(){var t=this.el;if(t.__vue__)this.invalid=!0;else{var e=t.nextElementSibling;e&&null!==Y(e,"v-else")&&(nt(e),this.elseEl=e),this.anchor=mt("v-if"),st(t,this.anchor)}},update:function(t){this.invalid||(t?this.frag||this.insert():this.remove())},insert:function(){this.elseFrag&&(this.elseFrag.remove(),this.elseFrag=null),this.factory||(this.factory=new _e(this.vm,this.el)),this.frag=this.factory.create(this._host,this._scope,this._frag),this.frag.before(this.anchor)},remove:function(){this.frag&&(this.frag.remove(),this.frag=null),this.elseEl&&!this.elseFrag&&(this.elseFactory||(this.elseFactory=new _e(this.elseEl._context||this.vm,this.elseEl)),this.elseFrag=this.elseFactory.create(this._host,this._scope,this._frag),this.elseFrag.before(this.anchor))},unbind:function(){this.frag&&this.frag.destroy(),this.elseFrag&&this.elseFrag.destroy()}},ls={bind:function(){var t=this.el.nextElementSibling;t&&null!==Y(t,"v-else")&&(this.elseEl=t)},update:function(t){this.apply(this.el,t),this.elseEl&&this.apply(this.elseEl,!t)},apply:function(t,e){function i(){t.style.display=e?"":"none"}X(t)?G(t,e?1:-1,i,this.vm):i()}},cs={bind:function(){var t=this,e=this.el,i="range"===e.type,n=this.params.lazy,r=this.params.number,s=this.params.debounce,a=!1;if(tn||i||(this.on("compositionstart",function(){a=!0}),this.on("compositionend",function(){a=!1,n||t.listener()})),this.focused=!1,i||n||(this.on("focus",function(){t.focused=!0}),this.on("blur",function(){t.focused=!1,t._frag&&!t._frag.inserted||t.rawListener()})),this.listener=this.rawListener=function(){if(!a&&t._bound){var n=r||i?o(e.value):e.value;t.set(n),ln(function(){t._bound&&!t.focused&&t.update(t._watcher.value)})}},s&&(this.listener=y(this.listener,s)),this.hasjQuery="function"==typeof jQuery,this.hasjQuery){var h=jQuery.fn.on?"on":"bind";jQuery(e)[h]("change",this.rawListener),n||jQuery(e)[h]("input",this.listener)}else this.on("change",this.rawListener),n||this.on("input",this.listener);!n&&Ki&&(this.on("cut",function(){ln(t.listener)}),this.on("keyup",function(e){46!==e.keyCode&&8!==e.keyCode||t.listener()})),(e.hasAttribute("value")||"TEXTAREA"===e.tagName&&e.value.trim())&&(this.afterBind=this.listener)},update:function(t){t=s(t),t!==this.el.value&&(this.el.value=t)},unbind:function(){var t=this.el;if(this.hasjQuery){var e=jQuery.fn.off?"off":"unbind";jQuery(t)[e]("change",this.listener),jQuery(t)[e]("input",this.listener)}}},us={bind:function(){var t=this,e=this.el;this.getValue=function(){if(e.hasOwnProperty("_value"))return e._value;var i=e.value;return t.params.number&&(i=o(i)),i},this.listener=function(){t.set(t.getValue())},this.on("change",this.listener),e.hasAttribute("checked")&&(this.afterBind=this.listener)},update:function(t){this.el.checked=C(t,this.getValue())}},fs={bind:function(){var t=this,e=this,i=this.el;this.forceUpdate=function(){e._watcher&&e.update(e._watcher.get())};var n=this.multiple=i.hasAttribute("multiple");this.listener=function(){var t=$e(i,n);t=e.params.number?qi(t)?t.map(o):o(t):t,e.set(t)},this.on("change",this.listener);var r=$e(i,n,!0);(n&&r.length||!n&&null!==r)&&(this.afterBind=this.listener),this.vm.$on("hook:attached",function(){ln(t.forceUpdate)}),X(i)||ln(this.forceUpdate)},update:function(t){var e=this.el;e.selectedIndex=-1;for(var i,n,r=this.multiple&&qi(t),s=e.options,o=s.length;o--;)i=s[o],n=i.hasOwnProperty("_value")?i._value:i.value,i.selected=r?ke(t,n)>-1:C(t,n)},unbind:function(){this.vm.$off("hook:attached",this.forceUpdate)}},ps={bind:function(){function t(){var t=i.checked;return t&&i.hasOwnProperty("_trueValue")?i._trueValue:!t&&i.hasOwnProperty("_falseValue")?i._falseValue:t}var e=this,i=this.el;this.getValue=function(){return i.hasOwnProperty("_value")?i._value:e.params.number?o(i.value):i.value},this.listener=function(){var n=e._watcher.get();if(qi(n)){var r=e.getValue(),s=b(n,r);i.checked?s<0&&e.set(n.concat(r)):s>-1&&e.set(n.slice(0,s).concat(n.slice(s+1)))}else e.set(t())},this.on("change",this.listener),i.hasAttribute("checked")&&(this.afterBind=this.listener)},update:function(t){var e=this.el;qi(t)?e.checked=b(t,this.getValue())>-1:e.hasOwnProperty("_trueValue")?e.checked=C(t,e._trueValue):e.checked=!!t}},ds={text:cs,radio:us,select:fs,checkbox:ps},vs={priority:Xr,twoWay:!0,handlers:ds,params:["lazy","number","debounce"],bind:function(){this.checkFilters(),this.hasRead&&!this.hasWrite;var t,e=this.el,i=e.tagName;if("INPUT"===i)t=ds[e.type]||ds.text;else if("SELECT"===i)t=ds.select;else{if("TEXTAREA"!==i)return;t=ds.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 i=jt(this.vm.$options,"filters",t[e].name);("function"==typeof i||i.read)&&(this.hasRead=!0),i.write&&(this.hasWrite=!0)}},unbind:function(){this.el.__v_model=null,this._unbind&&this._unbind()}},ms={esc:27,tab:9,enter:13,space:32,delete:[8,46],up:38,left:37,right:39,down:40},gs={priority:Zr,acceptStatement:!0,keyCodes:ms,bind:function(){if("IFRAME"===this.el.tagName&&"load"!==this.arg){var t=this;this.iframeBind=function(){ot(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){this.modifiers.stop&&(t=Ae(t)),this.modifiers.prevent&&(t=Oe(t)),this.modifiers.self&&(t=Te(t));var e=Object.keys(this.modifiers).filter(function(t){return"stop"!==t&&"prevent"!==t&&"self"!==t&&"capture"!==t});e.length&&(t=xe(t,e)),this.reset(),this.handler=t,this.iframeBind?this.iframeBind():ot(this.el,this.arg,this.handler,this.modifiers.capture)}},reset:function(){var t=this.iframeBind?this.el.contentWindow:this.el;this.handler&&at(t,this.arg,this.handler)},unbind:function(){this.reset()}},_s=["-webkit-","-moz-","-ms-"],ys=["Webkit","Moz","ms"],bs=/!important;?$/,ws=Object.create(null),Cs=null,$s={deep:!0,update:function(t){"string"==typeof t?this.el.style.cssText=t:qi(t)?this.handleObject(t.reduce(v,{})):this.handleObject(t||{})},handleObject:function(t){var e,i,n=this.cache||(this.cache={});for(e in n)e in t||(this.handleSingle(e,null),delete n[e]);for(e in t)i=t[e],i!==n[e]&&(n[e]=i,this.handleSingle(e,i))},handleSingle:function(t,e){if(t=Ne(t))if(null!=e&&(e+=""),e){var i=bs.test(e)?"important":"";i?(e=e.replace(bs,"").trim(),this.el.style.setProperty(t.kebab,e,i)):this.el.style[t.camel]=e;
8
+ }else this.el.style[t.camel]=""}},ks="http://www.w3.org/1999/xlink",xs=/^xlink:/,As=/^v-|^:|^@|^(?:is|transition|transition-mode|debounce|track-by|stagger|enter-stagger|leave-stagger)$/,Os=/^(?:value|checked|selected|muted)$/,Ts=/^(?:draggable|contenteditable|spellcheck)$/,Ns={value:"_value","true-value":"_trueValue","false-value":"_falseValue"},js={priority:Yr,bind:function(){var t=this.arg,e=this.el.tagName;t||(this.deep=!0);var i=this.descriptor,n=i.interp;n&&(i.hasOneTime&&(this.expression=B(n,this._scope||this.vm)),(As.test(t)||"name"===t&&("PARTIAL"===e||"SLOT"===e))&&(this.el.removeAttribute(t),this.invalid=!0))},update:function(t){if(!this.invalid){var e=this.arg;this.arg?this.handleSingle(e,t):this.handleObject(t||{})}},handleObject:$s.handleObject,handleSingle:function(t,e){var i=this.el,n=this.descriptor.interp;if(this.modifiers.camel&&(t=l(t)),!n&&Os.test(t)&&t in i){var r="value"===t&&null==e?"":e;i[t]!==r&&(i[t]=r)}var s=Ns[t];if(!n&&s){i[s]=e;var o=i.__v_model;o&&o.listener()}return"value"===t&&"TEXTAREA"===i.tagName?void i.removeAttribute(t):void(Ts.test(t)?i.setAttribute(t,e?"true":"false"):null!=e&&e!==!1?"class"===t?(i.__v_trans&&(e+=" "+i.__v_trans.id+"-transition"),lt(i,e)):xs.test(t)?i.setAttributeNS(ks,t,e===!0?"":e):i.setAttribute(t,e===!0?"":e):i.removeAttribute(t))}},Es={priority:ts,bind:function(){if(this.arg){var t=this.id=l(this.arg),e=(this._scope||this.vm).$els;i(e,t)?e[t]=this.el:Lt(e,t,this.el)}},unbind:function(){var t=(this._scope||this.vm).$els;t[this.id]===this.el&&(t[this.id]=null)}},Ss={bind:function(){}},Fs={bind:function(){var t=this.el;this.vm.$once("pre-hook:compiled",function(){t.removeAttribute("v-cloak")})}},Ds={text:Hr,html:Qr,for:as,if:hs,show:ls,model:vs,on:gs,bind:js,el:Es,ref:Ss,cloak:Fs},Ps={deep:!0,update:function(t){t?"string"==typeof t?this.setClass(t.trim().split(/\s+/)):this.setClass(Ee(t)):this.cleanup()},setClass:function(t){this.cleanup(t);for(var e=0,i=t.length;e<i;e++){var n=t[e];n&&Se(this.el,n,ct)}this.prevKeys=t},cleanup:function(t){var e=this.prevKeys;if(e)for(var i=e.length;i--;){var n=e[i];(!t||t.indexOf(n)<0)&&Se(this.el,n,ut)}}},Rs={priority:es,params:["keep-alive","transition-mode","inline-template"],bind:function(){this.el.__vue__||(this.keepAlive=this.params.keepAlive,this.keepAlive&&(this.cache={}),this.params.inlineTemplate&&(this.inlineTemplate=ft(this.el,!0)),this.pendingComponentCb=this.Component=null,this.pendingRemovals=0,this.pendingRemovalCb=null,this.anchor=mt("v-component"),st(this.el,this.anchor),this.el.removeAttribute("is"),this.el.removeAttribute(":is"),this.descriptor.ref&&this.el.removeAttribute("v-ref:"+u(this.descriptor.ref)),this.literal&&this.setComponent(this.expression))},update:function(t){this.literal||this.setComponent(t)},setComponent:function(t,e){if(this.invalidatePending(),t){var i=this;this.resolveComponent(t,function(){i.mountComponent(e)})}else this.unbuild(!0),this.remove(this.childVM,e),this.childVM=null},resolveComponent:function(t,e){var i=this;this.pendingComponentCb=w(function(n){i.ComponentName=n.options.name||("string"==typeof t?t:null),i.Component=n,e()}),this.vm._resolveComponent(t,this.pendingComponentCb)},mountComponent:function(t){this.unbuild(!0);var e=this,i=this.Component.options.activate,n=this.getCached(),r=this.build();i&&!n?(this.waitingFor=r,Fe(i,r,function(){e.waitingFor===r&&(e.waitingFor=null,e.transition(r,t))})):(n&&r._updateRef(),this.transition(r,t))},invalidatePending:function(){this.pendingComponentCb&&(this.pendingComponentCb.cancel(),this.pendingComponentCb=null)},build:function(t){var e=this.getCached();if(e)return e;if(this.Component){var i={name:this.ComponentName,el:le(this.el),template:this.inlineTemplate,parent:this._host||this.vm,_linkerCachable:!this.inlineTemplate,_ref:this.descriptor.ref,_asComponent:!0,_isRouterView:this._isRouterView,_context:this.vm,_scope:this._scope,_frag:this._frag};t&&v(i,t);var n=new this.Component(i);return this.keepAlive&&(this.cache[this.Component.cid]=n),n}},getCached:function(){return this.keepAlive&&this.cache[this.Component.cid]},unbuild:function(t){this.waitingFor&&(this.keepAlive||this.waitingFor.$destroy(),this.waitingFor=null);var e=this.childVM;return!e||this.keepAlive?void(e&&(e._inactive=!0,e._updateRef(!0))):void e.$destroy(!1,t)},remove:function(t,e){var i=this.keepAlive;if(t){this.pendingRemovals++,this.pendingRemovalCb=e;var n=this;t.$remove(function(){n.pendingRemovals--,i||t._cleanup(),!n.pendingRemovals&&n.pendingRemovalCb&&(n.pendingRemovalCb(),n.pendingRemovalCb=null)})}else e&&e()},transition:function(t,e){var i=this,n=this.childVM;switch(n&&(n._inactive=!0),t._inactive=!1,this.childVM=t,i.params.transitionMode){case"in-out":t.$before(i.anchor,function(){i.remove(n,e)});break;case"out-in":i.remove(n,function(){t.$before(i.anchor,e)});break;default:i.remove(n),t.$before(i.anchor,e)}},unbind:function(){if(this.invalidatePending(),this.unbuild(),this.cache){for(var t in this.cache)this.cache[t].$destroy();this.cache=null}}},Ls=Mn._propBindingModes,Hs={},Is=/^[$_a-zA-Z]+[\w$]*$/,Ms=Mn._propBindingModes,Ws={bind:function(){var t=this.vm,e=t._context,i=this.descriptor.prop,n=i.path,r=i.parentPath,s=i.mode===Ms.TWO_WAY,o=this.parentWatcher=new re(e,r,function(e){He(t,i,e)},{twoWay:s,filters:i.filters,scope:this._scope});if(Le(t,i,o.value),s){var a=this;t.$once("pre-hook:created",function(){a.childWatcher=new re(t,n,function(t){o.set(t)},{sync:!0})})}},unbind:function(){this.parentWatcher.teardown(),this.childWatcher&&this.childWatcher.teardown()}},Vs=[],Bs=!1,zs="transition",Us="animation",Js=nn+"Duration",qs=sn+"Duration",Qs=Gi&&window.requestAnimationFrame,Gs=Qs?function(t){Qs(function(){Qs(t)})}:function(t){setTimeout(t,50)},Zs=Ue.prototype;Zs.enter=function(t,e){this.cancelPending(),this.callHook("beforeEnter"),this.cb=e,ct(this.el,this.enterClass),t(),this.entered=!1,this.callHookWithCb("enter"),this.entered||(this.cancel=this.hooks&&this.hooks.enterCancelled,Be(this.enterNextTick))},Zs.enterNextTick=function(){var t=this;this.justEntered=!0,Gs(function(){t.justEntered=!1});var e=this.enterDone,i=this.getCssTransitionType(this.enterClass);this.pendingJsCb?i===zs&&ut(this.el,this.enterClass):i===zs?(ut(this.el,this.enterClass),this.setupCssCb(rn,e)):i===Us?this.setupCssCb(on,e):e()},Zs.enterDone=function(){this.entered=!0,this.cancel=this.pendingJsCb=null,ut(this.el,this.enterClass),this.callHook("afterEnter"),this.cb&&this.cb()},Zs.leave=function(t,e){this.cancelPending(),this.callHook("beforeLeave"),this.op=t,this.cb=e,ct(this.el,this.leaveClass),this.left=!1,this.callHookWithCb("leave"),this.left||(this.cancel=this.hooks&&this.hooks.leaveCancelled,this.op&&!this.pendingJsCb&&(this.justEntered?this.leaveDone():Be(this.leaveNextTick)))},Zs.leaveNextTick=function(){var t=this.getCssTransitionType(this.leaveClass);if(t){var e=t===zs?rn:on;this.setupCssCb(e,this.leaveDone)}else this.leaveDone()},Zs.leaveDone=function(){this.left=!0,this.cancel=this.pendingJsCb=null,this.op(),ut(this.el,this.leaveClass),this.callHook("afterLeave"),this.cb&&this.cb(),this.op=null},Zs.cancelPending=function(){this.op=this.cb=null;var t=!1;this.pendingCssCb&&(t=!0,at(this.el,this.pendingCssEvent,this.pendingCssCb),this.pendingCssEvent=this.pendingCssCb=null),this.pendingJsCb&&(t=!0,this.pendingJsCb.cancel(),this.pendingJsCb=null),t&&(ut(this.el,this.enterClass),ut(this.el,this.leaveClass)),this.cancel&&(this.cancel.call(this.vm,this.el),this.cancel=null)},Zs.callHook=function(t){this.hooks&&this.hooks[t]&&this.hooks[t].call(this.vm,this.el)},Zs.callHookWithCb=function(t){var e=this.hooks&&this.hooks[t];e&&(e.length>1&&(this.pendingJsCb=w(this[t+"Done"])),e.call(this.vm,this.el,this.pendingJsCb))},Zs.getCssTransitionType=function(t){if(!(!rn||document.hidden||this.hooks&&this.hooks.css===!1||Je(this.el))){var e=this.type||this.typeCache[t];if(e)return e;var i=this.el.style,n=window.getComputedStyle(this.el),r=i[Js]||n[Js];if(r&&"0s"!==r)e=zs;else{var s=i[qs]||n[qs];s&&"0s"!==s&&(e=Us)}return e&&(this.typeCache[t]=e),e}},Zs.setupCssCb=function(t,e){this.pendingCssEvent=t;var i=this,n=this.el,r=this.pendingCssCb=function(s){s.target===n&&(at(n,t,r),i.pendingCssEvent=i.pendingCssCb=null,!i.pendingJsCb&&e&&e())};ot(n,t,r)};var Xs={priority:Kr,update:function(t,e){var i=this.el,n=jt(this.vm.$options,"transitions",t);t=t||"v",e=e||"v",i.__v_trans=new Ue(i,t,n,this.vm),ut(i,e+"-transition"),ct(i,t+"-transition")}},Ys={style:$s,class:Ps,component:Rs,prop:Ws,transition:Xs},Ks=/^v-bind:|^:/,to=/^v-on:|^@/,eo=/^v-([^:]+)(?:$|:(.*)$)/,io=/\.[^\.]+/g,no=/^(v-bind:|:)?transition$/,ro=1e3,so=2e3;ui.terminal=!0;var oo=/[^\w\-:\.]/,ao=Object.freeze({compile:qe,compileAndLinkProps:Ye,compileRoot:Ke,transclude:_i,resolveSlots:Ci}),ho=/^v-on:|^@/;Oi.prototype._bind=function(){var t=this.name,e=this.descriptor;if(("cloak"!==t||this.vm._isCompiled)&&this.el&&this.el.removeAttribute){var i=e.attr||"v-"+t;this.el.removeAttribute(i)}var n=e.def;if("function"==typeof n?this.update=n:v(this,n),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=Ai;var s=this._preProcess?p(this._preProcess,this):null,o=this._postProcess?p(this._postProcess,this):null,a=this._watcher=new re(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)}},Oi.prototype._setupParams=function(){if(this.params){var t=this.params;this.params=Object.create(null);for(var e,i,n,r=t.length;r--;)e=u(t[r]),n=l(e),i=K(this.el,e),null!=i?this._setupParamWatcher(n,i):(i=Y(this.el,e),null!=i&&(this.params[n]=""===i||i))}},Oi.prototype._setupParamWatcher=function(t,e){var i=this,n=!1,r=(this._scope||this.vm).$watch(e,function(e,r){if(i.params[t]=e,n){var s=i.paramWatchers&&i.paramWatchers[t];s&&s.call(i,e,r)}else n=!0},{immediate:!0,user:!1});(this._paramUnwatchFns||(this._paramUnwatchFns=[])).push(r)},Oi.prototype._checkStatement=function(){var t=this.expression;if(t&&this.acceptStatement&&!Kt(t)){var e=Yt(t).get,i=this._scope||this.vm,n=function(t){i.$event=t,e.call(i,i),i.$event=null};return this.filters&&(n=i._applyFilters(n,null,this.filters)),this.update(n),!0}},Oi.prototype.set=function(t){this.twoWay&&this._withLock(function(){this._watcher.set(t)})},Oi.prototype._withLock=function(t){var e=this;e._locked=!0,t.call(e),ln(function(){e._locked=!1})},Oi.prototype.on=function(t,e,i){ot(this.el,t,e,i),(this._listeners||(this._listeners=[])).push([t,e])},Oi.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--;)at(this.el,e[t][0],e[t][1]);var i=this._paramUnwatchFns;if(i)for(t=i.length;t--;)i[t]();this.vm=this.el=this._watcher=this._listeners=null}};var lo=/[^|]\|[^|]/;Ht(Di),ki(Di),xi(Di),Ti(Di),Ni(Di),ji(Di),Ei(Di),Si(Di),Fi(Di);var co={priority:ss,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,i){if(t&&e){if(this.el.hasChildNodes()&&1===t.childNodes.length&&1===t.childNodes[0].nodeType&&t.childNodes[0].hasAttribute("v-if")){var n=document.createElement("template");n.setAttribute("v-else",""),n.innerHTML=this.el.innerHTML,n._context=this.vm,t.appendChild(n)}var r=i?i._scope:this._scope;this.unlink=e.$compile(t,i,r,this._frag)}t?st(this.el,t):nt(this.el)},fallback:function(){this.compile(ft(this.el,!0),this.vm)},unbind:function(){this.unlink&&this.unlink()}},uo={priority:is,params:["name"],paramWatchers:{name:function(t){hs.remove.call(this),t&&this.insert(t)}},bind:function(){this.anchor=mt("v-partial"),st(this.el,this.anchor),this.insert(this.params.name)},insert:function(t){var e=jt(this.vm.$options,"partials",t,!0);e&&(this.factory=new _e(this.vm,e),hs.insert.call(this))},unbind:function(){this.frag&&this.frag.destroy()}},fo={slot:co,partial:uo},po=as._postProcess,vo=/(\d{3})(?=\d)/g,mo={orderBy:Li,filterBy:Ri,limitBy:Pi,json:{read:function(t,e){return"string"==typeof t?t:JSON.stringify(t,null,arguments.length>1?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,i){if(t=parseFloat(t),!isFinite(t)||!t&&0!==t)return"";e=null!=e?e:"$",i=null!=i?i:2;var n=Math.abs(t).toFixed(i),r=i?n.slice(0,-1-i):n,s=r.length%3,o=s>0?r.slice(0,s)+(r.length>3?",":""):"",a=i?n.slice(-1-i):"",h=t<0?"-":"";return h+e+o+r.slice(s).replace(vo,"$1,")+a},pluralize:function(t){var e=d(arguments,1),i=e.length;if(i>1){var n=t%10-1;return n in e?e[n]:e[i-1]}return e[0]+(1===t?"":"s")},debounce:function(t,e){if(t)return e||(e=300),y(t,e)}};return Ii(Di),Di.version="1.0.28",setTimeout(function(){Mn.devtools&&Zi&&Zi.emit("init",Di)},0),Di});
9
+ //# sourceMappingURL=vue.min.js.map
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Vue.js v2.1.8
3
- * (c) 2014-2016 Evan You
2
+ * Vue.js v2.1.10
3
+ * (c) 2014-2017 Evan You
4
4
  * Released under the MIT License.
5
5
  */
6
6
  (function (global, factory) {
@@ -27,8 +27,8 @@ function _toString (val) {
27
27
  * If the conversion fails, return original string.
28
28
  */
29
29
  function toNumber (val) {
30
- var n = parseFloat(val, 10);
31
- return (n || n === 0) ? n : val
30
+ var n = parseFloat(val);
31
+ return isNaN(n) ? val : n
32
32
  }
33
33
 
34
34
  /**
@@ -93,7 +93,7 @@ function cached (fn) {
93
93
  }
94
94
 
95
95
  /**
96
- * Camelize a hyphen-delmited string.
96
+ * Camelize a hyphen-delimited string.
97
97
  */
98
98
  var camelizeRE = /-(\w)/g;
99
99
  var camelize = cached(function (str) {
@@ -1503,661 +1503,455 @@ var initProxy;
1503
1503
 
1504
1504
  /* */
1505
1505
 
1506
+ var VNode = function VNode (
1507
+ tag,
1508
+ data,
1509
+ children,
1510
+ text,
1511
+ elm,
1512
+ context,
1513
+ componentOptions
1514
+ ) {
1515
+ this.tag = tag;
1516
+ this.data = data;
1517
+ this.children = children;
1518
+ this.text = text;
1519
+ this.elm = elm;
1520
+ this.ns = undefined;
1521
+ this.context = context;
1522
+ this.functionalContext = undefined;
1523
+ this.key = data && data.key;
1524
+ this.componentOptions = componentOptions;
1525
+ this.componentInstance = undefined;
1526
+ this.parent = undefined;
1527
+ this.raw = false;
1528
+ this.isStatic = false;
1529
+ this.isRootInsert = true;
1530
+ this.isComment = false;
1531
+ this.isCloned = false;
1532
+ this.isOnce = false;
1533
+ };
1506
1534
 
1507
- var queue = [];
1508
- var has$1 = {};
1509
- var circular = {};
1510
- var waiting = false;
1511
- var flushing = false;
1512
- var index = 0;
1513
-
1514
- /**
1515
- * Reset the scheduler's state.
1516
- */
1517
- function resetSchedulerState () {
1518
- queue.length = 0;
1519
- has$1 = {};
1520
- {
1521
- circular = {};
1522
- }
1523
- waiting = flushing = false;
1524
- }
1535
+ var prototypeAccessors = { child: {} };
1525
1536
 
1526
- /**
1527
- * Flush both queues and run the watchers.
1528
- */
1529
- function flushSchedulerQueue () {
1530
- flushing = true;
1537
+ // DEPRECATED: alias for componentInstance for backwards compat.
1538
+ /* istanbul ignore next */
1539
+ prototypeAccessors.child.get = function () {
1540
+ return this.componentInstance
1541
+ };
1531
1542
 
1532
- // Sort queue before flush.
1533
- // This ensures that:
1534
- // 1. Components are updated from parent to child. (because parent is always
1535
- // created before the child)
1536
- // 2. A component's user watchers are run before its render watcher (because
1537
- // user watchers are created before the render watcher)
1538
- // 3. If a component is destroyed during a parent component's watcher run,
1539
- // its watchers can be skipped.
1540
- queue.sort(function (a, b) { return a.id - b.id; });
1543
+ Object.defineProperties( VNode.prototype, prototypeAccessors );
1541
1544
 
1542
- // do not cache length because more watchers might be pushed
1543
- // as we run existing watchers
1544
- for (index = 0; index < queue.length; index++) {
1545
- var watcher = queue[index];
1546
- var id = watcher.id;
1547
- has$1[id] = null;
1548
- watcher.run();
1549
- // in dev build, check and stop circular updates.
1550
- if ("development" !== 'production' && has$1[id] != null) {
1551
- circular[id] = (circular[id] || 0) + 1;
1552
- if (circular[id] > config._maxUpdateCount) {
1553
- warn(
1554
- 'You may have an infinite update loop ' + (
1555
- watcher.user
1556
- ? ("in watcher with expression \"" + (watcher.expression) + "\"")
1557
- : "in a component render function."
1558
- ),
1559
- watcher.vm
1560
- );
1561
- break
1562
- }
1563
- }
1564
- }
1545
+ var createEmptyVNode = function () {
1546
+ var node = new VNode();
1547
+ node.text = '';
1548
+ node.isComment = true;
1549
+ return node
1550
+ };
1565
1551
 
1566
- // devtool hook
1567
- /* istanbul ignore if */
1568
- if (devtools && config.devtools) {
1569
- devtools.emit('flush');
1570
- }
1552
+ function createTextVNode (val) {
1553
+ return new VNode(undefined, undefined, undefined, String(val))
1554
+ }
1571
1555
 
1572
- resetSchedulerState();
1556
+ // optimized shallow clone
1557
+ // used for static nodes and slot nodes because they may be reused across
1558
+ // multiple renders, cloning them avoids errors when DOM manipulations rely
1559
+ // on their elm reference.
1560
+ function cloneVNode (vnode) {
1561
+ var cloned = new VNode(
1562
+ vnode.tag,
1563
+ vnode.data,
1564
+ vnode.children,
1565
+ vnode.text,
1566
+ vnode.elm,
1567
+ vnode.context,
1568
+ vnode.componentOptions
1569
+ );
1570
+ cloned.ns = vnode.ns;
1571
+ cloned.isStatic = vnode.isStatic;
1572
+ cloned.key = vnode.key;
1573
+ cloned.isCloned = true;
1574
+ return cloned
1573
1575
  }
1574
1576
 
1575
- /**
1576
- * Push a watcher into the watcher queue.
1577
- * Jobs with duplicate IDs will be skipped unless it's
1578
- * pushed when the queue is being flushed.
1579
- */
1580
- function queueWatcher (watcher) {
1581
- var id = watcher.id;
1582
- if (has$1[id] == null) {
1583
- has$1[id] = true;
1584
- if (!flushing) {
1585
- queue.push(watcher);
1586
- } else {
1587
- // if already flushing, splice the watcher based on its id
1588
- // if already past its id, it will be run next immediately.
1589
- var i = queue.length - 1;
1590
- while (i >= 0 && queue[i].id > watcher.id) {
1591
- i--;
1592
- }
1593
- queue.splice(Math.max(i, index) + 1, 0, watcher);
1594
- }
1595
- // queue the flush
1596
- if (!waiting) {
1597
- waiting = true;
1598
- nextTick(flushSchedulerQueue);
1599
- }
1577
+ function cloneVNodes (vnodes) {
1578
+ var res = new Array(vnodes.length);
1579
+ for (var i = 0; i < vnodes.length; i++) {
1580
+ res[i] = cloneVNode(vnodes[i]);
1600
1581
  }
1582
+ return res
1601
1583
  }
1602
1584
 
1603
1585
  /* */
1604
1586
 
1605
- var uid$2 = 0;
1587
+ var hooks = { init: init, prepatch: prepatch, insert: insert, destroy: destroy$1 };
1588
+ var hooksToMerge = Object.keys(hooks);
1606
1589
 
1607
- /**
1608
- * A watcher parses an expression, collects dependencies,
1609
- * and fires callback when the expression value changes.
1610
- * This is used for both the $watch() api and directives.
1611
- */
1612
- var Watcher = function Watcher (
1613
- vm,
1614
- expOrFn,
1615
- cb,
1616
- options
1590
+ function createComponent (
1591
+ Ctor,
1592
+ data,
1593
+ context,
1594
+ children,
1595
+ tag
1617
1596
  ) {
1618
- this.vm = vm;
1619
- vm._watchers.push(this);
1620
- // options
1621
- if (options) {
1622
- this.deep = !!options.deep;
1623
- this.user = !!options.user;
1624
- this.lazy = !!options.lazy;
1625
- this.sync = !!options.sync;
1626
- } else {
1627
- this.deep = this.user = this.lazy = this.sync = false;
1597
+ if (!Ctor) {
1598
+ return
1628
1599
  }
1629
- this.cb = cb;
1630
- this.id = ++uid$2; // uid for batching
1631
- this.active = true;
1632
- this.dirty = this.lazy; // for lazy watchers
1633
- this.deps = [];
1634
- this.newDeps = [];
1635
- this.depIds = new _Set();
1636
- this.newDepIds = new _Set();
1637
- this.expression = expOrFn.toString();
1638
- // parse expression for getter
1639
- if (typeof expOrFn === 'function') {
1640
- this.getter = expOrFn;
1641
- } else {
1642
- this.getter = parsePath(expOrFn);
1643
- if (!this.getter) {
1644
- this.getter = function () {};
1645
- "development" !== 'production' && warn(
1646
- "Failed watching path: \"" + expOrFn + "\" " +
1647
- 'Watcher only accepts simple dot-delimited paths. ' +
1648
- 'For full control, use a function instead.',
1649
- vm
1650
- );
1651
- }
1600
+
1601
+ var baseCtor = context.$options._base;
1602
+ if (isObject(Ctor)) {
1603
+ Ctor = baseCtor.extend(Ctor);
1652
1604
  }
1653
- this.value = this.lazy
1654
- ? undefined
1655
- : this.get();
1656
- };
1657
1605
 
1658
- /**
1659
- * Evaluate the getter, and re-collect dependencies.
1660
- */
1661
- Watcher.prototype.get = function get () {
1662
- pushTarget(this);
1663
- var value = this.getter.call(this.vm, this.vm);
1664
- // "touch" every property so they are all tracked as
1665
- // dependencies for deep watching
1666
- if (this.deep) {
1667
- traverse(value);
1606
+ if (typeof Ctor !== 'function') {
1607
+ {
1608
+ warn(("Invalid Component definition: " + (String(Ctor))), context);
1609
+ }
1610
+ return
1668
1611
  }
1669
- popTarget();
1670
- this.cleanupDeps();
1671
- return value
1672
- };
1673
1612
 
1674
- /**
1675
- * Add a dependency to this directive.
1676
- */
1677
- Watcher.prototype.addDep = function addDep (dep) {
1678
- var id = dep.id;
1679
- if (!this.newDepIds.has(id)) {
1680
- this.newDepIds.add(id);
1681
- this.newDeps.push(dep);
1682
- if (!this.depIds.has(id)) {
1683
- dep.addSub(this);
1613
+ // async component
1614
+ if (!Ctor.cid) {
1615
+ if (Ctor.resolved) {
1616
+ Ctor = Ctor.resolved;
1617
+ } else {
1618
+ Ctor = resolveAsyncComponent(Ctor, baseCtor, function () {
1619
+ // it's ok to queue this on every render because
1620
+ // $forceUpdate is buffered by the scheduler.
1621
+ context.$forceUpdate();
1622
+ });
1623
+ if (!Ctor) {
1624
+ // return nothing if this is indeed an async component
1625
+ // wait for the callback to trigger parent update.
1626
+ return
1627
+ }
1684
1628
  }
1685
1629
  }
1686
- };
1687
1630
 
1688
- /**
1689
- * Clean up for dependency collection.
1690
- */
1691
- Watcher.prototype.cleanupDeps = function cleanupDeps () {
1692
- var this$1 = this;
1631
+ // resolve constructor options in case global mixins are applied after
1632
+ // component constructor creation
1633
+ resolveConstructorOptions(Ctor);
1693
1634
 
1694
- var i = this.deps.length;
1695
- while (i--) {
1696
- var dep = this$1.deps[i];
1697
- if (!this$1.newDepIds.has(dep.id)) {
1698
- dep.removeSub(this$1);
1699
- }
1700
- }
1701
- var tmp = this.depIds;
1702
- this.depIds = this.newDepIds;
1703
- this.newDepIds = tmp;
1704
- this.newDepIds.clear();
1705
- tmp = this.deps;
1706
- this.deps = this.newDeps;
1707
- this.newDeps = tmp;
1708
- this.newDeps.length = 0;
1709
- };
1635
+ data = data || {};
1710
1636
 
1711
- /**
1712
- * Subscriber interface.
1713
- * Will be called when a dependency changes.
1714
- */
1715
- Watcher.prototype.update = function update () {
1716
- /* istanbul ignore else */
1717
- if (this.lazy) {
1718
- this.dirty = true;
1719
- } else if (this.sync) {
1720
- this.run();
1721
- } else {
1722
- queueWatcher(this);
1723
- }
1724
- };
1637
+ // extract props
1638
+ var propsData = extractProps(data, Ctor);
1725
1639
 
1726
- /**
1727
- * Scheduler job interface.
1728
- * Will be called by the scheduler.
1729
- */
1730
- Watcher.prototype.run = function run () {
1731
- if (this.active) {
1732
- var value = this.get();
1733
- if (
1734
- value !== this.value ||
1735
- // Deep watchers and watchers on Object/Arrays should fire even
1736
- // when the value is the same, because the value may
1737
- // have mutated.
1738
- isObject(value) ||
1739
- this.deep
1740
- ) {
1741
- // set new value
1742
- var oldValue = this.value;
1743
- this.value = value;
1744
- if (this.user) {
1745
- try {
1746
- this.cb.call(this.vm, value, oldValue);
1747
- } catch (e) {
1748
- /* istanbul ignore else */
1749
- if (config.errorHandler) {
1750
- config.errorHandler.call(null, e, this.vm);
1751
- } else {
1752
- "development" !== 'production' && warn(
1753
- ("Error in watcher \"" + (this.expression) + "\""),
1754
- this.vm
1755
- );
1756
- throw e
1757
- }
1758
- }
1759
- } else {
1760
- this.cb.call(this.vm, value, oldValue);
1761
- }
1762
- }
1640
+ // functional component
1641
+ if (Ctor.options.functional) {
1642
+ return createFunctionalComponent(Ctor, propsData, data, context, children)
1763
1643
  }
1764
- };
1765
-
1766
- /**
1767
- * Evaluate the value of the watcher.
1768
- * This only gets called for lazy watchers.
1769
- */
1770
- Watcher.prototype.evaluate = function evaluate () {
1771
- this.value = this.get();
1772
- this.dirty = false;
1773
- };
1774
1644
 
1775
- /**
1776
- * Depend on all deps collected by this watcher.
1777
- */
1778
- Watcher.prototype.depend = function depend () {
1779
- var this$1 = this;
1645
+ // extract listeners, since these needs to be treated as
1646
+ // child component listeners instead of DOM listeners
1647
+ var listeners = data.on;
1648
+ // replace with listeners with .native modifier
1649
+ data.on = data.nativeOn;
1780
1650
 
1781
- var i = this.deps.length;
1782
- while (i--) {
1783
- this$1.deps[i].depend();
1651
+ if (Ctor.options.abstract) {
1652
+ // abstract components do not keep anything
1653
+ // other than props & listeners
1654
+ data = {};
1784
1655
  }
1785
- };
1786
1656
 
1787
- /**
1788
- * Remove self from all dependencies' subscriber list.
1789
- */
1790
- Watcher.prototype.teardown = function teardown () {
1791
- var this$1 = this;
1657
+ // merge component management hooks onto the placeholder node
1658
+ mergeHooks(data);
1792
1659
 
1793
- if (this.active) {
1794
- // remove self from vm's watcher list
1795
- // this is a somewhat expensive operation so we skip it
1796
- // if the vm is being destroyed.
1797
- if (!this.vm._isBeingDestroyed) {
1798
- remove$1(this.vm._watchers, this);
1660
+ // return a placeholder vnode
1661
+ var name = Ctor.options.name || tag;
1662
+ var vnode = new VNode(
1663
+ ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
1664
+ data, undefined, undefined, undefined, context,
1665
+ { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children }
1666
+ );
1667
+ return vnode
1668
+ }
1669
+
1670
+ function createFunctionalComponent (
1671
+ Ctor,
1672
+ propsData,
1673
+ data,
1674
+ context,
1675
+ children
1676
+ ) {
1677
+ var props = {};
1678
+ var propOptions = Ctor.options.props;
1679
+ if (propOptions) {
1680
+ for (var key in propOptions) {
1681
+ props[key] = validateProp(key, propOptions, propsData);
1799
1682
  }
1800
- var i = this.deps.length;
1801
- while (i--) {
1802
- this$1.deps[i].removeSub(this$1);
1683
+ }
1684
+ // ensure the createElement function in functional components
1685
+ // gets a unique context - this is necessary for correct named slot check
1686
+ var _context = Object.create(context);
1687
+ var h = function (a, b, c, d) { return createElement(_context, a, b, c, d, true); };
1688
+ var vnode = Ctor.options.render.call(null, h, {
1689
+ props: props,
1690
+ data: data,
1691
+ parent: context,
1692
+ children: children,
1693
+ slots: function () { return resolveSlots(children, context); }
1694
+ });
1695
+ if (vnode instanceof VNode) {
1696
+ vnode.functionalContext = context;
1697
+ if (data.slot) {
1698
+ (vnode.data || (vnode.data = {})).slot = data.slot;
1803
1699
  }
1804
- this.active = false;
1805
1700
  }
1806
- };
1701
+ return vnode
1702
+ }
1807
1703
 
1808
- /**
1809
- * Recursively traverse an object to evoke all converted
1810
- * getters, so that every nested property inside the object
1811
- * is collected as a "deep" dependency.
1812
- */
1813
- var seenObjects = new _Set();
1814
- function traverse (val) {
1815
- seenObjects.clear();
1816
- _traverse(val, seenObjects);
1704
+ function createComponentInstanceForVnode (
1705
+ vnode, // we know it's MountedComponentVNode but flow doesn't
1706
+ parent, // activeInstance in lifecycle state
1707
+ parentElm,
1708
+ refElm
1709
+ ) {
1710
+ var vnodeComponentOptions = vnode.componentOptions;
1711
+ var options = {
1712
+ _isComponent: true,
1713
+ parent: parent,
1714
+ propsData: vnodeComponentOptions.propsData,
1715
+ _componentTag: vnodeComponentOptions.tag,
1716
+ _parentVnode: vnode,
1717
+ _parentListeners: vnodeComponentOptions.listeners,
1718
+ _renderChildren: vnodeComponentOptions.children,
1719
+ _parentElm: parentElm || null,
1720
+ _refElm: refElm || null
1721
+ };
1722
+ // check inline-template render functions
1723
+ var inlineTemplate = vnode.data.inlineTemplate;
1724
+ if (inlineTemplate) {
1725
+ options.render = inlineTemplate.render;
1726
+ options.staticRenderFns = inlineTemplate.staticRenderFns;
1727
+ }
1728
+ return new vnodeComponentOptions.Ctor(options)
1817
1729
  }
1818
1730
 
1819
- function _traverse (val, seen) {
1820
- var i, keys;
1821
- var isA = Array.isArray(val);
1822
- if ((!isA && !isObject(val)) || !Object.isExtensible(val)) {
1823
- return
1731
+ function init (
1732
+ vnode,
1733
+ hydrating,
1734
+ parentElm,
1735
+ refElm
1736
+ ) {
1737
+ if (!vnode.componentInstance || vnode.componentInstance._isDestroyed) {
1738
+ var child = vnode.componentInstance = createComponentInstanceForVnode(
1739
+ vnode,
1740
+ activeInstance,
1741
+ parentElm,
1742
+ refElm
1743
+ );
1744
+ child.$mount(hydrating ? vnode.elm : undefined, hydrating);
1745
+ } else if (vnode.data.keepAlive) {
1746
+ // kept-alive components, treat as a patch
1747
+ var mountedNode = vnode; // work around flow
1748
+ prepatch(mountedNode, mountedNode);
1824
1749
  }
1825
- if (val.__ob__) {
1826
- var depId = val.__ob__.dep.id;
1827
- if (seen.has(depId)) {
1828
- return
1829
- }
1830
- seen.add(depId);
1750
+ }
1751
+
1752
+ function prepatch (
1753
+ oldVnode,
1754
+ vnode
1755
+ ) {
1756
+ var options = vnode.componentOptions;
1757
+ var child = vnode.componentInstance = oldVnode.componentInstance;
1758
+ child._updateFromParent(
1759
+ options.propsData, // updated props
1760
+ options.listeners, // updated listeners
1761
+ vnode, // new parent vnode
1762
+ options.children // new children
1763
+ );
1764
+ }
1765
+
1766
+ function insert (vnode) {
1767
+ if (!vnode.componentInstance._isMounted) {
1768
+ vnode.componentInstance._isMounted = true;
1769
+ callHook(vnode.componentInstance, 'mounted');
1831
1770
  }
1832
- if (isA) {
1833
- i = val.length;
1834
- while (i--) { _traverse(val[i], seen); }
1835
- } else {
1836
- keys = Object.keys(val);
1837
- i = keys.length;
1838
- while (i--) { _traverse(val[keys[i]], seen); }
1771
+ if (vnode.data.keepAlive) {
1772
+ vnode.componentInstance._inactive = false;
1773
+ callHook(vnode.componentInstance, 'activated');
1839
1774
  }
1840
1775
  }
1841
1776
 
1842
- /* */
1777
+ function destroy$1 (vnode) {
1778
+ if (!vnode.componentInstance._isDestroyed) {
1779
+ if (!vnode.data.keepAlive) {
1780
+ vnode.componentInstance.$destroy();
1781
+ } else {
1782
+ vnode.componentInstance._inactive = true;
1783
+ callHook(vnode.componentInstance, 'deactivated');
1784
+ }
1785
+ }
1786
+ }
1843
1787
 
1844
- function initState (vm) {
1845
- vm._watchers = [];
1846
- var opts = vm.$options;
1847
- if (opts.props) { initProps(vm, opts.props); }
1848
- if (opts.methods) { initMethods(vm, opts.methods); }
1849
- if (opts.data) {
1850
- initData(vm);
1788
+ function resolveAsyncComponent (
1789
+ factory,
1790
+ baseCtor,
1791
+ cb
1792
+ ) {
1793
+ if (factory.requested) {
1794
+ // pool callbacks
1795
+ factory.pendingCallbacks.push(cb);
1851
1796
  } else {
1852
- observe(vm._data = {}, true /* asRootData */);
1853
- }
1854
- if (opts.computed) { initComputed(vm, opts.computed); }
1855
- if (opts.watch) { initWatch(vm, opts.watch); }
1856
- }
1857
-
1858
- var isReservedProp = { key: 1, ref: 1, slot: 1 };
1797
+ factory.requested = true;
1798
+ var cbs = factory.pendingCallbacks = [cb];
1799
+ var sync = true;
1859
1800
 
1860
- function initProps (vm, props) {
1861
- var propsData = vm.$options.propsData || {};
1862
- var keys = vm.$options._propKeys = Object.keys(props);
1863
- var isRoot = !vm.$parent;
1864
- // root instance props should be converted
1865
- observerState.shouldConvert = isRoot;
1866
- var loop = function ( i ) {
1867
- var key = keys[i];
1868
- /* istanbul ignore else */
1869
- {
1870
- if (isReservedProp[key]) {
1871
- warn(
1872
- ("\"" + key + "\" is a reserved attribute and cannot be used as component prop."),
1873
- vm
1874
- );
1801
+ var resolve = function (res) {
1802
+ if (isObject(res)) {
1803
+ res = baseCtor.extend(res);
1875
1804
  }
1876
- defineReactive$$1(vm, key, validateProp(key, props, propsData, vm), function () {
1877
- if (vm.$parent && !observerState.isSettingProps) {
1878
- warn(
1879
- "Avoid mutating a prop directly since the value will be " +
1880
- "overwritten whenever the parent component re-renders. " +
1881
- "Instead, use a data or computed property based on the prop's " +
1882
- "value. Prop being mutated: \"" + key + "\"",
1883
- vm
1884
- );
1805
+ // cache resolved
1806
+ factory.resolved = res;
1807
+ // invoke callbacks only if this is not a synchronous resolve
1808
+ // (async resolves are shimmed as synchronous during SSR)
1809
+ if (!sync) {
1810
+ for (var i = 0, l = cbs.length; i < l; i++) {
1811
+ cbs[i](res);
1885
1812
  }
1886
- });
1813
+ }
1814
+ };
1815
+
1816
+ var reject = function (reason) {
1817
+ "development" !== 'production' && warn(
1818
+ "Failed to resolve async component: " + (String(factory)) +
1819
+ (reason ? ("\nReason: " + reason) : '')
1820
+ );
1821
+ };
1822
+
1823
+ var res = factory(resolve, reject);
1824
+
1825
+ // handle promise
1826
+ if (res && typeof res.then === 'function' && !factory.resolved) {
1827
+ res.then(resolve, reject);
1887
1828
  }
1888
- };
1889
1829
 
1890
- for (var i = 0; i < keys.length; i++) loop( i );
1891
- observerState.shouldConvert = true;
1830
+ sync = false;
1831
+ // return in case resolved synchronously
1832
+ return factory.resolved
1833
+ }
1892
1834
  }
1893
1835
 
1894
- function initData (vm) {
1895
- var data = vm.$options.data;
1896
- data = vm._data = typeof data === 'function'
1897
- ? data.call(vm)
1898
- : data || {};
1899
- if (!isPlainObject(data)) {
1900
- data = {};
1901
- "development" !== 'production' && warn(
1902
- 'data functions should return an object:\n' +
1903
- 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
1904
- vm
1905
- );
1836
+ function extractProps (data, Ctor) {
1837
+ // we are only extracting raw values here.
1838
+ // validation and default values are handled in the child
1839
+ // component itself.
1840
+ var propOptions = Ctor.options.props;
1841
+ if (!propOptions) {
1842
+ return
1906
1843
  }
1907
- // proxy data on instance
1908
- var keys = Object.keys(data);
1909
- var props = vm.$options.props;
1910
- var i = keys.length;
1911
- while (i--) {
1912
- if (props && hasOwn(props, keys[i])) {
1913
- "development" !== 'production' && warn(
1914
- "The data property \"" + (keys[i]) + "\" is already declared as a prop. " +
1915
- "Use prop default value instead.",
1916
- vm
1917
- );
1918
- } else {
1919
- proxy(vm, keys[i]);
1844
+ var res = {};
1845
+ var attrs = data.attrs;
1846
+ var props = data.props;
1847
+ var domProps = data.domProps;
1848
+ if (attrs || props || domProps) {
1849
+ for (var key in propOptions) {
1850
+ var altKey = hyphenate(key);
1851
+ checkProp(res, props, key, altKey, true) ||
1852
+ checkProp(res, attrs, key, altKey) ||
1853
+ checkProp(res, domProps, key, altKey);
1920
1854
  }
1921
1855
  }
1922
- // observe data
1923
- observe(data, true /* asRootData */);
1856
+ return res
1924
1857
  }
1925
1858
 
1926
- var computedSharedDefinition = {
1927
- enumerable: true,
1928
- configurable: true,
1929
- get: noop,
1930
- set: noop
1931
- };
1932
-
1933
- function initComputed (vm, computed) {
1934
- for (var key in computed) {
1935
- /* istanbul ignore if */
1936
- if ("development" !== 'production' && key in vm) {
1937
- warn(
1938
- "existing instance property \"" + key + "\" will be " +
1939
- "overwritten by a computed property with the same name.",
1940
- vm
1941
- );
1942
- }
1943
- var userDef = computed[key];
1944
- if (typeof userDef === 'function') {
1945
- computedSharedDefinition.get = makeComputedGetter(userDef, vm);
1946
- computedSharedDefinition.set = noop;
1947
- } else {
1948
- computedSharedDefinition.get = userDef.get
1949
- ? userDef.cache !== false
1950
- ? makeComputedGetter(userDef.get, vm)
1951
- : bind$1(userDef.get, vm)
1952
- : noop;
1953
- computedSharedDefinition.set = userDef.set
1954
- ? bind$1(userDef.set, vm)
1955
- : noop;
1859
+ function checkProp (
1860
+ res,
1861
+ hash,
1862
+ key,
1863
+ altKey,
1864
+ preserve
1865
+ ) {
1866
+ if (hash) {
1867
+ if (hasOwn(hash, key)) {
1868
+ res[key] = hash[key];
1869
+ if (!preserve) {
1870
+ delete hash[key];
1871
+ }
1872
+ return true
1873
+ } else if (hasOwn(hash, altKey)) {
1874
+ res[key] = hash[altKey];
1875
+ if (!preserve) {
1876
+ delete hash[altKey];
1877
+ }
1878
+ return true
1956
1879
  }
1957
- Object.defineProperty(vm, key, computedSharedDefinition);
1958
1880
  }
1881
+ return false
1959
1882
  }
1960
1883
 
1961
- function makeComputedGetter (getter, owner) {
1962
- var watcher = new Watcher(owner, getter, noop, {
1963
- lazy: true
1964
- });
1965
- return function computedGetter () {
1966
- if (watcher.dirty) {
1967
- watcher.evaluate();
1968
- }
1969
- if (Dep.target) {
1970
- watcher.depend();
1971
- }
1972
- return watcher.value
1884
+ function mergeHooks (data) {
1885
+ if (!data.hook) {
1886
+ data.hook = {};
1887
+ }
1888
+ for (var i = 0; i < hooksToMerge.length; i++) {
1889
+ var key = hooksToMerge[i];
1890
+ var fromParent = data.hook[key];
1891
+ var ours = hooks[key];
1892
+ data.hook[key] = fromParent ? mergeHook$1(ours, fromParent) : ours;
1973
1893
  }
1974
1894
  }
1975
1895
 
1976
- function initMethods (vm, methods) {
1977
- for (var key in methods) {
1978
- vm[key] = methods[key] == null ? noop : bind$1(methods[key], vm);
1979
- if ("development" !== 'production' && methods[key] == null) {
1980
- warn(
1981
- "method \"" + key + "\" has an undefined value in the component definition. " +
1982
- "Did you reference the function correctly?",
1983
- vm
1984
- );
1985
- }
1896
+ function mergeHook$1 (one, two) {
1897
+ return function (a, b, c, d) {
1898
+ one(a, b, c, d);
1899
+ two(a, b, c, d);
1986
1900
  }
1987
1901
  }
1988
1902
 
1989
- function initWatch (vm, watch) {
1990
- for (var key in watch) {
1991
- var handler = watch[key];
1992
- if (Array.isArray(handler)) {
1993
- for (var i = 0; i < handler.length; i++) {
1994
- createWatcher(vm, key, handler[i]);
1995
- }
1903
+ /* */
1904
+
1905
+ function mergeVNodeHook (def, hookKey, hook, key) {
1906
+ key = key + hookKey;
1907
+ var injectedHash = def.__injected || (def.__injected = {});
1908
+ if (!injectedHash[key]) {
1909
+ injectedHash[key] = true;
1910
+ var oldHook = def[hookKey];
1911
+ if (oldHook) {
1912
+ def[hookKey] = function () {
1913
+ oldHook.apply(this, arguments);
1914
+ hook.apply(this, arguments);
1915
+ };
1996
1916
  } else {
1997
- createWatcher(vm, key, handler);
1917
+ def[hookKey] = hook;
1998
1918
  }
1999
1919
  }
2000
1920
  }
2001
1921
 
2002
- function createWatcher (vm, key, handler) {
2003
- var options;
2004
- if (isPlainObject(handler)) {
2005
- options = handler;
2006
- handler = handler.handler;
2007
- }
2008
- if (typeof handler === 'string') {
2009
- handler = vm[handler];
1922
+ /* */
1923
+
1924
+ var normalizeEvent = cached(function (name) {
1925
+ var once = name.charAt(0) === '~'; // Prefixed last, checked first
1926
+ name = once ? name.slice(1) : name;
1927
+ var capture = name.charAt(0) === '!';
1928
+ name = capture ? name.slice(1) : name;
1929
+ return {
1930
+ name: name,
1931
+ once: once,
1932
+ capture: capture
2010
1933
  }
2011
- vm.$watch(key, handler, options);
1934
+ });
1935
+
1936
+ function createEventHandle (fn) {
1937
+ var handle = {
1938
+ fn: fn,
1939
+ invoker: function () {
1940
+ var arguments$1 = arguments;
1941
+
1942
+ var fn = handle.fn;
1943
+ if (Array.isArray(fn)) {
1944
+ for (var i = 0; i < fn.length; i++) {
1945
+ fn[i].apply(null, arguments$1);
1946
+ }
1947
+ } else {
1948
+ fn.apply(null, arguments);
1949
+ }
1950
+ }
1951
+ };
1952
+ return handle
2012
1953
  }
2013
1954
 
2014
- function stateMixin (Vue) {
2015
- // flow somehow has problems with directly declared definition object
2016
- // when using Object.defineProperty, so we have to procedurally build up
2017
- // the object here.
2018
- var dataDef = {};
2019
- dataDef.get = function () {
2020
- return this._data
2021
- };
2022
- {
2023
- dataDef.set = function (newData) {
2024
- warn(
2025
- 'Avoid replacing instance root $data. ' +
2026
- 'Use nested data properties instead.',
2027
- this
2028
- );
2029
- };
2030
- }
2031
- Object.defineProperty(Vue.prototype, '$data', dataDef);
2032
-
2033
- Vue.prototype.$set = set$1;
2034
- Vue.prototype.$delete = del;
2035
-
2036
- Vue.prototype.$watch = function (
2037
- expOrFn,
2038
- cb,
2039
- options
2040
- ) {
2041
- var vm = this;
2042
- options = options || {};
2043
- options.user = true;
2044
- var watcher = new Watcher(vm, expOrFn, cb, options);
2045
- if (options.immediate) {
2046
- cb.call(vm, watcher.value);
2047
- }
2048
- return function unwatchFn () {
2049
- watcher.teardown();
2050
- }
2051
- };
2052
- }
2053
-
2054
- function proxy (vm, key) {
2055
- if (!isReserved(key)) {
2056
- Object.defineProperty(vm, key, {
2057
- configurable: true,
2058
- enumerable: true,
2059
- get: function proxyGetter () {
2060
- return vm._data[key]
2061
- },
2062
- set: function proxySetter (val) {
2063
- vm._data[key] = val;
2064
- }
2065
- });
2066
- }
2067
- }
2068
-
2069
- /* */
2070
-
2071
- var VNode = function VNode (
2072
- tag,
2073
- data,
2074
- children,
2075
- text,
2076
- elm,
2077
- context,
2078
- componentOptions
2079
- ) {
2080
- this.tag = tag;
2081
- this.data = data;
2082
- this.children = children;
2083
- this.text = text;
2084
- this.elm = elm;
2085
- this.ns = undefined;
2086
- this.context = context;
2087
- this.functionalContext = undefined;
2088
- this.key = data && data.key;
2089
- this.componentOptions = componentOptions;
2090
- this.child = undefined;
2091
- this.parent = undefined;
2092
- this.raw = false;
2093
- this.isStatic = false;
2094
- this.isRootInsert = true;
2095
- this.isComment = false;
2096
- this.isCloned = false;
2097
- this.isOnce = false;
2098
- };
2099
-
2100
- var createEmptyVNode = function () {
2101
- var node = new VNode();
2102
- node.text = '';
2103
- node.isComment = true;
2104
- return node
2105
- };
2106
-
2107
- function createTextVNode (val) {
2108
- return new VNode(undefined, undefined, undefined, String(val))
2109
- }
2110
-
2111
- // optimized shallow clone
2112
- // used for static nodes and slot nodes because they may be reused across
2113
- // multiple renders, cloning them avoids errors when DOM manipulations rely
2114
- // on their elm reference.
2115
- function cloneVNode (vnode) {
2116
- var cloned = new VNode(
2117
- vnode.tag,
2118
- vnode.data,
2119
- vnode.children,
2120
- vnode.text,
2121
- vnode.elm,
2122
- vnode.context,
2123
- vnode.componentOptions
2124
- );
2125
- cloned.ns = vnode.ns;
2126
- cloned.isStatic = vnode.isStatic;
2127
- cloned.key = vnode.key;
2128
- cloned.isCloned = true;
2129
- return cloned
2130
- }
2131
-
2132
- function cloneVNodes (vnodes) {
2133
- var res = new Array(vnodes.length);
2134
- for (var i = 0; i < vnodes.length; i++) {
2135
- res[i] = cloneVNode(vnodes[i]);
2136
- }
2137
- return res
2138
- }
2139
-
2140
- /* */
2141
-
2142
- function mergeVNodeHook (def, hookKey, hook, key) {
2143
- key = key + hookKey;
2144
- var injectedHash = def.__injected || (def.__injected = {});
2145
- if (!injectedHash[key]) {
2146
- injectedHash[key] = true;
2147
- var oldHook = def[hookKey];
2148
- if (oldHook) {
2149
- def[hookKey] = function () {
2150
- oldHook.apply(this, arguments);
2151
- hook.apply(this, arguments);
2152
- };
2153
- } else {
2154
- def[hookKey] = hook;
2155
- }
2156
- }
2157
- }
2158
-
2159
- /* */
2160
-
2161
1955
  function updateListeners (
2162
1956
  on,
2163
1957
  oldOn,
@@ -2165,71 +1959,34 @@ function updateListeners (
2165
1959
  remove$$1,
2166
1960
  vm
2167
1961
  ) {
2168
- var name, cur, old, fn, event, capture, once;
1962
+ var name, cur, old, event;
2169
1963
  for (name in on) {
2170
1964
  cur = on[name];
2171
1965
  old = oldOn[name];
1966
+ event = normalizeEvent(name);
2172
1967
  if (!cur) {
2173
1968
  "development" !== 'production' && warn(
2174
- "Invalid handler for event \"" + name + "\": got " + String(cur),
1969
+ "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
2175
1970
  vm
2176
1971
  );
2177
1972
  } else if (!old) {
2178
- once = name.charAt(0) === '~'; // Prefixed last, checked first
2179
- event = once ? name.slice(1) : name;
2180
- capture = event.charAt(0) === '!';
2181
- event = capture ? event.slice(1) : event;
2182
- if (Array.isArray(cur)) {
2183
- add(event, (cur.invoker = arrInvoker(cur)), once, capture);
2184
- } else {
2185
- if (!cur.invoker) {
2186
- fn = cur;
2187
- cur = on[name] = {};
2188
- cur.fn = fn;
2189
- cur.invoker = fnInvoker(cur);
2190
- }
2191
- add(event, cur.invoker, once, capture);
1973
+ if (!cur.invoker) {
1974
+ cur = on[name] = createEventHandle(cur);
2192
1975
  }
1976
+ add(event.name, cur.invoker, event.once, event.capture);
2193
1977
  } else if (cur !== old) {
2194
- if (Array.isArray(old)) {
2195
- old.length = cur.length;
2196
- for (var i = 0; i < old.length; i++) { old[i] = cur[i]; }
2197
- on[name] = old;
2198
- } else {
2199
- old.fn = cur;
2200
- on[name] = old;
2201
- }
1978
+ old.fn = cur;
1979
+ on[name] = old;
2202
1980
  }
2203
1981
  }
2204
1982
  for (name in oldOn) {
2205
1983
  if (!on[name]) {
2206
- once = name.charAt(0) === '~'; // Prefixed last, checked first
2207
- event = once ? name.slice(1) : name;
2208
- capture = event.charAt(0) === '!';
2209
- event = capture ? event.slice(1) : event;
2210
- remove$$1(event, oldOn[name].invoker, capture);
2211
- }
2212
- }
2213
- }
2214
-
2215
- function arrInvoker (arr) {
2216
- return function (ev) {
2217
- var arguments$1 = arguments;
2218
-
2219
- var single = arguments.length === 1;
2220
- for (var i = 0; i < arr.length; i++) {
2221
- single ? arr[i](ev) : arr[i].apply(null, arguments$1);
1984
+ event = normalizeEvent(name);
1985
+ remove$$1(event.name, oldOn[name].invoker, event.capture);
2222
1986
  }
2223
1987
  }
2224
1988
  }
2225
1989
 
2226
- function fnInvoker (o) {
2227
- return function (ev) {
2228
- var single = arguments.length === 1;
2229
- single ? o.fn(ev) : o.fn.apply(null, arguments);
2230
- }
2231
- }
2232
-
2233
1990
  /* */
2234
1991
 
2235
1992
  // The template compiler attempts to minimize the need for normalization by
@@ -2305,1026 +2062,1281 @@ function getFirstComponentChild (children) {
2305
2062
 
2306
2063
  /* */
2307
2064
 
2308
- function initEvents (vm) {
2309
- vm._events = Object.create(null);
2310
- vm._hasHookEvent = false;
2311
- // init parent attached events
2312
- var listeners = vm.$options._parentListeners;
2313
- if (listeners) {
2314
- updateComponentListeners(vm, listeners);
2065
+ var SIMPLE_NORMALIZE = 1;
2066
+ var ALWAYS_NORMALIZE = 2;
2067
+
2068
+ // wrapper function for providing a more flexible interface
2069
+ // without getting yelled at by flow
2070
+ function createElement (
2071
+ context,
2072
+ tag,
2073
+ data,
2074
+ children,
2075
+ normalizationType,
2076
+ alwaysNormalize
2077
+ ) {
2078
+ if (Array.isArray(data) || isPrimitive(data)) {
2079
+ normalizationType = children;
2080
+ children = data;
2081
+ data = undefined;
2315
2082
  }
2083
+ if (alwaysNormalize) { normalizationType = ALWAYS_NORMALIZE; }
2084
+ return _createElement(context, tag, data, children, normalizationType)
2316
2085
  }
2317
2086
 
2318
- var target;
2319
-
2320
- function add$1 (event, fn, once) {
2321
- if (once) {
2322
- target.$once(event, fn);
2087
+ function _createElement (
2088
+ context,
2089
+ tag,
2090
+ data,
2091
+ children,
2092
+ normalizationType
2093
+ ) {
2094
+ if (data && data.__ob__) {
2095
+ "development" !== 'production' && warn(
2096
+ "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
2097
+ 'Always create fresh vnode data objects in each render!',
2098
+ context
2099
+ );
2100
+ return createEmptyVNode()
2101
+ }
2102
+ if (!tag) {
2103
+ // in case of component :is set to falsy value
2104
+ return createEmptyVNode()
2105
+ }
2106
+ // support single function children as default scoped slot
2107
+ if (Array.isArray(children) &&
2108
+ typeof children[0] === 'function') {
2109
+ data = data || {};
2110
+ data.scopedSlots = { default: children[0] };
2111
+ children.length = 0;
2112
+ }
2113
+ if (normalizationType === ALWAYS_NORMALIZE) {
2114
+ children = normalizeChildren(children);
2115
+ } else if (normalizationType === SIMPLE_NORMALIZE) {
2116
+ children = simpleNormalizeChildren(children);
2117
+ }
2118
+ var vnode, ns;
2119
+ if (typeof tag === 'string') {
2120
+ var Ctor;
2121
+ ns = config.getTagNamespace(tag);
2122
+ if (config.isReservedTag(tag)) {
2123
+ // platform built-in elements
2124
+ vnode = new VNode(
2125
+ config.parsePlatformTagName(tag), data, children,
2126
+ undefined, undefined, context
2127
+ );
2128
+ } else if ((Ctor = resolveAsset(context.$options, 'components', tag))) {
2129
+ // component
2130
+ vnode = createComponent(Ctor, data, context, children, tag);
2131
+ } else {
2132
+ // unknown or unlisted namespaced elements
2133
+ // check at runtime because it may get assigned a namespace when its
2134
+ // parent normalizes children
2135
+ vnode = new VNode(
2136
+ tag, data, children,
2137
+ undefined, undefined, context
2138
+ );
2139
+ }
2323
2140
  } else {
2324
- target.$on(event, fn);
2141
+ // direct component options / constructor
2142
+ vnode = createComponent(tag, data, context, children);
2143
+ }
2144
+ if (vnode) {
2145
+ if (ns) { applyNS(vnode, ns); }
2146
+ return vnode
2147
+ } else {
2148
+ return createEmptyVNode()
2325
2149
  }
2326
2150
  }
2327
2151
 
2328
- function remove$2 (event, fn) {
2329
- target.$off(event, fn);
2330
- }
2331
-
2332
- function updateComponentListeners (
2333
- vm,
2334
- listeners,
2335
- oldListeners
2336
- ) {
2337
- target = vm;
2338
- updateListeners(listeners, oldListeners || {}, add$1, remove$2, vm);
2152
+ function applyNS (vnode, ns) {
2153
+ vnode.ns = ns;
2154
+ if (vnode.tag === 'foreignObject') {
2155
+ // use default namespace inside foreignObject
2156
+ return
2157
+ }
2158
+ if (vnode.children) {
2159
+ for (var i = 0, l = vnode.children.length; i < l; i++) {
2160
+ var child = vnode.children[i];
2161
+ if (child.tag && !child.ns) {
2162
+ applyNS(child, ns);
2163
+ }
2164
+ }
2165
+ }
2339
2166
  }
2340
2167
 
2341
- function eventsMixin (Vue) {
2342
- var hookRE = /^hook:/;
2343
- Vue.prototype.$on = function (event, fn) {
2344
- var vm = this;(vm._events[event] || (vm._events[event] = [])).push(fn);
2345
- // optimize hook:event cost by using a boolean flag marked at registration
2346
- // instead of a hash lookup
2347
- if (hookRE.test(event)) {
2348
- vm._hasHookEvent = true;
2349
- }
2350
- return vm
2351
- };
2168
+ /* */
2352
2169
 
2353
- Vue.prototype.$once = function (event, fn) {
2354
- var vm = this;
2355
- function on () {
2356
- vm.$off(event, on);
2357
- fn.apply(vm, arguments);
2358
- }
2359
- on.fn = fn;
2360
- vm.$on(event, on);
2361
- return vm
2170
+ function initRender (vm) {
2171
+ vm.$vnode = null; // the placeholder node in parent tree
2172
+ vm._vnode = null; // the root of the child tree
2173
+ vm._staticTrees = null;
2174
+ var parentVnode = vm.$options._parentVnode;
2175
+ var renderContext = parentVnode && parentVnode.context;
2176
+ vm.$slots = resolveSlots(vm.$options._renderChildren, renderContext);
2177
+ vm.$scopedSlots = {};
2178
+ // bind the createElement fn to this instance
2179
+ // so that we get proper render context inside it.
2180
+ // args order: tag, data, children, normalizationType, alwaysNormalize
2181
+ // internal version is used by render functions compiled from templates
2182
+ vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
2183
+ // normalization is always applied for the public version, used in
2184
+ // user-written render functions.
2185
+ vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
2186
+ }
2187
+
2188
+ function renderMixin (Vue) {
2189
+ Vue.prototype.$nextTick = function (fn) {
2190
+ return nextTick(fn, this)
2362
2191
  };
2363
2192
 
2364
- Vue.prototype.$off = function (event, fn) {
2193
+ Vue.prototype._render = function () {
2365
2194
  var vm = this;
2366
- // all
2367
- if (!arguments.length) {
2368
- vm._events = Object.create(null);
2369
- return vm
2195
+ var ref = vm.$options;
2196
+ var render = ref.render;
2197
+ var staticRenderFns = ref.staticRenderFns;
2198
+ var _parentVnode = ref._parentVnode;
2199
+
2200
+ if (vm._isMounted) {
2201
+ // clone slot nodes on re-renders
2202
+ for (var key in vm.$slots) {
2203
+ vm.$slots[key] = cloneVNodes(vm.$slots[key]);
2204
+ }
2370
2205
  }
2371
- // specific event
2372
- var cbs = vm._events[event];
2373
- if (!cbs) {
2374
- return vm
2206
+
2207
+ if (_parentVnode && _parentVnode.data.scopedSlots) {
2208
+ vm.$scopedSlots = _parentVnode.data.scopedSlots;
2375
2209
  }
2376
- if (arguments.length === 1) {
2377
- vm._events[event] = null;
2378
- return vm
2210
+
2211
+ if (staticRenderFns && !vm._staticTrees) {
2212
+ vm._staticTrees = [];
2379
2213
  }
2380
- // specific handler
2381
- var cb;
2382
- var i = cbs.length;
2383
- while (i--) {
2384
- cb = cbs[i];
2385
- if (cb === fn || cb.fn === fn) {
2386
- cbs.splice(i, 1);
2387
- break
2214
+ // set parent vnode. this allows render functions to have access
2215
+ // to the data on the placeholder node.
2216
+ vm.$vnode = _parentVnode;
2217
+ // render self
2218
+ var vnode;
2219
+ try {
2220
+ vnode = render.call(vm._renderProxy, vm.$createElement);
2221
+ } catch (e) {
2222
+ /* istanbul ignore else */
2223
+ if (config.errorHandler) {
2224
+ config.errorHandler.call(null, e, vm);
2225
+ } else {
2226
+ {
2227
+ warn(("Error when rendering " + (formatComponentName(vm)) + ":"));
2228
+ }
2229
+ throw e
2388
2230
  }
2231
+ // return previous vnode to prevent render error causing blank component
2232
+ vnode = vm._vnode;
2389
2233
  }
2390
- return vm
2391
- };
2392
-
2393
- Vue.prototype.$emit = function (event) {
2394
- var vm = this;
2395
- var cbs = vm._events[event];
2396
- if (cbs) {
2397
- cbs = cbs.length > 1 ? toArray(cbs) : cbs;
2398
- var args = toArray(arguments, 1);
2399
- for (var i = 0, l = cbs.length; i < l; i++) {
2400
- cbs[i].apply(vm, args);
2234
+ // return empty vnode in case the render function errored out
2235
+ if (!(vnode instanceof VNode)) {
2236
+ if ("development" !== 'production' && Array.isArray(vnode)) {
2237
+ warn(
2238
+ 'Multiple root nodes returned from render function. Render function ' +
2239
+ 'should return a single root node.',
2240
+ vm
2241
+ );
2401
2242
  }
2243
+ vnode = createEmptyVNode();
2402
2244
  }
2403
- return vm
2245
+ // set parent
2246
+ vnode.parent = _parentVnode;
2247
+ return vnode
2404
2248
  };
2405
- }
2406
2249
 
2407
- /* */
2250
+ // toString for mustaches
2251
+ Vue.prototype._s = _toString;
2252
+ // convert text to vnode
2253
+ Vue.prototype._v = createTextVNode;
2254
+ // number conversion
2255
+ Vue.prototype._n = toNumber;
2256
+ // empty vnode
2257
+ Vue.prototype._e = createEmptyVNode;
2258
+ // loose equal
2259
+ Vue.prototype._q = looseEqual;
2260
+ // loose indexOf
2261
+ Vue.prototype._i = looseIndexOf;
2408
2262
 
2409
- var activeInstance = null;
2263
+ // render static tree by index
2264
+ Vue.prototype._m = function renderStatic (
2265
+ index,
2266
+ isInFor
2267
+ ) {
2268
+ var tree = this._staticTrees[index];
2269
+ // if has already-rendered static tree and not inside v-for,
2270
+ // we can reuse the same tree by doing a shallow clone.
2271
+ if (tree && !isInFor) {
2272
+ return Array.isArray(tree)
2273
+ ? cloneVNodes(tree)
2274
+ : cloneVNode(tree)
2275
+ }
2276
+ // otherwise, render a fresh tree.
2277
+ tree = this._staticTrees[index] = this.$options.staticRenderFns[index].call(this._renderProxy);
2278
+ markStatic(tree, ("__static__" + index), false);
2279
+ return tree
2280
+ };
2410
2281
 
2411
- function initLifecycle (vm) {
2412
- var options = vm.$options;
2282
+ // mark node as static (v-once)
2283
+ Vue.prototype._o = function markOnce (
2284
+ tree,
2285
+ index,
2286
+ key
2287
+ ) {
2288
+ markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
2289
+ return tree
2290
+ };
2413
2291
 
2414
- // locate first non-abstract parent
2415
- var parent = options.parent;
2416
- if (parent && !options.abstract) {
2417
- while (parent.$options.abstract && parent.$parent) {
2418
- parent = parent.$parent;
2292
+ function markStatic (tree, key, isOnce) {
2293
+ if (Array.isArray(tree)) {
2294
+ for (var i = 0; i < tree.length; i++) {
2295
+ if (tree[i] && typeof tree[i] !== 'string') {
2296
+ markStaticNode(tree[i], (key + "_" + i), isOnce);
2297
+ }
2298
+ }
2299
+ } else {
2300
+ markStaticNode(tree, key, isOnce);
2419
2301
  }
2420
- parent.$children.push(vm);
2421
2302
  }
2422
2303
 
2423
- vm.$parent = parent;
2424
- vm.$root = parent ? parent.$root : vm;
2425
-
2426
- vm.$children = [];
2427
- vm.$refs = {};
2304
+ function markStaticNode (node, key, isOnce) {
2305
+ node.isStatic = true;
2306
+ node.key = key;
2307
+ node.isOnce = isOnce;
2308
+ }
2428
2309
 
2429
- vm._watcher = null;
2430
- vm._inactive = false;
2431
- vm._isMounted = false;
2432
- vm._isDestroyed = false;
2433
- vm._isBeingDestroyed = false;
2434
- }
2310
+ // filter resolution helper
2311
+ Vue.prototype._f = function resolveFilter (id) {
2312
+ return resolveAsset(this.$options, 'filters', id, true) || identity
2313
+ };
2435
2314
 
2436
- function lifecycleMixin (Vue) {
2437
- Vue.prototype._mount = function (
2438
- el,
2439
- hydrating
2315
+ // render v-for
2316
+ Vue.prototype._l = function renderList (
2317
+ val,
2318
+ render
2440
2319
  ) {
2441
- var vm = this;
2442
- vm.$el = el;
2443
- if (!vm.$options.render) {
2444
- vm.$options.render = createEmptyVNode;
2445
- {
2446
- /* istanbul ignore if */
2447
- if (vm.$options.template && vm.$options.template.charAt(0) !== '#') {
2448
- warn(
2449
- 'You are using the runtime-only build of Vue where the template ' +
2450
- 'option is not available. Either pre-compile the templates into ' +
2451
- 'render functions, or use the compiler-included build.',
2452
- vm
2453
- );
2454
- } else {
2455
- warn(
2456
- 'Failed to mount component: template or render function not defined.',
2457
- vm
2458
- );
2459
- }
2320
+ var ret, i, l, keys, key;
2321
+ if (Array.isArray(val) || typeof val === 'string') {
2322
+ ret = new Array(val.length);
2323
+ for (i = 0, l = val.length; i < l; i++) {
2324
+ ret[i] = render(val[i], i);
2325
+ }
2326
+ } else if (typeof val === 'number') {
2327
+ ret = new Array(val);
2328
+ for (i = 0; i < val; i++) {
2329
+ ret[i] = render(i + 1, i);
2330
+ }
2331
+ } else if (isObject(val)) {
2332
+ keys = Object.keys(val);
2333
+ ret = new Array(keys.length);
2334
+ for (i = 0, l = keys.length; i < l; i++) {
2335
+ key = keys[i];
2336
+ ret[i] = render(val[key], key, i);
2460
2337
  }
2461
2338
  }
2462
- callHook(vm, 'beforeMount');
2463
- vm._watcher = new Watcher(vm, function () {
2464
- vm._update(vm._render(), hydrating);
2465
- }, noop);
2466
- hydrating = false;
2467
- // manually mounted instance, call mounted on self
2468
- // mounted is called for render-created child components in its inserted hook
2469
- if (vm.$vnode == null) {
2470
- vm._isMounted = true;
2471
- callHook(vm, 'mounted');
2472
- }
2473
- return vm
2474
- };
2475
-
2476
- Vue.prototype._update = function (vnode, hydrating) {
2477
- var vm = this;
2478
- if (vm._isMounted) {
2479
- callHook(vm, 'beforeUpdate');
2480
- }
2481
- var prevEl = vm.$el;
2482
- var prevVnode = vm._vnode;
2483
- var prevActiveInstance = activeInstance;
2484
- activeInstance = vm;
2485
- vm._vnode = vnode;
2486
- // Vue.prototype.__patch__ is injected in entry points
2487
- // based on the rendering backend used.
2488
- if (!prevVnode) {
2489
- // initial render
2490
- vm.$el = vm.__patch__(
2491
- vm.$el, vnode, hydrating, false /* removeOnly */,
2492
- vm.$options._parentElm,
2493
- vm.$options._refElm
2494
- );
2495
- } else {
2496
- // updates
2497
- vm.$el = vm.__patch__(prevVnode, vnode);
2498
- }
2499
- activeInstance = prevActiveInstance;
2500
- // update __vue__ reference
2501
- if (prevEl) {
2502
- prevEl.__vue__ = null;
2503
- }
2504
- if (vm.$el) {
2505
- vm.$el.__vue__ = vm;
2506
- }
2507
- // if parent is an HOC, update its $el as well
2508
- if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
2509
- vm.$parent.$el = vm.$el;
2510
- }
2511
- if (vm._isMounted) {
2512
- callHook(vm, 'updated');
2513
- }
2339
+ return ret
2514
2340
  };
2515
2341
 
2516
- Vue.prototype._updateFromParent = function (
2517
- propsData,
2518
- listeners,
2519
- parentVnode,
2520
- renderChildren
2342
+ // renderSlot
2343
+ Vue.prototype._t = function (
2344
+ name,
2345
+ fallback,
2346
+ props,
2347
+ bindObject
2521
2348
  ) {
2522
- var vm = this;
2523
- var hasChildren = !!(vm.$options._renderChildren || renderChildren);
2524
- vm.$options._parentVnode = parentVnode;
2525
- vm.$vnode = parentVnode; // update vm's placeholder node without re-render
2526
- if (vm._vnode) { // update child tree's parent
2527
- vm._vnode.parent = parentVnode;
2528
- }
2529
- vm.$options._renderChildren = renderChildren;
2530
- // update props
2531
- if (propsData && vm.$options.props) {
2532
- observerState.shouldConvert = false;
2533
- {
2534
- observerState.isSettingProps = true;
2535
- }
2536
- var propKeys = vm.$options._propKeys || [];
2537
- for (var i = 0; i < propKeys.length; i++) {
2538
- var key = propKeys[i];
2539
- vm[key] = validateProp(key, vm.$options.props, propsData, vm);
2349
+ var scopedSlotFn = this.$scopedSlots[name];
2350
+ if (scopedSlotFn) { // scoped slot
2351
+ props = props || {};
2352
+ if (bindObject) {
2353
+ extend(props, bindObject);
2540
2354
  }
2541
- observerState.shouldConvert = true;
2542
- {
2543
- observerState.isSettingProps = false;
2355
+ return scopedSlotFn(props) || fallback
2356
+ } else {
2357
+ var slotNodes = this.$slots[name];
2358
+ // warn duplicate slot usage
2359
+ if (slotNodes && "development" !== 'production') {
2360
+ slotNodes._rendered && warn(
2361
+ "Duplicate presence of slot \"" + name + "\" found in the same render tree " +
2362
+ "- this will likely cause render errors.",
2363
+ this
2364
+ );
2365
+ slotNodes._rendered = true;
2544
2366
  }
2545
- vm.$options.propsData = propsData;
2546
- }
2547
- // update listeners
2548
- if (listeners) {
2549
- var oldListeners = vm.$options._parentListeners;
2550
- vm.$options._parentListeners = listeners;
2551
- updateComponentListeners(vm, listeners, oldListeners);
2552
- }
2553
- // resolve slots + force update if has children
2554
- if (hasChildren) {
2555
- vm.$slots = resolveSlots(renderChildren, parentVnode.context);
2556
- vm.$forceUpdate();
2367
+ return slotNodes || fallback
2557
2368
  }
2558
2369
  };
2559
2370
 
2560
- Vue.prototype.$forceUpdate = function () {
2561
- var vm = this;
2562
- if (vm._watcher) {
2563
- vm._watcher.update();
2371
+ // apply v-bind object
2372
+ Vue.prototype._b = function bindProps (
2373
+ data,
2374
+ tag,
2375
+ value,
2376
+ asProp
2377
+ ) {
2378
+ if (value) {
2379
+ if (!isObject(value)) {
2380
+ "development" !== 'production' && warn(
2381
+ 'v-bind without argument expects an Object or Array value',
2382
+ this
2383
+ );
2384
+ } else {
2385
+ if (Array.isArray(value)) {
2386
+ value = toObject(value);
2387
+ }
2388
+ for (var key in value) {
2389
+ if (key === 'class' || key === 'style') {
2390
+ data[key] = value[key];
2391
+ } else {
2392
+ var type = data.attrs && data.attrs.type;
2393
+ var hash = asProp || config.mustUseProp(tag, type, key)
2394
+ ? data.domProps || (data.domProps = {})
2395
+ : data.attrs || (data.attrs = {});
2396
+ hash[key] = value[key];
2397
+ }
2398
+ }
2399
+ }
2564
2400
  }
2401
+ return data
2565
2402
  };
2566
2403
 
2567
- Vue.prototype.$destroy = function () {
2568
- var vm = this;
2569
- if (vm._isBeingDestroyed) {
2570
- return
2571
- }
2572
- callHook(vm, 'beforeDestroy');
2573
- vm._isBeingDestroyed = true;
2574
- // remove self from parent
2575
- var parent = vm.$parent;
2576
- if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
2577
- remove$1(parent.$children, vm);
2578
- }
2579
- // teardown watchers
2580
- if (vm._watcher) {
2581
- vm._watcher.teardown();
2582
- }
2583
- var i = vm._watchers.length;
2584
- while (i--) {
2585
- vm._watchers[i].teardown();
2586
- }
2587
- // remove reference from data ob
2588
- // frozen object may not have observer.
2589
- if (vm._data.__ob__) {
2590
- vm._data.__ob__.vmCount--;
2591
- }
2592
- // call the last hook...
2593
- vm._isDestroyed = true;
2594
- callHook(vm, 'destroyed');
2595
- // turn off all instance listeners.
2596
- vm.$off();
2597
- // remove __vue__ reference
2598
- if (vm.$el) {
2599
- vm.$el.__vue__ = null;
2404
+ // check v-on keyCodes
2405
+ Vue.prototype._k = function checkKeyCodes (
2406
+ eventKeyCode,
2407
+ key,
2408
+ builtInAlias
2409
+ ) {
2410
+ var keyCodes = config.keyCodes[key] || builtInAlias;
2411
+ if (Array.isArray(keyCodes)) {
2412
+ return keyCodes.indexOf(eventKeyCode) === -1
2413
+ } else {
2414
+ return keyCodes !== eventKeyCode
2600
2415
  }
2601
- // invoke destroy hooks on current rendered tree
2602
- vm.__patch__(vm._vnode, null);
2603
2416
  };
2604
2417
  }
2605
2418
 
2606
- function callHook (vm, hook) {
2607
- var handlers = vm.$options[hook];
2608
- if (handlers) {
2609
- for (var i = 0, j = handlers.length; i < j; i++) {
2610
- handlers[i].call(vm);
2419
+ function resolveSlots (
2420
+ children,
2421
+ context
2422
+ ) {
2423
+ var slots = {};
2424
+ if (!children) {
2425
+ return slots
2426
+ }
2427
+ var defaultSlot = [];
2428
+ var name, child;
2429
+ for (var i = 0, l = children.length; i < l; i++) {
2430
+ child = children[i];
2431
+ // named slots should only be respected if the vnode was rendered in the
2432
+ // same context.
2433
+ if ((child.context === context || child.functionalContext === context) &&
2434
+ child.data && (name = child.data.slot)) {
2435
+ var slot = (slots[name] || (slots[name] = []));
2436
+ if (child.tag === 'template') {
2437
+ slot.push.apply(slot, child.children);
2438
+ } else {
2439
+ slot.push(child);
2440
+ }
2441
+ } else {
2442
+ defaultSlot.push(child);
2611
2443
  }
2612
2444
  }
2613
- if (vm._hasHookEvent) {
2614
- vm.$emit('hook:' + hook);
2445
+ // ignore single whitespace
2446
+ if (defaultSlot.length && !(
2447
+ defaultSlot.length === 1 &&
2448
+ (defaultSlot[0].text === ' ' || defaultSlot[0].isComment)
2449
+ )) {
2450
+ slots.default = defaultSlot;
2615
2451
  }
2452
+ return slots
2616
2453
  }
2617
2454
 
2618
2455
  /* */
2619
2456
 
2620
- var hooks = { init: init, prepatch: prepatch, insert: insert, destroy: destroy$1 };
2621
- var hooksToMerge = Object.keys(hooks);
2457
+ function initEvents (vm) {
2458
+ vm._events = Object.create(null);
2459
+ vm._hasHookEvent = false;
2460
+ // init parent attached events
2461
+ var listeners = vm.$options._parentListeners;
2462
+ if (listeners) {
2463
+ updateComponentListeners(vm, listeners);
2464
+ }
2465
+ }
2622
2466
 
2623
- function createComponent (
2624
- Ctor,
2625
- data,
2626
- context,
2627
- children,
2628
- tag
2629
- ) {
2630
- if (!Ctor) {
2631
- return
2632
- }
2467
+ var target;
2633
2468
 
2634
- var baseCtor = context.$options._base;
2635
- if (isObject(Ctor)) {
2636
- Ctor = baseCtor.extend(Ctor);
2469
+ function add$1 (event, fn, once) {
2470
+ if (once) {
2471
+ target.$once(event, fn);
2472
+ } else {
2473
+ target.$on(event, fn);
2637
2474
  }
2475
+ }
2638
2476
 
2639
- if (typeof Ctor !== 'function') {
2640
- {
2641
- warn(("Invalid Component definition: " + (String(Ctor))), context);
2477
+ function remove$2 (event, fn) {
2478
+ target.$off(event, fn);
2479
+ }
2480
+
2481
+ function updateComponentListeners (
2482
+ vm,
2483
+ listeners,
2484
+ oldListeners
2485
+ ) {
2486
+ target = vm;
2487
+ updateListeners(listeners, oldListeners || {}, add$1, remove$2, vm);
2488
+ }
2489
+
2490
+ function eventsMixin (Vue) {
2491
+ var hookRE = /^hook:/;
2492
+ Vue.prototype.$on = function (event, fn) {
2493
+ var vm = this;(vm._events[event] || (vm._events[event] = [])).push(fn);
2494
+ // optimize hook:event cost by using a boolean flag marked at registration
2495
+ // instead of a hash lookup
2496
+ if (hookRE.test(event)) {
2497
+ vm._hasHookEvent = true;
2642
2498
  }
2643
- return
2644
- }
2499
+ return vm
2500
+ };
2645
2501
 
2646
- // async component
2647
- if (!Ctor.cid) {
2648
- if (Ctor.resolved) {
2649
- Ctor = Ctor.resolved;
2650
- } else {
2651
- Ctor = resolveAsyncComponent(Ctor, baseCtor, function () {
2652
- // it's ok to queue this on every render because
2653
- // $forceUpdate is buffered by the scheduler.
2654
- context.$forceUpdate();
2655
- });
2656
- if (!Ctor) {
2657
- // return nothing if this is indeed an async component
2658
- // wait for the callback to trigger parent update.
2659
- return
2660
- }
2502
+ Vue.prototype.$once = function (event, fn) {
2503
+ var vm = this;
2504
+ function on () {
2505
+ vm.$off(event, on);
2506
+ fn.apply(vm, arguments);
2661
2507
  }
2662
- }
2508
+ on.fn = fn;
2509
+ vm.$on(event, on);
2510
+ return vm
2511
+ };
2663
2512
 
2664
- // resolve constructor options in case global mixins are applied after
2665
- // component constructor creation
2666
- resolveConstructorOptions(Ctor);
2513
+ Vue.prototype.$off = function (event, fn) {
2514
+ var vm = this;
2515
+ // all
2516
+ if (!arguments.length) {
2517
+ vm._events = Object.create(null);
2518
+ return vm
2519
+ }
2520
+ // specific event
2521
+ var cbs = vm._events[event];
2522
+ if (!cbs) {
2523
+ return vm
2524
+ }
2525
+ if (arguments.length === 1) {
2526
+ vm._events[event] = null;
2527
+ return vm
2528
+ }
2529
+ // specific handler
2530
+ var cb;
2531
+ var i = cbs.length;
2532
+ while (i--) {
2533
+ cb = cbs[i];
2534
+ if (cb === fn || cb.fn === fn) {
2535
+ cbs.splice(i, 1);
2536
+ break
2537
+ }
2538
+ }
2539
+ return vm
2540
+ };
2667
2541
 
2668
- data = data || {};
2542
+ Vue.prototype.$emit = function (event) {
2543
+ var vm = this;
2544
+ var cbs = vm._events[event];
2545
+ if (cbs) {
2546
+ cbs = cbs.length > 1 ? toArray(cbs) : cbs;
2547
+ var args = toArray(arguments, 1);
2548
+ for (var i = 0, l = cbs.length; i < l; i++) {
2549
+ cbs[i].apply(vm, args);
2550
+ }
2551
+ }
2552
+ return vm
2553
+ };
2554
+ }
2669
2555
 
2670
- // extract props
2671
- var propsData = extractProps(data, Ctor);
2556
+ /* */
2672
2557
 
2673
- // functional component
2674
- if (Ctor.options.functional) {
2675
- return createFunctionalComponent(Ctor, propsData, data, context, children)
2676
- }
2558
+ var activeInstance = null;
2677
2559
 
2678
- // extract listeners, since these needs to be treated as
2679
- // child component listeners instead of DOM listeners
2680
- var listeners = data.on;
2681
- // replace with listeners with .native modifier
2682
- data.on = data.nativeOn;
2560
+ function initLifecycle (vm) {
2561
+ var options = vm.$options;
2683
2562
 
2684
- if (Ctor.options.abstract) {
2685
- // abstract components do not keep anything
2686
- // other than props & listeners
2687
- data = {};
2563
+ // locate first non-abstract parent
2564
+ var parent = options.parent;
2565
+ if (parent && !options.abstract) {
2566
+ while (parent.$options.abstract && parent.$parent) {
2567
+ parent = parent.$parent;
2568
+ }
2569
+ parent.$children.push(vm);
2688
2570
  }
2689
2571
 
2690
- // merge component management hooks onto the placeholder node
2691
- mergeHooks(data);
2572
+ vm.$parent = parent;
2573
+ vm.$root = parent ? parent.$root : vm;
2692
2574
 
2693
- // return a placeholder vnode
2694
- var name = Ctor.options.name || tag;
2695
- var vnode = new VNode(
2696
- ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
2697
- data, undefined, undefined, undefined, context,
2698
- { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children }
2699
- );
2700
- return vnode
2575
+ vm.$children = [];
2576
+ vm.$refs = {};
2577
+
2578
+ vm._watcher = null;
2579
+ vm._inactive = false;
2580
+ vm._isMounted = false;
2581
+ vm._isDestroyed = false;
2582
+ vm._isBeingDestroyed = false;
2701
2583
  }
2702
2584
 
2703
- function createFunctionalComponent (
2704
- Ctor,
2705
- propsData,
2706
- data,
2707
- context,
2708
- children
2709
- ) {
2710
- var props = {};
2711
- var propOptions = Ctor.options.props;
2712
- if (propOptions) {
2713
- for (var key in propOptions) {
2714
- props[key] = validateProp(key, propOptions, propsData);
2585
+ function lifecycleMixin (Vue) {
2586
+ Vue.prototype._mount = function (
2587
+ el,
2588
+ hydrating
2589
+ ) {
2590
+ var vm = this;
2591
+ vm.$el = el;
2592
+ if (!vm.$options.render) {
2593
+ vm.$options.render = createEmptyVNode;
2594
+ {
2595
+ /* istanbul ignore if */
2596
+ if (vm.$options.template && vm.$options.template.charAt(0) !== '#') {
2597
+ warn(
2598
+ 'You are using the runtime-only build of Vue where the template ' +
2599
+ 'option is not available. Either pre-compile the templates into ' +
2600
+ 'render functions, or use the compiler-included build.',
2601
+ vm
2602
+ );
2603
+ } else {
2604
+ warn(
2605
+ 'Failed to mount component: template or render function not defined.',
2606
+ vm
2607
+ );
2608
+ }
2609
+ }
2715
2610
  }
2716
- }
2717
- // ensure the createElement function in functional components
2718
- // gets a unique context - this is necessary for correct named slot check
2719
- var _context = Object.create(context);
2720
- var h = function (a, b, c, d) { return createElement(_context, a, b, c, d, true); };
2721
- var vnode = Ctor.options.render.call(null, h, {
2722
- props: props,
2723
- data: data,
2724
- parent: context,
2725
- children: children,
2726
- slots: function () { return resolveSlots(children, context); }
2727
- });
2728
- if (vnode instanceof VNode) {
2729
- vnode.functionalContext = context;
2730
- if (data.slot) {
2731
- (vnode.data || (vnode.data = {})).slot = data.slot;
2611
+ callHook(vm, 'beforeMount');
2612
+ vm._watcher = new Watcher(vm, function updateComponent () {
2613
+ vm._update(vm._render(), hydrating);
2614
+ }, noop);
2615
+ hydrating = false;
2616
+ // manually mounted instance, call mounted on self
2617
+ // mounted is called for render-created child components in its inserted hook
2618
+ if (vm.$vnode == null) {
2619
+ vm._isMounted = true;
2620
+ callHook(vm, 'mounted');
2732
2621
  }
2733
- }
2734
- return vnode
2735
- }
2736
-
2737
- function createComponentInstanceForVnode (
2738
- vnode, // we know it's MountedComponentVNode but flow doesn't
2739
- parent, // activeInstance in lifecycle state
2740
- parentElm,
2741
- refElm
2742
- ) {
2743
- var vnodeComponentOptions = vnode.componentOptions;
2744
- var options = {
2745
- _isComponent: true,
2746
- parent: parent,
2747
- propsData: vnodeComponentOptions.propsData,
2748
- _componentTag: vnodeComponentOptions.tag,
2749
- _parentVnode: vnode,
2750
- _parentListeners: vnodeComponentOptions.listeners,
2751
- _renderChildren: vnodeComponentOptions.children,
2752
- _parentElm: parentElm || null,
2753
- _refElm: refElm || null
2622
+ return vm
2754
2623
  };
2755
- // check inline-template render functions
2756
- var inlineTemplate = vnode.data.inlineTemplate;
2757
- if (inlineTemplate) {
2758
- options.render = inlineTemplate.render;
2759
- options.staticRenderFns = inlineTemplate.staticRenderFns;
2760
- }
2761
- return new vnodeComponentOptions.Ctor(options)
2762
- }
2763
2624
 
2764
- function init (
2765
- vnode,
2766
- hydrating,
2767
- parentElm,
2768
- refElm
2769
- ) {
2770
- if (!vnode.child || vnode.child._isDestroyed) {
2771
- var child = vnode.child = createComponentInstanceForVnode(
2772
- vnode,
2773
- activeInstance,
2774
- parentElm,
2775
- refElm
2776
- );
2777
- child.$mount(hydrating ? vnode.elm : undefined, hydrating);
2778
- } else if (vnode.data.keepAlive) {
2779
- // kept-alive components, treat as a patch
2780
- var mountedNode = vnode; // work around flow
2781
- prepatch(mountedNode, mountedNode);
2782
- }
2783
- }
2784
-
2785
- function prepatch (
2786
- oldVnode,
2787
- vnode
2788
- ) {
2789
- var options = vnode.componentOptions;
2790
- var child = vnode.child = oldVnode.child;
2791
- child._updateFromParent(
2792
- options.propsData, // updated props
2793
- options.listeners, // updated listeners
2794
- vnode, // new parent vnode
2795
- options.children // new children
2796
- );
2797
- }
2798
-
2799
- function insert (vnode) {
2800
- if (!vnode.child._isMounted) {
2801
- vnode.child._isMounted = true;
2802
- callHook(vnode.child, 'mounted');
2803
- }
2804
- if (vnode.data.keepAlive) {
2805
- vnode.child._inactive = false;
2806
- callHook(vnode.child, 'activated');
2807
- }
2808
- }
2809
-
2810
- function destroy$1 (vnode) {
2811
- if (!vnode.child._isDestroyed) {
2812
- if (!vnode.data.keepAlive) {
2813
- vnode.child.$destroy();
2625
+ Vue.prototype._update = function (vnode, hydrating) {
2626
+ var vm = this;
2627
+ if (vm._isMounted) {
2628
+ callHook(vm, 'beforeUpdate');
2629
+ }
2630
+ var prevEl = vm.$el;
2631
+ var prevVnode = vm._vnode;
2632
+ var prevActiveInstance = activeInstance;
2633
+ activeInstance = vm;
2634
+ vm._vnode = vnode;
2635
+ // Vue.prototype.__patch__ is injected in entry points
2636
+ // based on the rendering backend used.
2637
+ if (!prevVnode) {
2638
+ // initial render
2639
+ vm.$el = vm.__patch__(
2640
+ vm.$el, vnode, hydrating, false /* removeOnly */,
2641
+ vm.$options._parentElm,
2642
+ vm.$options._refElm
2643
+ );
2814
2644
  } else {
2815
- vnode.child._inactive = true;
2816
- callHook(vnode.child, 'deactivated');
2645
+ // updates
2646
+ vm.$el = vm.__patch__(prevVnode, vnode);
2817
2647
  }
2818
- }
2819
- }
2820
-
2821
- function resolveAsyncComponent (
2822
- factory,
2823
- baseCtor,
2824
- cb
2825
- ) {
2826
- if (factory.requested) {
2827
- // pool callbacks
2828
- factory.pendingCallbacks.push(cb);
2829
- } else {
2830
- factory.requested = true;
2831
- var cbs = factory.pendingCallbacks = [cb];
2832
- var sync = true;
2648
+ activeInstance = prevActiveInstance;
2649
+ // update __vue__ reference
2650
+ if (prevEl) {
2651
+ prevEl.__vue__ = null;
2652
+ }
2653
+ if (vm.$el) {
2654
+ vm.$el.__vue__ = vm;
2655
+ }
2656
+ // if parent is an HOC, update its $el as well
2657
+ if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
2658
+ vm.$parent.$el = vm.$el;
2659
+ }
2660
+ // updated hook is called by the scheduler to ensure that children are
2661
+ // updated in a parent's updated hook.
2662
+ };
2833
2663
 
2834
- var resolve = function (res) {
2835
- if (isObject(res)) {
2836
- res = baseCtor.extend(res);
2664
+ Vue.prototype._updateFromParent = function (
2665
+ propsData,
2666
+ listeners,
2667
+ parentVnode,
2668
+ renderChildren
2669
+ ) {
2670
+ var vm = this;
2671
+ var hasChildren = !!(vm.$options._renderChildren || renderChildren);
2672
+ vm.$options._parentVnode = parentVnode;
2673
+ vm.$vnode = parentVnode; // update vm's placeholder node without re-render
2674
+ if (vm._vnode) { // update child tree's parent
2675
+ vm._vnode.parent = parentVnode;
2676
+ }
2677
+ vm.$options._renderChildren = renderChildren;
2678
+ // update props
2679
+ if (propsData && vm.$options.props) {
2680
+ observerState.shouldConvert = false;
2681
+ {
2682
+ observerState.isSettingProps = true;
2837
2683
  }
2838
- // cache resolved
2839
- factory.resolved = res;
2840
- // invoke callbacks only if this is not a synchronous resolve
2841
- // (async resolves are shimmed as synchronous during SSR)
2842
- if (!sync) {
2843
- for (var i = 0, l = cbs.length; i < l; i++) {
2844
- cbs[i](res);
2845
- }
2684
+ var propKeys = vm.$options._propKeys || [];
2685
+ for (var i = 0; i < propKeys.length; i++) {
2686
+ var key = propKeys[i];
2687
+ vm[key] = validateProp(key, vm.$options.props, propsData, vm);
2846
2688
  }
2847
- };
2848
-
2849
- var reject = function (reason) {
2850
- "development" !== 'production' && warn(
2851
- "Failed to resolve async component: " + (String(factory)) +
2852
- (reason ? ("\nReason: " + reason) : '')
2853
- );
2854
- };
2689
+ observerState.shouldConvert = true;
2690
+ {
2691
+ observerState.isSettingProps = false;
2692
+ }
2693
+ vm.$options.propsData = propsData;
2694
+ }
2695
+ // update listeners
2696
+ if (listeners) {
2697
+ var oldListeners = vm.$options._parentListeners;
2698
+ vm.$options._parentListeners = listeners;
2699
+ updateComponentListeners(vm, listeners, oldListeners);
2700
+ }
2701
+ // resolve slots + force update if has children
2702
+ if (hasChildren) {
2703
+ vm.$slots = resolveSlots(renderChildren, parentVnode.context);
2704
+ vm.$forceUpdate();
2705
+ }
2706
+ };
2855
2707
 
2856
- var res = factory(resolve, reject);
2708
+ Vue.prototype.$forceUpdate = function () {
2709
+ var vm = this;
2710
+ if (vm._watcher) {
2711
+ vm._watcher.update();
2712
+ }
2713
+ };
2857
2714
 
2858
- // handle promise
2859
- if (res && typeof res.then === 'function' && !factory.resolved) {
2860
- res.then(resolve, reject);
2715
+ Vue.prototype.$destroy = function () {
2716
+ var vm = this;
2717
+ if (vm._isBeingDestroyed) {
2718
+ return
2861
2719
  }
2720
+ callHook(vm, 'beforeDestroy');
2721
+ vm._isBeingDestroyed = true;
2722
+ // remove self from parent
2723
+ var parent = vm.$parent;
2724
+ if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
2725
+ remove$1(parent.$children, vm);
2726
+ }
2727
+ // teardown watchers
2728
+ if (vm._watcher) {
2729
+ vm._watcher.teardown();
2730
+ }
2731
+ var i = vm._watchers.length;
2732
+ while (i--) {
2733
+ vm._watchers[i].teardown();
2734
+ }
2735
+ // remove reference from data ob
2736
+ // frozen object may not have observer.
2737
+ if (vm._data.__ob__) {
2738
+ vm._data.__ob__.vmCount--;
2739
+ }
2740
+ // call the last hook...
2741
+ vm._isDestroyed = true;
2742
+ callHook(vm, 'destroyed');
2743
+ // turn off all instance listeners.
2744
+ vm.$off();
2745
+ // remove __vue__ reference
2746
+ if (vm.$el) {
2747
+ vm.$el.__vue__ = null;
2748
+ }
2749
+ // invoke destroy hooks on current rendered tree
2750
+ vm.__patch__(vm._vnode, null);
2751
+ };
2752
+ }
2862
2753
 
2863
- sync = false;
2864
- // return in case resolved synchronously
2865
- return factory.resolved
2754
+ function callHook (vm, hook) {
2755
+ var handlers = vm.$options[hook];
2756
+ if (handlers) {
2757
+ for (var i = 0, j = handlers.length; i < j; i++) {
2758
+ handlers[i].call(vm);
2759
+ }
2760
+ }
2761
+ if (vm._hasHookEvent) {
2762
+ vm.$emit('hook:' + hook);
2866
2763
  }
2867
2764
  }
2868
2765
 
2869
- function extractProps (data, Ctor) {
2870
- // we are only extracting raw values here.
2871
- // validation and default values are handled in the child
2872
- // component itself.
2873
- var propOptions = Ctor.options.props;
2874
- if (!propOptions) {
2875
- return
2876
- }
2877
- var res = {};
2878
- var attrs = data.attrs;
2879
- var props = data.props;
2880
- var domProps = data.domProps;
2881
- if (attrs || props || domProps) {
2882
- for (var key in propOptions) {
2883
- var altKey = hyphenate(key);
2884
- checkProp(res, props, key, altKey, true) ||
2885
- checkProp(res, attrs, key, altKey) ||
2886
- checkProp(res, domProps, key, altKey);
2887
- }
2766
+ /* */
2767
+
2768
+
2769
+ var queue = [];
2770
+ var has$1 = {};
2771
+ var circular = {};
2772
+ var waiting = false;
2773
+ var flushing = false;
2774
+ var index = 0;
2775
+
2776
+ /**
2777
+ * Reset the scheduler's state.
2778
+ */
2779
+ function resetSchedulerState () {
2780
+ queue.length = 0;
2781
+ has$1 = {};
2782
+ {
2783
+ circular = {};
2888
2784
  }
2889
- return res
2785
+ waiting = flushing = false;
2890
2786
  }
2891
2787
 
2892
- function checkProp (
2893
- res,
2894
- hash,
2895
- key,
2896
- altKey,
2897
- preserve
2898
- ) {
2899
- if (hash) {
2900
- if (hasOwn(hash, key)) {
2901
- res[key] = hash[key];
2902
- if (!preserve) {
2903
- delete hash[key];
2904
- }
2905
- return true
2906
- } else if (hasOwn(hash, altKey)) {
2907
- res[key] = hash[altKey];
2908
- if (!preserve) {
2909
- delete hash[altKey];
2788
+ /**
2789
+ * Flush both queues and run the watchers.
2790
+ */
2791
+ function flushSchedulerQueue () {
2792
+ flushing = true;
2793
+ var watcher, id, vm;
2794
+
2795
+ // Sort queue before flush.
2796
+ // This ensures that:
2797
+ // 1. Components are updated from parent to child. (because parent is always
2798
+ // created before the child)
2799
+ // 2. A component's user watchers are run before its render watcher (because
2800
+ // user watchers are created before the render watcher)
2801
+ // 3. If a component is destroyed during a parent component's watcher run,
2802
+ // its watchers can be skipped.
2803
+ queue.sort(function (a, b) { return a.id - b.id; });
2804
+
2805
+ // do not cache length because more watchers might be pushed
2806
+ // as we run existing watchers
2807
+ for (index = 0; index < queue.length; index++) {
2808
+ watcher = queue[index];
2809
+ id = watcher.id;
2810
+ has$1[id] = null;
2811
+ watcher.run();
2812
+ // in dev build, check and stop circular updates.
2813
+ if ("development" !== 'production' && has$1[id] != null) {
2814
+ circular[id] = (circular[id] || 0) + 1;
2815
+ if (circular[id] > config._maxUpdateCount) {
2816
+ warn(
2817
+ 'You may have an infinite update loop ' + (
2818
+ watcher.user
2819
+ ? ("in watcher with expression \"" + (watcher.expression) + "\"")
2820
+ : "in a component render function."
2821
+ ),
2822
+ watcher.vm
2823
+ );
2824
+ break
2910
2825
  }
2911
- return true
2912
2826
  }
2913
2827
  }
2914
- return false
2915
- }
2916
2828
 
2917
- function mergeHooks (data) {
2918
- if (!data.hook) {
2919
- data.hook = {};
2829
+ // call updated hooks
2830
+ index = queue.length;
2831
+ while (index--) {
2832
+ watcher = queue[index];
2833
+ vm = watcher.vm;
2834
+ if (vm._watcher === watcher && vm._isMounted) {
2835
+ callHook(vm, 'updated');
2836
+ }
2920
2837
  }
2921
- for (var i = 0; i < hooksToMerge.length; i++) {
2922
- var key = hooksToMerge[i];
2923
- var fromParent = data.hook[key];
2924
- var ours = hooks[key];
2925
- data.hook[key] = fromParent ? mergeHook$1(ours, fromParent) : ours;
2838
+
2839
+ // devtool hook
2840
+ /* istanbul ignore if */
2841
+ if (devtools && config.devtools) {
2842
+ devtools.emit('flush');
2926
2843
  }
2844
+
2845
+ resetSchedulerState();
2927
2846
  }
2928
2847
 
2929
- function mergeHook$1 (one, two) {
2930
- return function (a, b, c, d) {
2931
- one(a, b, c, d);
2932
- two(a, b, c, d);
2848
+ /**
2849
+ * Push a watcher into the watcher queue.
2850
+ * Jobs with duplicate IDs will be skipped unless it's
2851
+ * pushed when the queue is being flushed.
2852
+ */
2853
+ function queueWatcher (watcher) {
2854
+ var id = watcher.id;
2855
+ if (has$1[id] == null) {
2856
+ has$1[id] = true;
2857
+ if (!flushing) {
2858
+ queue.push(watcher);
2859
+ } else {
2860
+ // if already flushing, splice the watcher based on its id
2861
+ // if already past its id, it will be run next immediately.
2862
+ var i = queue.length - 1;
2863
+ while (i >= 0 && queue[i].id > watcher.id) {
2864
+ i--;
2865
+ }
2866
+ queue.splice(Math.max(i, index) + 1, 0, watcher);
2867
+ }
2868
+ // queue the flush
2869
+ if (!waiting) {
2870
+ waiting = true;
2871
+ nextTick(flushSchedulerQueue);
2872
+ }
2933
2873
  }
2934
2874
  }
2935
2875
 
2936
2876
  /* */
2937
2877
 
2938
- var SIMPLE_NORMALIZE = 1;
2939
- var ALWAYS_NORMALIZE = 2;
2940
-
2941
- // wrapper function for providing a more flexible interface
2942
- // without getting yelled at by flow
2943
- function createElement (
2944
- context,
2945
- tag,
2946
- data,
2947
- children,
2948
- normalizationType,
2949
- alwaysNormalize
2950
- ) {
2951
- if (Array.isArray(data) || isPrimitive(data)) {
2952
- normalizationType = children;
2953
- children = data;
2954
- data = undefined;
2955
- }
2956
- if (alwaysNormalize) { normalizationType = ALWAYS_NORMALIZE; }
2957
- return _createElement(context, tag, data, children, normalizationType)
2958
- }
2878
+ var uid$2 = 0;
2959
2879
 
2960
- function _createElement (
2961
- context,
2962
- tag,
2963
- data,
2964
- children,
2965
- normalizationType
2880
+ /**
2881
+ * A watcher parses an expression, collects dependencies,
2882
+ * and fires callback when the expression value changes.
2883
+ * This is used for both the $watch() api and directives.
2884
+ */
2885
+ var Watcher = function Watcher (
2886
+ vm,
2887
+ expOrFn,
2888
+ cb,
2889
+ options
2966
2890
  ) {
2967
- if (data && data.__ob__) {
2968
- "development" !== 'production' && warn(
2969
- "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
2970
- 'Always create fresh vnode data objects in each render!',
2971
- context
2972
- );
2973
- return createEmptyVNode()
2891
+ this.vm = vm;
2892
+ vm._watchers.push(this);
2893
+ // options
2894
+ if (options) {
2895
+ this.deep = !!options.deep;
2896
+ this.user = !!options.user;
2897
+ this.lazy = !!options.lazy;
2898
+ this.sync = !!options.sync;
2899
+ } else {
2900
+ this.deep = this.user = this.lazy = this.sync = false;
2974
2901
  }
2975
- if (!tag) {
2976
- // in case of component :is set to falsy value
2977
- return createEmptyVNode()
2902
+ this.cb = cb;
2903
+ this.id = ++uid$2; // uid for batching
2904
+ this.active = true;
2905
+ this.dirty = this.lazy; // for lazy watchers
2906
+ this.deps = [];
2907
+ this.newDeps = [];
2908
+ this.depIds = new _Set();
2909
+ this.newDepIds = new _Set();
2910
+ this.expression = expOrFn.toString();
2911
+ // parse expression for getter
2912
+ if (typeof expOrFn === 'function') {
2913
+ this.getter = expOrFn;
2914
+ } else {
2915
+ this.getter = parsePath(expOrFn);
2916
+ if (!this.getter) {
2917
+ this.getter = function () {};
2918
+ "development" !== 'production' && warn(
2919
+ "Failed watching path: \"" + expOrFn + "\" " +
2920
+ 'Watcher only accepts simple dot-delimited paths. ' +
2921
+ 'For full control, use a function instead.',
2922
+ vm
2923
+ );
2924
+ }
2978
2925
  }
2979
- // support single function children as default scoped slot
2980
- if (Array.isArray(children) &&
2981
- typeof children[0] === 'function') {
2982
- data = data || {};
2983
- data.scopedSlots = { default: children[0] };
2984
- children.length = 0;
2926
+ this.value = this.lazy
2927
+ ? undefined
2928
+ : this.get();
2929
+ };
2930
+
2931
+ /**
2932
+ * Evaluate the getter, and re-collect dependencies.
2933
+ */
2934
+ Watcher.prototype.get = function get () {
2935
+ pushTarget(this);
2936
+ var value = this.getter.call(this.vm, this.vm);
2937
+ // "touch" every property so they are all tracked as
2938
+ // dependencies for deep watching
2939
+ if (this.deep) {
2940
+ traverse(value);
2985
2941
  }
2986
- if (normalizationType === ALWAYS_NORMALIZE) {
2987
- children = normalizeChildren(children);
2988
- } else if (normalizationType === SIMPLE_NORMALIZE) {
2989
- children = simpleNormalizeChildren(children);
2942
+ popTarget();
2943
+ this.cleanupDeps();
2944
+ return value
2945
+ };
2946
+
2947
+ /**
2948
+ * Add a dependency to this directive.
2949
+ */
2950
+ Watcher.prototype.addDep = function addDep (dep) {
2951
+ var id = dep.id;
2952
+ if (!this.newDepIds.has(id)) {
2953
+ this.newDepIds.add(id);
2954
+ this.newDeps.push(dep);
2955
+ if (!this.depIds.has(id)) {
2956
+ dep.addSub(this);
2957
+ }
2990
2958
  }
2991
- var vnode, ns;
2992
- if (typeof tag === 'string') {
2993
- var Ctor;
2994
- ns = config.getTagNamespace(tag);
2995
- if (config.isReservedTag(tag)) {
2996
- // platform built-in elements
2997
- vnode = new VNode(
2998
- config.parsePlatformTagName(tag), data, children,
2999
- undefined, undefined, context
3000
- );
3001
- } else if ((Ctor = resolveAsset(context.$options, 'components', tag))) {
3002
- // component
3003
- vnode = createComponent(Ctor, data, context, children, tag);
3004
- } else {
3005
- // unknown or unlisted namespaced elements
3006
- // check at runtime because it may get assigned a namespace when its
3007
- // parent normalizes children
3008
- vnode = new VNode(
3009
- tag, data, children,
3010
- undefined, undefined, context
3011
- );
2959
+ };
2960
+
2961
+ /**
2962
+ * Clean up for dependency collection.
2963
+ */
2964
+ Watcher.prototype.cleanupDeps = function cleanupDeps () {
2965
+ var this$1 = this;
2966
+
2967
+ var i = this.deps.length;
2968
+ while (i--) {
2969
+ var dep = this$1.deps[i];
2970
+ if (!this$1.newDepIds.has(dep.id)) {
2971
+ dep.removeSub(this$1);
3012
2972
  }
3013
- } else {
3014
- // direct component options / constructor
3015
- vnode = createComponent(tag, data, context, children);
3016
2973
  }
3017
- if (vnode) {
3018
- if (ns) { applyNS(vnode, ns); }
3019
- return vnode
2974
+ var tmp = this.depIds;
2975
+ this.depIds = this.newDepIds;
2976
+ this.newDepIds = tmp;
2977
+ this.newDepIds.clear();
2978
+ tmp = this.deps;
2979
+ this.deps = this.newDeps;
2980
+ this.newDeps = tmp;
2981
+ this.newDeps.length = 0;
2982
+ };
2983
+
2984
+ /**
2985
+ * Subscriber interface.
2986
+ * Will be called when a dependency changes.
2987
+ */
2988
+ Watcher.prototype.update = function update () {
2989
+ /* istanbul ignore else */
2990
+ if (this.lazy) {
2991
+ this.dirty = true;
2992
+ } else if (this.sync) {
2993
+ this.run();
3020
2994
  } else {
3021
- return createEmptyVNode()
2995
+ queueWatcher(this);
3022
2996
  }
3023
- }
2997
+ };
3024
2998
 
3025
- function applyNS (vnode, ns) {
3026
- vnode.ns = ns;
3027
- if (vnode.tag === 'foreignObject') {
3028
- // use default namespace inside foreignObject
3029
- return
3030
- }
3031
- if (vnode.children) {
3032
- for (var i = 0, l = vnode.children.length; i < l; i++) {
3033
- var child = vnode.children[i];
3034
- if (child.tag && !child.ns) {
3035
- applyNS(child, ns);
2999
+ /**
3000
+ * Scheduler job interface.
3001
+ * Will be called by the scheduler.
3002
+ */
3003
+ Watcher.prototype.run = function run () {
3004
+ if (this.active) {
3005
+ var value = this.get();
3006
+ if (
3007
+ value !== this.value ||
3008
+ // Deep watchers and watchers on Object/Arrays should fire even
3009
+ // when the value is the same, because the value may
3010
+ // have mutated.
3011
+ isObject(value) ||
3012
+ this.deep
3013
+ ) {
3014
+ // set new value
3015
+ var oldValue = this.value;
3016
+ this.value = value;
3017
+ if (this.user) {
3018
+ try {
3019
+ this.cb.call(this.vm, value, oldValue);
3020
+ } catch (e) {
3021
+ /* istanbul ignore else */
3022
+ if (config.errorHandler) {
3023
+ config.errorHandler.call(null, e, this.vm);
3024
+ } else {
3025
+ "development" !== 'production' && warn(
3026
+ ("Error in watcher \"" + (this.expression) + "\""),
3027
+ this.vm
3028
+ );
3029
+ throw e
3030
+ }
3031
+ }
3032
+ } else {
3033
+ this.cb.call(this.vm, value, oldValue);
3036
3034
  }
3037
3035
  }
3038
3036
  }
3039
- }
3037
+ };
3040
3038
 
3041
- /* */
3039
+ /**
3040
+ * Evaluate the value of the watcher.
3041
+ * This only gets called for lazy watchers.
3042
+ */
3043
+ Watcher.prototype.evaluate = function evaluate () {
3044
+ this.value = this.get();
3045
+ this.dirty = false;
3046
+ };
3042
3047
 
3043
- function initRender (vm) {
3044
- vm.$vnode = null; // the placeholder node in parent tree
3045
- vm._vnode = null; // the root of the child tree
3046
- vm._staticTrees = null;
3047
- var parentVnode = vm.$options._parentVnode;
3048
- var renderContext = parentVnode && parentVnode.context;
3049
- vm.$slots = resolveSlots(vm.$options._renderChildren, renderContext);
3050
- vm.$scopedSlots = {};
3051
- // bind the createElement fn to this instance
3052
- // so that we get proper render context inside it.
3053
- // args order: tag, data, children, normalizationType, alwaysNormalize
3054
- // internal version is used by render functions compiled from templates
3055
- vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
3056
- // normalization is always applied for the public version, used in
3057
- // user-written render functions.
3058
- vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
3059
- if (vm.$options.el) {
3060
- vm.$mount(vm.$options.el);
3048
+ /**
3049
+ * Depend on all deps collected by this watcher.
3050
+ */
3051
+ Watcher.prototype.depend = function depend () {
3052
+ var this$1 = this;
3053
+
3054
+ var i = this.deps.length;
3055
+ while (i--) {
3056
+ this$1.deps[i].depend();
3061
3057
  }
3062
- }
3058
+ };
3063
3059
 
3064
- function renderMixin (Vue) {
3065
- Vue.prototype.$nextTick = function (fn) {
3066
- return nextTick(fn, this)
3067
- };
3060
+ /**
3061
+ * Remove self from all dependencies' subscriber list.
3062
+ */
3063
+ Watcher.prototype.teardown = function teardown () {
3064
+ var this$1 = this;
3068
3065
 
3069
- Vue.prototype._render = function () {
3070
- var vm = this;
3071
- var ref = vm.$options;
3072
- var render = ref.render;
3073
- var staticRenderFns = ref.staticRenderFns;
3074
- var _parentVnode = ref._parentVnode;
3066
+ if (this.active) {
3067
+ // remove self from vm's watcher list
3068
+ // this is a somewhat expensive operation so we skip it
3069
+ // if the vm is being destroyed.
3070
+ if (!this.vm._isBeingDestroyed) {
3071
+ remove$1(this.vm._watchers, this);
3072
+ }
3073
+ var i = this.deps.length;
3074
+ while (i--) {
3075
+ this$1.deps[i].removeSub(this$1);
3076
+ }
3077
+ this.active = false;
3078
+ }
3079
+ };
3075
3080
 
3076
- if (vm._isMounted) {
3077
- // clone slot nodes on re-renders
3078
- for (var key in vm.$slots) {
3079
- vm.$slots[key] = cloneVNodes(vm.$slots[key]);
3080
- }
3081
+ /**
3082
+ * Recursively traverse an object to evoke all converted
3083
+ * getters, so that every nested property inside the object
3084
+ * is collected as a "deep" dependency.
3085
+ */
3086
+ var seenObjects = new _Set();
3087
+ function traverse (val) {
3088
+ seenObjects.clear();
3089
+ _traverse(val, seenObjects);
3090
+ }
3091
+
3092
+ function _traverse (val, seen) {
3093
+ var i, keys;
3094
+ var isA = Array.isArray(val);
3095
+ if ((!isA && !isObject(val)) || !Object.isExtensible(val)) {
3096
+ return
3097
+ }
3098
+ if (val.__ob__) {
3099
+ var depId = val.__ob__.dep.id;
3100
+ if (seen.has(depId)) {
3101
+ return
3081
3102
  }
3103
+ seen.add(depId);
3104
+ }
3105
+ if (isA) {
3106
+ i = val.length;
3107
+ while (i--) { _traverse(val[i], seen); }
3108
+ } else {
3109
+ keys = Object.keys(val);
3110
+ i = keys.length;
3111
+ while (i--) { _traverse(val[keys[i]], seen); }
3112
+ }
3113
+ }
3082
3114
 
3083
- if (_parentVnode && _parentVnode.data.scopedSlots) {
3084
- vm.$scopedSlots = _parentVnode.data.scopedSlots;
3085
- }
3115
+ /* */
3086
3116
 
3087
- if (staticRenderFns && !vm._staticTrees) {
3088
- vm._staticTrees = [];
3089
- }
3090
- // set parent vnode. this allows render functions to have access
3091
- // to the data on the placeholder node.
3092
- vm.$vnode = _parentVnode;
3093
- // render self
3094
- var vnode;
3095
- try {
3096
- vnode = render.call(vm._renderProxy, vm.$createElement);
3097
- } catch (e) {
3098
- /* istanbul ignore else */
3099
- if (config.errorHandler) {
3100
- config.errorHandler.call(null, e, vm);
3101
- } else {
3102
- {
3103
- warn(("Error when rendering " + (formatComponentName(vm)) + ":"));
3104
- }
3105
- throw e
3106
- }
3107
- // return previous vnode to prevent render error causing blank component
3108
- vnode = vm._vnode;
3109
- }
3110
- // return empty vnode in case the render function errored out
3111
- if (!(vnode instanceof VNode)) {
3112
- if ("development" !== 'production' && Array.isArray(vnode)) {
3117
+ function initState (vm) {
3118
+ vm._watchers = [];
3119
+ var opts = vm.$options;
3120
+ if (opts.props) { initProps(vm, opts.props); }
3121
+ if (opts.methods) { initMethods(vm, opts.methods); }
3122
+ if (opts.data) {
3123
+ initData(vm);
3124
+ } else {
3125
+ observe(vm._data = {}, true /* asRootData */);
3126
+ }
3127
+ if (opts.computed) { initComputed(vm, opts.computed); }
3128
+ if (opts.watch) { initWatch(vm, opts.watch); }
3129
+ }
3130
+
3131
+ var isReservedProp = { key: 1, ref: 1, slot: 1 };
3132
+
3133
+ function initProps (vm, props) {
3134
+ var propsData = vm.$options.propsData || {};
3135
+ var keys = vm.$options._propKeys = Object.keys(props);
3136
+ var isRoot = !vm.$parent;
3137
+ // root instance props should be converted
3138
+ observerState.shouldConvert = isRoot;
3139
+ var loop = function ( i ) {
3140
+ var key = keys[i];
3141
+ /* istanbul ignore else */
3142
+ {
3143
+ if (isReservedProp[key]) {
3113
3144
  warn(
3114
- 'Multiple root nodes returned from render function. Render function ' +
3115
- 'should return a single root node.',
3145
+ ("\"" + key + "\" is a reserved attribute and cannot be used as component prop."),
3116
3146
  vm
3117
3147
  );
3118
3148
  }
3119
- vnode = createEmptyVNode();
3120
- }
3121
- // set parent
3122
- vnode.parent = _parentVnode;
3123
- return vnode
3124
- };
3125
-
3126
- // toString for mustaches
3127
- Vue.prototype._s = _toString;
3128
- // convert text to vnode
3129
- Vue.prototype._v = createTextVNode;
3130
- // number conversion
3131
- Vue.prototype._n = toNumber;
3132
- // empty vnode
3133
- Vue.prototype._e = createEmptyVNode;
3134
- // loose equal
3135
- Vue.prototype._q = looseEqual;
3136
- // loose indexOf
3137
- Vue.prototype._i = looseIndexOf;
3138
-
3139
- // render static tree by index
3140
- Vue.prototype._m = function renderStatic (
3141
- index,
3142
- isInFor
3143
- ) {
3144
- var tree = this._staticTrees[index];
3145
- // if has already-rendered static tree and not inside v-for,
3146
- // we can reuse the same tree by doing a shallow clone.
3147
- if (tree && !isInFor) {
3148
- return Array.isArray(tree)
3149
- ? cloneVNodes(tree)
3150
- : cloneVNode(tree)
3149
+ defineReactive$$1(vm, key, validateProp(key, props, propsData, vm), function () {
3150
+ if (vm.$parent && !observerState.isSettingProps) {
3151
+ warn(
3152
+ "Avoid mutating a prop directly since the value will be " +
3153
+ "overwritten whenever the parent component re-renders. " +
3154
+ "Instead, use a data or computed property based on the prop's " +
3155
+ "value. Prop being mutated: \"" + key + "\"",
3156
+ vm
3157
+ );
3158
+ }
3159
+ });
3151
3160
  }
3152
- // otherwise, render a fresh tree.
3153
- tree = this._staticTrees[index] = this.$options.staticRenderFns[index].call(this._renderProxy);
3154
- markStatic(tree, ("__static__" + index), false);
3155
- return tree
3156
3161
  };
3157
3162
 
3158
- // mark node as static (v-once)
3159
- Vue.prototype._o = function markOnce (
3160
- tree,
3161
- index,
3162
- key
3163
- ) {
3164
- markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
3165
- return tree
3166
- };
3163
+ for (var i = 0; i < keys.length; i++) loop( i );
3164
+ observerState.shouldConvert = true;
3165
+ }
3167
3166
 
3168
- function markStatic (tree, key, isOnce) {
3169
- if (Array.isArray(tree)) {
3170
- for (var i = 0; i < tree.length; i++) {
3171
- if (tree[i] && typeof tree[i] !== 'string') {
3172
- markStaticNode(tree[i], (key + "_" + i), isOnce);
3173
- }
3174
- }
3167
+ function initData (vm) {
3168
+ var data = vm.$options.data;
3169
+ data = vm._data = typeof data === 'function'
3170
+ ? data.call(vm)
3171
+ : data || {};
3172
+ if (!isPlainObject(data)) {
3173
+ data = {};
3174
+ "development" !== 'production' && warn(
3175
+ 'data functions should return an object:\n' +
3176
+ 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
3177
+ vm
3178
+ );
3179
+ }
3180
+ // proxy data on instance
3181
+ var keys = Object.keys(data);
3182
+ var props = vm.$options.props;
3183
+ var i = keys.length;
3184
+ while (i--) {
3185
+ if (props && hasOwn(props, keys[i])) {
3186
+ "development" !== 'production' && warn(
3187
+ "The data property \"" + (keys[i]) + "\" is already declared as a prop. " +
3188
+ "Use prop default value instead.",
3189
+ vm
3190
+ );
3175
3191
  } else {
3176
- markStaticNode(tree, key, isOnce);
3192
+ proxy(vm, keys[i]);
3177
3193
  }
3178
3194
  }
3195
+ // observe data
3196
+ observe(data, true /* asRootData */);
3197
+ }
3179
3198
 
3180
- function markStaticNode (node, key, isOnce) {
3181
- node.isStatic = true;
3182
- node.key = key;
3183
- node.isOnce = isOnce;
3184
- }
3185
-
3186
- // filter resolution helper
3187
- Vue.prototype._f = function resolveFilter (id) {
3188
- return resolveAsset(this.$options, 'filters', id, true) || identity
3189
- };
3199
+ var computedSharedDefinition = {
3200
+ enumerable: true,
3201
+ configurable: true,
3202
+ get: noop,
3203
+ set: noop
3204
+ };
3190
3205
 
3191
- // render v-for
3192
- Vue.prototype._l = function renderList (
3193
- val,
3194
- render
3195
- ) {
3196
- var ret, i, l, keys, key;
3197
- if (Array.isArray(val) || typeof val === 'string') {
3198
- ret = new Array(val.length);
3199
- for (i = 0, l = val.length; i < l; i++) {
3200
- ret[i] = render(val[i], i);
3201
- }
3202
- } else if (typeof val === 'number') {
3203
- ret = new Array(val);
3204
- for (i = 0; i < val; i++) {
3205
- ret[i] = render(i + 1, i);
3206
- }
3207
- } else if (isObject(val)) {
3208
- keys = Object.keys(val);
3209
- ret = new Array(keys.length);
3210
- for (i = 0, l = keys.length; i < l; i++) {
3211
- key = keys[i];
3212
- ret[i] = render(val[key], key, i);
3213
- }
3206
+ function initComputed (vm, computed) {
3207
+ for (var key in computed) {
3208
+ /* istanbul ignore if */
3209
+ if ("development" !== 'production' && key in vm) {
3210
+ warn(
3211
+ "existing instance property \"" + key + "\" will be " +
3212
+ "overwritten by a computed property with the same name.",
3213
+ vm
3214
+ );
3214
3215
  }
3215
- return ret
3216
- };
3217
-
3218
- // renderSlot
3219
- Vue.prototype._t = function (
3220
- name,
3221
- fallback,
3222
- props,
3223
- bindObject
3224
- ) {
3225
- var scopedSlotFn = this.$scopedSlots[name];
3226
- if (scopedSlotFn) { // scoped slot
3227
- props = props || {};
3228
- if (bindObject) {
3229
- extend(props, bindObject);
3230
- }
3231
- return scopedSlotFn(props) || fallback
3216
+ var userDef = computed[key];
3217
+ if (typeof userDef === 'function') {
3218
+ computedSharedDefinition.get = makeComputedGetter(userDef, vm);
3219
+ computedSharedDefinition.set = noop;
3232
3220
  } else {
3233
- var slotNodes = this.$slots[name];
3234
- // warn duplicate slot usage
3235
- if (slotNodes && "development" !== 'production') {
3236
- slotNodes._rendered && warn(
3237
- "Duplicate presence of slot \"" + name + "\" found in the same render tree " +
3238
- "- this will likely cause render errors.",
3239
- this
3240
- );
3241
- slotNodes._rendered = true;
3242
- }
3243
- return slotNodes || fallback
3221
+ computedSharedDefinition.get = userDef.get
3222
+ ? userDef.cache !== false
3223
+ ? makeComputedGetter(userDef.get, vm)
3224
+ : bind$1(userDef.get, vm)
3225
+ : noop;
3226
+ computedSharedDefinition.set = userDef.set
3227
+ ? bind$1(userDef.set, vm)
3228
+ : noop;
3229
+ }
3230
+ Object.defineProperty(vm, key, computedSharedDefinition);
3231
+ }
3232
+ }
3233
+
3234
+ function makeComputedGetter (getter, owner) {
3235
+ var watcher = new Watcher(owner, getter, noop, {
3236
+ lazy: true
3237
+ });
3238
+ return function computedGetter () {
3239
+ if (watcher.dirty) {
3240
+ watcher.evaluate();
3244
3241
  }
3245
- };
3242
+ if (Dep.target) {
3243
+ watcher.depend();
3244
+ }
3245
+ return watcher.value
3246
+ }
3247
+ }
3246
3248
 
3247
- // apply v-bind object
3248
- Vue.prototype._b = function bindProps (
3249
- data,
3250
- tag,
3251
- value,
3252
- asProp
3253
- ) {
3254
- if (value) {
3255
- if (!isObject(value)) {
3256
- "development" !== 'production' && warn(
3257
- 'v-bind without argument expects an Object or Array value',
3258
- this
3259
- );
3260
- } else {
3261
- if (Array.isArray(value)) {
3262
- value = toObject(value);
3263
- }
3264
- for (var key in value) {
3265
- if (key === 'class' || key === 'style') {
3266
- data[key] = value[key];
3267
- } else {
3268
- var hash = asProp || config.mustUseProp(tag, key)
3269
- ? data.domProps || (data.domProps = {})
3270
- : data.attrs || (data.attrs = {});
3271
- hash[key] = value[key];
3272
- }
3273
- }
3249
+ function initMethods (vm, methods) {
3250
+ for (var key in methods) {
3251
+ vm[key] = methods[key] == null ? noop : bind$1(methods[key], vm);
3252
+ if ("development" !== 'production' && methods[key] == null) {
3253
+ warn(
3254
+ "method \"" + key + "\" has an undefined value in the component definition. " +
3255
+ "Did you reference the function correctly?",
3256
+ vm
3257
+ );
3258
+ }
3259
+ }
3260
+ }
3261
+
3262
+ function initWatch (vm, watch) {
3263
+ for (var key in watch) {
3264
+ var handler = watch[key];
3265
+ if (Array.isArray(handler)) {
3266
+ for (var i = 0; i < handler.length; i++) {
3267
+ createWatcher(vm, key, handler[i]);
3274
3268
  }
3269
+ } else {
3270
+ createWatcher(vm, key, handler);
3275
3271
  }
3276
- return data
3272
+ }
3273
+ }
3274
+
3275
+ function createWatcher (vm, key, handler) {
3276
+ var options;
3277
+ if (isPlainObject(handler)) {
3278
+ options = handler;
3279
+ handler = handler.handler;
3280
+ }
3281
+ if (typeof handler === 'string') {
3282
+ handler = vm[handler];
3283
+ }
3284
+ vm.$watch(key, handler, options);
3285
+ }
3286
+
3287
+ function stateMixin (Vue) {
3288
+ // flow somehow has problems with directly declared definition object
3289
+ // when using Object.defineProperty, so we have to procedurally build up
3290
+ // the object here.
3291
+ var dataDef = {};
3292
+ dataDef.get = function () {
3293
+ return this._data
3277
3294
  };
3295
+ {
3296
+ dataDef.set = function (newData) {
3297
+ warn(
3298
+ 'Avoid replacing instance root $data. ' +
3299
+ 'Use nested data properties instead.',
3300
+ this
3301
+ );
3302
+ };
3303
+ }
3304
+ Object.defineProperty(Vue.prototype, '$data', dataDef);
3278
3305
 
3279
- // check v-on keyCodes
3280
- Vue.prototype._k = function checkKeyCodes (
3281
- eventKeyCode,
3282
- key,
3283
- builtInAlias
3306
+ Vue.prototype.$set = set$1;
3307
+ Vue.prototype.$delete = del;
3308
+
3309
+ Vue.prototype.$watch = function (
3310
+ expOrFn,
3311
+ cb,
3312
+ options
3284
3313
  ) {
3285
- var keyCodes = config.keyCodes[key] || builtInAlias;
3286
- if (Array.isArray(keyCodes)) {
3287
- return keyCodes.indexOf(eventKeyCode) === -1
3288
- } else {
3289
- return keyCodes !== eventKeyCode
3314
+ var vm = this;
3315
+ options = options || {};
3316
+ options.user = true;
3317
+ var watcher = new Watcher(vm, expOrFn, cb, options);
3318
+ if (options.immediate) {
3319
+ cb.call(vm, watcher.value);
3320
+ }
3321
+ return function unwatchFn () {
3322
+ watcher.teardown();
3290
3323
  }
3291
3324
  };
3292
3325
  }
3293
3326
 
3294
- function resolveSlots (
3295
- children,
3296
- context
3297
- ) {
3298
- var slots = {};
3299
- if (!children) {
3300
- return slots
3301
- }
3302
- var defaultSlot = [];
3303
- var name, child;
3304
- for (var i = 0, l = children.length; i < l; i++) {
3305
- child = children[i];
3306
- // named slots should only be respected if the vnode was rendered in the
3307
- // same context.
3308
- if ((child.context === context || child.functionalContext === context) &&
3309
- child.data && (name = child.data.slot)) {
3310
- var slot = (slots[name] || (slots[name] = []));
3311
- if (child.tag === 'template') {
3312
- slot.push.apply(slot, child.children);
3313
- } else {
3314
- slot.push(child);
3327
+ function proxy (vm, key) {
3328
+ if (!isReserved(key)) {
3329
+ Object.defineProperty(vm, key, {
3330
+ configurable: true,
3331
+ enumerable: true,
3332
+ get: function proxyGetter () {
3333
+ return vm._data[key]
3334
+ },
3335
+ set: function proxySetter (val) {
3336
+ vm._data[key] = val;
3315
3337
  }
3316
- } else {
3317
- defaultSlot.push(child);
3318
- }
3319
- }
3320
- // ignore single whitespace
3321
- if (defaultSlot.length && !(
3322
- defaultSlot.length === 1 &&
3323
- (defaultSlot[0].text === ' ' || defaultSlot[0].isComment)
3324
- )) {
3325
- slots.default = defaultSlot;
3338
+ });
3326
3339
  }
3327
- return slots
3328
3340
  }
3329
3341
 
3330
3342
  /* */
@@ -3359,10 +3371,13 @@ function initMixin (Vue) {
3359
3371
  vm._self = vm;
3360
3372
  initLifecycle(vm);
3361
3373
  initEvents(vm);
3374
+ initRender(vm);
3362
3375
  callHook(vm, 'beforeCreate');
3363
3376
  initState(vm);
3364
3377
  callHook(vm, 'created');
3365
- initRender(vm);
3378
+ if (vm.$options.el) {
3379
+ vm.$mount(vm.$options.el);
3380
+ }
3366
3381
  };
3367
3382
  }
3368
3383
 
@@ -3555,6 +3570,10 @@ function initAssetRegisters (Vue) {
3555
3570
 
3556
3571
  var patternTypes = [String, RegExp];
3557
3572
 
3573
+ function getComponentName (opts) {
3574
+ return opts && (opts.Ctor.options.name || opts.tag)
3575
+ }
3576
+
3558
3577
  function matches (pattern, name) {
3559
3578
  if (typeof pattern === 'string') {
3560
3579
  return pattern.split(',').indexOf(name) > -1
@@ -3563,22 +3582,64 @@ function matches (pattern, name) {
3563
3582
  }
3564
3583
  }
3565
3584
 
3585
+ function pruneCache (cache, filter) {
3586
+ for (var key in cache) {
3587
+ var cachedNode = cache[key];
3588
+ if (cachedNode) {
3589
+ var name = getComponentName(cachedNode.componentOptions);
3590
+ if (name && !filter(name)) {
3591
+ pruneCacheEntry(cachedNode);
3592
+ cache[key] = null;
3593
+ }
3594
+ }
3595
+ }
3596
+ }
3597
+
3598
+ function pruneCacheEntry (vnode) {
3599
+ if (vnode) {
3600
+ if (!vnode.componentInstance._inactive) {
3601
+ callHook(vnode.componentInstance, 'deactivated');
3602
+ }
3603
+ vnode.componentInstance.$destroy();
3604
+ }
3605
+ }
3606
+
3566
3607
  var KeepAlive = {
3567
3608
  name: 'keep-alive',
3568
3609
  abstract: true,
3610
+
3569
3611
  props: {
3570
3612
  include: patternTypes,
3571
3613
  exclude: patternTypes
3572
3614
  },
3615
+
3573
3616
  created: function created () {
3574
3617
  this.cache = Object.create(null);
3575
3618
  },
3619
+
3620
+ destroyed: function destroyed () {
3621
+ var this$1 = this;
3622
+
3623
+ for (var key in this.cache) {
3624
+ pruneCacheEntry(this$1.cache[key]);
3625
+ }
3626
+ },
3627
+
3628
+ watch: {
3629
+ include: function include (val) {
3630
+ pruneCache(this.cache, function (name) { return matches(val, name); });
3631
+ },
3632
+ exclude: function exclude (val) {
3633
+ pruneCache(this.cache, function (name) { return !matches(val, name); });
3634
+ }
3635
+ },
3636
+
3576
3637
  render: function render () {
3577
3638
  var vnode = getFirstComponentChild(this.$slots.default);
3578
- if (vnode && vnode.componentOptions) {
3579
- var opts = vnode.componentOptions;
3639
+ var componentOptions = vnode && vnode.componentOptions;
3640
+ if (componentOptions) {
3580
3641
  // check pattern
3581
- var name = opts.Ctor.options.name || opts.tag;
3642
+ var name = getComponentName(componentOptions);
3582
3643
  if (name && (
3583
3644
  (this.include && !matches(this.include, name)) ||
3584
3645
  (this.exclude && matches(this.exclude, name))
@@ -3588,25 +3649,16 @@ var KeepAlive = {
3588
3649
  var key = vnode.key == null
3589
3650
  // same constructor may get registered as different local components
3590
3651
  // so cid alone is not enough (#3269)
3591
- ? opts.Ctor.cid + (opts.tag ? ("::" + (opts.tag)) : '')
3652
+ ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
3592
3653
  : vnode.key;
3593
3654
  if (this.cache[key]) {
3594
- vnode.child = this.cache[key].child;
3655
+ vnode.componentInstance = this.cache[key].componentInstance;
3595
3656
  } else {
3596
3657
  this.cache[key] = vnode;
3597
3658
  }
3598
3659
  vnode.data.keepAlive = true;
3599
3660
  }
3600
3661
  return vnode
3601
- },
3602
- destroyed: function destroyed () {
3603
- var this$1 = this;
3604
-
3605
- for (var key in this.cache) {
3606
- var vnode = this$1.cache[key];
3607
- callHook(vnode.child, 'deactivated');
3608
- vnode.child.$destroy();
3609
- }
3610
3662
  }
3611
3663
  };
3612
3664
 
@@ -3656,15 +3708,15 @@ Object.defineProperty(Vue$3.prototype, '$isServer', {
3656
3708
  get: isServerRendering
3657
3709
  });
3658
3710
 
3659
- Vue$3.version = '2.1.8';
3711
+ Vue$3.version = '2.1.10';
3660
3712
 
3661
3713
  /* */
3662
3714
 
3663
3715
  // attributes that should be using props for binding
3664
3716
  var acceptValue = makeMap('input,textarea,option,select');
3665
- var mustUseProp = function (tag, attr) {
3717
+ var mustUseProp = function (tag, type, attr) {
3666
3718
  return (
3667
- (attr === 'value' && acceptValue(tag)) ||
3719
+ (attr === 'value' && acceptValue(tag)) && type !== 'button' ||
3668
3720
  (attr === 'selected' && tag === 'option') ||
3669
3721
  (attr === 'checked' && tag === 'input') ||
3670
3722
  (attr === 'muted' && tag === 'video')
@@ -3702,8 +3754,8 @@ function genClassForVnode (vnode) {
3702
3754
  var data = vnode.data;
3703
3755
  var parentNode = vnode;
3704
3756
  var childNode = vnode;
3705
- while (childNode.child) {
3706
- childNode = childNode.child._vnode;
3757
+ while (childNode.componentInstance) {
3758
+ childNode = childNode.componentInstance._vnode;
3707
3759
  if (childNode.data) {
3708
3760
  data = mergeClassData(childNode.data, data);
3709
3761
  }
@@ -3955,7 +4007,7 @@ function registerRef (vnode, isRemoval) {
3955
4007
  if (!key) { return }
3956
4008
 
3957
4009
  var vm = vnode.context;
3958
- var ref = vnode.child || vnode.elm;
4010
+ var ref = vnode.componentInstance || vnode.elm;
3959
4011
  var refs = vm.$refs;
3960
4012
  if (isRemoval) {
3961
4013
  if (Array.isArray(refs[key])) {
@@ -4115,7 +4167,7 @@ function createPatchFunction (backend) {
4115
4167
  function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
4116
4168
  var i = vnode.data;
4117
4169
  if (isDef(i)) {
4118
- var isReactivated = isDef(vnode.child) && i.keepAlive;
4170
+ var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
4119
4171
  if (isDef(i = i.hook) && isDef(i = i.init)) {
4120
4172
  i(vnode, false /* hydrating */, parentElm, refElm);
4121
4173
  }
@@ -4123,7 +4175,7 @@ function createPatchFunction (backend) {
4123
4175
  // it should've created a child instance and mounted it. the child
4124
4176
  // component also has set the placeholder vnode's elm.
4125
4177
  // in that case we can just return the element and be done.
4126
- if (isDef(vnode.child)) {
4178
+ if (isDef(vnode.componentInstance)) {
4127
4179
  initComponent(vnode, insertedVnodeQueue);
4128
4180
  if (isReactivated) {
4129
4181
  reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
@@ -4133,6 +4185,23 @@ function createPatchFunction (backend) {
4133
4185
  }
4134
4186
  }
4135
4187
 
4188
+ function initComponent (vnode, insertedVnodeQueue) {
4189
+ if (vnode.data.pendingInsert) {
4190
+ insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
4191
+ }
4192
+ vnode.elm = vnode.componentInstance.$el;
4193
+ if (isPatchable(vnode)) {
4194
+ invokeCreateHooks(vnode, insertedVnodeQueue);
4195
+ setScope(vnode);
4196
+ } else {
4197
+ // empty component root.
4198
+ // skip all element-related modules except for ref (#3455)
4199
+ registerRef(vnode);
4200
+ // make sure to invoke the insert hook
4201
+ insertedVnodeQueue.push(vnode);
4202
+ }
4203
+ }
4204
+
4136
4205
  function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
4137
4206
  var i;
4138
4207
  // hack for #4339: a reactivated component with inner transition
@@ -4140,8 +4209,8 @@ function createPatchFunction (backend) {
4140
4209
  // again. It's not ideal to involve module-specific logic in here but
4141
4210
  // there doesn't seem to be a better way to do it.
4142
4211
  var innerNode = vnode;
4143
- while (innerNode.child) {
4144
- innerNode = innerNode.child._vnode;
4212
+ while (innerNode.componentInstance) {
4213
+ innerNode = innerNode.componentInstance._vnode;
4145
4214
  if (isDef(i = innerNode.data) && isDef(i = i.transition)) {
4146
4215
  for (i = 0; i < cbs.activate.length; ++i) {
4147
4216
  cbs.activate[i](emptyNode, innerNode);
@@ -4176,8 +4245,8 @@ function createPatchFunction (backend) {
4176
4245
  }
4177
4246
 
4178
4247
  function isPatchable (vnode) {
4179
- while (vnode.child) {
4180
- vnode = vnode.child._vnode;
4248
+ while (vnode.componentInstance) {
4249
+ vnode = vnode.componentInstance._vnode;
4181
4250
  }
4182
4251
  return isDef(vnode.tag)
4183
4252
  }
@@ -4193,23 +4262,6 @@ function createPatchFunction (backend) {
4193
4262
  }
4194
4263
  }
4195
4264
 
4196
- function initComponent (vnode, insertedVnodeQueue) {
4197
- if (vnode.data.pendingInsert) {
4198
- insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
4199
- }
4200
- vnode.elm = vnode.child.$el;
4201
- if (isPatchable(vnode)) {
4202
- invokeCreateHooks(vnode, insertedVnodeQueue);
4203
- setScope(vnode);
4204
- } else {
4205
- // empty component root.
4206
- // skip all element-related modules except for ref (#3455)
4207
- registerRef(vnode);
4208
- // make sure to invoke the insert hook
4209
- insertedVnodeQueue.push(vnode);
4210
- }
4211
- }
4212
-
4213
4265
  // set scope id attribute for scoped CSS.
4214
4266
  // this is implemented as a special case to avoid the overhead
4215
4267
  // of going through the normal attribute patching process.
@@ -4271,7 +4323,7 @@ function createPatchFunction (backend) {
4271
4323
  rm.listeners += listeners;
4272
4324
  }
4273
4325
  // recursively invoke hooks on child component root node
4274
- if (isDef(i = vnode.child) && isDef(i = i._vnode) && isDef(i.data)) {
4326
+ if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
4275
4327
  removeAndInvokeRemoveHook(i, rm);
4276
4328
  }
4277
4329
  for (i = 0; i < cbs.remove.length; ++i) {
@@ -4375,7 +4427,7 @@ function createPatchFunction (backend) {
4375
4427
  vnode.key === oldVnode.key &&
4376
4428
  (vnode.isCloned || vnode.isOnce)) {
4377
4429
  vnode.elm = oldVnode.elm;
4378
- vnode.child = oldVnode.child;
4430
+ vnode.componentInstance = oldVnode.componentInstance;
4379
4431
  return
4380
4432
  }
4381
4433
  var i;
@@ -4440,7 +4492,7 @@ function createPatchFunction (backend) {
4440
4492
  var children = vnode.children;
4441
4493
  if (isDef(data)) {
4442
4494
  if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }
4443
- if (isDef(i = vnode.child)) {
4495
+ if (isDef(i = vnode.componentInstance)) {
4444
4496
  // child component. it should have hydrated its own tree.
4445
4497
  initComponent(vnode, insertedVnodeQueue);
4446
4498
  return true
@@ -4506,7 +4558,6 @@ function createPatchFunction (backend) {
4506
4558
  return
4507
4559
  }
4508
4560
 
4509
- var elm, parent;
4510
4561
  var isInitialPatch = false;
4511
4562
  var insertedVnodeQueue = [];
4512
4563
 
@@ -4547,9 +4598,17 @@ function createPatchFunction (backend) {
4547
4598
  oldVnode = emptyNodeAt(oldVnode);
4548
4599
  }
4549
4600
  // replacing existing element
4550
- elm = oldVnode.elm;
4551
- parent = nodeOps.parentNode(elm);
4552
- createElm(vnode, insertedVnodeQueue, parent, nodeOps.nextSibling(elm));
4601
+ var oldElm = oldVnode.elm;
4602
+ var parentElm$1 = nodeOps.parentNode(oldElm);
4603
+ createElm(
4604
+ vnode,
4605
+ insertedVnodeQueue,
4606
+ // extremely rare edge case: do not insert if old element is in a
4607
+ // leaving transition. Only happens when combining transition +
4608
+ // keep-alive + HOCs. (#4590)
4609
+ oldElm._leaveCb ? null : parentElm$1,
4610
+ nodeOps.nextSibling(oldElm)
4611
+ );
4553
4612
 
4554
4613
  if (vnode.parent) {
4555
4614
  // component root element replaced.
@@ -4566,8 +4625,8 @@ function createPatchFunction (backend) {
4566
4625
  }
4567
4626
  }
4568
4627
 
4569
- if (parent !== null) {
4570
- removeVnodes(parent, [oldVnode], 0, 0);
4628
+ if (parentElm$1 !== null) {
4629
+ removeVnodes(parentElm$1, [oldVnode], 0, 0);
4571
4630
  } else if (isDef(oldVnode.tag)) {
4572
4631
  invokeDestroyHook(oldVnode);
4573
4632
  }
@@ -4797,11 +4856,17 @@ var klass = {
4797
4856
 
4798
4857
  var target$1;
4799
4858
 
4800
- function add$2 (event, handler, once, capture) {
4859
+ function add$2 (
4860
+ event,
4861
+ handler,
4862
+ once,
4863
+ capture
4864
+ ) {
4801
4865
  if (once) {
4802
4866
  var oldHandler = handler;
4867
+ var _target = target$1; // save current target element in closure
4803
4868
  handler = function (ev) {
4804
- remove$3(event, handler, capture);
4869
+ remove$3(event, handler, capture, _target);
4805
4870
  arguments.length === 1
4806
4871
  ? oldHandler(ev)
4807
4872
  : oldHandler.apply(null, arguments);
@@ -4810,8 +4875,13 @@ function add$2 (event, handler, once, capture) {
4810
4875
  target$1.addEventListener(event, handler, capture);
4811
4876
  }
4812
4877
 
4813
- function remove$3 (event, handler, capture) {
4814
- target$1.removeEventListener(event, handler, capture);
4878
+ function remove$3 (
4879
+ event,
4880
+ handler,
4881
+ capture,
4882
+ _target
4883
+ ) {
4884
+ (_target || target$1).removeEventListener(event, handler, capture);
4815
4885
  }
4816
4886
 
4817
4887
  function updateDOMListeners (oldVnode, vnode) {
@@ -4858,13 +4928,7 @@ function updateDOMProps (oldVnode, vnode) {
4858
4928
  if (vnode.children) { vnode.children.length = 0; }
4859
4929
  if (cur === oldProps[key]) { continue }
4860
4930
  }
4861
- // #4521: if a click event triggers update before the change event is
4862
- // dispatched on a checkbox/radio input, the input's checked state will
4863
- // be reset and fail to trigger another update.
4864
- /* istanbul ignore next */
4865
- if (key === 'checked' && !isDirty(elm, cur)) {
4866
- continue
4867
- }
4931
+
4868
4932
  if (key === 'value') {
4869
4933
  // store value as _value as well since
4870
4934
  // non-string values will be stringified
@@ -4888,17 +4952,15 @@ function shouldUpdateValue (
4888
4952
  vnode,
4889
4953
  checkVal
4890
4954
  ) {
4891
- if (!elm.composing && (
4955
+ return (!elm.composing && (
4892
4956
  vnode.tag === 'option' ||
4893
4957
  isDirty(elm, checkVal) ||
4894
4958
  isInputChanged(vnode, checkVal)
4895
- )) {
4896
- return true
4897
- }
4898
- return false
4959
+ ))
4899
4960
  }
4900
4961
 
4901
4962
  function isDirty (elm, checkVal) {
4963
+ // return true when textbox (.number and .trim) loses focus and its value is not equal to the updated value
4902
4964
  return document.activeElement !== elm && elm.value !== checkVal
4903
4965
  }
4904
4966
 
@@ -4965,8 +5027,8 @@ function getStyle (vnode, checkChild) {
4965
5027
 
4966
5028
  if (checkChild) {
4967
5029
  var childNode = vnode;
4968
- while (childNode.child) {
4969
- childNode = childNode.child._vnode;
5030
+ while (childNode.componentInstance) {
5031
+ childNode = childNode.componentInstance._vnode;
4970
5032
  if (childNode.data && (styleData = normalizeStyleData(childNode.data))) {
4971
5033
  extend(res, styleData);
4972
5034
  }
@@ -5140,7 +5202,11 @@ if (hasTransition) {
5140
5202
  }
5141
5203
  }
5142
5204
 
5143
- var raf = (inBrowser && window.requestAnimationFrame) || setTimeout;
5205
+ // binding to window is necessary to make hot reload work in IE in strict mode
5206
+ var raf = inBrowser && window.requestAnimationFrame
5207
+ ? window.requestAnimationFrame.bind(window)
5208
+ : setTimeout;
5209
+
5144
5210
  function nextFrame (fn) {
5145
5211
  raf(function () {
5146
5212
  raf(fn);
@@ -5348,7 +5414,6 @@ function enter (vnode, toggleDisplay) {
5348
5414
  var parent = el.parentNode;
5349
5415
  var pendingNode = parent && parent._pending && parent._pending[vnode.key];
5350
5416
  if (pendingNode &&
5351
- pendingNode.context === vnode.context &&
5352
5417
  pendingNode.tag === vnode.tag &&
5353
5418
  pendingNode.elm._leaveCb) {
5354
5419
  pendingNode.elm._leaveCb();
@@ -5686,8 +5751,8 @@ function trigger (el, type) {
5686
5751
 
5687
5752
  // recursively search for possible transition defined inside the component root
5688
5753
  function locateNode (vnode) {
5689
- return vnode.child && (!vnode.data || !vnode.data.transition)
5690
- ? locateNode(vnode.child._vnode)
5754
+ return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
5755
+ ? locateNode(vnode.componentInstance._vnode)
5691
5756
  : vnode
5692
5757
  }
5693
5758
 
@@ -5822,6 +5887,7 @@ var Transition = {
5822
5887
  name: 'transition',
5823
5888
  props: transitionProps,
5824
5889
  abstract: true,
5890
+
5825
5891
  render: function render (h) {
5826
5892
  var this$1 = this;
5827
5893
 
@@ -5877,9 +5943,15 @@ var Transition = {
5877
5943
  return placeholder(h, rawChild)
5878
5944
  }
5879
5945
 
5880
- var key = child.key = child.key == null || child.isStatic
5881
- ? ("__v" + (child.tag + this._uid) + "__")
5882
- : child.key;
5946
+ // ensure a key that is unique to the vnode type and to this transition
5947
+ // component instance. This key will be used to remove pending leaving nodes
5948
+ // during entering.
5949
+ var id = "__transition-" + (this._uid) + "-";
5950
+ var key = child.key = child.key == null
5951
+ ? id + child.tag
5952
+ : isPrimitive(child.key)
5953
+ ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
5954
+ : child.key;
5883
5955
  var data = (child.data || (child.data = {})).transition = extractTransitionData(this);
5884
5956
  var oldRawChild = this._vnode;
5885
5957
  var oldChild = getRealChild(oldRawChild);
@@ -6226,22 +6298,6 @@ var IS_REGEX_CAPTURING_BROKEN = false;
6226
6298
 
6227
6299
  // Special Elements (can contain anything)
6228
6300
  var isScriptOrStyle = makeMap('script,style', true);
6229
- var hasLang = function (attr) { return attr.name === 'lang' && attr.value !== 'html'; };
6230
- var isSpecialTag = function (tag, isSFC, stack) {
6231
- if (isScriptOrStyle(tag)) {
6232
- return true
6233
- }
6234
- if (isSFC && stack.length === 1) {
6235
- // top-level template that has no pre-processor
6236
- if (tag === 'template' && !stack[0].attrs.some(hasLang)) {
6237
- return false
6238
- } else {
6239
- return true
6240
- }
6241
- }
6242
- return false
6243
- };
6244
-
6245
6301
  var reCache = {};
6246
6302
 
6247
6303
  var ltRE = /&lt;/g;
@@ -6270,7 +6326,7 @@ function parseHTML (html, options) {
6270
6326
  while (html) {
6271
6327
  last = html;
6272
6328
  // Make sure we're not in a script or style element
6273
- if (!lastTag || !isSpecialTag(lastTag, options.sfc, stack)) {
6329
+ if (!lastTag || !isScriptOrStyle(lastTag)) {
6274
6330
  var textEnd = html.indexOf('<');
6275
6331
  if (textEnd === 0) {
6276
6332
  // Comment:
@@ -6305,7 +6361,7 @@ function parseHTML (html, options) {
6305
6361
  if (endTagMatch) {
6306
6362
  var curIndex = index;
6307
6363
  advance(endTagMatch[0].length);
6308
- parseEndTag(endTagMatch[0], endTagMatch[1], curIndex, index);
6364
+ parseEndTag(endTagMatch[1], curIndex, index);
6309
6365
  continue
6310
6366
  }
6311
6367
 
@@ -6362,7 +6418,7 @@ function parseHTML (html, options) {
6362
6418
  });
6363
6419
  index += html.length - rest.length;
6364
6420
  html = rest;
6365
- parseEndTag('</' + stackedTag + '>', stackedTag, index - endTagLength, index);
6421
+ parseEndTag(stackedTag, index - endTagLength, index);
6366
6422
  }
6367
6423
 
6368
6424
  if (html === last && options.chars) {
@@ -6408,10 +6464,10 @@ function parseHTML (html, options) {
6408
6464
 
6409
6465
  if (expectHTML) {
6410
6466
  if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
6411
- parseEndTag('', lastTag);
6467
+ parseEndTag(lastTag);
6412
6468
  }
6413
6469
  if (canBeLeftOpenTag(tagName) && lastTag === tagName) {
6414
- parseEndTag('', tagName);
6470
+ parseEndTag(tagName);
6415
6471
  }
6416
6472
  }
6417
6473
 
@@ -6438,7 +6494,7 @@ function parseHTML (html, options) {
6438
6494
  }
6439
6495
 
6440
6496
  if (!unary) {
6441
- stack.push({ tag: tagName, attrs: attrs });
6497
+ stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });
6442
6498
  lastTag = tagName;
6443
6499
  unarySlash = '';
6444
6500
  }
@@ -6448,16 +6504,19 @@ function parseHTML (html, options) {
6448
6504
  }
6449
6505
  }
6450
6506
 
6451
- function parseEndTag (tag, tagName, start, end) {
6452
- var pos;
6507
+ function parseEndTag (tagName, start, end) {
6508
+ var pos, lowerCasedTagName;
6453
6509
  if (start == null) { start = index; }
6454
6510
  if (end == null) { end = index; }
6455
6511
 
6512
+ if (tagName) {
6513
+ lowerCasedTagName = tagName.toLowerCase();
6514
+ }
6515
+
6456
6516
  // Find the closest opened tag of the same type
6457
6517
  if (tagName) {
6458
- var needle = tagName.toLowerCase();
6459
6518
  for (pos = stack.length - 1; pos >= 0; pos--) {
6460
- if (stack[pos].tag.toLowerCase() === needle) {
6519
+ if (stack[pos].lowerCasedTag === lowerCasedTagName) {
6461
6520
  break
6462
6521
  }
6463
6522
  }
@@ -6477,11 +6536,11 @@ function parseHTML (html, options) {
6477
6536
  // Remove the open elements from the stack
6478
6537
  stack.length = pos;
6479
6538
  lastTag = pos && stack[pos - 1].tag;
6480
- } else if (tagName.toLowerCase() === 'br') {
6539
+ } else if (lowerCasedTagName === 'br') {
6481
6540
  if (options.start) {
6482
6541
  options.start(tagName, [], true, start, end);
6483
6542
  }
6484
- } else if (tagName.toLowerCase() === 'p') {
6543
+ } else if (lowerCasedTagName === 'p') {
6485
6544
  if (options.start) {
6486
6545
  options.start(tagName, [], false, start, end);
6487
6546
  }
@@ -6591,7 +6650,7 @@ function wrapFilter (exp, filter) {
6591
6650
  /* */
6592
6651
 
6593
6652
  var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g;
6594
- var regexEscapeRE = /[-.*+?^${}()|[\]/\\]/g;
6653
+ var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
6595
6654
 
6596
6655
  var buildRegex = cached(function (delimiters) {
6597
6656
  var open = delimiters[0].replace(regexEscapeRE, '\\$&');
@@ -7244,7 +7303,7 @@ function processAttrs (el) {
7244
7303
  name = camelize(name);
7245
7304
  }
7246
7305
  }
7247
- if (isProp || platformMustUseProp(el.tag, name)) {
7306
+ if (isProp || platformMustUseProp(el.tag, el.attrsMap.type, name)) {
7248
7307
  addProp(el, name, value);
7249
7308
  } else {
7250
7309
  addAttr(el, name, value);
@@ -7278,15 +7337,6 @@ function processAttrs (el) {
7278
7337
  }
7279
7338
  }
7280
7339
  addAttr(el, name, JSON.stringify(value));
7281
- // #4530 also bind special attributes as props even if they are static
7282
- // so that patches between dynamic/static are consistent
7283
- if (platformMustUseProp(el.tag, name)) {
7284
- if (name === 'value') {
7285
- addProp(el, name, JSON.stringify(value));
7286
- } else {
7287
- addProp(el, name, 'true');
7288
- }
7289
- }
7290
7340
  }
7291
7341
  }
7292
7342
  }
@@ -7863,13 +7913,16 @@ function getNormalizationType (children) {
7863
7913
  var res = 0;
7864
7914
  for (var i = 0; i < children.length; i++) {
7865
7915
  var el = children[i];
7916
+ if (el.type !== 1) {
7917
+ continue
7918
+ }
7866
7919
  if (needsNormalization(el) ||
7867
- (el.if && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {
7920
+ (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {
7868
7921
  res = 2;
7869
7922
  break
7870
7923
  }
7871
7924
  if (maybeComponent(el) ||
7872
- (el.if && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {
7925
+ (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {
7873
7926
  res = 1;
7874
7927
  }
7875
7928
  }
@@ -7877,11 +7930,11 @@ function getNormalizationType (children) {
7877
7930
  }
7878
7931
 
7879
7932
  function needsNormalization (el) {
7880
- return el.for || el.tag === 'template' || el.tag === 'slot'
7933
+ return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'
7881
7934
  }
7882
7935
 
7883
7936
  function maybeComponent (el) {
7884
- return el.type === 1 && !isPlatformReservedTag$1(el.tag)
7937
+ return !isPlatformReservedTag$1(el.tag)
7885
7938
  }
7886
7939
 
7887
7940
  function genNode (node) {
@@ -8184,7 +8237,7 @@ function genCheckboxModel (
8184
8237
  : (":_q(" + value + "," + trueValueBinding + ")")
8185
8238
  )
8186
8239
  );
8187
- addHandler(el, 'change',
8240
+ addHandler(el, 'click',
8188
8241
  "var $$a=" + value + "," +
8189
8242
  '$$el=$event.target,' +
8190
8243
  "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" +
@@ -8215,7 +8268,7 @@ function genRadioModel (
8215
8268
  var valueBinding = getBindingAttr(el, 'value') || 'null';
8216
8269
  valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding;
8217
8270
  addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")"));
8218
- addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);
8271
+ addHandler(el, 'click', genAssignmentCode(value, valueBinding), null, true);
8219
8272
  }
8220
8273
 
8221
8274
  function genDefaultModel (