|
|
@@ -1,5 +1,5 @@
|
|
|
/*!
|
|
|
- * Vue.js v2.0.0-rc.2
|
|
|
+ * Vue.js v2.0.0-rc.3
|
|
|
* (c) 2014-2016 Evan You
|
|
|
* Released under the MIT License.
|
|
|
*/
|
|
|
@@ -364,18 +364,16 @@
|
|
|
|
|
|
/* istanbul ignore else */
|
|
|
if (typeof MutationObserver !== 'undefined' && !hasMutationObserverBug) {
|
|
|
- (function () {
|
|
|
- var counter = 1;
|
|
|
- var observer = new MutationObserver(nextTickHandler);
|
|
|
- var textNode = document.createTextNode(String(counter));
|
|
|
- observer.observe(textNode, {
|
|
|
- characterData: true
|
|
|
- });
|
|
|
- timerFunc = function timerFunc() {
|
|
|
- counter = (counter + 1) % 2;
|
|
|
- textNode.data = String(counter);
|
|
|
- };
|
|
|
- })();
|
|
|
+ var counter = 1;
|
|
|
+ var observer = new MutationObserver(nextTickHandler);
|
|
|
+ var textNode = document.createTextNode(String(counter));
|
|
|
+ observer.observe(textNode, {
|
|
|
+ characterData: true
|
|
|
+ });
|
|
|
+ timerFunc = function timerFunc() {
|
|
|
+ counter = (counter + 1) % 2;
|
|
|
+ textNode.data = String(counter);
|
|
|
+ };
|
|
|
} else {
|
|
|
// webpack attempts to inject a shim for setImmediate
|
|
|
// if it is used as a global, so we have to work around that to
|
|
|
@@ -427,7 +425,7 @@
|
|
|
var initProxy = void 0;
|
|
|
if ("development" !== 'production') {
|
|
|
(function () {
|
|
|
- var allowedGlobals = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + 'require,__webpack_require__' // for Webpack/Browserify
|
|
|
+ var allowedGlobals = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + 'require' // for Webpack/Browserify
|
|
|
);
|
|
|
|
|
|
hasProxy = typeof Proxy !== 'undefined' && Proxy.toString().match(/native code/);
|
|
|
@@ -435,11 +433,11 @@
|
|
|
proxyHandlers = {
|
|
|
has: function has(target, key) {
|
|
|
var has = key in target;
|
|
|
- var isAllowedGlobal = allowedGlobals(key);
|
|
|
- if (!has && !isAllowedGlobal) {
|
|
|
+ var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';
|
|
|
+ if (!has && !isAllowed) {
|
|
|
warn('Property or method "' + key + '" is not defined on the instance but ' + 'referenced during render. Make sure to declare reactive data ' + 'properties in the data option.', target);
|
|
|
}
|
|
|
- return !isAllowedGlobal;
|
|
|
+ return has || !isAllowed;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -1224,6 +1222,9 @@
|
|
|
}
|
|
|
Object.defineProperty(Vue.prototype, '$data', dataDef);
|
|
|
|
|
|
+ Vue.prototype.$set = set;
|
|
|
+ Vue.prototype.$delete = del;
|
|
|
+
|
|
|
Vue.prototype.$watch = function (expOrFn, cb, options) {
|
|
|
var vm = this;
|
|
|
options = options || {};
|
|
|
@@ -1638,28 +1639,7 @@
|
|
|
|
|
|
// functional component
|
|
|
if (Ctor.options.functional) {
|
|
|
- var _ret = function () {
|
|
|
- var props = {};
|
|
|
- var propOptions = Ctor.options.props;
|
|
|
- if (propOptions) {
|
|
|
- Object.keys(propOptions).forEach(function (key) {
|
|
|
- props[key] = validateProp(key, propOptions, propsData);
|
|
|
- });
|
|
|
- }
|
|
|
- return {
|
|
|
- v: Ctor.options.render.call(null, context.$createElement, {
|
|
|
- props: props,
|
|
|
- data: data,
|
|
|
- parent: context,
|
|
|
- children: normalizeChildren(children),
|
|
|
- slots: function slots() {
|
|
|
- return resolveSlots(children);
|
|
|
- }
|
|
|
- })
|
|
|
- };
|
|
|
- }();
|
|
|
-
|
|
|
- if (typeof _ret === "object") return _ret.v;
|
|
|
+ return createFunctionalComponent(Ctor, propsData, data, context, children);
|
|
|
}
|
|
|
|
|
|
// extract listeners, since these needs to be treated as
|
|
|
@@ -1683,6 +1663,25 @@
|
|
|
return vnode;
|
|
|
}
|
|
|
|
|
|
+ function createFunctionalComponent(Ctor, propsData, data, context, children) {
|
|
|
+ var props = {};
|
|
|
+ var propOptions = Ctor.options.props;
|
|
|
+ if (propOptions) {
|
|
|
+ for (var key in propOptions) {
|
|
|
+ props[key] = validateProp(key, propOptions, propsData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Ctor.options.render.call(null, context.$createElement, {
|
|
|
+ props: props,
|
|
|
+ data: data,
|
|
|
+ parent: context,
|
|
|
+ children: normalizeChildren(children),
|
|
|
+ slots: function slots() {
|
|
|
+ return resolveSlots(children);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
function createComponentInstanceForVnode(vnode, // we know it's MountedComponentVNode but flow doesn't
|
|
|
parent // activeInstance in lifecycle state
|
|
|
) {
|
|
|
@@ -1749,7 +1748,7 @@
|
|
|
// pool callbacks
|
|
|
factory.pendingCallbacks.push(cb);
|
|
|
} else {
|
|
|
- var _ret2 = function () {
|
|
|
+ var _ret = function () {
|
|
|
factory.requested = true;
|
|
|
var cbs = factory.pendingCallbacks = [cb];
|
|
|
var sync = true;
|
|
|
@@ -1780,7 +1779,7 @@
|
|
|
};
|
|
|
}();
|
|
|
|
|
|
- if (typeof _ret2 === "object") return _ret2.v;
|
|
|
+ if (typeof _ret === "object") return _ret.v;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -2250,7 +2249,7 @@
|
|
|
|
|
|
var formatLocation = function formatLocation(str) {
|
|
|
if (str === 'anonymous component') {
|
|
|
- str += ' - use the "name" option for better debugging messages.)';
|
|
|
+ str += ' - use the "name" option for better debugging messages.';
|
|
|
}
|
|
|
return '(found in ' + str + ')';
|
|
|
};
|
|
|
@@ -2276,7 +2275,7 @@
|
|
|
};
|
|
|
|
|
|
strats.name = function (parent, child, vm) {
|
|
|
- if (vm) {
|
|
|
+ if (vm && child) {
|
|
|
warn('options "name" can only be used as a component definition option, ' + 'not during instance creation.');
|
|
|
}
|
|
|
return defaultStrat(parent, child);
|
|
|
@@ -2884,7 +2883,7 @@
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- Vue.version = '2.0.0-rc.2';
|
|
|
+ Vue.version = '2.0.0-rc.3';
|
|
|
|
|
|
// attributes that should be using props for binding
|
|
|
var mustUseProp = makeMap('value,selected,checked,muted');
|
|
|
@@ -3139,6 +3138,47 @@ var nodeOps = Object.freeze({
|
|
|
setAttribute: setAttribute
|
|
|
});
|
|
|
|
|
|
+ var ref = {
|
|
|
+ create: function create(_, vnode) {
|
|
|
+ registerRef(vnode);
|
|
|
+ },
|
|
|
+ update: function update(oldVnode, vnode) {
|
|
|
+ if (oldVnode.data.ref !== vnode.data.ref) {
|
|
|
+ registerRef(oldVnode, true);
|
|
|
+ registerRef(vnode);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ destroy: function destroy(vnode) {
|
|
|
+ registerRef(vnode, true);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ function registerRef(vnode, isRemoval) {
|
|
|
+ var key = vnode.data.ref;
|
|
|
+ if (!key) return;
|
|
|
+
|
|
|
+ var vm = vnode.context;
|
|
|
+ var ref = vnode.child || vnode.elm;
|
|
|
+ var refs = vm.$refs;
|
|
|
+ if (isRemoval) {
|
|
|
+ if (Array.isArray(refs[key])) {
|
|
|
+ remove(refs[key], ref);
|
|
|
+ } else if (refs[key] === ref) {
|
|
|
+ refs[key] = undefined;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (vnode.data.refInFor) {
|
|
|
+ if (Array.isArray(refs[key])) {
|
|
|
+ refs[key].push(ref);
|
|
|
+ } else {
|
|
|
+ refs[key] = [ref];
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ refs[key] = ref;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
var emptyData = {};
|
|
|
var emptyNode = new VNode('', emptyData, []);
|
|
|
var hooks$1 = ['create', 'update', 'postpatch', 'remove', 'destroy'];
|
|
|
@@ -3272,6 +3312,10 @@ var nodeOps = Object.freeze({
|
|
|
invokeCreateHooks(vnode, insertedVnodeQueue);
|
|
|
setScope(vnode);
|
|
|
} else {
|
|
|
+ // empty component root.
|
|
|
+ // skip all element-related modules except for ref (#3455)
|
|
|
+ registerRef(vnode);
|
|
|
+ // make sure to invoke the insert hook
|
|
|
insertedVnodeQueue.push(vnode);
|
|
|
}
|
|
|
}
|
|
|
@@ -3320,8 +3364,8 @@ var nodeOps = Object.freeze({
|
|
|
var ch = vnodes[startIdx];
|
|
|
if (isDef(ch)) {
|
|
|
if (isDef(ch.tag)) {
|
|
|
- invokeDestroyHook(ch);
|
|
|
removeAndInvokeRemoveHook(ch);
|
|
|
+ invokeDestroyHook(ch);
|
|
|
} else {
|
|
|
// Text node
|
|
|
nodeOps.removeChild(parentElm, ch.elm);
|
|
|
@@ -3653,47 +3697,6 @@ var nodeOps = Object.freeze({
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- var ref = {
|
|
|
- create: function create(_, vnode) {
|
|
|
- registerRef(vnode);
|
|
|
- },
|
|
|
- update: function update(oldVnode, vnode) {
|
|
|
- if (oldVnode.data.ref !== vnode.data.ref) {
|
|
|
- registerRef(oldVnode, true);
|
|
|
- registerRef(vnode);
|
|
|
- }
|
|
|
- },
|
|
|
- destroy: function destroy(vnode) {
|
|
|
- registerRef(vnode, true);
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- function registerRef(vnode, isRemoval) {
|
|
|
- var key = vnode.data.ref;
|
|
|
- if (!key) return;
|
|
|
-
|
|
|
- var vm = vnode.context;
|
|
|
- var ref = vnode.child || vnode.elm;
|
|
|
- var refs = vm.$refs;
|
|
|
- if (isRemoval) {
|
|
|
- if (Array.isArray(refs[key])) {
|
|
|
- remove(refs[key], ref);
|
|
|
- } else if (refs[key] === ref) {
|
|
|
- refs[key] = undefined;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (vnode.data.refInFor) {
|
|
|
- if (Array.isArray(refs[key])) {
|
|
|
- refs[key].push(ref);
|
|
|
- } else {
|
|
|
- refs[key] = [ref];
|
|
|
- }
|
|
|
- } else {
|
|
|
- refs[key] = ref;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
var baseModules = [ref, directives];
|
|
|
|
|
|
function updateAttrs(oldVnode, vnode) {
|
|
|
@@ -4163,14 +4166,21 @@ var nodeOps = Object.freeze({
|
|
|
|
|
|
if (!vnode.data.show) {
|
|
|
// remove pending leave element on enter by injecting an insert hook
|
|
|
- mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', function () {
|
|
|
+ var hooks = vnode.data.hook || (vnode.data.hook = {});
|
|
|
+ hooks._transitionInsert = function () {
|
|
|
var parent = el.parentNode;
|
|
|
- var pendingNode = parent._pending && parent._pending[vnode.key];
|
|
|
+ var pendingNode = parent && parent._pending && parent._pending[vnode.key];
|
|
|
if (pendingNode && pendingNode.tag === vnode.tag && pendingNode.elm._leaveCb) {
|
|
|
pendingNode.elm._leaveCb();
|
|
|
}
|
|
|
enterHook && enterHook(el, cb);
|
|
|
- });
|
|
|
+ };
|
|
|
+ if (!vnode.data.transitionInjected) {
|
|
|
+ vnode.data.transitionInjected = true;
|
|
|
+ mergeVNodeHook(hooks, 'insert', function () {
|
|
|
+ hooks._transitionInsert();
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// start enter transition
|
|
|
@@ -4459,7 +4469,7 @@ var nodeOps = Object.freeze({
|
|
|
if (value && transition && transition.appear && !isIE9) {
|
|
|
enter(vnode);
|
|
|
}
|
|
|
- var originalDisplay = el.style.display;
|
|
|
+ var originalDisplay = el.style.display === 'none' ? '' : el.style.display;
|
|
|
el.style.display = value ? originalDisplay : 'none';
|
|
|
el.__vOriginalDisplay = originalDisplay;
|
|
|
},
|
|
|
@@ -4603,6 +4613,14 @@ var nodeOps = Object.freeze({
|
|
|
var oldRawChild = this._vnode;
|
|
|
var oldChild = getRealChild(oldRawChild);
|
|
|
|
|
|
+ // mark v-show
|
|
|
+ // so that the transition module can hand over the control to the directive
|
|
|
+ if (child.data.directives && child.data.directives.some(function (d) {
|
|
|
+ return d.name === 'show';
|
|
|
+ })) {
|
|
|
+ child.data.show = true;
|
|
|
+ }
|
|
|
+
|
|
|
if (oldChild && oldChild.data && oldChild.key !== child.key) {
|
|
|
// replace old child transition data with fresh one
|
|
|
// important for dynamic transitions!
|
|
|
@@ -4618,17 +4636,15 @@ var nodeOps = Object.freeze({
|
|
|
});
|
|
|
return placeholder(h, rawChild);
|
|
|
} else if (mode === 'in-out') {
|
|
|
- (function () {
|
|
|
- var delayedLeave = void 0;
|
|
|
- var performLeave = function performLeave() {
|
|
|
- delayedLeave();
|
|
|
- };
|
|
|
- mergeVNodeHook(data, 'afterEnter', performLeave);
|
|
|
- mergeVNodeHook(data, 'enterCancelled', performLeave);
|
|
|
- mergeVNodeHook(oldData, 'delayLeave', function (leave) {
|
|
|
- delayedLeave = leave;
|
|
|
- });
|
|
|
- })();
|
|
|
+ var delayedLeave;
|
|
|
+ var performLeave = function performLeave() {
|
|
|
+ delayedLeave();
|
|
|
+ };
|
|
|
+ mergeVNodeHook(data, 'afterEnter', performLeave);
|
|
|
+ mergeVNodeHook(data, 'enterCancelled', performLeave);
|
|
|
+ mergeVNodeHook(oldData, 'delayLeave', function (leave) {
|
|
|
+ delayedLeave = leave;
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -4727,20 +4743,18 @@ var nodeOps = Object.freeze({
|
|
|
|
|
|
children.forEach(function (c) {
|
|
|
if (c.data.moved) {
|
|
|
- (function () {
|
|
|
- var el = c.elm;
|
|
|
- var s = el.style;
|
|
|
- addTransitionClass(el, moveClass);
|
|
|
- s.transform = s.WebkitTransform = s.transitionDuration = '';
|
|
|
- el._moveDest = c.data.pos;
|
|
|
- el.addEventListener(transitionEndEvent, el._moveCb = function cb(e) {
|
|
|
- if (!e || /transform$/.test(e.propertyName)) {
|
|
|
- el.removeEventListener(transitionEndEvent, cb);
|
|
|
- el._moveCb = null;
|
|
|
- removeTransitionClass(el, moveClass);
|
|
|
- }
|
|
|
- });
|
|
|
- })();
|
|
|
+ var el = c.elm;
|
|
|
+ var s = el.style;
|
|
|
+ addTransitionClass(el, moveClass);
|
|
|
+ s.transform = s.WebkitTransform = s.transitionDuration = '';
|
|
|
+ el._moveDest = c.data.pos;
|
|
|
+ el.addEventListener(transitionEndEvent, el._moveCb = function cb(e) {
|
|
|
+ if (!e || /transform$/.test(e.propertyName)) {
|
|
|
+ el.removeEventListener(transitionEndEvent, cb);
|
|
|
+ el._moveCb = null;
|
|
|
+ removeTransitionClass(el, moveClass);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
@@ -4921,24 +4935,22 @@ var nodeOps = Object.freeze({
|
|
|
options.chars(text);
|
|
|
}
|
|
|
} else {
|
|
|
- (function () {
|
|
|
- var stackedTag = lastTag.toLowerCase();
|
|
|
- var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
|
|
|
- var endTagLength = 0;
|
|
|
- var rest = html.replace(reStackedTag, function (all, text, endTag) {
|
|
|
- endTagLength = endTag.length;
|
|
|
- if (stackedTag !== 'script' && stackedTag !== 'style' && stackedTag !== 'noscript') {
|
|
|
- text = text.replace(/<!--([\s\S]*?)-->/g, '$1').replace(/<!\[CDATA\[([\s\S]*?)\]\]>/g, '$1');
|
|
|
- }
|
|
|
- if (options.chars) {
|
|
|
- options.chars(text);
|
|
|
- }
|
|
|
- return '';
|
|
|
- });
|
|
|
- index += html.length - rest.length;
|
|
|
- html = rest;
|
|
|
- parseEndTag('</' + stackedTag + '>', stackedTag, index - endTagLength, index);
|
|
|
- })();
|
|
|
+ var stackedTag = lastTag.toLowerCase();
|
|
|
+ var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
|
|
|
+ var endTagLength = 0;
|
|
|
+ var rest = html.replace(reStackedTag, function (all, text, endTag) {
|
|
|
+ endTagLength = endTag.length;
|
|
|
+ if (stackedTag !== 'script' && stackedTag !== 'style' && stackedTag !== 'noscript') {
|
|
|
+ text = text.replace(/<!--([\s\S]*?)-->/g, '$1').replace(/<!\[CDATA\[([\s\S]*?)\]\]>/g, '$1');
|
|
|
+ }
|
|
|
+ if (options.chars) {
|
|
|
+ options.chars(text);
|
|
|
+ }
|
|
|
+ return '';
|
|
|
+ });
|
|
|
+ index += html.length - rest.length;
|
|
|
+ html = rest;
|
|
|
+ parseEndTag('</' + stackedTag + '>', stackedTag, index - endTagLength, index);
|
|
|
}
|
|
|
|
|
|
if (html === last) {
|
|
|
@@ -5226,7 +5238,7 @@ var nodeOps = Object.freeze({
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function addHandler(el, name, value, modifiers) {
|
|
|
+ function addHandler(el, name, value, modifiers, important) {
|
|
|
// check capture modifier
|
|
|
if (modifiers && modifiers.capture) {
|
|
|
delete modifiers.capture;
|
|
|
@@ -5243,9 +5255,9 @@ var nodeOps = Object.freeze({
|
|
|
var handlers = events[name];
|
|
|
/* istanbul ignore if */
|
|
|
if (Array.isArray(handlers)) {
|
|
|
- handlers.push(newHandler);
|
|
|
+ important ? handlers.unshift(newHandler) : handlers.push(newHandler);
|
|
|
} else if (handlers) {
|
|
|
- events[name] = [handlers, newHandler];
|
|
|
+ events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
|
|
|
} else {
|
|
|
events[name] = newHandler;
|
|
|
}
|
|
|
@@ -5834,19 +5846,25 @@ var nodeOps = Object.freeze({
|
|
|
} else if (!handler.modifiers) {
|
|
|
return simplePathRE.test(handler.value) ? handler.value : 'function($event){' + handler.value + '}';
|
|
|
} else {
|
|
|
- var code = 'function($event){';
|
|
|
+ var code = '';
|
|
|
+ var keys = [];
|
|
|
for (var key in handler.modifiers) {
|
|
|
- code += modifierCode[key] || genKeyFilter(key);
|
|
|
+ if (modifierCode[key]) {
|
|
|
+ code += modifierCode[key];
|
|
|
+ } else {
|
|
|
+ keys.push(key);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (keys.length) {
|
|
|
+ code = genKeyFilter(keys) + code;
|
|
|
}
|
|
|
var handlerCode = simplePathRE.test(handler.value) ? handler.value + '($event)' : handler.value;
|
|
|
- return code + handlerCode + '}';
|
|
|
+ return 'function($event){' + code + handlerCode + '}';
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function genKeyFilter(key) {
|
|
|
- var code = parseInt(key, 10) || // number keyCode
|
|
|
- keyCodes[key] || // built-in alias
|
|
|
- '_k(' + JSON.stringify(key) + ')'; // custom alias
|
|
|
+ function genKeyFilter(keys) {
|
|
|
+ var code = keys.length === 1 ? normalizeKeyCode(keys[0]) : Array.prototype.concat.apply([], keys.map(normalizeKeyCode));
|
|
|
if (Array.isArray(code)) {
|
|
|
return 'if(' + code.map(function (c) {
|
|
|
return '$event.keyCode!==' + c;
|
|
|
@@ -5856,6 +5874,13 @@ var nodeOps = Object.freeze({
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ function normalizeKeyCode(key) {
|
|
|
+ return parseInt(key, 10) || // number keyCode
|
|
|
+ keyCodes[key] || // built-in alias
|
|
|
+ '_k(' + JSON.stringify(key) + ')' // custom alias
|
|
|
+ ;
|
|
|
+ }
|
|
|
+
|
|
|
function bind$1(el, dir) {
|
|
|
addHook(el, 'construct', '_b(n1,' + dir.value + (dir.modifiers && dir.modifiers.prop ? ',true' : '') + ')');
|
|
|
}
|
|
|
@@ -5978,11 +6003,6 @@ var nodeOps = Object.freeze({
|
|
|
for (var i = 0; i < dataGenFns.length; i++) {
|
|
|
data += dataGenFns[i](el);
|
|
|
}
|
|
|
- // v-show, used to avoid transition being applied
|
|
|
- // since v-show takes it over
|
|
|
- if (el.attrsMap['v-show']) {
|
|
|
- data += 'show:true,';
|
|
|
- }
|
|
|
// attributes
|
|
|
if (el.attrs) {
|
|
|
data += 'attrs:{' + genProps(el.attrs) + '},';
|
|
|
@@ -6256,7 +6276,7 @@ var nodeOps = Object.freeze({
|
|
|
var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
|
|
|
var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
|
|
|
addProp(el, 'checked', 'Array.isArray(' + value + ')' + ('?(' + value + ').indexOf(' + valueBinding + ')>-1') + (':(' + value + ')===(' + trueValueBinding + ')'));
|
|
|
- addHandler(el, 'change', 'var $$a=' + value + ',' + '$$el=$event.target,' + ('$$c=$$el.checked?(' + trueValueBinding + '):(' + falseValueBinding + ');') + 'if(Array.isArray($$a)){' + ('var $$v=' + valueBinding + ',') + '$$i=$$a.indexOf($$v);' + ('if($$c){$$i<0&&(' + value + '=$$a.concat($$v))}') + ('else{$$i>-1&&(' + value + '=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}') + ('}else{' + value + '=$$c}'));
|
|
|
+ addHandler(el, 'change', 'var $$a=' + value + ',' + '$$el=$event.target,' + ('$$c=$$el.checked?(' + trueValueBinding + '):(' + falseValueBinding + ');') + 'if(Array.isArray($$a)){' + ('var $$v=' + valueBinding + ',') + '$$i=$$a.indexOf($$v);' + ('if($$c){$$i<0&&(' + value + '=$$a.concat($$v))}') + ('else{$$i>-1&&(' + value + '=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}') + ('}else{' + value + '=$$c}'), null, true);
|
|
|
}
|
|
|
|
|
|
function genRadioModel(el, value) {
|
|
|
@@ -6265,7 +6285,7 @@ var nodeOps = Object.freeze({
|
|
|
}
|
|
|
var valueBinding = getBindingAttr(el, 'value');
|
|
|
addProp(el, 'checked', '(' + value + ')===(' + valueBinding + ')');
|
|
|
- addHandler(el, 'change', value + '=' + valueBinding);
|
|
|
+ addHandler(el, 'change', value + '=' + valueBinding, null, true);
|
|
|
}
|
|
|
|
|
|
function genDefaultModel(el, value, modifiers) {
|
|
|
@@ -6296,7 +6316,7 @@ var nodeOps = Object.freeze({
|
|
|
code = 'if($event.target.composing)return;' + code;
|
|
|
}
|
|
|
addProp(el, 'value', isNative ? '_s(' + value + ')' : '(' + value + ')');
|
|
|
- addHandler(el, event, code);
|
|
|
+ addHandler(el, event, code, null, true);
|
|
|
if (needCompositionGuard) {
|
|
|
// need runtime directive code to help with composition events
|
|
|
return true;
|
|
|
@@ -6308,7 +6328,7 @@ var nodeOps = Object.freeze({
|
|
|
el.children.some(checkOptionWarning);
|
|
|
}
|
|
|
var code = value + '=Array.prototype.filter' + '.call($event.target.options,function(o){return o.selected})' + '.map(function(o){return "_value" in o ? o._value : o.value})' + (el.attrsMap.multiple == null ? '[0]' : '');
|
|
|
- addHandler(el, 'change', code);
|
|
|
+ addHandler(el, 'change', code, null, true);
|
|
|
// need runtime to help with possible dynamically generated options
|
|
|
return true;
|
|
|
}
|
|
|
@@ -6410,6 +6430,12 @@ var nodeOps = Object.freeze({
|
|
|
var mount = Vue.prototype.$mount;
|
|
|
Vue.prototype.$mount = function (el, hydrating) {
|
|
|
el = el && query(el);
|
|
|
+
|
|
|
+ if (el === document.body || el === document.documentElement) {
|
|
|
+ "development" !== 'production' && warn('Do not mount Vue to <html> or <body> - mount to normal elements instead.');
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
var options = this.$options;
|
|
|
// resolve template/el and convert to render function
|
|
|
if (!options.render) {
|