vuejs-rails 2.3.2 → 2.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Readme.md +3 -3
- data/lib/vuejs-rails.rb +1 -1
- data/lib/vuejs-rails/version.rb +1 -1
- data/vendor/assets/javascripts/dist/vue-resource.js +53 -29
- data/vendor/assets/javascripts/dist/vue-resource.min.js +2 -2
- data/vendor/assets/javascripts/dist/vue-router.js +193 -148
- data/vendor/assets/javascripts/dist/vue-router.min.js +2 -2
- data/vendor/assets/javascripts/dist/vue.js +1059 -605
- data/vendor/assets/javascripts/dist/vue.min.js +2 -4
- metadata +2 -2
@@ -1,6 +1,6 @@
|
|
1
1
|
/**
|
2
|
-
* vue-router v2.
|
2
|
+
* vue-router v2.7.0
|
3
3
|
* (c) 2017 Evan You
|
4
4
|
* @license MIT
|
5
5
|
*/
|
6
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.VueRouter=e()}(this,function(){"use strict";function t(t,e){}function e(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0}}function n(t,e,n){void 0===e&&(e={});var o,i=n||r;try{o=i(t||"")}catch(t){o={}}for(var a in e){var u=e[a];o[a]=Array.isArray(u)?u.slice():u}return o}function r(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=$t(n.shift()),o=n.length>0?$t(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]}),e):e}function o(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return _t(e);if(Array.isArray(n)){var r=[];return n.slice().forEach(function(t){void 0!==t&&(null===t?r.push(_t(e)):r.push(_t(e)+"="+_t(t)))}),r.join("&")}return _t(e)+"="+_t(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}function i(t,e,n,r){var o=r&&r.options.stringifyQuery,i={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:e.query||{},params:e.params||{},fullPath:u(e,o),matched:t?a(t):[]};return n&&(i.redirectedFrom=u(n,o)),Object.freeze(i)}function a(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function u(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var i=t.hash;void 0===i&&(i="");var a=e||o;return(n||"/")+a(r)+i}function c(t,e){return e===qt?t===e:!!e&&(t.path&&e.path?t.path.replace(St,"")===e.path.replace(St,"")&&t.hash===e.hash&&s(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&s(t.query,e.query)&&s(t.params,e.params)))}function s(t,e){void 0===t&&(t={}),void 0===e&&(e={});var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){return String(t[n])===String(e[n])})}function p(t,e){return 0===t.path.replace(St,"/").indexOf(e.path.replace(St,"/"))&&(!e.hash||t.hash===e.hash)&&f(t.query,e.query)}function f(t,e){for(var n in e)if(!(n in t))return!1;return!0}function h(t){if(!(t.metaKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function l(t){if(t)for(var e,n=0;n<t.length;n++){if(e=t[n],"a"===e.tag)return e;if(e.children&&(e=l(e.children)))return e}}function d(t){if(!d.installed){d.installed=!0,Rt=t,Object.defineProperty(t.prototype,"$router",{get:function(){return this.$root._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this.$root._route}});var e=function(t){return void 0!==t},n=function(t,n){var r=t.$options._parentVnode;e(r)&&e(r=r.data)&&e(r=r.registerRouteInstance)&&r(t,n)};t.mixin({beforeCreate:function(){e(this.$options.router)&&(this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)),n(this,this)},destroyed:function(){n(this)}}),t.component("router-view",Ct),t.component("router-link",Ut);var r=t.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.created}}function y(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;var o=e.split("/");n&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a<i.length;a++){var u=i[a];".."===u?o.pop():"."!==u&&o.push(u)}return""!==o[0]&&o.unshift(""),o.join("/")}function v(t){var e="",n="",r=t.indexOf("#");r>=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}function m(t){return t.replace(/\/\//g,"/")}function g(t,e){for(var n,r=[],o=0,i=0,a="",u=e&&e.delimiter||"/";null!=(n=Kt.exec(t));){var c=n[0],s=n[1],p=n.index;if(a+=t.slice(i,p),i=p+c.length,s)a+=s[1];else{var f=t[i],h=n[2],l=n[3],d=n[4],y=n[5],v=n[6],m=n[7];a&&(r.push(a),a="");var g=null!=h&&null!=f&&f!==h,w="+"===v||"*"===v,b="?"===v||"*"===v,x=n[2]||u,k=d||y;r.push({name:l||o++,prefix:h||"",delimiter:x,optional:b,repeat:w,partial:g,asterisk:!!m,pattern:k?O(k):m?".*":"[^"+E(x)+"]+?"})}}return i<t.length&&(a+=t.substr(i)),a&&r.push(a),r}function w(t,e){return k(g(t,e))}function b(t){return encodeURI(t).replace(/[\/?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function x(t){return encodeURI(t).replace(/[?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function k(t){for(var e=new Array(t.length),n=0;n<t.length;n++)"object"==typeof t[n]&&(e[n]=new RegExp("^(?:"+t[n].pattern+")$"));return function(n,r){for(var o="",i=n||{},a=r||{},u=a.pretty?b:encodeURIComponent,c=0;c<t.length;c++){var s=t[c];if("string"!=typeof s){var p,f=i[s.name];if(null==f){if(s.optional){s.partial&&(o+=s.prefix);continue}throw new TypeError('Expected "'+s.name+'" to be defined')}if(Vt(f)){if(!s.repeat)throw new TypeError('Expected "'+s.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(s.optional)continue;throw new TypeError('Expected "'+s.name+'" to not be empty')}for(var h=0;h<f.length;h++){if(p=u(f[h]),!e[c].test(p))throw new TypeError('Expected all "'+s.name+'" to match "'+s.pattern+'", but received `'+JSON.stringify(p)+"`");o+=(0===h?s.prefix:s.delimiter)+p}}else{if(p=s.asterisk?x(f):u(f),!e[c].test(p))throw new TypeError('Expected "'+s.name+'" to match "'+s.pattern+'", but received "'+p+'"');o+=s.prefix+p}}else o+=s}return o}}function E(t){return t.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function O(t){return t.replace(/([=!:$\/()])/g,"\\$1")}function R(t,e){return t.keys=e,t}function C(t){return t.sensitive?"":"i"}function A(t,e){var n=t.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)e.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return R(t,e)}function j(t,e,n){for(var r=[],o=0;o<t.length;o++)r.push($(t[o],e,n).source);var i=new RegExp("(?:"+r.join("|")+")",C(n));return R(i,e)}function T(t,e,n){return _(g(t,n),e,n)}function _(t,e,n){Vt(e)||(n=e||n,e=[]),n=n||{};for(var r=n.strict,o=n.end!==!1,i="",a=0;a<t.length;a++){var u=t[a];if("string"==typeof u)i+=E(u);else{var c=E(u.prefix),s="(?:"+u.pattern+")";e.push(u),u.repeat&&(s+="(?:"+c+s+")*"),s=u.optional?u.partial?c+"("+s+")?":"(?:"+c+"("+s+"))?":c+"("+s+")",i+=s}}var p=E(n.delimiter||"/"),f=i.slice(-p.length)===p;return r||(i=(f?i.slice(0,-p.length):i)+"(?:"+p+"(?=$))?"),i+=o?"$":r&&f?"":"(?="+p+"|$)",R(new RegExp("^"+i,C(n)),e)}function $(t,e,n){return Vt(e)||(n=e||n,e=[]),n=n||{},t instanceof RegExp?A(t,e):Vt(t)?j(t,e,n):T(t,e,n)}function S(t,e,n){try{var r=Jt[t]||(Jt[t]=zt.compile(t));return r(e||{},{pretty:!0})}catch(t){return""}}function q(t,e,n,r){var o=e||[],i=n||Object.create(null),a=r||Object.create(null);t.forEach(function(t){L(o,i,a,t)});for(var u=0,c=o.length;u<c;u++)"*"===o[u]&&(o.push(o.splice(u,1)[0]),c--,u--);return{pathList:o,pathMap:i,nameMap:a}}function L(t,e,n,r,o,i){var a=r.path,u=r.name,c=U(a,o),s={path:c,regex:P(c),components:r.components||{default:r.component},instances:{},name:u,parent:o,matchAs:i,redirect:r.redirect,beforeEnter:r.beforeEnter,meta:r.meta||{},props:null==r.props?{}:r.components?r.props:{default:r.props}};if(r.children&&r.children.forEach(function(r){var o=i?m(i+"/"+r.path):void 0;L(t,e,n,r,s,o)}),void 0!==r.alias)if(Array.isArray(r.alias))r.alias.forEach(function(i){var a={path:i,children:r.children};L(t,e,n,a,o,s.path)});else{var p={path:r.alias,children:r.children};L(t,e,n,p,o,s.path)}e[s.path]||(t.push(s.path),e[s.path]=s),u&&(n[u]||(n[u]=s))}function P(t){var e=zt(t);return e}function U(t,e){return t=t.replace(/\/$/,""),"/"===t[0]?t:null==e?t:m(e.path+"/"+t)}function H(t,e,r,o){var i="string"==typeof t?{path:t}:t;if(i.name||i._normalized)return i;if(!i.path&&i.params&&e){i=I({},i),i._normalized=!0;var a=I(I({},e.params),i.params);if(e.name)i.name=e.name,i.params=a;else if(e.matched){var u=e.matched[e.matched.length-1].path;i.path=S(u,a,"path "+e.path)}return i}var c=v(i.path||""),s=e&&e.path||"/",p=c.path?y(c.path,s,r||i.append):s,f=n(c.query,i.query,o&&o.options.parseQuery),h=i.hash||c.hash;return h&&"#"!==h.charAt(0)&&(h="#"+h),{_normalized:!0,path:p,query:f,hash:h}}function I(t,e){for(var n in e)t[n]=e[n];return t}function V(t,e){function n(t){q(t,s,p,f)}function r(t,n,r){var o=H(t,n,!1,e),i=o.name;if(i){var a=f[i],c=a.regex.keys.filter(function(t){return!t.optional}).map(function(t){return t.name});if("object"!=typeof o.params&&(o.params={}),n&&"object"==typeof n.params)for(var h in n.params)!(h in o.params)&&c.indexOf(h)>-1&&(o.params[h]=n.params[h]);if(a)return o.path=S(a.path,o.params,'named route "'+i+'"'),u(a,o,r)}else if(o.path){o.params={};for(var l=0;l<s.length;l++){var d=s[l],y=p[d];if(z(y.regex,o.path,o.params))return u(y,o,r)}}return u(null,o)}function o(t,n){var o=t.redirect,a="function"==typeof o?o(i(t,n,null,e)):o;if("string"==typeof a&&(a={path:a}),!a||"object"!=typeof a)return u(null,n);var c=a,s=c.name,p=c.path,h=n.query,l=n.hash,d=n.params;if(h=c.hasOwnProperty("query")?c.query:h,l=c.hasOwnProperty("hash")?c.hash:l,d=c.hasOwnProperty("params")?c.params:d,s){f[s];return r({_normalized:!0,name:s,query:h,hash:l,params:d},void 0,n)}if(p){var y=M(p,t),v=S(y,d,'redirect route with path "'+y+'"');return r({_normalized:!0,path:v,query:h,hash:l},void 0,n)}return u(null,n)}function a(t,e,n){var o=S(n,e.params,'aliased route with path "'+n+'"'),i=r({_normalized:!0,path:o});if(i){var a=i.matched,c=a[a.length-1];return e.params=i.params,u(c,e)}return u(null,e)}function u(t,n,r){return t&&t.redirect?o(t,r||n):t&&t.matchAs?a(t,n,t.matchAs):i(t,n,r,e)}var c=q(t),s=c.pathList,p=c.pathMap,f=c.nameMap;return{match:r,addRoutes:n}}function z(t,e,n){var r=e.match(t);if(!r)return!1;if(!n)return!0;for(var o=1,i=r.length;o<i;++o){var a=t.keys[o-1],u="string"==typeof r[o]?decodeURIComponent(r[o]):r[o];a&&(n[a.name]=u)}return!0}function M(t,e){return y(t,e.parent?e.parent.path:"/",!0)}function B(){window.addEventListener("popstate",function(t){D(),t.state&&t.state.key&&G(t.state.key)})}function F(t,e,n,r){if(t.app){var o=t.options.scrollBehavior;o&&t.app.$nextTick(function(){var t=K(),i=o(e,n,r?t:null);if(i){var a="object"==typeof i;if(a&&"string"==typeof i.selector){var u=document.querySelector(i.selector);u?t=J(u):N(i)&&(t=Q(i))}else a&&N(i)&&(t=Q(i));t&&window.scrollTo(t.x,t.y)}})}}function D(){var t=W();t&&(Nt[t]={x:window.pageXOffset,y:window.pageYOffset})}function K(){var t=W();if(t)return Nt[t]}function J(t){var e=document.documentElement,n=e.getBoundingClientRect(),r=t.getBoundingClientRect();return{x:r.left-n.left,y:r.top-n.top}}function N(t){return X(t.x)||X(t.y)}function Q(t){return{x:X(t.x)?t.x:window.pageXOffset,y:X(t.y)?t.y:window.pageYOffset}}function X(t){return"number"==typeof t}function Y(){return Xt.now().toFixed(3)}function W(){return Yt}function G(t){Yt=t}function Z(t,e){D();var n=window.history;try{e?n.replaceState({key:Yt},"",t):(Yt=Y(),n.pushState({key:Yt},"",t))}catch(n){window.location[e?"replace":"assign"](t)}}function tt(t){Z(t,!0)}function et(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],function(){r(o+1)}):r(o+1)};r(0)}function nt(t){if(!t)if(Ht){var e=document.querySelector("base");t=e&&e.getAttribute("href")||"/"}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function rt(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n<r&&t[n]===e[n];n++);return{updated:e.slice(0,n),activated:e.slice(n),deactivated:t.slice(n)}}function ot(t,e,n,r){var o=lt(t,function(t,r,o,i){var a=it(t,e);if(a)return Array.isArray(a)?a.map(function(t){return n(t,r,o,i)}):n(a,r,o,i)});return dt(r?o.reverse():o)}function it(t,e){return"function"!=typeof t&&(t=Rt.extend(t)),t.options[e]}function at(t){return ot(t,"beforeRouteLeave",ct,!0)}function ut(t){return ot(t,"beforeRouteUpdate",ct)}function ct(t,e){if(e)return function(){return t.apply(e,arguments)}}function st(t,e,n){return ot(t,"beforeRouteEnter",function(t,r,o,i){return pt(t,o,i,e,n)})}function pt(t,e,n,r,o){return function(i,a,u){return t(i,a,function(t){u(t),"function"==typeof t&&r.push(function(){ft(t,e.instances,n,o)})})}}function ft(t,e,n,r){e[n]?t(e[n]):r()&&setTimeout(function(){ft(t,e,n,r)},16)}function ht(t){return function(e,n,r){var o=!1,i=0,a=null;lt(t,function(t,e,n,u){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var c,s=yt(function(e){t.resolved="function"==typeof e?e:Rt.extend(e),n.components[u]=e,i--,i<=0&&r()}),p=yt(function(t){var e="Failed to resolve async component "+u+": "+t;a||(a=vt(t)?t:new Error(e),r(a))});try{c=t(s,p)}catch(t){p(t)}if(c)if("function"==typeof c.then)c.then(s,p);else{var f=c.component;f&&"function"==typeof f.then&&f.then(s,p)}}}),o||r()}}function lt(t,e){return dt(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function dt(t){return Array.prototype.concat.apply([],t)}function yt(t){var e=!1;return function(){if(!e)return e=!0,t.apply(this,arguments)}}function vt(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function mt(t){var e=window.location.pathname;return t&&0===e.indexOf(t)&&(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}function gt(t){var e=mt(t);if(!/^\/#/.test(e))return window.location.replace(m(t+"/#"+e)),!0}function wt(){var t=bt();return"/"===t.charAt(0)||(kt("/"+t),!1)}function bt(){var t=window.location.href,e=t.indexOf("#");return e===-1?"":t.slice(e+1)}function xt(t){window.location.hash=t}function kt(t){var e=window.location.href.indexOf("#");window.location.replace(window.location.href.slice(0,e>=0?e:0)+"#"+t)}function Et(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function Ot(t,e,n){var r="hash"===n?"#"+e:e;return t?m(t+"/"+r):r}var Rt,Ct={name:"router-view",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,n){var r=n.props,o=n.children,i=n.parent,a=n.data;a.routerView=!0;for(var u=i.$createElement,c=r.name,s=i.$route,p=i._routerViewCache||(i._routerViewCache={}),f=0,h=!1;i;)i.$vnode&&i.$vnode.data.routerView&&f++,i._inactive&&(h=!0),i=i.$parent;if(a.routerViewDepth=f,h)return u(p[c],a,o);var l=s.matched[f];if(!l)return p[c]=null,u();var d=p[c]=l.components[c];return a.registerRouteInstance=function(t,e){l.instances[c]!==t&&(l.instances[c]=e)},(a.hook||(a.hook={})).prepatch=function(t,e){l.instances[c]=e.componentInstance},a.props=e(s,l.props&&l.props[c]),u(d,a,o)}},At=/[!'()*]/g,jt=function(t){return"%"+t.charCodeAt(0).toString(16)},Tt=/%2C/g,_t=function(t){return encodeURIComponent(t).replace(At,jt).replace(Tt,",")},$t=decodeURIComponent,St=/\/?$/,qt=i(null,{path:"/"}),Lt=[String,Object],Pt=[String,Array],Ut={name:"router-link",props:{to:{type:Lt,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:Pt,default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),a=o.location,u=o.route,s=o.href,f={},d=n.options.linkActiveClass,y=n.options.linkExactActiveClass,v=null==d?"router-link-active":d,m=null==y?"router-link-exact-active":y,g=null==this.activeClass?v:this.activeClass,w=null==this.exactActiveClass?m:this.exactActiveClass,b=a.path?i(null,a,null,n):u;f[w]=c(r,b),f[g]=this.exact?f[w]:p(r,b);var x=function(t){h(t)&&(e.replace?n.replace(a):n.push(a))},k={click:h};Array.isArray(this.event)?this.event.forEach(function(t){k[t]=x}):k[this.event]=x;var E={class:f};if("a"===this.tag)E.on=k,E.attrs={href:s};else{var O=l(this.$slots.default);if(O){O.isStatic=!1;var R=Rt.util.extend,C=O.data=R({},O.data);C.on=k;var A=O.data.attrs=R({},O.data.attrs);A.href=s}else E.on=k}return t(this.tag,E,this.$slots.default)}},Ht="undefined"!=typeof window,It=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},Vt=It,zt=$,Mt=g,Bt=w,Ft=k,Dt=_,Kt=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");zt.parse=Mt,zt.compile=Bt,zt.tokensToFunction=Ft,zt.tokensToRegExp=Dt;var Jt=Object.create(null),Nt=Object.create(null),Qt=Ht&&function(){var t=window.navigator.userAgent;return(t.indexOf("Android 2.")===-1&&t.indexOf("Android 4.0")===-1||t.indexOf("Mobile Safari")===-1||t.indexOf("Chrome")!==-1||t.indexOf("Windows Phone")!==-1)&&(window.history&&"pushState"in window.history)}(),Xt=Ht&&window.performance&&window.performance.now?window.performance:Date,Yt=Y(),Wt=function(t,e){this.router=t,this.base=nt(e),this.current=qt,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};Wt.prototype.listen=function(t){this.cb=t},Wt.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Wt.prototype.onError=function(t){this.errorCbs.push(t)},Wt.prototype.transitionTo=function(t,e,n){var r=this,o=this.router.match(t,this.current);this.confirmTransition(o,function(){r.updateRoute(o),e&&e(o),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach(function(t){t(o)}))},function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach(function(e){e(t)}))})},Wt.prototype.confirmTransition=function(e,n,r){var o=this,i=this.current,a=function(e){vt(e)&&(o.errorCbs.length?o.errorCbs.forEach(function(t){t(e)}):(t(!1,"uncaught error during route navigation:"),console.error(e))),r&&r(e)};if(c(e,i)&&e.matched.length===i.matched.length)return this.ensureURL(),a();var u=rt(this.current.matched,e.matched),s=u.updated,p=u.deactivated,f=u.activated,h=[].concat(at(p),this.router.beforeHooks,ut(s),f.map(function(t){return t.beforeEnter}),ht(f));this.pending=e;var l=function(t,n){if(o.pending!==e)return a();try{t(e,i,function(t){t===!1||vt(t)?(o.ensureURL(!0),a(t)):"string"==typeof t||"object"==typeof t&&("string"==typeof t.path||"string"==typeof t.name)?(a(),"object"==typeof t&&t.replace?o.replace(t):o.push(t)):n(t)})}catch(t){a(t)}};et(h,l,function(){var t=[],r=function(){return o.current===e},i=st(f,t,r),u=i.concat(o.router.resolveHooks);et(u,l,function(){return o.pending!==e?a():(o.pending=null,n(e),void(o.router.app&&o.router.app.$nextTick(function(){t.forEach(function(t){t()})})))})})},Wt.prototype.updateRoute=function(t){var e=this.current;this.current=t,this.cb&&this.cb(t),this.router.afterHooks.forEach(function(n){n&&n(t,e)})};var Gt=function(t){function e(e,n){var r=this;t.call(this,e,n);var o=e.options.scrollBehavior;o&&B(),window.addEventListener("popstate",function(t){r.transitionTo(mt(r.base),function(t){o&&F(e,t,r.current,!0)})})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,function(t){Z(m(r.base+t.fullPath)),F(r.router,t,i,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,o=this,i=o.current;this.transitionTo(t,function(t){tt(m(r.base+t.fullPath)),F(r.router,t,i,!1),e&&e(t)},n)},e.prototype.ensureURL=function(t){if(mt(this.base)!==this.current.fullPath){var e=m(this.base+this.current.fullPath);t?Z(e):tt(e)}},e.prototype.getCurrentLocation=function(){return mt(this.base)},e}(Wt),Zt=function(t){function e(e,n,r){t.call(this,e,n),r&>(this.base)||wt()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;window.addEventListener("hashchange",function(){wt()&&t.transitionTo(bt(),function(t){kt(t.fullPath)})})},e.prototype.push=function(t,e,n){this.transitionTo(t,function(t){xt(t.fullPath),e&&e(t)},n)},e.prototype.replace=function(t,e,n){this.transitionTo(t,function(t){kt(t.fullPath),e&&e(t)},n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;bt()!==e&&(t?xt(e):kt(e))},e.prototype.getCurrentLocation=function(){return bt()},e}(Wt),te=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Wt),ee=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=V(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Qt,this.fallback&&(e="hash"),Ht||(e="abstract"),this.mode=e,e){case"history":this.history=new Gt(this,t.base);break;case"hash":this.history=new Zt(this,t.base,this.fallback);break;case"abstract":this.history=new te(this,t.base)}},ne={currentRoute:{}};return ee.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},ne.currentRoute.get=function(){return this.history&&this.history.current},ee.prototype.init=function(t){var e=this;if(this.apps.push(t),!this.app){this.app=t;var n=this.history;if(n instanceof Gt)n.transitionTo(n.getCurrentLocation());else if(n instanceof Zt){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},ee.prototype.beforeEach=function(t){return Et(this.beforeHooks,t)},ee.prototype.beforeResolve=function(t){return Et(this.resolveHooks,t)},ee.prototype.afterEach=function(t){return Et(this.afterHooks,t)},ee.prototype.onReady=function(t,e){this.history.onReady(t,e)},ee.prototype.onError=function(t){this.history.onError(t)},ee.prototype.push=function(t,e,n){this.history.push(t,e,n)},ee.prototype.replace=function(t,e,n){this.history.replace(t,e,n)},ee.prototype.go=function(t){this.history.go(t)},ee.prototype.back=function(){this.go(-1)},ee.prototype.forward=function(){this.go(1)},ee.prototype.getMatchedComponents=function(t){var e=t?this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},ee.prototype.resolve=function(t,e,n){var r=H(t,e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath,a=this.history.base,u=Ot(a,i,this.mode);return{location:r,route:o,href:u,normalizedTo:r,resolved:o}},ee.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==qt&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(ee.prototype,ne),ee.install=d,ee.version="2.5.2",Ht&&window.Vue&&window.Vue.use(ee),ee});
|
6
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.VueRouter=e()}(this,function(){"use strict";function t(t,e){}function e(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function r(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0}}function n(t,e,r){void 0===e&&(e={});var n,i=r||o;try{n=i(t||"")}catch(t){n={}}for(var a in e){var u=e[a];n[a]=Array.isArray(u)?u.slice():u}return n}function o(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var r=t.replace(/\+/g," ").split("="),n=$t(r.shift()),o=r.length>0?$t(r.join("=")):null;void 0===e[n]?e[n]=o:Array.isArray(e[n])?e[n].push(o):e[n]=[e[n],o]}),e):e}function i(t){var e=t?Object.keys(t).map(function(e){var r=t[e];if(void 0===r)return"";if(null===r)return Tt(e);if(Array.isArray(r)){var n=[];return r.forEach(function(t){void 0!==t&&(null===t?n.push(Tt(e)):n.push(Tt(e)+"="+Tt(t)))}),n.join("&")}return Tt(e)+"="+Tt(r)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}function a(t,e,r,n){var o=n&&n.options.stringifyQuery,i={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:e.query||{},params:e.params||{},fullPath:c(e,o),matched:t?u(t):[]};return r&&(i.redirectedFrom=c(r,o)),Object.freeze(i)}function u(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function c(t,e){var r=t.path,n=t.query;void 0===n&&(n={});var o=t.hash;void 0===o&&(o="");var a=e||i;return(r||"/")+a(n)+o}function s(t,e){return e===qt?t===e:!!e&&(t.path&&e.path?t.path.replace(St,"")===e.path.replace(St,"")&&t.hash===e.hash&&p(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&p(t.query,e.query)&&p(t.params,e.params)))}function p(t,e){void 0===t&&(t={}),void 0===e&&(e={});var r=Object.keys(t),n=Object.keys(e);return r.length===n.length&&r.every(function(r){var n=t[r],o=e[r];return"object"==typeof n&&"object"==typeof o?p(n,o):String(n)===String(o)})}function f(t,e){return 0===t.path.replace(St,"/").indexOf(e.path.replace(St,"/"))&&(!e.hash||t.hash===e.hash)&&h(t.query,e.query)}function h(t,e){for(var r in e)if(!(r in t))return!1;return!0}function l(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function d(t){if(t)for(var e,r=0;r<t.length;r++){if("a"===(e=t[r]).tag)return e;if(e.children&&(e=d(e.children)))return e}}function y(t){if(!y.installed){y.installed=!0,Ot=t;var e=function(t){return void 0!==t},r=function(t,r){var n=t.$options._parentVnode;e(n)&&e(n=n.data)&&e(n=n.registerRouteInstance)&&n(t,r)};t.mixin({beforeCreate:function(){e(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("router-view",Ct),t.component("router-link",Ut);var n=t.config.optionMergeStrategies;n.beforeRouteEnter=n.beforeRouteLeave=n.beforeRouteUpdate=n.created}}function v(t,e,r){var n=t.charAt(0);if("/"===n)return t;if("?"===n||"#"===n)return e+t;var o=e.split("/");r&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a<i.length;a++){var u=i[a];".."===u?o.pop():"."!==u&&o.push(u)}return""!==o[0]&&o.unshift(""),o.join("/")}function m(t){var e="",r="",n=t.indexOf("#");n>=0&&(e=t.slice(n),t=t.slice(0,n));var o=t.indexOf("?");return o>=0&&(r=t.slice(o+1),t=t.slice(0,o)),{path:t,query:r,hash:e}}function g(t){return t.replace(/\/\//g,"/")}function b(t,e){for(var r,n=[],o=0,i=0,a="",u=e&&e.delimiter||"/";null!=(r=Ft.exec(t));){var c=r[0],s=r[1],p=r.index;if(a+=t.slice(i,p),i=p+c.length,s)a+=s[1];else{var f=t[i],h=r[2],l=r[3],d=r[4],y=r[5],v=r[6],m=r[7];a&&(n.push(a),a="");var g=null!=h&&null!=f&&f!==h,b="+"===v||"*"===v,w="?"===v||"*"===v,x=r[2]||u,k=d||y;n.push({name:l||o++,prefix:h||"",delimiter:x,optional:w,repeat:b,partial:g,asterisk:!!m,pattern:k?E(k):m?".*":"[^"+R(x)+"]+?"})}}return i<t.length&&(a+=t.substr(i)),a&&n.push(a),n}function w(t){return encodeURI(t).replace(/[\/?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function x(t){return encodeURI(t).replace(/[?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function k(t){for(var e=new Array(t.length),r=0;r<t.length;r++)"object"==typeof t[r]&&(e[r]=new RegExp("^(?:"+t[r].pattern+")$"));return function(r,n){for(var o="",i=r||{},a=(n||{}).pretty?w:encodeURIComponent,u=0;u<t.length;u++){var c=t[u];if("string"!=typeof c){var s,p=i[c.name];if(null==p){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(It(p)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(s=a(p[f]),!e[u].test(s))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(s)+"`");o+=(0===f?c.prefix:c.delimiter)+s}}else{if(s=c.asterisk?x(p):a(p),!e[u].test(s))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+s+'"');o+=c.prefix+s}}else o+=c}return o}}function R(t){return t.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function E(t){return t.replace(/([=!:$\/()])/g,"\\$1")}function O(t,e){return t.keys=e,t}function C(t){return t.sensitive?"":"i"}function A(t,e){var r=t.source.match(/\((?!\?)/g);if(r)for(var n=0;n<r.length;n++)e.push({name:n,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return O(t,e)}function j(t,e,r){for(var n=[],o=0;o<t.length;o++)n.push($(t[o],e,r).source);return O(new RegExp("(?:"+n.join("|")+")",C(r)),e)}function _(t,e,r){return T(b(t,r),e,r)}function T(t,e,r){It(e)||(r=e||r,e=[]);for(var n=(r=r||{}).strict,o=!1!==r.end,i="",a=0;a<t.length;a++){var u=t[a];if("string"==typeof u)i+=R(u);else{var c=R(u.prefix),s="(?:"+u.pattern+")";e.push(u),u.repeat&&(s+="(?:"+c+s+")*"),i+=s=u.optional?u.partial?c+"("+s+")?":"(?:"+c+"("+s+"))?":c+"("+s+")"}}var p=R(r.delimiter||"/"),f=i.slice(-p.length)===p;return n||(i=(f?i.slice(0,-p.length):i)+"(?:"+p+"(?=$))?"),i+=o?"$":n&&f?"":"(?="+p+"|$)",O(new RegExp("^"+i,C(r)),e)}function $(t,e,r){return It(e)||(r=e||r,e=[]),r=r||{},t instanceof RegExp?A(t,e):It(t)?j(t,e,r):_(t,e,r)}function S(t,e,r){try{return(Dt[t]||(Dt[t]=Mt.compile(t)))(e||{},{pretty:!0})}catch(t){return""}}function q(t,e,r,n){var o=e||[],i=r||Object.create(null),a=n||Object.create(null);t.forEach(function(t){L(o,i,a,t)});for(var u=0,c=o.length;u<c;u++)"*"===o[u]&&(o.push(o.splice(u,1)[0]),c--,u--);return{pathList:o,pathMap:i,nameMap:a}}function L(t,e,r,n,o,i){var a=n.path,u=n.name,c=U(a,o),s=n.pathToRegexpOptions||{};"boolean"==typeof n.caseSensitive&&(s.sensitive=n.caseSensitive);var p={path:c,regex:P(c,s),components:n.components||{default:n.component},instances:{},name:u,parent:o,matchAs:i,redirect:n.redirect,beforeEnter:n.beforeEnter,meta:n.meta||{},props:null==n.props?{}:n.components?n.props:{default:n.props}};n.children&&n.children.forEach(function(n){var o=i?g(i+"/"+n.path):void 0;L(t,e,r,n,p,o)}),void 0!==n.alias&&(Array.isArray(n.alias)?n.alias:[n.alias]).forEach(function(i){var a={path:i,children:n.children};L(t,e,r,a,o,p.path||"/")}),e[p.path]||(t.push(p.path),e[p.path]=p),u&&(r[u]||(r[u]=p))}function P(t,e){return Mt(t,[],e)}function U(t,e){return t=t.replace(/\/$/,""),"/"===t[0]?t:null==e?t:g(e.path+"/"+t)}function H(t,e,r,o){var i="string"==typeof t?{path:t}:t;if(i.name||i._normalized)return i;if(!i.path&&i.params&&e){(i=I({},i))._normalized=!0;var a=I(I({},e.params),i.params);if(e.name)i.name=e.name,i.params=a;else if(e.matched.length){var u=e.matched[e.matched.length-1].path;i.path=S(u,a,"path "+e.path)}return i}var c=m(i.path||""),s=e&&e.path||"/",p=c.path?v(c.path,s,r||i.append):s,f=n(c.query,i.query,o&&o.options.parseQuery),h=i.hash||c.hash;return h&&"#"!==h.charAt(0)&&(h="#"+h),{_normalized:!0,path:p,query:f,hash:h}}function I(t,e){for(var r in e)t[r]=e[r];return t}function M(t,e){function r(t,r,n){var o=H(t,r,!1,e),a=o.name;if(a){var u=p[a];if(!u)return i(null,o);var f=u.regex.keys.filter(function(t){return!t.optional}).map(function(t){return t.name});if("object"!=typeof o.params&&(o.params={}),r&&"object"==typeof r.params)for(var h in r.params)!(h in o.params)&&f.indexOf(h)>-1&&(o.params[h]=r.params[h]);if(u)return o.path=S(u.path,o.params,'named route "'+a+'"'),i(u,o,n)}else if(o.path){o.params={};for(var l=0;l<c.length;l++){var d=c[l],y=s[d];if(V(y.regex,o.path,o.params))return i(y,o,n)}}return i(null,o)}function n(t,n){var o=t.redirect,u="function"==typeof o?o(a(t,n,null,e)):o;if("string"==typeof u&&(u={path:u}),!u||"object"!=typeof u)return i(null,n);var c=u,s=c.name,f=c.path,h=n.query,l=n.hash,d=n.params;if(h=c.hasOwnProperty("query")?c.query:h,l=c.hasOwnProperty("hash")?c.hash:l,d=c.hasOwnProperty("params")?c.params:d,s){p[s];return r({_normalized:!0,name:s,query:h,hash:l,params:d},void 0,n)}if(f){var y=z(f,t);return r({_normalized:!0,path:S(y,d,'redirect route with path "'+y+'"'),query:h,hash:l},void 0,n)}return i(null,n)}function o(t,e,n){var o=r({_normalized:!0,path:S(n,e.params,'aliased route with path "'+n+'"')});if(o){var a=o.matched,u=a[a.length-1];return e.params=o.params,i(u,e)}return i(null,e)}function i(t,r,i){return t&&t.redirect?n(t,i||r):t&&t.matchAs?o(t,r,t.matchAs):a(t,r,i,e)}var u=q(t),c=u.pathList,s=u.pathMap,p=u.nameMap;return{match:r,addRoutes:function(t){q(t,c,s,p)}}}function V(t,e,r){var n=e.match(t);if(!n)return!1;if(!r)return!0;for(var o=1,i=n.length;o<i;++o){var a=t.keys[o-1],u="string"==typeof n[o]?decodeURIComponent(n[o]):n[o];a&&(r[a.name]=u)}return!0}function z(t,e){return v(t,e.parent?e.parent.path:"/",!0)}function B(){window.addEventListener("popstate",function(t){D(),t.state&&t.state.key&&Z(t.state.key)})}function F(t,e,r,n){if(t.app){var o=t.options.scrollBehavior;o&&t.app.$nextTick(function(){var t=K(),i=o(e,r,n?t:null);if(i){var a="object"==typeof i;if(a&&"string"==typeof i.selector){var u=document.querySelector(i.selector);if(u){var c=i.offset&&"object"==typeof i.offset?i.offset:{};t=J(u,c=X(c))}else N(i)&&(t=Q(i))}else a&&N(i)&&(t=Q(i));t&&window.scrollTo(t.x,t.y)}})}}function D(){var t=G();t&&(Kt[t]={x:window.pageXOffset,y:window.pageYOffset})}function K(){var t=G();if(t)return Kt[t]}function J(t,e){var r=document.documentElement.getBoundingClientRect(),n=t.getBoundingClientRect();return{x:n.left-r.left-e.x,y:n.top-r.top-e.y}}function N(t){return Y(t.x)||Y(t.y)}function Q(t){return{x:Y(t.x)?t.x:window.pageXOffset,y:Y(t.y)?t.y:window.pageYOffset}}function X(t){return{x:Y(t.x)?t.x:0,y:Y(t.y)?t.y:0}}function Y(t){return"number"==typeof t}function W(){return Nt.now().toFixed(3)}function G(){return Qt}function Z(t){Qt=t}function tt(t,e){D();var r=window.history;try{e?r.replaceState({key:Qt},"",t):(Qt=W(),r.pushState({key:Qt},"",t))}catch(r){window.location[e?"replace":"assign"](t)}}function et(t){tt(t,!0)}function rt(t,e,r){var n=function(o){o>=t.length?r():t[o]?e(t[o],function(){n(o+1)}):n(o+1)};n(0)}function nt(t){return function(r,n,o){var i=!1,a=0,u=null;ot(t,function(t,r,n,c){if("function"==typeof t&&void 0===t.cid){i=!0,a++;var s,p=at(function(e){e.__esModule&&e.default&&(e=e.default),t.resolved="function"==typeof e?e:Ot.extend(e),n.components[c]=e,--a<=0&&o()}),f=at(function(t){var r="Failed to resolve async component "+c+": "+t;u||(u=e(t)?t:new Error(r),o(u))});try{s=t(p,f)}catch(t){f(t)}if(s)if("function"==typeof s.then)s.then(p,f);else{var h=s.component;h&&"function"==typeof h.then&&h.then(p,f)}}}),i||o()}}function ot(t,e){return it(t.map(function(t){return Object.keys(t.components).map(function(r){return e(t.components[r],t.instances[r],t,r)})}))}function it(t){return Array.prototype.concat.apply([],t)}function at(t){var e=!1;return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];if(!e)return e=!0,t.apply(this,r)}}function ut(t){if(!t)if(Ht){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function ct(t,e){var r,n=Math.max(t.length,e.length);for(r=0;r<n&&t[r]===e[r];r++);return{updated:e.slice(0,r),activated:e.slice(r),deactivated:t.slice(r)}}function st(t,e,r,n){var o=ot(t,function(t,n,o,i){var a=pt(t,e);if(a)return Array.isArray(a)?a.map(function(t){return r(t,n,o,i)}):r(a,n,o,i)});return it(n?o.reverse():o)}function pt(t,e){return"function"!=typeof t&&(t=Ot.extend(t)),t.options[e]}function ft(t){return st(t,"beforeRouteLeave",lt,!0)}function ht(t){return st(t,"beforeRouteUpdate",lt)}function lt(t,e){if(e)return function(){return t.apply(e,arguments)}}function dt(t,e,r){return st(t,"beforeRouteEnter",function(t,n,o,i){return yt(t,o,i,e,r)})}function yt(t,e,r,n,o){return function(i,a,u){return t(i,a,function(t){u(t),"function"==typeof t&&n.push(function(){vt(t,e.instances,r,o)})})}}function vt(t,e,r,n){e[r]?t(e[r]):n()&&setTimeout(function(){vt(t,e,r,n)},16)}function mt(t){var e=window.location.pathname;return t&&0===e.indexOf(t)&&(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}function gt(t){var e=mt(t);if(!/^\/#/.test(e))return window.location.replace(g(t+"/#"+e)),!0}function bt(){var t=wt();return"/"===t.charAt(0)||(kt("/"+t),!1)}function wt(){var t=window.location.href,e=t.indexOf("#");return-1===e?"":t.slice(e+1)}function xt(t){window.location.hash=t}function kt(t){var e=window.location.href,r=e.indexOf("#"),n=r>=0?e.slice(0,r):e;window.location.replace(n+"#"+t)}function Rt(t,e){return t.push(e),function(){var r=t.indexOf(e);r>-1&&t.splice(r,1)}}function Et(t,e,r){var n="hash"===r?"#"+e:e;return t?g(t+"/"+n):n}var Ot,Ct={name:"router-view",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,o=e.children,i=e.parent,a=e.data;a.routerView=!0;for(var u=i.$createElement,c=n.name,s=i.$route,p=i._routerViewCache||(i._routerViewCache={}),f=0,h=!1;i&&i._routerRoot!==i;)i.$vnode&&i.$vnode.data.routerView&&f++,i._inactive&&(h=!0),i=i.$parent;if(a.routerViewDepth=f,h)return u(p[c],a,o);var l=s.matched[f];if(!l)return p[c]=null,u();var d=p[c]=l.components[c];return a.registerRouteInstance=function(t,e){var r=l.instances[c];(e&&r!==t||!e&&r===t)&&(l.instances[c]=e)},(a.hook||(a.hook={})).prepatch=function(t,e){l.instances[c]=e.componentInstance},a.props=r(s,l.props&&l.props[c]),u(d,a,o)}},At=/[!'()*]/g,jt=function(t){return"%"+t.charCodeAt(0).toString(16)},_t=/%2C/g,Tt=function(t){return encodeURIComponent(t).replace(At,jt).replace(_t,",")},$t=decodeURIComponent,St=/\/?$/,qt=a(null,{path:"/"}),Lt=[String,Object],Pt=[String,Array],Ut={name:"router-link",props:{to:{type:Lt,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:Pt,default:"click"}},render:function(t){var e=this,r=this.$router,n=this.$route,o=r.resolve(this.to,n,this.append),i=o.location,u=o.route,c=o.href,p={},h=r.options.linkActiveClass,y=r.options.linkExactActiveClass,v=null==h?"router-link-active":h,m=null==y?"router-link-exact-active":y,g=null==this.activeClass?v:this.activeClass,b=null==this.exactActiveClass?m:this.exactActiveClass,w=i.path?a(null,i,null,r):u;p[b]=s(n,w),p[g]=this.exact?p[b]:f(n,w);var x=function(t){l(t)&&(e.replace?r.replace(i):r.push(i))},k={click:l};Array.isArray(this.event)?this.event.forEach(function(t){k[t]=x}):k[this.event]=x;var R={class:p};if("a"===this.tag)R.on=k,R.attrs={href:c};else{var E=d(this.$slots.default);if(E){E.isStatic=!1;var O=Ot.util.extend;(E.data=O({},E.data)).on=k,(E.data.attrs=O({},E.data.attrs)).href=c}else R.on=k}return t(this.tag,R,this.$slots.default)}},Ht="undefined"!=typeof window,It=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},Mt=$,Vt=b,zt=k,Bt=T,Ft=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");Mt.parse=Vt,Mt.compile=function(t,e){return k(b(t,e))},Mt.tokensToFunction=zt,Mt.tokensToRegExp=Bt;var Dt=Object.create(null),Kt=Object.create(null),Jt=Ht&&function(){var t=window.navigator.userAgent;return(-1===t.indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&(window.history&&"pushState"in window.history)}(),Nt=Ht&&window.performance&&window.performance.now?window.performance:Date,Qt=W(),Xt=function(t,e){this.router=t,this.base=ut(e),this.current=qt,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};Xt.prototype.listen=function(t){this.cb=t},Xt.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Xt.prototype.onError=function(t){this.errorCbs.push(t)},Xt.prototype.transitionTo=function(t,e,r){var n=this,o=this.router.match(t,this.current);this.confirmTransition(o,function(){n.updateRoute(o),e&&e(o),n.ensureURL(),n.ready||(n.ready=!0,n.readyCbs.forEach(function(t){t(o)}))},function(t){r&&r(t),t&&!n.ready&&(n.ready=!0,n.readyErrorCbs.forEach(function(e){e(t)}))})},Xt.prototype.confirmTransition=function(r,n,o){var i=this,a=this.current,u=function(r){e(r)&&(i.errorCbs.length?i.errorCbs.forEach(function(t){t(r)}):(t(!1,"uncaught error during route navigation:"),console.error(r))),o&&o(r)};if(s(r,a)&&r.matched.length===a.matched.length)return this.ensureURL(),u();var c=ct(this.current.matched,r.matched),p=c.updated,f=c.deactivated,h=c.activated,l=[].concat(ft(f),this.router.beforeHooks,ht(p),h.map(function(t){return t.beforeEnter}),nt(h));this.pending=r;var d=function(t,n){if(i.pending!==r)return u();try{t(r,a,function(t){!1===t||e(t)?(i.ensureURL(!0),u(t)):"string"==typeof t||"object"==typeof t&&("string"==typeof t.path||"string"==typeof t.name)?(u(),"object"==typeof t&&t.replace?i.replace(t):i.push(t)):n(t)})}catch(t){u(t)}};rt(l,d,function(){var t=[];rt(dt(h,t,function(){return i.current===r}).concat(i.router.resolveHooks),d,function(){if(i.pending!==r)return u();i.pending=null,n(r),i.router.app&&i.router.app.$nextTick(function(){t.forEach(function(t){t()})})})})},Xt.prototype.updateRoute=function(t){var e=this.current;this.current=t,this.cb&&this.cb(t),this.router.afterHooks.forEach(function(r){r&&r(t,e)})};var Yt=function(t){function e(e,r){var n=this;t.call(this,e,r);var o=e.options.scrollBehavior;o&&B(),window.addEventListener("popstate",function(t){var r=n.current;n.transitionTo(mt(n.base),function(t){o&&F(e,t,r,!0)})})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,function(t){tt(g(n.base+t.fullPath)),F(n.router,t,o,!1),e&&e(t)},r)},e.prototype.replace=function(t,e,r){var n=this,o=this.current;this.transitionTo(t,function(t){et(g(n.base+t.fullPath)),F(n.router,t,o,!1),e&&e(t)},r)},e.prototype.ensureURL=function(t){if(mt(this.base)!==this.current.fullPath){var e=g(this.base+this.current.fullPath);t?tt(e):et(e)}},e.prototype.getCurrentLocation=function(){return mt(this.base)},e}(Xt),Wt=function(t){function e(e,r,n){t.call(this,e,r),n&>(this.base)||bt()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;window.addEventListener("hashchange",function(){bt()&&t.transitionTo(wt(),function(t){kt(t.fullPath)})})},e.prototype.push=function(t,e,r){this.transitionTo(t,function(t){xt(t.fullPath),e&&e(t)},r)},e.prototype.replace=function(t,e,r){this.transitionTo(t,function(t){kt(t.fullPath),e&&e(t)},r)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;wt()!==e&&(t?xt(e):kt(e))},e.prototype.getCurrentLocation=function(){return wt()},e}(Xt),Gt=function(t){function e(e,r){t.call(this,e,r),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,r){var n=this;this.transitionTo(t,function(t){n.stack=n.stack.slice(0,n.index+1).concat(t),n.index++,e&&e(t)},r)},e.prototype.replace=function(t,e,r){var n=this;this.transitionTo(t,function(t){n.stack=n.stack.slice(0,n.index).concat(t),e&&e(t)},r)},e.prototype.go=function(t){var e=this,r=this.index+t;if(!(r<0||r>=this.stack.length)){var n=this.stack[r];this.confirmTransition(n,function(){e.index=r,e.updateRoute(n)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Xt),Zt=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=M(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Jt&&!1!==t.fallback,this.fallback&&(e="hash"),Ht||(e="abstract"),this.mode=e,e){case"history":this.history=new Yt(this,t.base);break;case"hash":this.history=new Wt(this,t.base,this.fallback);break;case"abstract":this.history=new Gt(this,t.base)}},te={currentRoute:{}};return Zt.prototype.match=function(t,e,r){return this.matcher.match(t,e,r)},te.currentRoute.get=function(){return this.history&&this.history.current},Zt.prototype.init=function(t){var e=this;if(this.apps.push(t),!this.app){this.app=t;var r=this.history;if(r instanceof Yt)r.transitionTo(r.getCurrentLocation());else if(r instanceof Wt){var n=function(){r.setupListeners()};r.transitionTo(r.getCurrentLocation(),n,n)}r.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},Zt.prototype.beforeEach=function(t){return Rt(this.beforeHooks,t)},Zt.prototype.beforeResolve=function(t){return Rt(this.resolveHooks,t)},Zt.prototype.afterEach=function(t){return Rt(this.afterHooks,t)},Zt.prototype.onReady=function(t,e){this.history.onReady(t,e)},Zt.prototype.onError=function(t){this.history.onError(t)},Zt.prototype.push=function(t,e,r){this.history.push(t,e,r)},Zt.prototype.replace=function(t,e,r){this.history.replace(t,e,r)},Zt.prototype.go=function(t){this.history.go(t)},Zt.prototype.back=function(){this.go(-1)},Zt.prototype.forward=function(){this.go(1)},Zt.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},Zt.prototype.resolve=function(t,e,r){var n=H(t,e||this.history.current,r,this),o=this.match(n,e),i=o.redirectedFrom||o.fullPath;return{location:n,route:o,href:Et(this.history.base,i,this.mode),normalizedTo:n,resolved:o}},Zt.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==qt&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Zt.prototype,te),Zt.install=y,Zt.version="2.7.0",Ht&&window.Vue&&window.Vue.use(Zt),Zt});
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vue.js v2.
|
2
|
+
* Vue.js v2.4.2
|
3
3
|
* (c) 2014-2017 Evan You
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -25,11 +25,19 @@ function isTrue (v) {
|
|
25
25
|
return v === true
|
26
26
|
}
|
27
27
|
|
28
|
+
function isFalse (v) {
|
29
|
+
return v === false
|
30
|
+
}
|
31
|
+
|
28
32
|
/**
|
29
33
|
* Check if value is primitive
|
30
34
|
*/
|
31
35
|
function isPrimitive (value) {
|
32
|
-
return
|
36
|
+
return (
|
37
|
+
typeof value === 'string' ||
|
38
|
+
typeof value === 'number' ||
|
39
|
+
typeof value === 'boolean'
|
40
|
+
)
|
33
41
|
}
|
34
42
|
|
35
43
|
/**
|
@@ -55,6 +63,14 @@ function isRegExp (v) {
|
|
55
63
|
return _toString.call(v) === '[object RegExp]'
|
56
64
|
}
|
57
65
|
|
66
|
+
/**
|
67
|
+
* Check if val is a valid array index.
|
68
|
+
*/
|
69
|
+
function isValidArrayIndex (val) {
|
70
|
+
var n = parseFloat(val);
|
71
|
+
return n >= 0 && Math.floor(n) === n && isFinite(val)
|
72
|
+
}
|
73
|
+
|
58
74
|
/**
|
59
75
|
* Convert a value to a string that is actually rendered.
|
60
76
|
*/
|
@@ -98,6 +114,11 @@ function makeMap (
|
|
98
114
|
*/
|
99
115
|
var isBuiltInTag = makeMap('slot,component', true);
|
100
116
|
|
117
|
+
/**
|
118
|
+
* Check if a attribute is a reserved attribute.
|
119
|
+
*/
|
120
|
+
var isReservedAttribute = makeMap('key,ref,slot,is');
|
121
|
+
|
101
122
|
/**
|
102
123
|
* Remove an item from an array
|
103
124
|
*/
|
@@ -210,13 +231,15 @@ function toObject (arr) {
|
|
210
231
|
|
211
232
|
/**
|
212
233
|
* Perform no operation.
|
234
|
+
* Stubbing args to make Flow happy without leaving useless transpiled code
|
235
|
+
* with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)
|
213
236
|
*/
|
214
|
-
function noop () {}
|
237
|
+
function noop (a, b, c) {}
|
215
238
|
|
216
239
|
/**
|
217
240
|
* Always return false.
|
218
241
|
*/
|
219
|
-
var no = function () { return false; };
|
242
|
+
var no = function (a, b, c) { return false; };
|
220
243
|
|
221
244
|
/**
|
222
245
|
* Return same value
|
@@ -237,14 +260,30 @@ function genStaticKeys (modules) {
|
|
237
260
|
* if they are plain objects, do they have the same shape?
|
238
261
|
*/
|
239
262
|
function looseEqual (a, b) {
|
263
|
+
if (a === b) { return true }
|
240
264
|
var isObjectA = isObject(a);
|
241
265
|
var isObjectB = isObject(b);
|
242
266
|
if (isObjectA && isObjectB) {
|
243
267
|
try {
|
244
|
-
|
268
|
+
var isArrayA = Array.isArray(a);
|
269
|
+
var isArrayB = Array.isArray(b);
|
270
|
+
if (isArrayA && isArrayB) {
|
271
|
+
return a.length === b.length && a.every(function (e, i) {
|
272
|
+
return looseEqual(e, b[i])
|
273
|
+
})
|
274
|
+
} else if (!isArrayA && !isArrayB) {
|
275
|
+
var keysA = Object.keys(a);
|
276
|
+
var keysB = Object.keys(b);
|
277
|
+
return keysA.length === keysB.length && keysA.every(function (key) {
|
278
|
+
return looseEqual(a[key], b[key])
|
279
|
+
})
|
280
|
+
} else {
|
281
|
+
/* istanbul ignore next */
|
282
|
+
return false
|
283
|
+
}
|
245
284
|
} catch (e) {
|
246
|
-
|
247
|
-
return
|
285
|
+
/* istanbul ignore next */
|
286
|
+
return false
|
248
287
|
}
|
249
288
|
} else if (!isObjectA && !isObjectB) {
|
250
289
|
return String(a) === String(b)
|
@@ -327,6 +366,11 @@ var config = ({
|
|
327
366
|
*/
|
328
367
|
errorHandler: null,
|
329
368
|
|
369
|
+
/**
|
370
|
+
* Warn handler for watcher warns
|
371
|
+
*/
|
372
|
+
warnHandler: null,
|
373
|
+
|
330
374
|
/**
|
331
375
|
* Ignore certain custom elements
|
332
376
|
*/
|
@@ -433,10 +477,12 @@ var formatComponentName = (null); // work around flow check
|
|
433
477
|
.replace(/[-_]/g, ''); };
|
434
478
|
|
435
479
|
warn = function (msg, vm) {
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
)
|
480
|
+
var trace = vm ? generateComponentTrace(vm) : '';
|
481
|
+
|
482
|
+
if (config.warnHandler) {
|
483
|
+
config.warnHandler.call(null, msg, vm, trace);
|
484
|
+
} else if (hasConsole && (!config.silent)) {
|
485
|
+
console.error(("[Vue warn]: " + msg + trace));
|
440
486
|
}
|
441
487
|
};
|
442
488
|
|
@@ -546,6 +592,9 @@ var isAndroid = UA && UA.indexOf('android') > 0;
|
|
546
592
|
var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);
|
547
593
|
var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
|
548
594
|
|
595
|
+
// Firefix has a "watch" function on Object.prototype...
|
596
|
+
var nativeWatch = ({}).watch;
|
597
|
+
|
549
598
|
var supportsPassive = false;
|
550
599
|
if (inBrowser) {
|
551
600
|
try {
|
@@ -555,7 +604,7 @@ if (inBrowser) {
|
|
555
604
|
/* istanbul ignore next */
|
556
605
|
supportsPassive = true;
|
557
606
|
}
|
558
|
-
}
|
607
|
+
})); // https://github.com/facebook/flow/issues/285
|
559
608
|
window.addEventListener('test-passive', null, opts);
|
560
609
|
} catch (e) {}
|
561
610
|
}
|
@@ -770,22 +819,14 @@ var arrayMethods = Object.create(arrayProto);[
|
|
770
819
|
// cache original method
|
771
820
|
var original = arrayProto[method];
|
772
821
|
def(arrayMethods, method, function mutator () {
|
773
|
-
var
|
822
|
+
var args = [], len = arguments.length;
|
823
|
+
while ( len-- ) args[ len ] = arguments[ len ];
|
774
824
|
|
775
|
-
// avoid leaking arguments:
|
776
|
-
// http://jsperf.com/closure-with-arguments
|
777
|
-
var i = arguments.length;
|
778
|
-
var args = new Array(i);
|
779
|
-
while (i--) {
|
780
|
-
args[i] = arguments$1[i];
|
781
|
-
}
|
782
825
|
var result = original.apply(this, args);
|
783
826
|
var ob = this.__ob__;
|
784
827
|
var inserted;
|
785
828
|
switch (method) {
|
786
829
|
case 'push':
|
787
|
-
inserted = args;
|
788
|
-
break
|
789
830
|
case 'unshift':
|
790
831
|
inserted = args;
|
791
832
|
break
|
@@ -811,8 +852,7 @@ var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
|
|
811
852
|
* under a frozen data structure. Converting it would defeat the optimization.
|
812
853
|
*/
|
813
854
|
var observerState = {
|
814
|
-
shouldConvert: true
|
815
|
-
isSettingProps: false
|
855
|
+
shouldConvert: true
|
816
856
|
};
|
817
857
|
|
818
858
|
/**
|
@@ -864,7 +904,7 @@ Observer.prototype.observeArray = function observeArray (items) {
|
|
864
904
|
* Augment an target Object or Array by intercepting
|
865
905
|
* the prototype chain using __proto__
|
866
906
|
*/
|
867
|
-
function protoAugment (target, src) {
|
907
|
+
function protoAugment (target, src, keys) {
|
868
908
|
/* eslint-disable no-proto */
|
869
909
|
target.__proto__ = src;
|
870
910
|
/* eslint-enable no-proto */
|
@@ -916,7 +956,8 @@ function defineReactive$$1 (
|
|
916
956
|
obj,
|
917
957
|
key,
|
918
958
|
val,
|
919
|
-
customSetter
|
959
|
+
customSetter,
|
960
|
+
shallow
|
920
961
|
) {
|
921
962
|
var dep = new Dep();
|
922
963
|
|
@@ -929,7 +970,7 @@ function defineReactive$$1 (
|
|
929
970
|
var getter = property && property.get;
|
930
971
|
var setter = property && property.set;
|
931
972
|
|
932
|
-
var childOb = observe(val);
|
973
|
+
var childOb = !shallow && observe(val);
|
933
974
|
Object.defineProperty(obj, key, {
|
934
975
|
enumerable: true,
|
935
976
|
configurable: true,
|
@@ -961,7 +1002,7 @@ function defineReactive$$1 (
|
|
961
1002
|
} else {
|
962
1003
|
val = newVal;
|
963
1004
|
}
|
964
|
-
childOb = observe(newVal);
|
1005
|
+
childOb = !shallow && observe(newVal);
|
965
1006
|
dep.notify();
|
966
1007
|
}
|
967
1008
|
});
|
@@ -973,7 +1014,7 @@ function defineReactive$$1 (
|
|
973
1014
|
* already exist.
|
974
1015
|
*/
|
975
1016
|
function set (target, key, val) {
|
976
|
-
if (Array.isArray(target) &&
|
1017
|
+
if (Array.isArray(target) && isValidArrayIndex(key)) {
|
977
1018
|
target.length = Math.max(target.length, key);
|
978
1019
|
target.splice(key, 1, val);
|
979
1020
|
return val
|
@@ -982,7 +1023,7 @@ function set (target, key, val) {
|
|
982
1023
|
target[key] = val;
|
983
1024
|
return val
|
984
1025
|
}
|
985
|
-
var ob = (target
|
1026
|
+
var ob = (target).__ob__;
|
986
1027
|
if (target._isVue || (ob && ob.vmCount)) {
|
987
1028
|
"development" !== 'production' && warn(
|
988
1029
|
'Avoid adding reactive properties to a Vue instance or its root $data ' +
|
@@ -1003,11 +1044,11 @@ function set (target, key, val) {
|
|
1003
1044
|
* Delete a property and trigger change if necessary.
|
1004
1045
|
*/
|
1005
1046
|
function del (target, key) {
|
1006
|
-
if (Array.isArray(target) &&
|
1047
|
+
if (Array.isArray(target) && isValidArrayIndex(key)) {
|
1007
1048
|
target.splice(key, 1);
|
1008
1049
|
return
|
1009
1050
|
}
|
1010
|
-
var ob = (target
|
1051
|
+
var ob = (target).__ob__;
|
1011
1052
|
if (target._isVue || (ob && ob.vmCount)) {
|
1012
1053
|
"development" !== 'production' && warn(
|
1013
1054
|
'Avoid deleting properties on a Vue instance or its root $data ' +
|
@@ -1086,7 +1127,7 @@ function mergeData (to, from) {
|
|
1086
1127
|
/**
|
1087
1128
|
* Data
|
1088
1129
|
*/
|
1089
|
-
|
1130
|
+
function mergeDataOrFn (
|
1090
1131
|
parentVal,
|
1091
1132
|
childVal,
|
1092
1133
|
vm
|
@@ -1096,15 +1137,6 @@ strats.data = function (
|
|
1096
1137
|
if (!childVal) {
|
1097
1138
|
return parentVal
|
1098
1139
|
}
|
1099
|
-
if (typeof childVal !== 'function') {
|
1100
|
-
"development" !== 'production' && warn(
|
1101
|
-
'The "data" option should be a function ' +
|
1102
|
-
'that returns a per-instance value in component ' +
|
1103
|
-
'definitions.',
|
1104
|
-
vm
|
1105
|
-
);
|
1106
|
-
return parentVal
|
1107
|
-
}
|
1108
1140
|
if (!parentVal) {
|
1109
1141
|
return childVal
|
1110
1142
|
}
|
@@ -1115,8 +1147,8 @@ strats.data = function (
|
|
1115
1147
|
// it has to be a function to pass previous merges.
|
1116
1148
|
return function mergedDataFn () {
|
1117
1149
|
return mergeData(
|
1118
|
-
childVal.call(this),
|
1119
|
-
parentVal.call(this)
|
1150
|
+
typeof childVal === 'function' ? childVal.call(this) : childVal,
|
1151
|
+
typeof parentVal === 'function' ? parentVal.call(this) : parentVal
|
1120
1152
|
)
|
1121
1153
|
}
|
1122
1154
|
} else if (parentVal || childVal) {
|
@@ -1135,6 +1167,28 @@ strats.data = function (
|
|
1135
1167
|
}
|
1136
1168
|
}
|
1137
1169
|
}
|
1170
|
+
}
|
1171
|
+
|
1172
|
+
strats.data = function (
|
1173
|
+
parentVal,
|
1174
|
+
childVal,
|
1175
|
+
vm
|
1176
|
+
) {
|
1177
|
+
if (!vm) {
|
1178
|
+
if (childVal && typeof childVal !== 'function') {
|
1179
|
+
"development" !== 'production' && warn(
|
1180
|
+
'The "data" option should be a function ' +
|
1181
|
+
'that returns a per-instance value in component ' +
|
1182
|
+
'definitions.',
|
1183
|
+
vm
|
1184
|
+
);
|
1185
|
+
|
1186
|
+
return parentVal
|
1187
|
+
}
|
1188
|
+
return mergeDataOrFn.call(this, parentVal, childVal)
|
1189
|
+
}
|
1190
|
+
|
1191
|
+
return mergeDataOrFn(parentVal, childVal, vm)
|
1138
1192
|
};
|
1139
1193
|
|
1140
1194
|
/**
|
@@ -1182,6 +1236,9 @@ ASSET_TYPES.forEach(function (type) {
|
|
1182
1236
|
* another, so we merge them as arrays.
|
1183
1237
|
*/
|
1184
1238
|
strats.watch = function (parentVal, childVal) {
|
1239
|
+
// work around Firefox's Object.prototype.watch...
|
1240
|
+
if (parentVal === nativeWatch) { parentVal = undefined; }
|
1241
|
+
if (childVal === nativeWatch) { childVal = undefined; }
|
1185
1242
|
/* istanbul ignore if */
|
1186
1243
|
if (!childVal) { return Object.create(parentVal || null) }
|
1187
1244
|
if (!parentVal) { return childVal }
|
@@ -1195,7 +1252,7 @@ strats.watch = function (parentVal, childVal) {
|
|
1195
1252
|
}
|
1196
1253
|
ret[key] = parent
|
1197
1254
|
? parent.concat(child)
|
1198
|
-
: [child];
|
1255
|
+
: Array.isArray(child) ? child : [child];
|
1199
1256
|
}
|
1200
1257
|
return ret
|
1201
1258
|
};
|
@@ -1205,14 +1262,15 @@ strats.watch = function (parentVal, childVal) {
|
|
1205
1262
|
*/
|
1206
1263
|
strats.props =
|
1207
1264
|
strats.methods =
|
1265
|
+
strats.inject =
|
1208
1266
|
strats.computed = function (parentVal, childVal) {
|
1209
|
-
if (!childVal) { return Object.create(parentVal || null) }
|
1210
1267
|
if (!parentVal) { return childVal }
|
1211
1268
|
var ret = Object.create(null);
|
1212
1269
|
extend(ret, parentVal);
|
1213
|
-
extend(ret, childVal);
|
1270
|
+
if (childVal) { extend(ret, childVal); }
|
1214
1271
|
return ret
|
1215
1272
|
};
|
1273
|
+
strats.provide = mergeDataOrFn;
|
1216
1274
|
|
1217
1275
|
/**
|
1218
1276
|
* Default strategy.
|
@@ -1270,6 +1328,19 @@ function normalizeProps (options) {
|
|
1270
1328
|
options.props = res;
|
1271
1329
|
}
|
1272
1330
|
|
1331
|
+
/**
|
1332
|
+
* Normalize all injections into Object-based format
|
1333
|
+
*/
|
1334
|
+
function normalizeInject (options) {
|
1335
|
+
var inject = options.inject;
|
1336
|
+
if (Array.isArray(inject)) {
|
1337
|
+
var normalized = options.inject = {};
|
1338
|
+
for (var i = 0; i < inject.length; i++) {
|
1339
|
+
normalized[inject[i]] = inject[i];
|
1340
|
+
}
|
1341
|
+
}
|
1342
|
+
}
|
1343
|
+
|
1273
1344
|
/**
|
1274
1345
|
* Normalize raw function directives into object format.
|
1275
1346
|
*/
|
@@ -1303,6 +1374,7 @@ function mergeOptions (
|
|
1303
1374
|
}
|
1304
1375
|
|
1305
1376
|
normalizeProps(child);
|
1377
|
+
normalizeInject(child);
|
1306
1378
|
normalizeDirectives(child);
|
1307
1379
|
var extendsFrom = child.extends;
|
1308
1380
|
if (extendsFrom) {
|
@@ -1420,7 +1492,8 @@ function getPropDefaultValue (vm, prop, key) {
|
|
1420
1492
|
// return previous default value to avoid unnecessary watcher trigger
|
1421
1493
|
if (vm && vm.$options.propsData &&
|
1422
1494
|
vm.$options.propsData[key] === undefined &&
|
1423
|
-
vm._props[key] !== undefined
|
1495
|
+
vm._props[key] !== undefined
|
1496
|
+
) {
|
1424
1497
|
return vm._props[key]
|
1425
1498
|
}
|
1426
1499
|
// call factory function for non-Function types
|
@@ -1634,7 +1707,8 @@ var VNode = function VNode (
|
|
1634
1707
|
text,
|
1635
1708
|
elm,
|
1636
1709
|
context,
|
1637
|
-
componentOptions
|
1710
|
+
componentOptions,
|
1711
|
+
asyncFactory
|
1638
1712
|
) {
|
1639
1713
|
this.tag = tag;
|
1640
1714
|
this.data = data;
|
@@ -1654,6 +1728,9 @@ var VNode = function VNode (
|
|
1654
1728
|
this.isComment = false;
|
1655
1729
|
this.isCloned = false;
|
1656
1730
|
this.isOnce = false;
|
1731
|
+
this.asyncFactory = asyncFactory;
|
1732
|
+
this.asyncMeta = undefined;
|
1733
|
+
this.isAsyncPlaceholder = false;
|
1657
1734
|
};
|
1658
1735
|
|
1659
1736
|
var prototypeAccessors = { child: {} };
|
@@ -1666,9 +1743,11 @@ prototypeAccessors.child.get = function () {
|
|
1666
1743
|
|
1667
1744
|
Object.defineProperties( VNode.prototype, prototypeAccessors );
|
1668
1745
|
|
1669
|
-
var createEmptyVNode = function () {
|
1746
|
+
var createEmptyVNode = function (text) {
|
1747
|
+
if ( text === void 0 ) text = '';
|
1748
|
+
|
1670
1749
|
var node = new VNode();
|
1671
|
-
node.text =
|
1750
|
+
node.text = text;
|
1672
1751
|
node.isComment = true;
|
1673
1752
|
return node
|
1674
1753
|
};
|
@@ -1689,11 +1768,13 @@ function cloneVNode (vnode) {
|
|
1689
1768
|
vnode.text,
|
1690
1769
|
vnode.elm,
|
1691
1770
|
vnode.context,
|
1692
|
-
vnode.componentOptions
|
1771
|
+
vnode.componentOptions,
|
1772
|
+
vnode.asyncFactory
|
1693
1773
|
);
|
1694
1774
|
cloned.ns = vnode.ns;
|
1695
1775
|
cloned.isStatic = vnode.isStatic;
|
1696
1776
|
cloned.key = vnode.key;
|
1777
|
+
cloned.isComment = vnode.isComment;
|
1697
1778
|
cloned.isCloned = true;
|
1698
1779
|
return cloned
|
1699
1780
|
}
|
@@ -1730,8 +1811,9 @@ function createFnInvoker (fns) {
|
|
1730
1811
|
|
1731
1812
|
var fns = invoker.fns;
|
1732
1813
|
if (Array.isArray(fns)) {
|
1733
|
-
|
1734
|
-
|
1814
|
+
var cloned = fns.slice();
|
1815
|
+
for (var i = 0; i < cloned.length; i++) {
|
1816
|
+
cloned[i].apply(null, arguments$1);
|
1735
1817
|
}
|
1736
1818
|
} else {
|
1737
1819
|
// return handler return value for single handlers
|
@@ -1912,6 +1994,10 @@ function normalizeChildren (children) {
|
|
1912
1994
|
: undefined
|
1913
1995
|
}
|
1914
1996
|
|
1997
|
+
function isTextNode (node) {
|
1998
|
+
return isDef(node) && isDef(node.text) && isFalse(node.isComment)
|
1999
|
+
}
|
2000
|
+
|
1915
2001
|
function normalizeArrayChildren (children, nestedIndex) {
|
1916
2002
|
var res = [];
|
1917
2003
|
var i, c, last;
|
@@ -1923,18 +2009,25 @@ function normalizeArrayChildren (children, nestedIndex) {
|
|
1923
2009
|
if (Array.isArray(c)) {
|
1924
2010
|
res.push.apply(res, normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i)));
|
1925
2011
|
} else if (isPrimitive(c)) {
|
1926
|
-
if (
|
1927
|
-
|
2012
|
+
if (isTextNode(last)) {
|
2013
|
+
// merge adjacent text nodes
|
2014
|
+
// this is necessary for SSR hydration because text nodes are
|
2015
|
+
// essentially merged when rendered to HTML strings
|
2016
|
+
(last).text += String(c);
|
1928
2017
|
} else if (c !== '') {
|
1929
2018
|
// convert primitive to vnode
|
1930
2019
|
res.push(createTextVNode(c));
|
1931
2020
|
}
|
1932
2021
|
} else {
|
1933
|
-
if (
|
2022
|
+
if (isTextNode(c) && isTextNode(last)) {
|
2023
|
+
// merge adjacent text nodes
|
1934
2024
|
res[res.length - 1] = createTextVNode(last.text + c.text);
|
1935
2025
|
} else {
|
1936
2026
|
// default key for nested array children (likely generated by v-for)
|
1937
|
-
if (
|
2027
|
+
if (isTrue(children._isVList) &&
|
2028
|
+
isDef(c.tag) &&
|
2029
|
+
isUndef(c.key) &&
|
2030
|
+
isDef(nestedIndex)) {
|
1938
2031
|
c.key = "__vlist" + nestedIndex + "_" + i + "__";
|
1939
2032
|
}
|
1940
2033
|
res.push(c);
|
@@ -1947,11 +2040,27 @@ function normalizeArrayChildren (children, nestedIndex) {
|
|
1947
2040
|
/* */
|
1948
2041
|
|
1949
2042
|
function ensureCtor (comp, base) {
|
2043
|
+
if (comp.__esModule && comp.default) {
|
2044
|
+
comp = comp.default;
|
2045
|
+
}
|
1950
2046
|
return isObject(comp)
|
1951
2047
|
? base.extend(comp)
|
1952
2048
|
: comp
|
1953
2049
|
}
|
1954
2050
|
|
2051
|
+
function createAsyncPlaceholder (
|
2052
|
+
factory,
|
2053
|
+
data,
|
2054
|
+
context,
|
2055
|
+
children,
|
2056
|
+
tag
|
2057
|
+
) {
|
2058
|
+
var node = createEmptyVNode();
|
2059
|
+
node.asyncFactory = factory;
|
2060
|
+
node.asyncMeta = { data: data, context: context, children: children, tag: tag };
|
2061
|
+
return node
|
2062
|
+
}
|
2063
|
+
|
1955
2064
|
function resolveAsyncComponent (
|
1956
2065
|
factory,
|
1957
2066
|
baseCtor,
|
@@ -2034,9 +2143,11 @@ function resolveAsyncComponent (
|
|
2034
2143
|
|
2035
2144
|
if (isDef(res.timeout)) {
|
2036
2145
|
setTimeout(function () {
|
2037
|
-
|
2038
|
-
|
2039
|
-
|
2146
|
+
if (isUndef(factory.resolved)) {
|
2147
|
+
reject(
|
2148
|
+
"timeout (" + (res.timeout) + "ms)"
|
2149
|
+
);
|
2150
|
+
}
|
2040
2151
|
}, res.timeout);
|
2041
2152
|
}
|
2042
2153
|
}
|
@@ -2189,7 +2300,11 @@ function eventsMixin (Vue) {
|
|
2189
2300
|
cbs = cbs.length > 1 ? toArray(cbs) : cbs;
|
2190
2301
|
var args = toArray(arguments, 1);
|
2191
2302
|
for (var i = 0, l = cbs.length; i < l; i++) {
|
2192
|
-
|
2303
|
+
try {
|
2304
|
+
cbs[i].apply(vm, args);
|
2305
|
+
} catch (e) {
|
2306
|
+
handleError(e, vm, ("event handler for \"" + event + "\""));
|
2307
|
+
}
|
2193
2308
|
}
|
2194
2309
|
}
|
2195
2310
|
return vm
|
@@ -2215,7 +2330,8 @@ function resolveSlots (
|
|
2215
2330
|
// named slots should only be respected if the vnode was rendered in the
|
2216
2331
|
// same context.
|
2217
2332
|
if ((child.context === context || child.functionalContext === context) &&
|
2218
|
-
|
2333
|
+
child.data && child.data.slot != null
|
2334
|
+
) {
|
2219
2335
|
var name = child.data.slot;
|
2220
2336
|
var slot = (slots[name] || (slots[name] = []));
|
2221
2337
|
if (child.tag === 'template') {
|
@@ -2239,11 +2355,16 @@ function isWhitespace (node) {
|
|
2239
2355
|
}
|
2240
2356
|
|
2241
2357
|
function resolveScopedSlots (
|
2242
|
-
fns
|
2358
|
+
fns, // see flow/vnode
|
2359
|
+
res
|
2243
2360
|
) {
|
2244
|
-
|
2361
|
+
res = res || {};
|
2245
2362
|
for (var i = 0; i < fns.length; i++) {
|
2246
|
-
|
2363
|
+
if (Array.isArray(fns[i])) {
|
2364
|
+
resolveScopedSlots(fns[i], res);
|
2365
|
+
} else {
|
2366
|
+
res[fns[i].key] = fns[i].fn;
|
2367
|
+
}
|
2247
2368
|
}
|
2248
2369
|
return res
|
2249
2370
|
}
|
@@ -2251,6 +2372,7 @@ function resolveScopedSlots (
|
|
2251
2372
|
/* */
|
2252
2373
|
|
2253
2374
|
var activeInstance = null;
|
2375
|
+
var isUpdatingChildComponent = false;
|
2254
2376
|
|
2255
2377
|
function initLifecycle (vm) {
|
2256
2378
|
var options = vm.$options;
|
@@ -2298,6 +2420,9 @@ function lifecycleMixin (Vue) {
|
|
2298
2420
|
vm.$options._parentElm,
|
2299
2421
|
vm.$options._refElm
|
2300
2422
|
);
|
2423
|
+
// no need for the ref nodes after initial patch
|
2424
|
+
// this prevents keeping a detached DOM tree in memory (#5851)
|
2425
|
+
vm.$options._parentElm = vm.$options._refElm = null;
|
2301
2426
|
} else {
|
2302
2427
|
// updates
|
2303
2428
|
vm.$el = vm.__patch__(prevVnode, vnode);
|
@@ -2362,8 +2487,6 @@ function lifecycleMixin (Vue) {
|
|
2362
2487
|
if (vm.$el) {
|
2363
2488
|
vm.$el.__vue__ = null;
|
2364
2489
|
}
|
2365
|
-
// remove reference to DOM nodes (prevents leak)
|
2366
|
-
vm.$options._parentElm = vm.$options._refElm = null;
|
2367
2490
|
};
|
2368
2491
|
}
|
2369
2492
|
|
@@ -2439,6 +2562,10 @@ function updateChildComponent (
|
|
2439
2562
|
parentVnode,
|
2440
2563
|
renderChildren
|
2441
2564
|
) {
|
2565
|
+
{
|
2566
|
+
isUpdatingChildComponent = true;
|
2567
|
+
}
|
2568
|
+
|
2442
2569
|
// determine whether component has slot children
|
2443
2570
|
// we need to do this before overwriting $options._renderChildren
|
2444
2571
|
var hasChildren = !!(
|
@@ -2450,17 +2577,21 @@ function updateChildComponent (
|
|
2450
2577
|
|
2451
2578
|
vm.$options._parentVnode = parentVnode;
|
2452
2579
|
vm.$vnode = parentVnode; // update vm's placeholder node without re-render
|
2580
|
+
|
2453
2581
|
if (vm._vnode) { // update child tree's parent
|
2454
2582
|
vm._vnode.parent = parentVnode;
|
2455
2583
|
}
|
2456
2584
|
vm.$options._renderChildren = renderChildren;
|
2457
2585
|
|
2586
|
+
// update $attrs and $listensers hash
|
2587
|
+
// these are also reactive so they may trigger child update if the child
|
2588
|
+
// used them during render
|
2589
|
+
vm.$attrs = parentVnode.data && parentVnode.data.attrs;
|
2590
|
+
vm.$listeners = listeners;
|
2591
|
+
|
2458
2592
|
// update props
|
2459
2593
|
if (propsData && vm.$options.props) {
|
2460
2594
|
observerState.shouldConvert = false;
|
2461
|
-
{
|
2462
|
-
observerState.isSettingProps = true;
|
2463
|
-
}
|
2464
2595
|
var props = vm._props;
|
2465
2596
|
var propKeys = vm.$options._propKeys || [];
|
2466
2597
|
for (var i = 0; i < propKeys.length; i++) {
|
@@ -2468,12 +2599,10 @@ function updateChildComponent (
|
|
2468
2599
|
props[key] = validateProp(key, vm.$options.props, propsData, vm);
|
2469
2600
|
}
|
2470
2601
|
observerState.shouldConvert = true;
|
2471
|
-
{
|
2472
|
-
observerState.isSettingProps = false;
|
2473
|
-
}
|
2474
2602
|
// keep a copy of raw propsData
|
2475
2603
|
vm.$options.propsData = propsData;
|
2476
2604
|
}
|
2605
|
+
|
2477
2606
|
// update listeners
|
2478
2607
|
if (listeners) {
|
2479
2608
|
var oldListeners = vm.$options._parentListeners;
|
@@ -2485,6 +2614,10 @@ function updateChildComponent (
|
|
2485
2614
|
vm.$slots = resolveSlots(renderChildren, parentVnode.context);
|
2486
2615
|
vm.$forceUpdate();
|
2487
2616
|
}
|
2617
|
+
|
2618
|
+
{
|
2619
|
+
isUpdatingChildComponent = false;
|
2620
|
+
}
|
2488
2621
|
}
|
2489
2622
|
|
2490
2623
|
function isInInactiveTree (vm) {
|
@@ -2561,7 +2694,7 @@ var index = 0;
|
|
2561
2694
|
* Reset the scheduler's state.
|
2562
2695
|
*/
|
2563
2696
|
function resetSchedulerState () {
|
2564
|
-
queue.length = activatedChildren.length = 0;
|
2697
|
+
index = queue.length = activatedChildren.length = 0;
|
2565
2698
|
has = {};
|
2566
2699
|
{
|
2567
2700
|
circular = {};
|
@@ -2618,7 +2751,7 @@ function flushSchedulerQueue () {
|
|
2618
2751
|
|
2619
2752
|
// call component updated and activated hooks
|
2620
2753
|
callActivatedHooks(activatedQueue);
|
2621
|
-
|
2754
|
+
callUpdatedHooks(updatedQueue);
|
2622
2755
|
|
2623
2756
|
// devtool hook
|
2624
2757
|
/* istanbul ignore if */
|
@@ -2627,7 +2760,7 @@ function flushSchedulerQueue () {
|
|
2627
2760
|
}
|
2628
2761
|
}
|
2629
2762
|
|
2630
|
-
function
|
2763
|
+
function callUpdatedHooks (queue) {
|
2631
2764
|
var i = queue.length;
|
2632
2765
|
while (i--) {
|
2633
2766
|
var watcher = queue[i];
|
@@ -2671,10 +2804,10 @@ function queueWatcher (watcher) {
|
|
2671
2804
|
// if already flushing, splice the watcher based on its id
|
2672
2805
|
// if already past its id, it will be run next immediately.
|
2673
2806
|
var i = queue.length - 1;
|
2674
|
-
while (i
|
2807
|
+
while (i > index && queue[i].id > watcher.id) {
|
2675
2808
|
i--;
|
2676
2809
|
}
|
2677
|
-
queue.splice(
|
2810
|
+
queue.splice(i + 1, 0, watcher);
|
2678
2811
|
}
|
2679
2812
|
// queue the flush
|
2680
2813
|
if (!waiting) {
|
@@ -2746,22 +2879,23 @@ Watcher.prototype.get = function get () {
|
|
2746
2879
|
pushTarget(this);
|
2747
2880
|
var value;
|
2748
2881
|
var vm = this.vm;
|
2749
|
-
|
2750
|
-
|
2751
|
-
|
2752
|
-
|
2882
|
+
try {
|
2883
|
+
value = this.getter.call(vm, vm);
|
2884
|
+
} catch (e) {
|
2885
|
+
if (this.user) {
|
2753
2886
|
handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
|
2887
|
+
} else {
|
2888
|
+
throw e
|
2754
2889
|
}
|
2755
|
-
}
|
2756
|
-
|
2757
|
-
|
2758
|
-
|
2759
|
-
|
2760
|
-
|
2761
|
-
|
2890
|
+
} finally {
|
2891
|
+
// "touch" every property so they are all tracked as
|
2892
|
+
// dependencies for deep watching
|
2893
|
+
if (this.deep) {
|
2894
|
+
traverse(value);
|
2895
|
+
}
|
2896
|
+
popTarget();
|
2897
|
+
this.cleanupDeps();
|
2762
2898
|
}
|
2763
|
-
popTarget();
|
2764
|
-
this.cleanupDeps();
|
2765
2899
|
return value
|
2766
2900
|
};
|
2767
2901
|
|
@@ -2954,14 +3088,20 @@ function initState (vm) {
|
|
2954
3088
|
observe(vm._data = {}, true /* asRootData */);
|
2955
3089
|
}
|
2956
3090
|
if (opts.computed) { initComputed(vm, opts.computed); }
|
2957
|
-
if (opts.watch
|
3091
|
+
if (opts.watch && opts.watch !== nativeWatch) {
|
3092
|
+
initWatch(vm, opts.watch);
|
3093
|
+
}
|
2958
3094
|
}
|
2959
3095
|
|
2960
|
-
|
2961
|
-
|
2962
|
-
|
2963
|
-
|
2964
|
-
|
3096
|
+
function checkOptionType (vm, name) {
|
3097
|
+
var option = vm.$options[name];
|
3098
|
+
if (!isPlainObject(option)) {
|
3099
|
+
warn(
|
3100
|
+
("component option \"" + name + "\" should be an object."),
|
3101
|
+
vm
|
3102
|
+
);
|
3103
|
+
}
|
3104
|
+
}
|
2965
3105
|
|
2966
3106
|
function initProps (vm, propsOptions) {
|
2967
3107
|
var propsData = vm.$options.propsData || {};
|
@@ -2977,14 +3117,14 @@ function initProps (vm, propsOptions) {
|
|
2977
3117
|
var value = validateProp(key, propsOptions, propsData, vm);
|
2978
3118
|
/* istanbul ignore else */
|
2979
3119
|
{
|
2980
|
-
if (
|
3120
|
+
if (isReservedAttribute(key) || config.isReservedAttr(key)) {
|
2981
3121
|
warn(
|
2982
3122
|
("\"" + key + "\" is a reserved attribute and cannot be used as component prop."),
|
2983
3123
|
vm
|
2984
3124
|
);
|
2985
3125
|
}
|
2986
3126
|
defineReactive$$1(props, key, value, function () {
|
2987
|
-
if (vm.$parent && !
|
3127
|
+
if (vm.$parent && !isUpdatingChildComponent) {
|
2988
3128
|
warn(
|
2989
3129
|
"Avoid mutating a prop directly since the value will be " +
|
2990
3130
|
"overwritten whenever the parent component re-renders. " +
|
@@ -3023,16 +3163,26 @@ function initData (vm) {
|
|
3023
3163
|
// proxy data on instance
|
3024
3164
|
var keys = Object.keys(data);
|
3025
3165
|
var props = vm.$options.props;
|
3166
|
+
var methods = vm.$options.methods;
|
3026
3167
|
var i = keys.length;
|
3027
3168
|
while (i--) {
|
3028
|
-
|
3169
|
+
var key = keys[i];
|
3170
|
+
{
|
3171
|
+
if (methods && hasOwn(methods, key)) {
|
3172
|
+
warn(
|
3173
|
+
("method \"" + key + "\" has already been defined as a data property."),
|
3174
|
+
vm
|
3175
|
+
);
|
3176
|
+
}
|
3177
|
+
}
|
3178
|
+
if (props && hasOwn(props, key)) {
|
3029
3179
|
"development" !== 'production' && warn(
|
3030
|
-
"The data property \"" +
|
3180
|
+
"The data property \"" + key + "\" is already declared as a prop. " +
|
3031
3181
|
"Use prop default value instead.",
|
3032
3182
|
vm
|
3033
3183
|
);
|
3034
|
-
} else if (!isReserved(
|
3035
|
-
proxy(vm, "_data",
|
3184
|
+
} else if (!isReserved(key)) {
|
3185
|
+
proxy(vm, "_data", key);
|
3036
3186
|
}
|
3037
3187
|
}
|
3038
3188
|
// observe data
|
@@ -3051,22 +3201,20 @@ function getData (data, vm) {
|
|
3051
3201
|
var computedWatcherOptions = { lazy: true };
|
3052
3202
|
|
3053
3203
|
function initComputed (vm, computed) {
|
3204
|
+
"development" !== 'production' && checkOptionType(vm, 'computed');
|
3054
3205
|
var watchers = vm._computedWatchers = Object.create(null);
|
3055
3206
|
|
3056
3207
|
for (var key in computed) {
|
3057
3208
|
var userDef = computed[key];
|
3058
3209
|
var getter = typeof userDef === 'function' ? userDef : userDef.get;
|
3059
|
-
{
|
3060
|
-
|
3061
|
-
|
3062
|
-
|
3063
|
-
|
3064
|
-
);
|
3065
|
-
getter = noop;
|
3066
|
-
}
|
3210
|
+
if ("development" !== 'production' && getter == null) {
|
3211
|
+
warn(
|
3212
|
+
("Getter is missing for computed property \"" + key + "\"."),
|
3213
|
+
vm
|
3214
|
+
);
|
3067
3215
|
}
|
3068
3216
|
// create internal watcher for the computed property.
|
3069
|
-
watchers[key] = new Watcher(vm, getter, noop, computedWatcherOptions);
|
3217
|
+
watchers[key] = new Watcher(vm, getter || noop, noop, computedWatcherOptions);
|
3070
3218
|
|
3071
3219
|
// component-defined computed properties are already defined on the
|
3072
3220
|
// component prototype. We only need to define computed properties defined
|
@@ -3097,6 +3245,15 @@ function defineComputed (target, key, userDef) {
|
|
3097
3245
|
? userDef.set
|
3098
3246
|
: noop;
|
3099
3247
|
}
|
3248
|
+
if ("development" !== 'production' &&
|
3249
|
+
sharedPropertyDefinition.set === noop) {
|
3250
|
+
sharedPropertyDefinition.set = function () {
|
3251
|
+
warn(
|
3252
|
+
("Computed property \"" + key + "\" was assigned to but it has no setter."),
|
3253
|
+
this
|
3254
|
+
);
|
3255
|
+
};
|
3256
|
+
}
|
3100
3257
|
Object.defineProperty(target, key, sharedPropertyDefinition);
|
3101
3258
|
}
|
3102
3259
|
|
@@ -3116,6 +3273,7 @@ function createComputedGetter (key) {
|
|
3116
3273
|
}
|
3117
3274
|
|
3118
3275
|
function initMethods (vm, methods) {
|
3276
|
+
"development" !== 'production' && checkOptionType(vm, 'methods');
|
3119
3277
|
var props = vm.$options.props;
|
3120
3278
|
for (var key in methods) {
|
3121
3279
|
vm[key] = methods[key] == null ? noop : bind(methods[key], vm);
|
@@ -3138,6 +3296,7 @@ function initMethods (vm, methods) {
|
|
3138
3296
|
}
|
3139
3297
|
|
3140
3298
|
function initWatch (vm, watch) {
|
3299
|
+
"development" !== 'production' && checkOptionType(vm, 'watch');
|
3141
3300
|
for (var key in watch) {
|
3142
3301
|
var handler = watch[key];
|
3143
3302
|
if (Array.isArray(handler)) {
|
@@ -3150,8 +3309,12 @@ function initWatch (vm, watch) {
|
|
3150
3309
|
}
|
3151
3310
|
}
|
3152
3311
|
|
3153
|
-
function createWatcher (
|
3154
|
-
|
3312
|
+
function createWatcher (
|
3313
|
+
vm,
|
3314
|
+
keyOrFn,
|
3315
|
+
handler,
|
3316
|
+
options
|
3317
|
+
) {
|
3155
3318
|
if (isPlainObject(handler)) {
|
3156
3319
|
options = handler;
|
3157
3320
|
handler = handler.handler;
|
@@ -3159,7 +3322,7 @@ function createWatcher (vm, key, handler) {
|
|
3159
3322
|
if (typeof handler === 'string') {
|
3160
3323
|
handler = vm[handler];
|
3161
3324
|
}
|
3162
|
-
vm.$watch(
|
3325
|
+
return vm.$watch(keyOrFn, handler, options)
|
3163
3326
|
}
|
3164
3327
|
|
3165
3328
|
function stateMixin (Vue) {
|
@@ -3194,6 +3357,9 @@ function stateMixin (Vue) {
|
|
3194
3357
|
options
|
3195
3358
|
) {
|
3196
3359
|
var vm = this;
|
3360
|
+
if (isPlainObject(cb)) {
|
3361
|
+
return createWatcher(vm, expOrFn, cb, options)
|
3362
|
+
}
|
3197
3363
|
options = options || {};
|
3198
3364
|
options.user = true;
|
3199
3365
|
var watcher = new Watcher(vm, expOrFn, cb, options);
|
@@ -3220,6 +3386,7 @@ function initProvide (vm) {
|
|
3220
3386
|
function initInjections (vm) {
|
3221
3387
|
var result = resolveInject(vm.$options.inject, vm);
|
3222
3388
|
if (result) {
|
3389
|
+
observerState.shouldConvert = false;
|
3223
3390
|
Object.keys(result).forEach(function (key) {
|
3224
3391
|
/* istanbul ignore else */
|
3225
3392
|
{
|
@@ -3233,24 +3400,21 @@ function initInjections (vm) {
|
|
3233
3400
|
});
|
3234
3401
|
}
|
3235
3402
|
});
|
3403
|
+
observerState.shouldConvert = true;
|
3236
3404
|
}
|
3237
3405
|
}
|
3238
3406
|
|
3239
3407
|
function resolveInject (inject, vm) {
|
3240
3408
|
if (inject) {
|
3241
3409
|
// inject is :any because flow is not smart enough to figure out cached
|
3242
|
-
// isArray here
|
3243
|
-
var isArray = Array.isArray(inject);
|
3244
3410
|
var result = Object.create(null);
|
3245
|
-
var keys =
|
3246
|
-
? inject
|
3247
|
-
: hasSymbol
|
3411
|
+
var keys = hasSymbol
|
3248
3412
|
? Reflect.ownKeys(inject)
|
3249
3413
|
: Object.keys(inject);
|
3250
3414
|
|
3251
3415
|
for (var i = 0; i < keys.length; i++) {
|
3252
3416
|
var key = keys[i];
|
3253
|
-
var provideKey =
|
3417
|
+
var provideKey = inject[key];
|
3254
3418
|
var source = vm;
|
3255
3419
|
while (source) {
|
3256
3420
|
if (source._provided && provideKey in source._provided) {
|
@@ -3259,6 +3423,9 @@ function resolveInject (inject, vm) {
|
|
3259
3423
|
}
|
3260
3424
|
source = source.$parent;
|
3261
3425
|
}
|
3426
|
+
if ("development" !== 'production' && !source) {
|
3427
|
+
warn(("Injection \"" + key + "\" not found"), vm);
|
3428
|
+
}
|
3262
3429
|
}
|
3263
3430
|
return result
|
3264
3431
|
}
|
@@ -3412,21 +3579,30 @@ function createComponent (
|
|
3412
3579
|
}
|
3413
3580
|
|
3414
3581
|
// async component
|
3582
|
+
var asyncFactory;
|
3415
3583
|
if (isUndef(Ctor.cid)) {
|
3416
|
-
|
3584
|
+
asyncFactory = Ctor;
|
3585
|
+
Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);
|
3417
3586
|
if (Ctor === undefined) {
|
3418
|
-
// return
|
3419
|
-
//
|
3420
|
-
|
3587
|
+
// return a placeholder node for async component, which is rendered
|
3588
|
+
// as a comment node but preserves all the raw information for the node.
|
3589
|
+
// the information will be used for async server-rendering and hydration.
|
3590
|
+
return createAsyncPlaceholder(
|
3591
|
+
asyncFactory,
|
3592
|
+
data,
|
3593
|
+
context,
|
3594
|
+
children,
|
3595
|
+
tag
|
3596
|
+
)
|
3421
3597
|
}
|
3422
3598
|
}
|
3423
3599
|
|
3600
|
+
data = data || {};
|
3601
|
+
|
3424
3602
|
// resolve constructor options in case global mixins are applied after
|
3425
3603
|
// component constructor creation
|
3426
3604
|
resolveConstructorOptions(Ctor);
|
3427
3605
|
|
3428
|
-
data = data || {};
|
3429
|
-
|
3430
3606
|
// transform component v-model data into props & events
|
3431
3607
|
if (isDef(data.model)) {
|
3432
3608
|
transformModel(Ctor.options, data);
|
@@ -3444,12 +3620,19 @@ function createComponent (
|
|
3444
3620
|
// child component listeners instead of DOM listeners
|
3445
3621
|
var listeners = data.on;
|
3446
3622
|
// replace with listeners with .native modifier
|
3623
|
+
// so it gets processed during parent component patch.
|
3447
3624
|
data.on = data.nativeOn;
|
3448
3625
|
|
3449
3626
|
if (isTrue(Ctor.options.abstract)) {
|
3450
3627
|
// abstract components do not keep anything
|
3451
|
-
// other than props & listeners
|
3628
|
+
// other than props & listeners & slot
|
3629
|
+
|
3630
|
+
// work around flow
|
3631
|
+
var slot = data.slot;
|
3452
3632
|
data = {};
|
3633
|
+
if (slot) {
|
3634
|
+
data.slot = slot;
|
3635
|
+
}
|
3453
3636
|
}
|
3454
3637
|
|
3455
3638
|
// merge component management hooks onto the placeholder node
|
@@ -3460,7 +3643,8 @@ function createComponent (
|
|
3460
3643
|
var vnode = new VNode(
|
3461
3644
|
("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
|
3462
3645
|
data, undefined, undefined, undefined, context,
|
3463
|
-
{ Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children }
|
3646
|
+
{ Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
|
3647
|
+
asyncFactory
|
3464
3648
|
);
|
3465
3649
|
return vnode
|
3466
3650
|
}
|
@@ -3565,13 +3749,28 @@ function _createElement (
|
|
3565
3749
|
);
|
3566
3750
|
return createEmptyVNode()
|
3567
3751
|
}
|
3752
|
+
// object syntax in v-bind
|
3753
|
+
if (isDef(data) && isDef(data.is)) {
|
3754
|
+
tag = data.is;
|
3755
|
+
}
|
3568
3756
|
if (!tag) {
|
3569
3757
|
// in case of component :is set to falsy value
|
3570
3758
|
return createEmptyVNode()
|
3571
3759
|
}
|
3760
|
+
// warn against non-primitive key
|
3761
|
+
if ("development" !== 'production' &&
|
3762
|
+
isDef(data) && isDef(data.key) && !isPrimitive(data.key)
|
3763
|
+
) {
|
3764
|
+
warn(
|
3765
|
+
'Avoid using non-primitive value as key, ' +
|
3766
|
+
'use string/number value instead.',
|
3767
|
+
context
|
3768
|
+
);
|
3769
|
+
}
|
3572
3770
|
// support single function children as default scoped slot
|
3573
3771
|
if (Array.isArray(children) &&
|
3574
|
-
|
3772
|
+
typeof children[0] === 'function'
|
3773
|
+
) {
|
3575
3774
|
data = data || {};
|
3576
3775
|
data.scopedSlots = { default: children[0] };
|
3577
3776
|
children.length = 0;
|
@@ -3659,6 +3858,9 @@ function renderList (
|
|
3659
3858
|
ret[i] = render(val[key], key, i);
|
3660
3859
|
}
|
3661
3860
|
}
|
3861
|
+
if (isDef(ret)) {
|
3862
|
+
(ret)._isVList = true;
|
3863
|
+
}
|
3662
3864
|
return ret
|
3663
3865
|
}
|
3664
3866
|
|
@@ -3677,7 +3879,7 @@ function renderSlot (
|
|
3677
3879
|
if (scopedSlotFn) { // scoped slot
|
3678
3880
|
props = props || {};
|
3679
3881
|
if (bindObject) {
|
3680
|
-
extend(
|
3882
|
+
props = extend(extend({}, bindObject), props);
|
3681
3883
|
}
|
3682
3884
|
return scopedSlotFn(props) || fallback
|
3683
3885
|
} else {
|
@@ -3731,7 +3933,8 @@ function bindObjectProps (
|
|
3731
3933
|
data,
|
3732
3934
|
tag,
|
3733
3935
|
value,
|
3734
|
-
asProp
|
3936
|
+
asProp,
|
3937
|
+
isSync
|
3735
3938
|
) {
|
3736
3939
|
if (value) {
|
3737
3940
|
if (!isObject(value)) {
|
@@ -3744,8 +3947,12 @@ function bindObjectProps (
|
|
3744
3947
|
value = toObject(value);
|
3745
3948
|
}
|
3746
3949
|
var hash;
|
3747
|
-
|
3748
|
-
if (
|
3950
|
+
var loop = function ( key ) {
|
3951
|
+
if (
|
3952
|
+
key === 'class' ||
|
3953
|
+
key === 'style' ||
|
3954
|
+
isReservedAttribute(key)
|
3955
|
+
) {
|
3749
3956
|
hash = data;
|
3750
3957
|
} else {
|
3751
3958
|
var type = data.attrs && data.attrs.type;
|
@@ -3755,8 +3962,17 @@ function bindObjectProps (
|
|
3755
3962
|
}
|
3756
3963
|
if (!(key in hash)) {
|
3757
3964
|
hash[key] = value[key];
|
3965
|
+
|
3966
|
+
if (isSync) {
|
3967
|
+
var on = data.on || (data.on = {});
|
3968
|
+
on[("update:" + key)] = function ($event) {
|
3969
|
+
value[key] = $event;
|
3970
|
+
};
|
3971
|
+
}
|
3758
3972
|
}
|
3759
|
-
}
|
3973
|
+
};
|
3974
|
+
|
3975
|
+
for (var key in value) loop( key );
|
3760
3976
|
}
|
3761
3977
|
}
|
3762
3978
|
return data
|
@@ -3823,6 +4039,27 @@ function markStaticNode (node, key, isOnce) {
|
|
3823
4039
|
|
3824
4040
|
/* */
|
3825
4041
|
|
4042
|
+
function bindObjectListeners (data, value) {
|
4043
|
+
if (value) {
|
4044
|
+
if (!isPlainObject(value)) {
|
4045
|
+
"development" !== 'production' && warn(
|
4046
|
+
'v-on without argument expects an Object value',
|
4047
|
+
this
|
4048
|
+
);
|
4049
|
+
} else {
|
4050
|
+
var on = data.on = data.on ? extend({}, data.on) : {};
|
4051
|
+
for (var key in value) {
|
4052
|
+
var existing = on[key];
|
4053
|
+
var ours = value[key];
|
4054
|
+
on[key] = existing ? [].concat(ours, existing) : ours;
|
4055
|
+
}
|
4056
|
+
}
|
4057
|
+
}
|
4058
|
+
return data
|
4059
|
+
}
|
4060
|
+
|
4061
|
+
/* */
|
4062
|
+
|
3826
4063
|
function initRender (vm) {
|
3827
4064
|
vm._vnode = null; // the root of the child tree
|
3828
4065
|
vm._staticTrees = null;
|
@@ -3838,6 +4075,19 @@ function initRender (vm) {
|
|
3838
4075
|
// normalization is always applied for the public version, used in
|
3839
4076
|
// user-written render functions.
|
3840
4077
|
vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
|
4078
|
+
|
4079
|
+
// $attrs & $listeners are exposed for easier HOC creation.
|
4080
|
+
// they need to be reactive so that HOCs using them are always updated
|
4081
|
+
var parentData = parentVnode && parentVnode.data;
|
4082
|
+
/* istanbul ignore else */
|
4083
|
+
{
|
4084
|
+
defineReactive$$1(vm, '$attrs', parentData && parentData.attrs, function () {
|
4085
|
+
!isUpdatingChildComponent && warn("$attrs is readonly.", vm);
|
4086
|
+
}, true);
|
4087
|
+
defineReactive$$1(vm, '$listeners', vm.$options._parentListeners, function () {
|
4088
|
+
!isUpdatingChildComponent && warn("$listeners is readonly.", vm);
|
4089
|
+
}, true);
|
4090
|
+
}
|
3841
4091
|
}
|
3842
4092
|
|
3843
4093
|
function renderMixin (Vue) {
|
@@ -3915,6 +4165,7 @@ function renderMixin (Vue) {
|
|
3915
4165
|
Vue.prototype._v = createTextVNode;
|
3916
4166
|
Vue.prototype._e = createEmptyVNode;
|
3917
4167
|
Vue.prototype._u = resolveScopedSlots;
|
4168
|
+
Vue.prototype._g = bindObjectListeners;
|
3918
4169
|
}
|
3919
4170
|
|
3920
4171
|
/* */
|
@@ -4054,7 +4305,8 @@ function dedupe (latest, extended, sealed) {
|
|
4054
4305
|
|
4055
4306
|
function Vue$3 (options) {
|
4056
4307
|
if ("development" !== 'production' &&
|
4057
|
-
!(this instanceof Vue$3)
|
4308
|
+
!(this instanceof Vue$3)
|
4309
|
+
) {
|
4058
4310
|
warn('Vue is a constructor and should be called with the `new` keyword');
|
4059
4311
|
}
|
4060
4312
|
this._init(options);
|
@@ -4070,10 +4322,11 @@ renderMixin(Vue$3);
|
|
4070
4322
|
|
4071
4323
|
function initUse (Vue) {
|
4072
4324
|
Vue.use = function (plugin) {
|
4073
|
-
|
4074
|
-
if (plugin
|
4075
|
-
return
|
4325
|
+
var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
|
4326
|
+
if (installedPlugins.indexOf(plugin) > -1) {
|
4327
|
+
return this
|
4076
4328
|
}
|
4329
|
+
|
4077
4330
|
// additional parameters
|
4078
4331
|
var args = toArray(arguments, 1);
|
4079
4332
|
args.unshift(this);
|
@@ -4082,7 +4335,7 @@ function initUse (Vue) {
|
|
4082
4335
|
} else if (typeof plugin === 'function') {
|
4083
4336
|
plugin.apply(null, args);
|
4084
4337
|
}
|
4085
|
-
plugin
|
4338
|
+
installedPlugins.push(plugin);
|
4086
4339
|
return this
|
4087
4340
|
};
|
4088
4341
|
}
|
@@ -4092,6 +4345,7 @@ function initUse (Vue) {
|
|
4092
4345
|
function initMixin$1 (Vue) {
|
4093
4346
|
Vue.mixin = function (mixin) {
|
4094
4347
|
this.options = mergeOptions(this.options, mixin);
|
4348
|
+
return this
|
4095
4349
|
};
|
4096
4350
|
}
|
4097
4351
|
|
@@ -4232,14 +4486,16 @@ function initAssetRegisters (Vue) {
|
|
4232
4486
|
|
4233
4487
|
/* */
|
4234
4488
|
|
4235
|
-
var patternTypes = [String, RegExp];
|
4489
|
+
var patternTypes = [String, RegExp, Array];
|
4236
4490
|
|
4237
4491
|
function getComponentName (opts) {
|
4238
4492
|
return opts && (opts.Ctor.options.name || opts.tag)
|
4239
4493
|
}
|
4240
4494
|
|
4241
4495
|
function matches (pattern, name) {
|
4242
|
-
if (
|
4496
|
+
if (Array.isArray(pattern)) {
|
4497
|
+
return pattern.indexOf(name) > -1
|
4498
|
+
} else if (typeof pattern === 'string') {
|
4243
4499
|
return pattern.split(',').indexOf(name) > -1
|
4244
4500
|
} else if (isRegExp(pattern)) {
|
4245
4501
|
return pattern.test(name)
|
@@ -4385,11 +4641,12 @@ Object.defineProperty(Vue$3.prototype, '$isServer', {
|
|
4385
4641
|
|
4386
4642
|
Object.defineProperty(Vue$3.prototype, '$ssrContext', {
|
4387
4643
|
get: function get () {
|
4388
|
-
|
4644
|
+
/* istanbul ignore next */
|
4645
|
+
return this.$vnode && this.$vnode.ssrContext
|
4389
4646
|
}
|
4390
4647
|
});
|
4391
4648
|
|
4392
|
-
Vue$3.version = '2.
|
4649
|
+
Vue$3.version = '2.4.2';
|
4393
4650
|
|
4394
4651
|
/* */
|
4395
4652
|
|
@@ -4450,7 +4707,7 @@ function genClassForVnode (vnode) {
|
|
4450
4707
|
data = mergeClassData(data, parentNode.data);
|
4451
4708
|
}
|
4452
4709
|
}
|
4453
|
-
return
|
4710
|
+
return renderClass(data.staticClass, data.class)
|
4454
4711
|
}
|
4455
4712
|
|
4456
4713
|
function mergeClassData (child, parent) {
|
@@ -4462,9 +4719,10 @@ function mergeClassData (child, parent) {
|
|
4462
4719
|
}
|
4463
4720
|
}
|
4464
4721
|
|
4465
|
-
function
|
4466
|
-
|
4467
|
-
|
4722
|
+
function renderClass (
|
4723
|
+
staticClass,
|
4724
|
+
dynamicClass
|
4725
|
+
) {
|
4468
4726
|
if (isDef(staticClass) || isDef(dynamicClass)) {
|
4469
4727
|
return concat(staticClass, stringifyClass(dynamicClass))
|
4470
4728
|
}
|
@@ -4477,31 +4735,39 @@ function concat (a, b) {
|
|
4477
4735
|
}
|
4478
4736
|
|
4479
4737
|
function stringifyClass (value) {
|
4480
|
-
if (
|
4481
|
-
return
|
4738
|
+
if (Array.isArray(value)) {
|
4739
|
+
return stringifyArray(value)
|
4740
|
+
}
|
4741
|
+
if (isObject(value)) {
|
4742
|
+
return stringifyObject(value)
|
4482
4743
|
}
|
4483
4744
|
if (typeof value === 'string') {
|
4484
4745
|
return value
|
4485
4746
|
}
|
4747
|
+
/* istanbul ignore next */
|
4748
|
+
return ''
|
4749
|
+
}
|
4750
|
+
|
4751
|
+
function stringifyArray (value) {
|
4486
4752
|
var res = '';
|
4487
|
-
|
4488
|
-
|
4489
|
-
|
4490
|
-
if (
|
4491
|
-
|
4492
|
-
res += stringified + ' ';
|
4493
|
-
}
|
4494
|
-
}
|
4753
|
+
var stringified;
|
4754
|
+
for (var i = 0, l = value.length; i < l; i++) {
|
4755
|
+
if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
|
4756
|
+
if (res) { res += ' '; }
|
4757
|
+
res += stringified;
|
4495
4758
|
}
|
4496
|
-
return res.slice(0, -1)
|
4497
4759
|
}
|
4498
|
-
|
4499
|
-
|
4500
|
-
|
4760
|
+
return res
|
4761
|
+
}
|
4762
|
+
|
4763
|
+
function stringifyObject (value) {
|
4764
|
+
var res = '';
|
4765
|
+
for (var key in value) {
|
4766
|
+
if (value[key]) {
|
4767
|
+
if (res) { res += ' '; }
|
4768
|
+
res += key;
|
4501
4769
|
}
|
4502
|
-
return res.slice(0, -1)
|
4503
4770
|
}
|
4504
|
-
/* istanbul ignore next */
|
4505
4771
|
return res
|
4506
4772
|
}
|
4507
4773
|
|
@@ -4515,7 +4781,7 @@ var namespaceMap = {
|
|
4515
4781
|
var isHTMLTag = makeMap(
|
4516
4782
|
'html,body,base,head,link,meta,style,title,' +
|
4517
4783
|
'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
|
4518
|
-
'div,dd,dl,dt,figcaption,figure,hr,img,li,main,ol,p,pre,ul,' +
|
4784
|
+
'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +
|
4519
4785
|
'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
|
4520
4786
|
's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
|
4521
4787
|
'embed,object,param,source,canvas,script,noscript,del,ins,' +
|
@@ -4523,7 +4789,7 @@ var isHTMLTag = makeMap(
|
|
4523
4789
|
'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
|
4524
4790
|
'output,progress,select,textarea,' +
|
4525
4791
|
'details,dialog,menu,menuitem,summary,' +
|
4526
|
-
'content,element,shadow,template'
|
4792
|
+
'content,element,shadow,template,blockquote,iframe,tfoot'
|
4527
4793
|
);
|
4528
4794
|
|
4529
4795
|
// this map is intentionally selective, only covering SVG elements that may
|
@@ -4704,10 +4970,11 @@ function registerRef (vnode, isRemoval) {
|
|
4704
4970
|
}
|
4705
4971
|
} else {
|
4706
4972
|
if (vnode.data.refInFor) {
|
4707
|
-
if (Array.isArray(refs[key])
|
4708
|
-
refs[key].push(ref);
|
4709
|
-
} else {
|
4973
|
+
if (!Array.isArray(refs[key])) {
|
4710
4974
|
refs[key] = [ref];
|
4975
|
+
} else if (refs[key].indexOf(ref) < 0) {
|
4976
|
+
// $flow-disable-line
|
4977
|
+
refs[key].push(ref);
|
4711
4978
|
}
|
4712
4979
|
} else {
|
4713
4980
|
refs[key] = ref;
|
@@ -4735,11 +5002,18 @@ var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];
|
|
4735
5002
|
|
4736
5003
|
function sameVnode (a, b) {
|
4737
5004
|
return (
|
4738
|
-
a.key === b.key &&
|
4739
|
-
|
4740
|
-
|
4741
|
-
|
4742
|
-
|
5005
|
+
a.key === b.key && (
|
5006
|
+
(
|
5007
|
+
a.tag === b.tag &&
|
5008
|
+
a.isComment === b.isComment &&
|
5009
|
+
isDef(a.data) === isDef(b.data) &&
|
5010
|
+
sameInputType(a, b)
|
5011
|
+
) || (
|
5012
|
+
isTrue(a.isAsyncPlaceholder) &&
|
5013
|
+
a.asyncFactory === b.asyncFactory &&
|
5014
|
+
isUndef(b.asyncFactory.error)
|
5015
|
+
)
|
5016
|
+
)
|
4743
5017
|
)
|
4744
5018
|
}
|
4745
5019
|
|
@@ -4880,6 +5154,7 @@ function createPatchFunction (backend) {
|
|
4880
5154
|
function initComponent (vnode, insertedVnodeQueue) {
|
4881
5155
|
if (isDef(vnode.data.pendingInsert)) {
|
4882
5156
|
insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
|
5157
|
+
vnode.data.pendingInsert = null;
|
4883
5158
|
}
|
4884
5159
|
vnode.elm = vnode.componentInstance.$el;
|
4885
5160
|
if (isPatchable(vnode)) {
|
@@ -4916,11 +5191,11 @@ function createPatchFunction (backend) {
|
|
4916
5191
|
insert(parentElm, vnode.elm, refElm);
|
4917
5192
|
}
|
4918
5193
|
|
4919
|
-
function insert (parent, elm, ref) {
|
5194
|
+
function insert (parent, elm, ref$$1) {
|
4920
5195
|
if (isDef(parent)) {
|
4921
|
-
if (isDef(ref)) {
|
4922
|
-
if (ref.parentNode === parent) {
|
4923
|
-
nodeOps.insertBefore(parent, elm, ref);
|
5196
|
+
if (isDef(ref$$1)) {
|
5197
|
+
if (ref$$1.parentNode === parent) {
|
5198
|
+
nodeOps.insertBefore(parent, elm, ref$$1);
|
4924
5199
|
}
|
4925
5200
|
} else {
|
4926
5201
|
nodeOps.appendChild(parent, elm);
|
@@ -4970,8 +5245,9 @@ function createPatchFunction (backend) {
|
|
4970
5245
|
}
|
4971
5246
|
// for slot content they should also get the scopeId from the host instance.
|
4972
5247
|
if (isDef(i = activeInstance) &&
|
4973
|
-
|
4974
|
-
|
5248
|
+
i !== vnode.context &&
|
5249
|
+
isDef(i = i.$options._scopeId)
|
5250
|
+
) {
|
4975
5251
|
nodeOps.setAttribute(vnode.elm, i, '');
|
4976
5252
|
}
|
4977
5253
|
}
|
@@ -5096,7 +5372,7 @@ function createPatchFunction (backend) {
|
|
5096
5372
|
if (sameVnode(elmToMove, newStartVnode)) {
|
5097
5373
|
patchVnode(elmToMove, newStartVnode, insertedVnodeQueue);
|
5098
5374
|
oldCh[idxInOld] = undefined;
|
5099
|
-
canMove && nodeOps.insertBefore(parentElm,
|
5375
|
+
canMove && nodeOps.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm);
|
5100
5376
|
newStartVnode = newCh[++newStartIdx];
|
5101
5377
|
} else {
|
5102
5378
|
// same key but different element. treat as new element
|
@@ -5118,24 +5394,37 @@ function createPatchFunction (backend) {
|
|
5118
5394
|
if (oldVnode === vnode) {
|
5119
5395
|
return
|
5120
5396
|
}
|
5397
|
+
|
5398
|
+
var elm = vnode.elm = oldVnode.elm;
|
5399
|
+
|
5400
|
+
if (isTrue(oldVnode.isAsyncPlaceholder)) {
|
5401
|
+
if (isDef(vnode.asyncFactory.resolved)) {
|
5402
|
+
hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
|
5403
|
+
} else {
|
5404
|
+
vnode.isAsyncPlaceholder = true;
|
5405
|
+
}
|
5406
|
+
return
|
5407
|
+
}
|
5408
|
+
|
5121
5409
|
// reuse element for static trees.
|
5122
5410
|
// note we only do this if the vnode is cloned -
|
5123
5411
|
// if the new node is not cloned it means the render functions have been
|
5124
5412
|
// reset by the hot-reload-api and we need to do a proper re-render.
|
5125
5413
|
if (isTrue(vnode.isStatic) &&
|
5126
|
-
|
5127
|
-
|
5128
|
-
|
5129
|
-
|
5414
|
+
isTrue(oldVnode.isStatic) &&
|
5415
|
+
vnode.key === oldVnode.key &&
|
5416
|
+
(isTrue(vnode.isCloned) || isTrue(vnode.isOnce))
|
5417
|
+
) {
|
5130
5418
|
vnode.componentInstance = oldVnode.componentInstance;
|
5131
5419
|
return
|
5132
5420
|
}
|
5421
|
+
|
5133
5422
|
var i;
|
5134
5423
|
var data = vnode.data;
|
5135
5424
|
if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {
|
5136
5425
|
i(oldVnode, vnode);
|
5137
5426
|
}
|
5138
|
-
|
5427
|
+
|
5139
5428
|
var oldCh = oldVnode.children;
|
5140
5429
|
var ch = vnode.children;
|
5141
5430
|
if (isDef(data) && isPatchable(vnode)) {
|
@@ -5180,6 +5469,11 @@ function createPatchFunction (backend) {
|
|
5180
5469
|
|
5181
5470
|
// Note: this is a browser-only function so we can assume elms are DOM nodes.
|
5182
5471
|
function hydrate (elm, vnode, insertedVnodeQueue) {
|
5472
|
+
if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
|
5473
|
+
vnode.elm = elm;
|
5474
|
+
vnode.isAsyncPlaceholder = true;
|
5475
|
+
return true
|
5476
|
+
}
|
5183
5477
|
{
|
5184
5478
|
if (!assertNodeMatch(elm, vnode)) {
|
5185
5479
|
return false
|
@@ -5216,8 +5510,9 @@ function createPatchFunction (backend) {
|
|
5216
5510
|
// longer than the virtual children list.
|
5217
5511
|
if (!childrenMatch || childNode) {
|
5218
5512
|
if ("development" !== 'production' &&
|
5219
|
-
|
5220
|
-
|
5513
|
+
typeof console !== 'undefined' &&
|
5514
|
+
!bailed
|
5515
|
+
) {
|
5221
5516
|
bailed = true;
|
5222
5517
|
console.warn('Parent: ', elm);
|
5223
5518
|
console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
|
@@ -5458,6 +5753,10 @@ var baseModules = [
|
|
5458
5753
|
/* */
|
5459
5754
|
|
5460
5755
|
function updateAttrs (oldVnode, vnode) {
|
5756
|
+
var opts = vnode.componentOptions;
|
5757
|
+
if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
|
5758
|
+
return
|
5759
|
+
}
|
5461
5760
|
if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
|
5462
5761
|
return
|
5463
5762
|
}
|
@@ -5823,10 +6122,7 @@ function genAssignmentCode (
|
|
5823
6122
|
if (modelRs.idx === null) {
|
5824
6123
|
return (value + "=" + assignment)
|
5825
6124
|
} else {
|
5826
|
-
return "
|
5827
|
-
"if (!Array.isArray($$exp)){" +
|
5828
|
-
value + "=" + assignment + "}" +
|
5829
|
-
"else{$$exp.splice($$idx, 1, " + assignment + ")}"
|
6125
|
+
return ("$set(" + (modelRs.exp) + ", " + (modelRs.idx) + ", " + assignment + ")")
|
5830
6126
|
}
|
5831
6127
|
}
|
5832
6128
|
|
@@ -5957,7 +6253,11 @@ function model (
|
|
5957
6253
|
}
|
5958
6254
|
}
|
5959
6255
|
|
5960
|
-
if (
|
6256
|
+
if (el.component) {
|
6257
|
+
genComponentModel(el, value, modifiers);
|
6258
|
+
// component v-model doesn't need extra runtime
|
6259
|
+
return false
|
6260
|
+
} else if (tag === 'select') {
|
5961
6261
|
genSelect(el, value, modifiers);
|
5962
6262
|
} else if (tag === 'input' && type === 'checkbox') {
|
5963
6263
|
genCheckboxModel(el, value, modifiers);
|
@@ -6006,7 +6306,7 @@ function genCheckboxModel (
|
|
6006
6306
|
'if(Array.isArray($$a)){' +
|
6007
6307
|
"var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," +
|
6008
6308
|
'$$i=_i($$a,$$v);' +
|
6009
|
-
"if($$
|
6309
|
+
"if($$el.checked){$$i<0&&(" + value + "=$$a.concat($$v))}" +
|
6010
6310
|
"else{$$i>-1&&(" + value + "=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}" +
|
6011
6311
|
"}else{" + (genAssignmentCode(value, '$$c')) + "}",
|
6012
6312
|
null, true
|
@@ -6074,7 +6374,7 @@ function genDefaultModel (
|
|
6074
6374
|
|
6075
6375
|
addProp(el, 'value', ("(" + value + ")"));
|
6076
6376
|
addHandler(el, event, code, null, true);
|
6077
|
-
if (trim || number
|
6377
|
+
if (trim || number) {
|
6078
6378
|
addHandler(el, 'blur', '$forceUpdate()');
|
6079
6379
|
}
|
6080
6380
|
}
|
@@ -6218,14 +6518,19 @@ function shouldUpdateValue (
|
|
6218
6518
|
}
|
6219
6519
|
|
6220
6520
|
function isDirty (elm, checkVal) {
|
6221
|
-
// return true when textbox (.number and .trim) loses focus and its value is
|
6222
|
-
|
6521
|
+
// return true when textbox (.number and .trim) loses focus and its value is
|
6522
|
+
// not equal to the updated value
|
6523
|
+
var notInFocus = true;
|
6524
|
+
// #6157
|
6525
|
+
// work around IE bug when accessing document.activeElement in an iframe
|
6526
|
+
try { notInFocus = document.activeElement !== elm; } catch (e) {}
|
6527
|
+
return notInFocus && elm.value !== checkVal
|
6223
6528
|
}
|
6224
6529
|
|
6225
6530
|
function isInputChanged (elm, newVal) {
|
6226
6531
|
var value = elm.value;
|
6227
6532
|
var modifiers = elm._vModifiers; // injected by v-model runtime
|
6228
|
-
if (
|
6533
|
+
if (isDef(modifiers) && modifiers.number) {
|
6229
6534
|
return toNumber(value) !== toNumber(newVal)
|
6230
6535
|
}
|
6231
6536
|
if (isDef(modifiers) && modifiers.trim) {
|
@@ -6331,20 +6636,20 @@ var setProp = function (el, name, val) {
|
|
6331
6636
|
}
|
6332
6637
|
};
|
6333
6638
|
|
6334
|
-
var
|
6639
|
+
var vendorNames = ['Webkit', 'Moz', 'ms'];
|
6335
6640
|
|
6336
|
-
var
|
6641
|
+
var emptyStyle;
|
6337
6642
|
var normalize = cached(function (prop) {
|
6338
|
-
|
6643
|
+
emptyStyle = emptyStyle || document.createElement('div').style;
|
6339
6644
|
prop = camelize(prop);
|
6340
|
-
if (prop !== 'filter' && (prop in
|
6645
|
+
if (prop !== 'filter' && (prop in emptyStyle)) {
|
6341
6646
|
return prop
|
6342
6647
|
}
|
6343
|
-
var
|
6344
|
-
for (var i = 0; i <
|
6345
|
-
var
|
6346
|
-
if (
|
6347
|
-
return
|
6648
|
+
var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
|
6649
|
+
for (var i = 0; i < vendorNames.length; i++) {
|
6650
|
+
var name = vendorNames[i] + capName;
|
6651
|
+
if (name in emptyStyle) {
|
6652
|
+
return name
|
6348
6653
|
}
|
6349
6654
|
}
|
6350
6655
|
});
|
@@ -6354,7 +6659,8 @@ function updateStyle (oldVnode, vnode) {
|
|
6354
6659
|
var oldData = oldVnode.data;
|
6355
6660
|
|
6356
6661
|
if (isUndef(data.staticStyle) && isUndef(data.style) &&
|
6357
|
-
|
6662
|
+
isUndef(oldData.staticStyle) && isUndef(oldData.style)
|
6663
|
+
) {
|
6358
6664
|
return
|
6359
6665
|
}
|
6360
6666
|
|
@@ -6440,13 +6746,21 @@ function removeClass (el, cls) {
|
|
6440
6746
|
} else {
|
6441
6747
|
el.classList.remove(cls);
|
6442
6748
|
}
|
6749
|
+
if (!el.classList.length) {
|
6750
|
+
el.removeAttribute('class');
|
6751
|
+
}
|
6443
6752
|
} else {
|
6444
6753
|
var cur = " " + (el.getAttribute('class') || '') + " ";
|
6445
6754
|
var tar = ' ' + cls + ' ';
|
6446
6755
|
while (cur.indexOf(tar) >= 0) {
|
6447
6756
|
cur = cur.replace(tar, ' ');
|
6448
6757
|
}
|
6449
|
-
|
6758
|
+
cur = cur.trim();
|
6759
|
+
if (cur) {
|
6760
|
+
el.setAttribute('class', cur);
|
6761
|
+
} else {
|
6762
|
+
el.removeAttribute('class');
|
6763
|
+
}
|
6450
6764
|
}
|
6451
6765
|
}
|
6452
6766
|
|
@@ -6492,12 +6806,14 @@ var animationEndEvent = 'animationend';
|
|
6492
6806
|
if (hasTransition) {
|
6493
6807
|
/* istanbul ignore if */
|
6494
6808
|
if (window.ontransitionend === undefined &&
|
6495
|
-
window.onwebkittransitionend !== undefined
|
6809
|
+
window.onwebkittransitionend !== undefined
|
6810
|
+
) {
|
6496
6811
|
transitionProp = 'WebkitTransition';
|
6497
6812
|
transitionEndEvent = 'webkitTransitionEnd';
|
6498
6813
|
}
|
6499
6814
|
if (window.onanimationend === undefined &&
|
6500
|
-
window.onwebkitanimationend !== undefined
|
6815
|
+
window.onwebkitanimationend !== undefined
|
6816
|
+
) {
|
6501
6817
|
animationProp = 'WebkitAnimation';
|
6502
6818
|
animationEndEvent = 'webkitAnimationEnd';
|
6503
6819
|
}
|
@@ -6515,8 +6831,11 @@ function nextFrame (fn) {
|
|
6515
6831
|
}
|
6516
6832
|
|
6517
6833
|
function addTransitionClass (el, cls) {
|
6518
|
-
|
6519
|
-
|
6834
|
+
var transitionClasses = el._transitionClasses || (el._transitionClasses = []);
|
6835
|
+
if (transitionClasses.indexOf(cls) < 0) {
|
6836
|
+
transitionClasses.push(cls);
|
6837
|
+
addClass(el, cls);
|
6838
|
+
}
|
6520
6839
|
}
|
6521
6840
|
|
6522
6841
|
function removeTransitionClass (el, cls) {
|
@@ -6737,8 +7056,9 @@ function enter (vnode, toggleDisplay) {
|
|
6737
7056
|
var parent = el.parentNode;
|
6738
7057
|
var pendingNode = parent && parent._pending && parent._pending[vnode.key];
|
6739
7058
|
if (pendingNode &&
|
6740
|
-
|
6741
|
-
|
7059
|
+
pendingNode.tag === vnode.tag &&
|
7060
|
+
pendingNode.elm._leaveCb
|
7061
|
+
) {
|
6742
7062
|
pendingNode.elm._leaveCb();
|
6743
7063
|
}
|
6744
7064
|
enterHook && enterHook(el, cb);
|
@@ -6960,6 +7280,8 @@ var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });
|
|
6960
7280
|
* properties to Elements.
|
6961
7281
|
*/
|
6962
7282
|
|
7283
|
+
var isTextInputType = makeMap('text,number,password,search,email,tel,url');
|
7284
|
+
|
6963
7285
|
/* istanbul ignore if */
|
6964
7286
|
if (isIE9) {
|
6965
7287
|
// http://www.matts411.com/post/internet-explorer-9-oninput/
|
@@ -6982,7 +7304,8 @@ var model$1 = {
|
|
6982
7304
|
if (isIE || isEdge) {
|
6983
7305
|
setTimeout(cb, 0);
|
6984
7306
|
}
|
6985
|
-
|
7307
|
+
el._vOptions = [].map.call(el.options, getValue);
|
7308
|
+
} else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
|
6986
7309
|
el._vModifiers = binding.modifiers;
|
6987
7310
|
if (!binding.modifiers.lazy) {
|
6988
7311
|
// Safari < 10.2 & UIWebView doesn't fire compositionend when
|
@@ -7008,10 +7331,9 @@ var model$1 = {
|
|
7008
7331
|
// it's possible that the value is out-of-sync with the rendered options.
|
7009
7332
|
// detect such cases and filter out values that no longer has a matching
|
7010
7333
|
// option in the DOM.
|
7011
|
-
var
|
7012
|
-
|
7013
|
-
|
7014
|
-
if (needReset) {
|
7334
|
+
var prevOptions = el._vOptions;
|
7335
|
+
var curOptions = el._vOptions = [].map.call(el.options, getValue);
|
7336
|
+
if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {
|
7015
7337
|
trigger(el, 'change');
|
7016
7338
|
}
|
7017
7339
|
}
|
@@ -7051,15 +7373,6 @@ function setSelected (el, binding, vm) {
|
|
7051
7373
|
}
|
7052
7374
|
}
|
7053
7375
|
|
7054
|
-
function hasNoMatchingOption (value, options) {
|
7055
|
-
for (var i = 0, l = options.length; i < l; i++) {
|
7056
|
-
if (looseEqual(getValue(options[i]), value)) {
|
7057
|
-
return false
|
7058
|
-
}
|
7059
|
-
}
|
7060
|
-
return true
|
7061
|
-
}
|
7062
|
-
|
7063
7376
|
function getValue (option) {
|
7064
7377
|
return '_value' in option
|
7065
7378
|
? option._value
|
@@ -7071,6 +7384,8 @@ function onCompositionStart (e) {
|
|
7071
7384
|
}
|
7072
7385
|
|
7073
7386
|
function onCompositionEnd (e) {
|
7387
|
+
// prevent triggering an input event for no reason
|
7388
|
+
if (!e.target.composing) { return }
|
7074
7389
|
e.target.composing = false;
|
7075
7390
|
trigger(e.target, 'input');
|
7076
7391
|
}
|
@@ -7095,10 +7410,10 @@ var show = {
|
|
7095
7410
|
var value = ref.value;
|
7096
7411
|
|
7097
7412
|
vnode = locateNode(vnode);
|
7098
|
-
var transition = vnode.data && vnode.data.transition;
|
7413
|
+
var transition$$1 = vnode.data && vnode.data.transition;
|
7099
7414
|
var originalDisplay = el.__vOriginalDisplay =
|
7100
7415
|
el.style.display === 'none' ? '' : el.style.display;
|
7101
|
-
if (value && transition
|
7416
|
+
if (value && transition$$1) {
|
7102
7417
|
vnode.data.show = true;
|
7103
7418
|
enter(vnode, function () {
|
7104
7419
|
el.style.display = originalDisplay;
|
@@ -7115,8 +7430,8 @@ var show = {
|
|
7115
7430
|
/* istanbul ignore if */
|
7116
7431
|
if (value === oldValue) { return }
|
7117
7432
|
vnode = locateNode(vnode);
|
7118
|
-
var transition = vnode.data && vnode.data.transition;
|
7119
|
-
if (transition
|
7433
|
+
var transition$$1 = vnode.data && vnode.data.transition;
|
7434
|
+
if (transition$$1) {
|
7120
7435
|
vnode.data.show = true;
|
7121
7436
|
if (value) {
|
7122
7437
|
enter(vnode, function () {
|
@@ -7220,7 +7535,11 @@ function isSameChild (child, oldChild) {
|
|
7220
7535
|
return oldChild.key === child.key && oldChild.tag === child.tag
|
7221
7536
|
}
|
7222
7537
|
|
7223
|
-
|
7538
|
+
function isAsyncPlaceholder (node) {
|
7539
|
+
return node.isComment && node.asyncFactory
|
7540
|
+
}
|
7541
|
+
|
7542
|
+
var Transition = {
|
7224
7543
|
name: 'transition',
|
7225
7544
|
props: transitionProps,
|
7226
7545
|
abstract: true,
|
@@ -7228,13 +7547,13 @@ var Transition = {
|
|
7228
7547
|
render: function render (h) {
|
7229
7548
|
var this$1 = this;
|
7230
7549
|
|
7231
|
-
var children = this.$
|
7550
|
+
var children = this.$options._renderChildren;
|
7232
7551
|
if (!children) {
|
7233
7552
|
return
|
7234
7553
|
}
|
7235
7554
|
|
7236
7555
|
// filter out text nodes (possible whitespaces)
|
7237
|
-
children = children.filter(function (c) { return c.tag; });
|
7556
|
+
children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });
|
7238
7557
|
/* istanbul ignore if */
|
7239
7558
|
if (!children.length) {
|
7240
7559
|
return
|
@@ -7253,7 +7572,8 @@ var Transition = {
|
|
7253
7572
|
|
7254
7573
|
// warn invalid mode
|
7255
7574
|
if ("development" !== 'production' &&
|
7256
|
-
|
7575
|
+
mode && mode !== 'in-out' && mode !== 'out-in'
|
7576
|
+
) {
|
7257
7577
|
warn(
|
7258
7578
|
'invalid <transition> mode: ' + mode,
|
7259
7579
|
this.$parent
|
@@ -7285,7 +7605,9 @@ var Transition = {
|
|
7285
7605
|
// during entering.
|
7286
7606
|
var id = "__transition-" + (this._uid) + "-";
|
7287
7607
|
child.key = child.key == null
|
7288
|
-
?
|
7608
|
+
? child.isComment
|
7609
|
+
? id + 'comment'
|
7610
|
+
: id + child.tag
|
7289
7611
|
: isPrimitive(child.key)
|
7290
7612
|
? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
|
7291
7613
|
: child.key;
|
@@ -7300,7 +7622,12 @@ var Transition = {
|
|
7300
7622
|
child.data.show = true;
|
7301
7623
|
}
|
7302
7624
|
|
7303
|
-
if (
|
7625
|
+
if (
|
7626
|
+
oldChild &&
|
7627
|
+
oldChild.data &&
|
7628
|
+
!isSameChild(child, oldChild) &&
|
7629
|
+
!isAsyncPlaceholder(oldChild)
|
7630
|
+
) {
|
7304
7631
|
// replace old child transition data with fresh one
|
7305
7632
|
// important for dynamic transitions!
|
7306
7633
|
var oldData = oldChild && (oldChild.data.transition = extend({}, data));
|
@@ -7314,6 +7641,9 @@ var Transition = {
|
|
7314
7641
|
});
|
7315
7642
|
return placeholder(h, rawChild)
|
7316
7643
|
} else if (mode === 'in-out') {
|
7644
|
+
if (isAsyncPlaceholder(child)) {
|
7645
|
+
return oldRawChild
|
7646
|
+
}
|
7317
7647
|
var delayedLeave;
|
7318
7648
|
var performLeave = function () { delayedLeave(); };
|
7319
7649
|
mergeVNodeHook(data, 'afterEnter', performLeave);
|
@@ -7443,7 +7773,8 @@ var TransitionGroup = {
|
|
7443
7773
|
if (!hasTransition) {
|
7444
7774
|
return false
|
7445
7775
|
}
|
7446
|
-
|
7776
|
+
/* istanbul ignore if */
|
7777
|
+
if (this._hasMove) {
|
7447
7778
|
return this._hasMove
|
7448
7779
|
}
|
7449
7780
|
// Detect whether an element with the move class applied has
|
@@ -7537,8 +7868,9 @@ setTimeout(function () {
|
|
7537
7868
|
}
|
7538
7869
|
}
|
7539
7870
|
if ("development" !== 'production' &&
|
7540
|
-
|
7541
|
-
|
7871
|
+
config.productionTip !== false &&
|
7872
|
+
inBrowser && typeof console !== 'undefined'
|
7873
|
+
) {
|
7542
7874
|
console[console.info ? 'info' : 'log'](
|
7543
7875
|
"You are running Vue in development mode.\n" +
|
7544
7876
|
"Make sure to turn on production mode when deploying for production.\n" +
|
@@ -7552,7 +7884,7 @@ setTimeout(function () {
|
|
7552
7884
|
// check whether current browser encodes a char inside attribute values
|
7553
7885
|
function shouldDecode (content, encoded) {
|
7554
7886
|
var div = document.createElement('div');
|
7555
|
-
div.innerHTML = "<div a=\"" + content + "\"
|
7887
|
+
div.innerHTML = "<div a=\"" + content + "\"/>";
|
7556
7888
|
return div.innerHTML.indexOf(encoded) > 0
|
7557
7889
|
}
|
7558
7890
|
|
@@ -7562,6 +7894,158 @@ var shouldDecodeNewlines = inBrowser ? shouldDecode('\n', ' ') : false;
|
|
7562
7894
|
|
7563
7895
|
/* */
|
7564
7896
|
|
7897
|
+
var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g;
|
7898
|
+
var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
|
7899
|
+
|
7900
|
+
var buildRegex = cached(function (delimiters) {
|
7901
|
+
var open = delimiters[0].replace(regexEscapeRE, '\\$&');
|
7902
|
+
var close = delimiters[1].replace(regexEscapeRE, '\\$&');
|
7903
|
+
return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')
|
7904
|
+
});
|
7905
|
+
|
7906
|
+
function parseText (
|
7907
|
+
text,
|
7908
|
+
delimiters
|
7909
|
+
) {
|
7910
|
+
var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
|
7911
|
+
if (!tagRE.test(text)) {
|
7912
|
+
return
|
7913
|
+
}
|
7914
|
+
var tokens = [];
|
7915
|
+
var lastIndex = tagRE.lastIndex = 0;
|
7916
|
+
var match, index;
|
7917
|
+
while ((match = tagRE.exec(text))) {
|
7918
|
+
index = match.index;
|
7919
|
+
// push text token
|
7920
|
+
if (index > lastIndex) {
|
7921
|
+
tokens.push(JSON.stringify(text.slice(lastIndex, index)));
|
7922
|
+
}
|
7923
|
+
// tag token
|
7924
|
+
var exp = parseFilters(match[1].trim());
|
7925
|
+
tokens.push(("_s(" + exp + ")"));
|
7926
|
+
lastIndex = index + match[0].length;
|
7927
|
+
}
|
7928
|
+
if (lastIndex < text.length) {
|
7929
|
+
tokens.push(JSON.stringify(text.slice(lastIndex)));
|
7930
|
+
}
|
7931
|
+
return tokens.join('+')
|
7932
|
+
}
|
7933
|
+
|
7934
|
+
/* */
|
7935
|
+
|
7936
|
+
function transformNode (el, options) {
|
7937
|
+
var warn = options.warn || baseWarn;
|
7938
|
+
var staticClass = getAndRemoveAttr(el, 'class');
|
7939
|
+
if ("development" !== 'production' && staticClass) {
|
7940
|
+
var expression = parseText(staticClass, options.delimiters);
|
7941
|
+
if (expression) {
|
7942
|
+
warn(
|
7943
|
+
"class=\"" + staticClass + "\": " +
|
7944
|
+
'Interpolation inside attributes has been removed. ' +
|
7945
|
+
'Use v-bind or the colon shorthand instead. For example, ' +
|
7946
|
+
'instead of <div class="{{ val }}">, use <div :class="val">.'
|
7947
|
+
);
|
7948
|
+
}
|
7949
|
+
}
|
7950
|
+
if (staticClass) {
|
7951
|
+
el.staticClass = JSON.stringify(staticClass);
|
7952
|
+
}
|
7953
|
+
var classBinding = getBindingAttr(el, 'class', false /* getStatic */);
|
7954
|
+
if (classBinding) {
|
7955
|
+
el.classBinding = classBinding;
|
7956
|
+
}
|
7957
|
+
}
|
7958
|
+
|
7959
|
+
function genData (el) {
|
7960
|
+
var data = '';
|
7961
|
+
if (el.staticClass) {
|
7962
|
+
data += "staticClass:" + (el.staticClass) + ",";
|
7963
|
+
}
|
7964
|
+
if (el.classBinding) {
|
7965
|
+
data += "class:" + (el.classBinding) + ",";
|
7966
|
+
}
|
7967
|
+
return data
|
7968
|
+
}
|
7969
|
+
|
7970
|
+
var klass$1 = {
|
7971
|
+
staticKeys: ['staticClass'],
|
7972
|
+
transformNode: transformNode,
|
7973
|
+
genData: genData
|
7974
|
+
};
|
7975
|
+
|
7976
|
+
/* */
|
7977
|
+
|
7978
|
+
function transformNode$1 (el, options) {
|
7979
|
+
var warn = options.warn || baseWarn;
|
7980
|
+
var staticStyle = getAndRemoveAttr(el, 'style');
|
7981
|
+
if (staticStyle) {
|
7982
|
+
/* istanbul ignore if */
|
7983
|
+
{
|
7984
|
+
var expression = parseText(staticStyle, options.delimiters);
|
7985
|
+
if (expression) {
|
7986
|
+
warn(
|
7987
|
+
"style=\"" + staticStyle + "\": " +
|
7988
|
+
'Interpolation inside attributes has been removed. ' +
|
7989
|
+
'Use v-bind or the colon shorthand instead. For example, ' +
|
7990
|
+
'instead of <div style="{{ val }}">, use <div :style="val">.'
|
7991
|
+
);
|
7992
|
+
}
|
7993
|
+
}
|
7994
|
+
el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
|
7995
|
+
}
|
7996
|
+
|
7997
|
+
var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);
|
7998
|
+
if (styleBinding) {
|
7999
|
+
el.styleBinding = styleBinding;
|
8000
|
+
}
|
8001
|
+
}
|
8002
|
+
|
8003
|
+
function genData$1 (el) {
|
8004
|
+
var data = '';
|
8005
|
+
if (el.staticStyle) {
|
8006
|
+
data += "staticStyle:" + (el.staticStyle) + ",";
|
8007
|
+
}
|
8008
|
+
if (el.styleBinding) {
|
8009
|
+
data += "style:(" + (el.styleBinding) + "),";
|
8010
|
+
}
|
8011
|
+
return data
|
8012
|
+
}
|
8013
|
+
|
8014
|
+
var style$1 = {
|
8015
|
+
staticKeys: ['staticStyle'],
|
8016
|
+
transformNode: transformNode$1,
|
8017
|
+
genData: genData$1
|
8018
|
+
};
|
8019
|
+
|
8020
|
+
var modules$1 = [
|
8021
|
+
klass$1,
|
8022
|
+
style$1
|
8023
|
+
];
|
8024
|
+
|
8025
|
+
/* */
|
8026
|
+
|
8027
|
+
function text (el, dir) {
|
8028
|
+
if (dir.value) {
|
8029
|
+
addProp(el, 'textContent', ("_s(" + (dir.value) + ")"));
|
8030
|
+
}
|
8031
|
+
}
|
8032
|
+
|
8033
|
+
/* */
|
8034
|
+
|
8035
|
+
function html (el, dir) {
|
8036
|
+
if (dir.value) {
|
8037
|
+
addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"));
|
8038
|
+
}
|
8039
|
+
}
|
8040
|
+
|
8041
|
+
var directives$1 = {
|
8042
|
+
model: model,
|
8043
|
+
text: text,
|
8044
|
+
html: html
|
8045
|
+
};
|
8046
|
+
|
8047
|
+
/* */
|
8048
|
+
|
7565
8049
|
var isUnaryTag = makeMap(
|
7566
8050
|
'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
|
7567
8051
|
'link,meta,param,source,track,wbr'
|
@@ -7585,13 +8069,30 @@ var isNonPhrasingTag = makeMap(
|
|
7585
8069
|
|
7586
8070
|
/* */
|
7587
8071
|
|
8072
|
+
var baseOptions = {
|
8073
|
+
expectHTML: true,
|
8074
|
+
modules: modules$1,
|
8075
|
+
directives: directives$1,
|
8076
|
+
isPreTag: isPreTag,
|
8077
|
+
isUnaryTag: isUnaryTag,
|
8078
|
+
mustUseProp: mustUseProp,
|
8079
|
+
canBeLeftOpenTag: canBeLeftOpenTag,
|
8080
|
+
isReservedTag: isReservedTag,
|
8081
|
+
getTagNamespace: getTagNamespace,
|
8082
|
+
staticKeys: genStaticKeys(modules$1)
|
8083
|
+
};
|
8084
|
+
|
8085
|
+
/* */
|
8086
|
+
|
7588
8087
|
var decoder;
|
7589
8088
|
|
7590
|
-
|
7591
|
-
|
7592
|
-
|
7593
|
-
|
7594
|
-
|
8089
|
+
var he = {
|
8090
|
+
decode: function decode (html) {
|
8091
|
+
decoder = decoder || document.createElement('div');
|
8092
|
+
decoder.innerHTML = html;
|
8093
|
+
return decoder.textContent
|
8094
|
+
}
|
8095
|
+
};
|
7595
8096
|
|
7596
8097
|
/**
|
7597
8098
|
* Not type-checking this file because it's mostly vendor code.
|
@@ -7651,6 +8152,10 @@ var decodingMap = {
|
|
7651
8152
|
var encodedAttr = /&(?:lt|gt|quot|amp);/g;
|
7652
8153
|
var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10);/g;
|
7653
8154
|
|
8155
|
+
// #5992
|
8156
|
+
var isIgnoreNewlineTag = makeMap('pre,textarea', true);
|
8157
|
+
var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; };
|
8158
|
+
|
7654
8159
|
function decodeAttr (value, shouldDecodeNewlines) {
|
7655
8160
|
var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
|
7656
8161
|
return value.replace(re, function (match) { return decodingMap[match]; })
|
@@ -7674,6 +8179,9 @@ function parseHTML (html, options) {
|
|
7674
8179
|
var commentEnd = html.indexOf('-->');
|
7675
8180
|
|
7676
8181
|
if (commentEnd >= 0) {
|
8182
|
+
if (options.shouldKeepComment) {
|
8183
|
+
options.comment(html.substring(4, commentEnd));
|
8184
|
+
}
|
7677
8185
|
advance(commentEnd + 3);
|
7678
8186
|
continue
|
7679
8187
|
}
|
@@ -7709,24 +8217,27 @@ function parseHTML (html, options) {
|
|
7709
8217
|
var startTagMatch = parseStartTag();
|
7710
8218
|
if (startTagMatch) {
|
7711
8219
|
handleStartTag(startTagMatch);
|
8220
|
+
if (shouldIgnoreFirstNewline(lastTag, html)) {
|
8221
|
+
advance(1);
|
8222
|
+
}
|
7712
8223
|
continue
|
7713
8224
|
}
|
7714
8225
|
}
|
7715
8226
|
|
7716
|
-
var text = (void 0), rest
|
8227
|
+
var text = (void 0), rest = (void 0), next = (void 0);
|
7717
8228
|
if (textEnd >= 0) {
|
7718
|
-
rest
|
8229
|
+
rest = html.slice(textEnd);
|
7719
8230
|
while (
|
7720
|
-
!endTag.test(rest
|
7721
|
-
!startTagOpen.test(rest
|
7722
|
-
!comment.test(rest
|
7723
|
-
!conditionalComment.test(rest
|
8231
|
+
!endTag.test(rest) &&
|
8232
|
+
!startTagOpen.test(rest) &&
|
8233
|
+
!comment.test(rest) &&
|
8234
|
+
!conditionalComment.test(rest)
|
7724
8235
|
) {
|
7725
8236
|
// < in plain text, be forgiving and treat it as text
|
7726
|
-
next = rest
|
8237
|
+
next = rest.indexOf('<', 1);
|
7727
8238
|
if (next < 0) { break }
|
7728
8239
|
textEnd += next;
|
7729
|
-
rest
|
8240
|
+
rest = html.slice(textEnd);
|
7730
8241
|
}
|
7731
8242
|
text = html.substring(0, textEnd);
|
7732
8243
|
advance(textEnd);
|
@@ -7741,23 +8252,26 @@ function parseHTML (html, options) {
|
|
7741
8252
|
options.chars(text);
|
7742
8253
|
}
|
7743
8254
|
} else {
|
8255
|
+
var endTagLength = 0;
|
7744
8256
|
var stackedTag = lastTag.toLowerCase();
|
7745
8257
|
var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
|
7746
|
-
var
|
7747
|
-
var rest = html.replace(reStackedTag, function (all, text, endTag) {
|
8258
|
+
var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {
|
7748
8259
|
endTagLength = endTag.length;
|
7749
8260
|
if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {
|
7750
8261
|
text = text
|
7751
8262
|
.replace(/<!--([\s\S]*?)-->/g, '$1')
|
7752
8263
|
.replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
|
7753
8264
|
}
|
8265
|
+
if (shouldIgnoreFirstNewline(stackedTag, text)) {
|
8266
|
+
text = text.slice(1);
|
8267
|
+
}
|
7754
8268
|
if (options.chars) {
|
7755
8269
|
options.chars(text);
|
7756
8270
|
}
|
7757
8271
|
return ''
|
7758
8272
|
});
|
7759
|
-
index += html.length - rest.length;
|
7760
|
-
html = rest;
|
8273
|
+
index += html.length - rest$1.length;
|
8274
|
+
html = rest$1;
|
7761
8275
|
parseEndTag(stackedTag, index - endTagLength, index);
|
7762
8276
|
}
|
7763
8277
|
|
@@ -7814,7 +8328,7 @@ function parseHTML (html, options) {
|
|
7814
8328
|
}
|
7815
8329
|
}
|
7816
8330
|
|
7817
|
-
var unary = isUnaryTag$$1(tagName) ||
|
8331
|
+
var unary = isUnaryTag$$1(tagName) || !!unarySlash;
|
7818
8332
|
|
7819
8333
|
var l = match.attrs.length;
|
7820
8334
|
var attrs = new Array(l);
|
@@ -7871,8 +8385,9 @@ function parseHTML (html, options) {
|
|
7871
8385
|
// Close all the open elements, up the stack
|
7872
8386
|
for (var i = stack.length - 1; i >= pos; i--) {
|
7873
8387
|
if ("development" !== 'production' &&
|
7874
|
-
|
7875
|
-
|
8388
|
+
(i > pos || !tagName) &&
|
8389
|
+
options.warn
|
8390
|
+
) {
|
7876
8391
|
options.warn(
|
7877
8392
|
("tag <" + (stack[i].tag) + "> has no matching end tag.")
|
7878
8393
|
);
|
@@ -7902,45 +8417,6 @@ function parseHTML (html, options) {
|
|
7902
8417
|
|
7903
8418
|
/* */
|
7904
8419
|
|
7905
|
-
var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g;
|
7906
|
-
var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
|
7907
|
-
|
7908
|
-
var buildRegex = cached(function (delimiters) {
|
7909
|
-
var open = delimiters[0].replace(regexEscapeRE, '\\$&');
|
7910
|
-
var close = delimiters[1].replace(regexEscapeRE, '\\$&');
|
7911
|
-
return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')
|
7912
|
-
});
|
7913
|
-
|
7914
|
-
function parseText (
|
7915
|
-
text,
|
7916
|
-
delimiters
|
7917
|
-
) {
|
7918
|
-
var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
|
7919
|
-
if (!tagRE.test(text)) {
|
7920
|
-
return
|
7921
|
-
}
|
7922
|
-
var tokens = [];
|
7923
|
-
var lastIndex = tagRE.lastIndex = 0;
|
7924
|
-
var match, index;
|
7925
|
-
while ((match = tagRE.exec(text))) {
|
7926
|
-
index = match.index;
|
7927
|
-
// push text token
|
7928
|
-
if (index > lastIndex) {
|
7929
|
-
tokens.push(JSON.stringify(text.slice(lastIndex, index)));
|
7930
|
-
}
|
7931
|
-
// tag token
|
7932
|
-
var exp = parseFilters(match[1].trim());
|
7933
|
-
tokens.push(("_s(" + exp + ")"));
|
7934
|
-
lastIndex = index + match[0].length;
|
7935
|
-
}
|
7936
|
-
if (lastIndex < text.length) {
|
7937
|
-
tokens.push(JSON.stringify(text.slice(lastIndex)));
|
7938
|
-
}
|
7939
|
-
return tokens.join('+')
|
7940
|
-
}
|
7941
|
-
|
7942
|
-
/* */
|
7943
|
-
|
7944
8420
|
var onRE = /^@|^v-on:/;
|
7945
8421
|
var dirRE = /^v-|^@|^:/;
|
7946
8422
|
var forAliasRE = /(.*?)\s+(?:in|of)\s+(.*)/;
|
@@ -7950,7 +8426,7 @@ var argRE = /:(.*)$/;
|
|
7950
8426
|
var bindRE = /^:|^v-bind:/;
|
7951
8427
|
var modifierRE = /\.[^.]+/g;
|
7952
8428
|
|
7953
|
-
var decodeHTMLCached = cached(decode);
|
8429
|
+
var decodeHTMLCached = cached(he.decode);
|
7954
8430
|
|
7955
8431
|
// configurable state
|
7956
8432
|
var warn$2;
|
@@ -7970,12 +8446,15 @@ function parse (
|
|
7970
8446
|
options
|
7971
8447
|
) {
|
7972
8448
|
warn$2 = options.warn || baseWarn;
|
7973
|
-
|
7974
|
-
platformMustUseProp = options.mustUseProp || no;
|
8449
|
+
|
7975
8450
|
platformIsPreTag = options.isPreTag || no;
|
7976
|
-
|
8451
|
+
platformMustUseProp = options.mustUseProp || no;
|
8452
|
+
platformGetTagNamespace = options.getTagNamespace || no;
|
8453
|
+
|
7977
8454
|
transforms = pluckModuleFunction(options.modules, 'transformNode');
|
8455
|
+
preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
|
7978
8456
|
postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');
|
8457
|
+
|
7979
8458
|
delimiters = options.delimiters;
|
7980
8459
|
|
7981
8460
|
var stack = [];
|
@@ -8009,6 +8488,7 @@ function parse (
|
|
8009
8488
|
isUnaryTag: options.isUnaryTag,
|
8010
8489
|
canBeLeftOpenTag: options.canBeLeftOpenTag,
|
8011
8490
|
shouldDecodeNewlines: options.shouldDecodeNewlines,
|
8491
|
+
shouldKeepComment: options.comments,
|
8012
8492
|
start: function start (tag, attrs, unary) {
|
8013
8493
|
// check namespace.
|
8014
8494
|
// inherit parent ns if there is one
|
@@ -8167,8 +8647,9 @@ function parse (
|
|
8167
8647
|
// IE textarea placeholder bug
|
8168
8648
|
/* istanbul ignore if */
|
8169
8649
|
if (isIE &&
|
8170
|
-
|
8171
|
-
|
8650
|
+
currentParent.tag === 'textarea' &&
|
8651
|
+
currentParent.attrsMap.placeholder === text
|
8652
|
+
) {
|
8172
8653
|
return
|
8173
8654
|
}
|
8174
8655
|
var children = currentParent.children;
|
@@ -8191,6 +8672,13 @@ function parse (
|
|
8191
8672
|
});
|
8192
8673
|
}
|
8193
8674
|
}
|
8675
|
+
},
|
8676
|
+
comment: function comment (text) {
|
8677
|
+
currentParent.children.push({
|
8678
|
+
type: 3,
|
8679
|
+
text: text,
|
8680
|
+
isComment: true
|
8681
|
+
});
|
8194
8682
|
}
|
8195
8683
|
});
|
8196
8684
|
return root
|
@@ -8392,7 +8880,9 @@ function processAttrs (el) {
|
|
8392
8880
|
);
|
8393
8881
|
}
|
8394
8882
|
}
|
8395
|
-
if (isProp ||
|
8883
|
+
if (isProp || (
|
8884
|
+
!el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)
|
8885
|
+
)) {
|
8396
8886
|
addProp(el, name, value);
|
8397
8887
|
} else {
|
8398
8888
|
addAttr(el, name, value);
|
@@ -8567,6 +9057,15 @@ function markStatic$1 (node) {
|
|
8567
9057
|
node.static = false;
|
8568
9058
|
}
|
8569
9059
|
}
|
9060
|
+
if (node.ifConditions) {
|
9061
|
+
for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
|
9062
|
+
var block = node.ifConditions[i$1].block;
|
9063
|
+
markStatic$1(block);
|
9064
|
+
if (!block.static) {
|
9065
|
+
node.static = false;
|
9066
|
+
}
|
9067
|
+
}
|
9068
|
+
}
|
8570
9069
|
}
|
8571
9070
|
}
|
8572
9071
|
|
@@ -8593,17 +9092,13 @@ function markStaticRoots (node, isInFor) {
|
|
8593
9092
|
}
|
8594
9093
|
}
|
8595
9094
|
if (node.ifConditions) {
|
8596
|
-
|
9095
|
+
for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
|
9096
|
+
markStaticRoots(node.ifConditions[i$1].block, isInFor);
|
9097
|
+
}
|
8597
9098
|
}
|
8598
9099
|
}
|
8599
9100
|
}
|
8600
9101
|
|
8601
|
-
function walkThroughConditionsBlocks (conditionBlocks, isInFor) {
|
8602
|
-
for (var i = 1, len = conditionBlocks.length; i < len; i++) {
|
8603
|
-
markStaticRoots(conditionBlocks[i].block, isInFor);
|
8604
|
-
}
|
8605
|
-
}
|
8606
|
-
|
8607
9102
|
function isStatic (node) {
|
8608
9103
|
if (node.type === 2) { // expression
|
8609
9104
|
return false
|
@@ -8672,17 +9167,17 @@ var modifierCode = {
|
|
8672
9167
|
|
8673
9168
|
function genHandlers (
|
8674
9169
|
events,
|
8675
|
-
|
9170
|
+
isNative,
|
8676
9171
|
warn
|
8677
9172
|
) {
|
8678
|
-
var res =
|
9173
|
+
var res = isNative ? 'nativeOn:{' : 'on:{';
|
8679
9174
|
for (var name in events) {
|
8680
9175
|
var handler = events[name];
|
8681
9176
|
// #5330: warn click.right, since right clicks do not actually fire click events.
|
8682
9177
|
if ("development" !== 'production' &&
|
8683
|
-
|
8684
|
-
|
8685
|
-
|
9178
|
+
name === 'click' &&
|
9179
|
+
handler && handler.modifiers && handler.modifiers.right
|
9180
|
+
) {
|
8686
9181
|
warn(
|
8687
9182
|
"Use \"contextmenu\" instead of \"click.right\" since right clicks " +
|
8688
9183
|
"do not actually fire \"click\" events."
|
@@ -8758,99 +9253,101 @@ function genFilterCode (key) {
|
|
8758
9253
|
|
8759
9254
|
/* */
|
8760
9255
|
|
9256
|
+
function on (el, dir) {
|
9257
|
+
if ("development" !== 'production' && dir.modifiers) {
|
9258
|
+
warn("v-on without argument does not support modifiers.");
|
9259
|
+
}
|
9260
|
+
el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); };
|
9261
|
+
}
|
9262
|
+
|
9263
|
+
/* */
|
9264
|
+
|
8761
9265
|
function bind$1 (el, dir) {
|
8762
9266
|
el.wrapData = function (code) {
|
8763
|
-
return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + (dir.modifiers && dir.modifiers.prop ? ',true' : '') + ")")
|
9267
|
+
return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")")
|
8764
9268
|
};
|
8765
9269
|
}
|
8766
9270
|
|
8767
9271
|
/* */
|
8768
9272
|
|
8769
9273
|
var baseDirectives = {
|
9274
|
+
on: on,
|
8770
9275
|
bind: bind$1,
|
8771
9276
|
cloak: noop
|
8772
9277
|
};
|
8773
9278
|
|
8774
9279
|
/* */
|
8775
9280
|
|
8776
|
-
|
8777
|
-
|
8778
|
-
|
8779
|
-
|
8780
|
-
|
8781
|
-
|
8782
|
-
var
|
8783
|
-
|
8784
|
-
|
9281
|
+
var CodegenState = function CodegenState (options) {
|
9282
|
+
this.options = options;
|
9283
|
+
this.warn = options.warn || baseWarn;
|
9284
|
+
this.transforms = pluckModuleFunction(options.modules, 'transformCode');
|
9285
|
+
this.dataGenFns = pluckModuleFunction(options.modules, 'genData');
|
9286
|
+
this.directives = extend(extend({}, baseDirectives), options.directives);
|
9287
|
+
var isReservedTag = options.isReservedTag || no;
|
9288
|
+
this.maybeComponent = function (el) { return !isReservedTag(el.tag); };
|
9289
|
+
this.onceId = 0;
|
9290
|
+
this.staticRenderFns = [];
|
9291
|
+
};
|
9292
|
+
|
9293
|
+
|
8785
9294
|
|
8786
9295
|
function generate (
|
8787
9296
|
ast,
|
8788
9297
|
options
|
8789
9298
|
) {
|
8790
|
-
|
8791
|
-
var
|
8792
|
-
var currentStaticRenderFns = staticRenderFns = [];
|
8793
|
-
var prevOnceCount = onceCount;
|
8794
|
-
onceCount = 0;
|
8795
|
-
currentOptions = options;
|
8796
|
-
warn$3 = options.warn || baseWarn;
|
8797
|
-
transforms$1 = pluckModuleFunction(options.modules, 'transformCode');
|
8798
|
-
dataGenFns = pluckModuleFunction(options.modules, 'genData');
|
8799
|
-
platformDirectives$1 = options.directives || {};
|
8800
|
-
isPlatformReservedTag$1 = options.isReservedTag || no;
|
8801
|
-
var code = ast ? genElement(ast) : '_c("div")';
|
8802
|
-
staticRenderFns = prevStaticRenderFns;
|
8803
|
-
onceCount = prevOnceCount;
|
9299
|
+
var state = new CodegenState(options);
|
9300
|
+
var code = ast ? genElement(ast, state) : '_c("div")';
|
8804
9301
|
return {
|
8805
9302
|
render: ("with(this){return " + code + "}"),
|
8806
|
-
staticRenderFns:
|
9303
|
+
staticRenderFns: state.staticRenderFns
|
8807
9304
|
}
|
8808
9305
|
}
|
8809
9306
|
|
8810
|
-
function genElement (el) {
|
9307
|
+
function genElement (el, state) {
|
8811
9308
|
if (el.staticRoot && !el.staticProcessed) {
|
8812
|
-
return genStatic(el)
|
9309
|
+
return genStatic(el, state)
|
8813
9310
|
} else if (el.once && !el.onceProcessed) {
|
8814
|
-
return genOnce(el)
|
9311
|
+
return genOnce(el, state)
|
8815
9312
|
} else if (el.for && !el.forProcessed) {
|
8816
|
-
return genFor(el)
|
9313
|
+
return genFor(el, state)
|
8817
9314
|
} else if (el.if && !el.ifProcessed) {
|
8818
|
-
return genIf(el)
|
9315
|
+
return genIf(el, state)
|
8819
9316
|
} else if (el.tag === 'template' && !el.slotTarget) {
|
8820
|
-
return genChildren(el) || 'void 0'
|
9317
|
+
return genChildren(el, state) || 'void 0'
|
8821
9318
|
} else if (el.tag === 'slot') {
|
8822
|
-
return genSlot(el)
|
9319
|
+
return genSlot(el, state)
|
8823
9320
|
} else {
|
8824
9321
|
// component or element
|
8825
9322
|
var code;
|
8826
9323
|
if (el.component) {
|
8827
|
-
code = genComponent(el.component, el);
|
9324
|
+
code = genComponent(el.component, el, state);
|
8828
9325
|
} else {
|
8829
|
-
var data = el.plain ? undefined : genData(el);
|
9326
|
+
var data = el.plain ? undefined : genData$2(el, state);
|
8830
9327
|
|
8831
|
-
var children = el.inlineTemplate ? null : genChildren(el, true);
|
9328
|
+
var children = el.inlineTemplate ? null : genChildren(el, state, true);
|
8832
9329
|
code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")";
|
8833
9330
|
}
|
8834
9331
|
// module transforms
|
8835
|
-
for (var i = 0; i < transforms
|
8836
|
-
code = transforms
|
9332
|
+
for (var i = 0; i < state.transforms.length; i++) {
|
9333
|
+
code = state.transforms[i](el, code);
|
8837
9334
|
}
|
8838
9335
|
return code
|
8839
9336
|
}
|
8840
9337
|
}
|
8841
9338
|
|
8842
9339
|
// hoist static sub-trees out
|
8843
|
-
function genStatic (el) {
|
9340
|
+
function genStatic (el, state) {
|
8844
9341
|
el.staticProcessed = true;
|
8845
|
-
staticRenderFns.push(("with(this){return " + (genElement(el)) + "}"));
|
8846
|
-
return ("_m(" + (staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")
|
9342
|
+
state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}"));
|
9343
|
+
return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")
|
8847
9344
|
}
|
8848
9345
|
|
8849
9346
|
// v-once
|
8850
|
-
function genOnce (el) {
|
9347
|
+
function genOnce (el, state) {
|
8851
9348
|
el.onceProcessed = true;
|
8852
9349
|
if (el.if && !el.ifProcessed) {
|
8853
|
-
return genIf(el)
|
9350
|
+
return genIf(el, state)
|
8854
9351
|
} else if (el.staticInFor) {
|
8855
9352
|
var key = '';
|
8856
9353
|
var parent = el.parent;
|
@@ -8862,51 +9359,72 @@ function genOnce (el) {
|
|
8862
9359
|
parent = parent.parent;
|
8863
9360
|
}
|
8864
9361
|
if (!key) {
|
8865
|
-
"development" !== 'production' && warn
|
9362
|
+
"development" !== 'production' && state.warn(
|
8866
9363
|
"v-once can only be used inside v-for that is keyed. "
|
8867
9364
|
);
|
8868
|
-
return genElement(el)
|
9365
|
+
return genElement(el, state)
|
8869
9366
|
}
|
8870
|
-
return ("_o(" + (genElement(el)) + "," + (
|
9367
|
+
return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + (key ? ("," + key) : "") + ")")
|
8871
9368
|
} else {
|
8872
|
-
return genStatic(el)
|
9369
|
+
return genStatic(el, state)
|
8873
9370
|
}
|
8874
9371
|
}
|
8875
9372
|
|
8876
|
-
function genIf (
|
9373
|
+
function genIf (
|
9374
|
+
el,
|
9375
|
+
state,
|
9376
|
+
altGen,
|
9377
|
+
altEmpty
|
9378
|
+
) {
|
8877
9379
|
el.ifProcessed = true; // avoid recursion
|
8878
|
-
return genIfConditions(el.ifConditions.slice())
|
9380
|
+
return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)
|
8879
9381
|
}
|
8880
9382
|
|
8881
|
-
function genIfConditions (
|
9383
|
+
function genIfConditions (
|
9384
|
+
conditions,
|
9385
|
+
state,
|
9386
|
+
altGen,
|
9387
|
+
altEmpty
|
9388
|
+
) {
|
8882
9389
|
if (!conditions.length) {
|
8883
|
-
return '_e()'
|
9390
|
+
return altEmpty || '_e()'
|
8884
9391
|
}
|
8885
9392
|
|
8886
9393
|
var condition = conditions.shift();
|
8887
9394
|
if (condition.exp) {
|
8888
|
-
return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions)))
|
9395
|
+
return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty)))
|
8889
9396
|
} else {
|
8890
9397
|
return ("" + (genTernaryExp(condition.block)))
|
8891
9398
|
}
|
8892
9399
|
|
8893
9400
|
// v-if with v-once should generate code like (a)?_m(0):_m(1)
|
8894
9401
|
function genTernaryExp (el) {
|
8895
|
-
return
|
9402
|
+
return altGen
|
9403
|
+
? altGen(el, state)
|
9404
|
+
: el.once
|
9405
|
+
? genOnce(el, state)
|
9406
|
+
: genElement(el, state)
|
8896
9407
|
}
|
8897
9408
|
}
|
8898
9409
|
|
8899
|
-
function genFor (
|
9410
|
+
function genFor (
|
9411
|
+
el,
|
9412
|
+
state,
|
9413
|
+
altGen,
|
9414
|
+
altHelper
|
9415
|
+
) {
|
8900
9416
|
var exp = el.for;
|
8901
9417
|
var alias = el.alias;
|
8902
9418
|
var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
|
8903
9419
|
var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
|
8904
9420
|
|
8905
|
-
if (
|
8906
|
-
|
8907
|
-
|
9421
|
+
if ("development" !== 'production' &&
|
9422
|
+
state.maybeComponent(el) &&
|
9423
|
+
el.tag !== 'slot' &&
|
9424
|
+
el.tag !== 'template' &&
|
9425
|
+
!el.key
|
8908
9426
|
) {
|
8909
|
-
warn
|
9427
|
+
state.warn(
|
8910
9428
|
"<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " +
|
8911
9429
|
"v-for should have explicit keys. " +
|
8912
9430
|
"See https://vuejs.org/guide/list.html#key for more info.",
|
@@ -8915,18 +9433,18 @@ function genFor (el) {
|
|
8915
9433
|
}
|
8916
9434
|
|
8917
9435
|
el.forProcessed = true; // avoid recursion
|
8918
|
-
return "
|
9436
|
+
return (altHelper || '_l') + "((" + exp + ")," +
|
8919
9437
|
"function(" + alias + iterator1 + iterator2 + "){" +
|
8920
|
-
"return " + (genElement(el)) +
|
9438
|
+
"return " + ((altGen || genElement)(el, state)) +
|
8921
9439
|
'})'
|
8922
9440
|
}
|
8923
9441
|
|
8924
|
-
function genData (el) {
|
9442
|
+
function genData$2 (el, state) {
|
8925
9443
|
var data = '{';
|
8926
9444
|
|
8927
9445
|
// directives first.
|
8928
9446
|
// directives may mutate the el's other properties before they are generated.
|
8929
|
-
var dirs = genDirectives(el);
|
9447
|
+
var dirs = genDirectives(el, state);
|
8930
9448
|
if (dirs) { data += dirs + ','; }
|
8931
9449
|
|
8932
9450
|
// key
|
@@ -8949,8 +9467,8 @@ function genData (el) {
|
|
8949
9467
|
data += "tag:\"" + (el.tag) + "\",";
|
8950
9468
|
}
|
8951
9469
|
// module data generation functions
|
8952
|
-
for (var i = 0; i < dataGenFns.length; i++) {
|
8953
|
-
data += dataGenFns[i](el);
|
9470
|
+
for (var i = 0; i < state.dataGenFns.length; i++) {
|
9471
|
+
data += state.dataGenFns[i](el);
|
8954
9472
|
}
|
8955
9473
|
// attributes
|
8956
9474
|
if (el.attrs) {
|
@@ -8962,10 +9480,10 @@ function genData (el) {
|
|
8962
9480
|
}
|
8963
9481
|
// event handlers
|
8964
9482
|
if (el.events) {
|
8965
|
-
data += (genHandlers(el.events, false, warn
|
9483
|
+
data += (genHandlers(el.events, false, state.warn)) + ",";
|
8966
9484
|
}
|
8967
9485
|
if (el.nativeEvents) {
|
8968
|
-
data += (genHandlers(el.nativeEvents, true, warn
|
9486
|
+
data += (genHandlers(el.nativeEvents, true, state.warn)) + ",";
|
8969
9487
|
}
|
8970
9488
|
// slot target
|
8971
9489
|
if (el.slotTarget) {
|
@@ -8973,7 +9491,7 @@ function genData (el) {
|
|
8973
9491
|
}
|
8974
9492
|
// scoped slots
|
8975
9493
|
if (el.scopedSlots) {
|
8976
|
-
data += (genScopedSlots(el.scopedSlots)) + ",";
|
9494
|
+
data += (genScopedSlots(el.scopedSlots, state)) + ",";
|
8977
9495
|
}
|
8978
9496
|
// component v-model
|
8979
9497
|
if (el.model) {
|
@@ -8981,7 +9499,7 @@ function genData (el) {
|
|
8981
9499
|
}
|
8982
9500
|
// inline-template
|
8983
9501
|
if (el.inlineTemplate) {
|
8984
|
-
var inlineTemplate = genInlineTemplate(el);
|
9502
|
+
var inlineTemplate = genInlineTemplate(el, state);
|
8985
9503
|
if (inlineTemplate) {
|
8986
9504
|
data += inlineTemplate + ",";
|
8987
9505
|
}
|
@@ -8991,10 +9509,14 @@ function genData (el) {
|
|
8991
9509
|
if (el.wrapData) {
|
8992
9510
|
data = el.wrapData(data);
|
8993
9511
|
}
|
9512
|
+
// v-on data wrap
|
9513
|
+
if (el.wrapListeners) {
|
9514
|
+
data = el.wrapListeners(data);
|
9515
|
+
}
|
8994
9516
|
return data
|
8995
9517
|
}
|
8996
9518
|
|
8997
|
-
function genDirectives (el) {
|
9519
|
+
function genDirectives (el, state) {
|
8998
9520
|
var dirs = el.directives;
|
8999
9521
|
if (!dirs) { return }
|
9000
9522
|
var res = 'directives:[';
|
@@ -9003,11 +9525,11 @@ function genDirectives (el) {
|
|
9003
9525
|
for (i = 0, l = dirs.length; i < l; i++) {
|
9004
9526
|
dir = dirs[i];
|
9005
9527
|
needRuntime = true;
|
9006
|
-
var gen =
|
9528
|
+
var gen = state.directives[dir.name];
|
9007
9529
|
if (gen) {
|
9008
9530
|
// compile-time directive that manipulates AST.
|
9009
9531
|
// returns true if it also needs a runtime counterpart.
|
9010
|
-
needRuntime = !!gen(el, dir, warn
|
9532
|
+
needRuntime = !!gen(el, dir, state.warn);
|
9011
9533
|
}
|
9012
9534
|
if (needRuntime) {
|
9013
9535
|
hasRuntime = true;
|
@@ -9019,43 +9541,81 @@ function genDirectives (el) {
|
|
9019
9541
|
}
|
9020
9542
|
}
|
9021
9543
|
|
9022
|
-
function genInlineTemplate (el) {
|
9544
|
+
function genInlineTemplate (el, state) {
|
9023
9545
|
var ast = el.children[0];
|
9024
9546
|
if ("development" !== 'production' && (
|
9025
9547
|
el.children.length > 1 || ast.type !== 1
|
9026
9548
|
)) {
|
9027
|
-
warn
|
9549
|
+
state.warn('Inline-template components must have exactly one child element.');
|
9028
9550
|
}
|
9029
9551
|
if (ast.type === 1) {
|
9030
|
-
var inlineRenderFns = generate(ast,
|
9552
|
+
var inlineRenderFns = generate(ast, state.options);
|
9031
9553
|
return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}")
|
9032
9554
|
}
|
9033
9555
|
}
|
9034
9556
|
|
9035
|
-
function genScopedSlots (
|
9036
|
-
|
9557
|
+
function genScopedSlots (
|
9558
|
+
slots,
|
9559
|
+
state
|
9560
|
+
) {
|
9561
|
+
return ("scopedSlots:_u([" + (Object.keys(slots).map(function (key) {
|
9562
|
+
return genScopedSlot(key, slots[key], state)
|
9563
|
+
}).join(',')) + "])")
|
9037
9564
|
}
|
9038
9565
|
|
9039
|
-
function genScopedSlot (
|
9040
|
-
|
9566
|
+
function genScopedSlot (
|
9567
|
+
key,
|
9568
|
+
el,
|
9569
|
+
state
|
9570
|
+
) {
|
9571
|
+
if (el.for && !el.forProcessed) {
|
9572
|
+
return genForScopedSlot(key, el, state)
|
9573
|
+
}
|
9574
|
+
return "{key:" + key + ",fn:function(" + (String(el.attrsMap.scope)) + "){" +
|
9041
9575
|
"return " + (el.tag === 'template'
|
9042
|
-
? genChildren(el) || 'void 0'
|
9043
|
-
: genElement(el)) + "}
|
9576
|
+
? genChildren(el, state) || 'void 0'
|
9577
|
+
: genElement(el, state)) + "}}"
|
9044
9578
|
}
|
9045
9579
|
|
9046
|
-
function
|
9580
|
+
function genForScopedSlot (
|
9581
|
+
key,
|
9582
|
+
el,
|
9583
|
+
state
|
9584
|
+
) {
|
9585
|
+
var exp = el.for;
|
9586
|
+
var alias = el.alias;
|
9587
|
+
var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
|
9588
|
+
var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
|
9589
|
+
el.forProcessed = true; // avoid recursion
|
9590
|
+
return "_l((" + exp + ")," +
|
9591
|
+
"function(" + alias + iterator1 + iterator2 + "){" +
|
9592
|
+
"return " + (genScopedSlot(key, el, state)) +
|
9593
|
+
'})'
|
9594
|
+
}
|
9595
|
+
|
9596
|
+
function genChildren (
|
9597
|
+
el,
|
9598
|
+
state,
|
9599
|
+
checkSkip,
|
9600
|
+
altGenElement,
|
9601
|
+
altGenNode
|
9602
|
+
) {
|
9047
9603
|
var children = el.children;
|
9048
9604
|
if (children.length) {
|
9049
9605
|
var el$1 = children[0];
|
9050
9606
|
// optimize single v-for
|
9051
9607
|
if (children.length === 1 &&
|
9052
|
-
|
9053
|
-
|
9054
|
-
|
9055
|
-
|
9608
|
+
el$1.for &&
|
9609
|
+
el$1.tag !== 'template' &&
|
9610
|
+
el$1.tag !== 'slot'
|
9611
|
+
) {
|
9612
|
+
return (altGenElement || genElement)(el$1, state)
|
9056
9613
|
}
|
9057
|
-
var normalizationType = checkSkip
|
9058
|
-
|
9614
|
+
var normalizationType = checkSkip
|
9615
|
+
? getNormalizationType(children, state.maybeComponent)
|
9616
|
+
: 0;
|
9617
|
+
var gen = altGenNode || genNode;
|
9618
|
+
return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType ? ("," + normalizationType) : ''))
|
9059
9619
|
}
|
9060
9620
|
}
|
9061
9621
|
|
@@ -9063,7 +9623,10 @@ function genChildren (el, checkSkip) {
|
|
9063
9623
|
// 0: no normalization needed
|
9064
9624
|
// 1: simple normalization needed (possible 1-level deep nested array)
|
9065
9625
|
// 2: full normalization needed
|
9066
|
-
function getNormalizationType (
|
9626
|
+
function getNormalizationType (
|
9627
|
+
children,
|
9628
|
+
maybeComponent
|
9629
|
+
) {
|
9067
9630
|
var res = 0;
|
9068
9631
|
for (var i = 0; i < children.length; i++) {
|
9069
9632
|
var el = children[i];
|
@@ -9087,13 +9650,11 @@ function needsNormalization (el) {
|
|
9087
9650
|
return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'
|
9088
9651
|
}
|
9089
9652
|
|
9090
|
-
function
|
9091
|
-
return !isPlatformReservedTag$1(el.tag)
|
9092
|
-
}
|
9093
|
-
|
9094
|
-
function genNode (node) {
|
9653
|
+
function genNode (node, state) {
|
9095
9654
|
if (node.type === 1) {
|
9096
|
-
return genElement(node)
|
9655
|
+
return genElement(node, state)
|
9656
|
+
} if (node.type === 3 && node.isComment) {
|
9657
|
+
return genComment(node)
|
9097
9658
|
} else {
|
9098
9659
|
return genText(node)
|
9099
9660
|
}
|
@@ -9105,9 +9666,13 @@ function genText (text) {
|
|
9105
9666
|
: transformSpecialNewlines(JSON.stringify(text.text))) + ")")
|
9106
9667
|
}
|
9107
9668
|
|
9108
|
-
function
|
9669
|
+
function genComment (comment) {
|
9670
|
+
return ("_e(" + (JSON.stringify(comment.text)) + ")")
|
9671
|
+
}
|
9672
|
+
|
9673
|
+
function genSlot (el, state) {
|
9109
9674
|
var slotName = el.slotName || '"default"';
|
9110
|
-
var children = genChildren(el);
|
9675
|
+
var children = genChildren(el, state);
|
9111
9676
|
var res = "_t(" + slotName + (children ? ("," + children) : '');
|
9112
9677
|
var attrs = el.attrs && ("{" + (el.attrs.map(function (a) { return ((camelize(a.name)) + ":" + (a.value)); }).join(',')) + "}");
|
9113
9678
|
var bind$$1 = el.attrsMap['v-bind'];
|
@@ -9124,9 +9689,13 @@ function genSlot (el) {
|
|
9124
9689
|
}
|
9125
9690
|
|
9126
9691
|
// componentName is el.component, take it as argument to shun flow's pessimistic refinement
|
9127
|
-
function genComponent (
|
9128
|
-
|
9129
|
-
|
9692
|
+
function genComponent (
|
9693
|
+
componentName,
|
9694
|
+
el,
|
9695
|
+
state
|
9696
|
+
) {
|
9697
|
+
var children = el.inlineTemplate ? null : genChildren(el, state, true);
|
9698
|
+
return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")")
|
9130
9699
|
}
|
9131
9700
|
|
9132
9701
|
function genProps (props) {
|
@@ -9244,21 +9813,7 @@ function checkExpression (exp, text, errors) {
|
|
9244
9813
|
|
9245
9814
|
/* */
|
9246
9815
|
|
9247
|
-
function
|
9248
|
-
template,
|
9249
|
-
options
|
9250
|
-
) {
|
9251
|
-
var ast = parse(template.trim(), options);
|
9252
|
-
optimize(ast, options);
|
9253
|
-
var code = generate(ast, options);
|
9254
|
-
return {
|
9255
|
-
ast: ast,
|
9256
|
-
render: code.render,
|
9257
|
-
staticRenderFns: code.staticRenderFns
|
9258
|
-
}
|
9259
|
-
}
|
9260
|
-
|
9261
|
-
function makeFunction (code, errors) {
|
9816
|
+
function createFunction (code, errors) {
|
9262
9817
|
try {
|
9263
9818
|
return new Function(code)
|
9264
9819
|
} catch (err) {
|
@@ -9267,50 +9822,10 @@ function makeFunction (code, errors) {
|
|
9267
9822
|
}
|
9268
9823
|
}
|
9269
9824
|
|
9270
|
-
function
|
9271
|
-
var
|
9272
|
-
|
9273
|
-
function compile (
|
9274
|
-
template,
|
9275
|
-
options
|
9276
|
-
) {
|
9277
|
-
var finalOptions = Object.create(baseOptions);
|
9278
|
-
var errors = [];
|
9279
|
-
var tips = [];
|
9280
|
-
finalOptions.warn = function (msg, tip$$1) {
|
9281
|
-
(tip$$1 ? tips : errors).push(msg);
|
9282
|
-
};
|
9283
|
-
|
9284
|
-
if (options) {
|
9285
|
-
// merge custom modules
|
9286
|
-
if (options.modules) {
|
9287
|
-
finalOptions.modules = (baseOptions.modules || []).concat(options.modules);
|
9288
|
-
}
|
9289
|
-
// merge custom directives
|
9290
|
-
if (options.directives) {
|
9291
|
-
finalOptions.directives = extend(
|
9292
|
-
Object.create(baseOptions.directives),
|
9293
|
-
options.directives
|
9294
|
-
);
|
9295
|
-
}
|
9296
|
-
// copy other options
|
9297
|
-
for (var key in options) {
|
9298
|
-
if (key !== 'modules' && key !== 'directives') {
|
9299
|
-
finalOptions[key] = options[key];
|
9300
|
-
}
|
9301
|
-
}
|
9302
|
-
}
|
9303
|
-
|
9304
|
-
var compiled = baseCompile(template, finalOptions);
|
9305
|
-
{
|
9306
|
-
errors.push.apply(errors, detectErrors(compiled.ast));
|
9307
|
-
}
|
9308
|
-
compiled.errors = errors;
|
9309
|
-
compiled.tips = tips;
|
9310
|
-
return compiled
|
9311
|
-
}
|
9825
|
+
function createCompileToFunctionFn (compile) {
|
9826
|
+
var cache = Object.create(null);
|
9312
9827
|
|
9313
|
-
function compileToFunctions (
|
9828
|
+
return function compileToFunctions (
|
9314
9829
|
template,
|
9315
9830
|
options,
|
9316
9831
|
vm
|
@@ -9339,8 +9854,8 @@ function createCompiler (baseOptions) {
|
|
9339
9854
|
var key = options.delimiters
|
9340
9855
|
? String(options.delimiters) + template
|
9341
9856
|
: template;
|
9342
|
-
if (
|
9343
|
-
return
|
9857
|
+
if (cache[key]) {
|
9858
|
+
return cache[key]
|
9344
9859
|
}
|
9345
9860
|
|
9346
9861
|
// compile
|
@@ -9363,12 +9878,10 @@ function createCompiler (baseOptions) {
|
|
9363
9878
|
// turn code into functions
|
9364
9879
|
var res = {};
|
9365
9880
|
var fnGenErrors = [];
|
9366
|
-
res.render =
|
9367
|
-
|
9368
|
-
|
9369
|
-
|
9370
|
-
res.staticRenderFns[i] = makeFunction(compiled.staticRenderFns[i], fnGenErrors);
|
9371
|
-
}
|
9881
|
+
res.render = createFunction(compiled.render, fnGenErrors);
|
9882
|
+
res.staticRenderFns = compiled.staticRenderFns.map(function (code) {
|
9883
|
+
return createFunction(code, fnGenErrors)
|
9884
|
+
});
|
9372
9885
|
|
9373
9886
|
// check function generation errors.
|
9374
9887
|
// this should only happen if there is a bug in the compiler itself.
|
@@ -9389,143 +9902,83 @@ function createCompiler (baseOptions) {
|
|
9389
9902
|
}
|
9390
9903
|
}
|
9391
9904
|
|
9392
|
-
return (
|
9393
|
-
}
|
9394
|
-
|
9395
|
-
return {
|
9396
|
-
compile: compile,
|
9397
|
-
compileToFunctions: compileToFunctions
|
9905
|
+
return (cache[key] = res)
|
9398
9906
|
}
|
9399
9907
|
}
|
9400
9908
|
|
9401
9909
|
/* */
|
9402
9910
|
|
9403
|
-
function
|
9404
|
-
|
9405
|
-
|
9406
|
-
|
9407
|
-
|
9408
|
-
|
9409
|
-
|
9410
|
-
|
9411
|
-
|
9412
|
-
|
9413
|
-
|
9414
|
-
|
9415
|
-
}
|
9416
|
-
}
|
9417
|
-
if (staticClass) {
|
9418
|
-
el.staticClass = JSON.stringify(staticClass);
|
9419
|
-
}
|
9420
|
-
var classBinding = getBindingAttr(el, 'class', false /* getStatic */);
|
9421
|
-
if (classBinding) {
|
9422
|
-
el.classBinding = classBinding;
|
9423
|
-
}
|
9424
|
-
}
|
9425
|
-
|
9426
|
-
function genData$1 (el) {
|
9427
|
-
var data = '';
|
9428
|
-
if (el.staticClass) {
|
9429
|
-
data += "staticClass:" + (el.staticClass) + ",";
|
9430
|
-
}
|
9431
|
-
if (el.classBinding) {
|
9432
|
-
data += "class:" + (el.classBinding) + ",";
|
9433
|
-
}
|
9434
|
-
return data
|
9435
|
-
}
|
9436
|
-
|
9437
|
-
var klass$1 = {
|
9438
|
-
staticKeys: ['staticClass'],
|
9439
|
-
transformNode: transformNode,
|
9440
|
-
genData: genData$1
|
9441
|
-
};
|
9911
|
+
function createCompilerCreator (baseCompile) {
|
9912
|
+
return function createCompiler (baseOptions) {
|
9913
|
+
function compile (
|
9914
|
+
template,
|
9915
|
+
options
|
9916
|
+
) {
|
9917
|
+
var finalOptions = Object.create(baseOptions);
|
9918
|
+
var errors = [];
|
9919
|
+
var tips = [];
|
9920
|
+
finalOptions.warn = function (msg, tip) {
|
9921
|
+
(tip ? tips : errors).push(msg);
|
9922
|
+
};
|
9442
9923
|
|
9443
|
-
|
9924
|
+
if (options) {
|
9925
|
+
// merge custom modules
|
9926
|
+
if (options.modules) {
|
9927
|
+
finalOptions.modules =
|
9928
|
+
(baseOptions.modules || []).concat(options.modules);
|
9929
|
+
}
|
9930
|
+
// merge custom directives
|
9931
|
+
if (options.directives) {
|
9932
|
+
finalOptions.directives = extend(
|
9933
|
+
Object.create(baseOptions.directives),
|
9934
|
+
options.directives
|
9935
|
+
);
|
9936
|
+
}
|
9937
|
+
// copy other options
|
9938
|
+
for (var key in options) {
|
9939
|
+
if (key !== 'modules' && key !== 'directives') {
|
9940
|
+
finalOptions[key] = options[key];
|
9941
|
+
}
|
9942
|
+
}
|
9943
|
+
}
|
9444
9944
|
|
9445
|
-
|
9446
|
-
|
9447
|
-
|
9448
|
-
if (staticStyle) {
|
9449
|
-
/* istanbul ignore if */
|
9450
|
-
{
|
9451
|
-
var expression = parseText(staticStyle, options.delimiters);
|
9452
|
-
if (expression) {
|
9453
|
-
warn(
|
9454
|
-
"style=\"" + staticStyle + "\": " +
|
9455
|
-
'Interpolation inside attributes has been removed. ' +
|
9456
|
-
'Use v-bind or the colon shorthand instead. For example, ' +
|
9457
|
-
'instead of <div style="{{ val }}">, use <div :style="val">.'
|
9458
|
-
);
|
9945
|
+
var compiled = baseCompile(template, finalOptions);
|
9946
|
+
{
|
9947
|
+
errors.push.apply(errors, detectErrors(compiled.ast));
|
9459
9948
|
}
|
9949
|
+
compiled.errors = errors;
|
9950
|
+
compiled.tips = tips;
|
9951
|
+
return compiled
|
9460
9952
|
}
|
9461
|
-
el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
|
9462
|
-
}
|
9463
|
-
|
9464
|
-
var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);
|
9465
|
-
if (styleBinding) {
|
9466
|
-
el.styleBinding = styleBinding;
|
9467
|
-
}
|
9468
|
-
}
|
9469
|
-
|
9470
|
-
function genData$2 (el) {
|
9471
|
-
var data = '';
|
9472
|
-
if (el.staticStyle) {
|
9473
|
-
data += "staticStyle:" + (el.staticStyle) + ",";
|
9474
|
-
}
|
9475
|
-
if (el.styleBinding) {
|
9476
|
-
data += "style:(" + (el.styleBinding) + "),";
|
9477
|
-
}
|
9478
|
-
return data
|
9479
|
-
}
|
9480
9953
|
|
9481
|
-
|
9482
|
-
|
9483
|
-
|
9484
|
-
|
9485
|
-
};
|
9486
|
-
|
9487
|
-
var modules$1 = [
|
9488
|
-
klass$1,
|
9489
|
-
style$1
|
9490
|
-
];
|
9491
|
-
|
9492
|
-
/* */
|
9493
|
-
|
9494
|
-
function text (el, dir) {
|
9495
|
-
if (dir.value) {
|
9496
|
-
addProp(el, 'textContent', ("_s(" + (dir.value) + ")"));
|
9954
|
+
return {
|
9955
|
+
compile: compile,
|
9956
|
+
compileToFunctions: createCompileToFunctionFn(compile)
|
9957
|
+
}
|
9497
9958
|
}
|
9498
9959
|
}
|
9499
9960
|
|
9500
9961
|
/* */
|
9501
9962
|
|
9502
|
-
|
9503
|
-
|
9504
|
-
|
9963
|
+
// `createCompilerCreator` allows creating compilers that use alternative
|
9964
|
+
// parser/optimizer/codegen, e.g the SSR optimizing compiler.
|
9965
|
+
// Here we just export a default compiler using the default parts.
|
9966
|
+
var createCompiler = createCompilerCreator(function baseCompile (
|
9967
|
+
template,
|
9968
|
+
options
|
9969
|
+
) {
|
9970
|
+
var ast = parse(template.trim(), options);
|
9971
|
+
optimize(ast, options);
|
9972
|
+
var code = generate(ast, options);
|
9973
|
+
return {
|
9974
|
+
ast: ast,
|
9975
|
+
render: code.render,
|
9976
|
+
staticRenderFns: code.staticRenderFns
|
9505
9977
|
}
|
9506
|
-
}
|
9507
|
-
|
9508
|
-
var directives$1 = {
|
9509
|
-
model: model,
|
9510
|
-
text: text,
|
9511
|
-
html: html
|
9512
|
-
};
|
9978
|
+
});
|
9513
9979
|
|
9514
9980
|
/* */
|
9515
9981
|
|
9516
|
-
var baseOptions = {
|
9517
|
-
expectHTML: true,
|
9518
|
-
modules: modules$1,
|
9519
|
-
directives: directives$1,
|
9520
|
-
isPreTag: isPreTag,
|
9521
|
-
isUnaryTag: isUnaryTag,
|
9522
|
-
mustUseProp: mustUseProp,
|
9523
|
-
canBeLeftOpenTag: canBeLeftOpenTag,
|
9524
|
-
isReservedTag: isReservedTag,
|
9525
|
-
getTagNamespace: getTagNamespace,
|
9526
|
-
staticKeys: genStaticKeys(modules$1)
|
9527
|
-
};
|
9528
|
-
|
9529
9982
|
var ref$1 = createCompiler(baseOptions);
|
9530
9983
|
var compileToFunctions = ref$1.compileToFunctions;
|
9531
9984
|
|
@@ -9586,7 +10039,8 @@ Vue$3.prototype.$mount = function (
|
|
9586
10039
|
|
9587
10040
|
var ref = compileToFunctions(template, {
|
9588
10041
|
shouldDecodeNewlines: shouldDecodeNewlines,
|
9589
|
-
delimiters: options.delimiters
|
10042
|
+
delimiters: options.delimiters,
|
10043
|
+
comments: options.comments
|
9590
10044
|
}, this);
|
9591
10045
|
var render = ref.render;
|
9592
10046
|
var staticRenderFns = ref.staticRenderFns;
|