vuejs 1.0.36 → 1.0.37

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 (