From 015a31890250e93564959de97372be7bd6195f62 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 3 Nov 2017 17:11:28 -0400 Subject: [PATCH] build: build 2.5.3 --- dist/vue.common.js | 166 ++++++++++++------- dist/vue.esm.js | 166 ++++++++++++------- dist/vue.js | 166 ++++++++++++------- dist/vue.min.js | 4 +- dist/vue.runtime.common.js | 99 +++++++---- dist/vue.runtime.esm.js | 105 ++++++++---- dist/vue.runtime.js | 105 ++++++++---- dist/vue.runtime.min.js | 4 +- packages/vue-server-renderer/basic.js | 174 ++++++++++++++++---- packages/vue-server-renderer/build.js | 174 ++++++++++++++++---- packages/vue-server-renderer/package.json | 2 +- packages/vue-template-compiler/browser.js | 61 +++++-- packages/vue-template-compiler/build.js | 61 +++++-- packages/vue-template-compiler/package.json | 2 +- 14 files changed, 914 insertions(+), 375 deletions(-) diff --git a/dist/vue.common.js b/dist/vue.common.js index a2e14269bf4..5527db3e248 100644 --- a/dist/vue.common.js +++ b/dist/vue.common.js @@ -1,5 +1,5 @@ /*! - * Vue.js v2.5.2 + * Vue.js v2.5.3 * (c) 2014-2017 Evan You * Released under the MIT License. */ @@ -760,6 +760,7 @@ function createTextVNode (val) { // multiple renders, cloning them avoids errors when DOM manipulations rely // on their elm reference. function cloneVNode (vnode, deep) { + var componentOptions = vnode.componentOptions; var cloned = new VNode( vnode.tag, vnode.data, @@ -767,7 +768,7 @@ function cloneVNode (vnode, deep) { vnode.text, vnode.elm, vnode.context, - vnode.componentOptions, + componentOptions, vnode.asyncFactory ); cloned.ns = vnode.ns; @@ -775,8 +776,13 @@ function cloneVNode (vnode, deep) { cloned.key = vnode.key; cloned.isComment = vnode.isComment; cloned.isCloned = true; - if (deep && vnode.children) { - cloned.children = cloneVNodes(vnode.children); + if (deep) { + if (vnode.children) { + cloned.children = cloneVNodes(vnode.children, true); + } + if (componentOptions && componentOptions.children) { + componentOptions.children = cloneVNodes(componentOptions.children, true); + } } return cloned } @@ -1009,7 +1015,7 @@ function set (target, key, val) { target.splice(key, 1, val); return val } - if (hasOwn(target, key)) { + if (key in target && !(key in Object.prototype)) { target[key] = val; return val } @@ -1141,7 +1147,7 @@ function mergeDataOrFn ( typeof parentVal === 'function' ? parentVal.call(this) : parentVal ) } - } else if (parentVal || childVal) { + } else { return function mergedInstanceDataFn () { // instance merge var instanceData = typeof childVal === 'function' @@ -1175,7 +1181,7 @@ strats.data = function ( return parentVal } - return mergeDataOrFn.call(this, parentVal, childVal) + return mergeDataOrFn(parentVal, childVal) } return mergeDataOrFn(parentVal, childVal, vm) @@ -1981,6 +1987,9 @@ function updateListeners ( /* */ function mergeVNodeHook (def, hookKey, hook) { + if (def instanceof VNode) { + def = def.data.hook || (def.data.hook = {}); + } var invoker; var oldHook = def[hookKey]; @@ -2348,6 +2357,7 @@ function updateComponentListeners ( ) { target = vm; updateListeners(listeners, oldListeners || {}, add, remove$1, vm); + target = undefined; } function eventsMixin (Vue) { @@ -2403,7 +2413,7 @@ function eventsMixin (Vue) { if (!cbs) { return vm } - if (arguments.length === 1) { + if (!fn) { vm._events[event] = null; return vm } @@ -2465,7 +2475,6 @@ function resolveSlots ( if (!children) { return slots } - var defaultSlot = []; for (var i = 0, l = children.length; i < l; i++) { var child = children[i]; var data = child.data; @@ -2486,12 +2495,14 @@ function resolveSlots ( slot.push(child); } } else { - defaultSlot.push(child); + (slots.default || (slots.default = [])).push(child); } } - // ignore whitespace - if (!defaultSlot.every(isWhitespace)) { - slots.default = defaultSlot; + // ignore slots that contains only whitespace + for (var name$1 in slots) { + if (slots[name$1].every(isWhitespace)) { + delete slots[name$1]; + } } return slots } @@ -3655,6 +3666,7 @@ function renderSlot ( bindObject ) { var scopedSlotFn = this.$scopedSlots[name]; + var nodes; if (scopedSlotFn) { // scoped slot props = props || {}; if (bindObject) { @@ -3666,19 +3678,28 @@ function renderSlot ( } props = extend(extend({}, bindObject), props); } - return scopedSlotFn(props) || fallback + nodes = scopedSlotFn(props) || fallback; } else { var slotNodes = this.$slots[name]; // warn duplicate slot usage - if (slotNodes && process.env.NODE_ENV !== 'production') { - slotNodes._rendered && warn( - "Duplicate presence of slot \"" + name + "\" found in the same render tree " + - "- this will likely cause render errors.", - this - ); + if (slotNodes) { + if (process.env.NODE_ENV !== 'production' && slotNodes._rendered) { + warn( + "Duplicate presence of slot \"" + name + "\" found in the same render tree " + + "- this will likely cause render errors.", + this + ); + } slotNodes._rendered = true; } - return slotNodes || fallback + nodes = slotNodes || fallback; + } + + var target = props && props.slot; + if (target) { + return this.$createElement('template', { slot: target }, nodes) + } else { + return nodes } } @@ -3781,8 +3802,8 @@ function renderStatic ( ) { // static trees can be rendered once and cached on the contructor options // so every instance shares the same cached trees - var renderFns = this.$options.staticRenderFns; - var cached = renderFns.cached || (renderFns.cached = []); + var options = this.$options; + var cached = options.cached || (options.cached = []); var tree = cached[index]; // if has already-rendered static tree and not inside v-for, // we can reuse the same tree by doing a shallow clone. @@ -3792,7 +3813,7 @@ function renderStatic ( : cloneVNode(tree) } // otherwise, render a fresh tree. - tree = cached[index] = renderFns[index].call(this._renderProxy, null, this); + tree = cached[index] = options.staticRenderFns[index].call(this._renderProxy, null, this); markStatic(tree, ("__static__" + index), false); return tree } @@ -4833,8 +4854,8 @@ var KeepAlive = { // check pattern var name = getComponentName(componentOptions); if (name && ( - (this.include && !matches(this.include, name)) || - (this.exclude && matches(this.exclude, name)) + (this.exclude && matches(this.exclude, name)) || + (this.include && !matches(this.include, name)) )) { return vnode } @@ -4930,7 +4951,7 @@ Object.defineProperty(Vue$3.prototype, '$ssrContext', { } }); -Vue$3.version = '2.5.2'; +Vue$3.version = '2.5.3'; /* */ @@ -5911,9 +5932,12 @@ function createPatchFunction (backend) { // create an empty node and replace it oldVnode = emptyNodeAt(oldVnode); } + // replacing existing element var oldElm = oldVnode.elm; var parentElm$1 = nodeOps.parentNode(oldElm); + + // create new node createElm( vnode, insertedVnodeQueue, @@ -5924,9 +5948,8 @@ function createPatchFunction (backend) { nodeOps.nextSibling(oldElm) ); + // update parent placeholder node element, recursively if (isDef(vnode.parent)) { - // component root element replaced. - // update parent placeholder node element, recursively var ancestor = vnode.parent; var patchable = isPatchable(vnode); while (ancestor) { @@ -5955,6 +5978,7 @@ function createPatchFunction (backend) { } } + // destroy old node if (isDef(parentElm$1)) { removeVnodes(parentElm$1, [oldVnode], 0, 0); } else if (isDef(oldVnode.tag)) { @@ -6020,14 +6044,14 @@ function _update (oldVnode, vnode) { } }; if (isCreate) { - mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', callInsert); + mergeVNodeHook(vnode, 'insert', callInsert); } else { callInsert(); } } if (dirsWithPostpatch.length) { - mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'postpatch', function () { + mergeVNodeHook(vnode, 'postpatch', function () { for (var i = 0; i < dirsWithPostpatch.length; i++) { callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode); } @@ -6812,6 +6836,7 @@ function updateDOMListeners (oldVnode, vnode) { target$1 = vnode.elm; normalizeEvents(on); updateListeners(on, oldOn, add$1, remove$2, vnode.context); + target$1 = undefined; } var events = { @@ -7417,7 +7442,7 @@ function enter (vnode, toggleDisplay) { if (!vnode.data.show) { // remove pending leave element on enter by injecting an insert hook - mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', function () { + mergeVNodeHook(vnode, 'insert', function () { var parent = el.parentNode; var pendingNode = parent && parent._pending && parent._pending[vnode.key]; if (pendingNode && @@ -7656,10 +7681,17 @@ if (isIE9) { }); } -var model$1 = { - inserted: function inserted (el, binding, vnode) { +var directive = { + inserted: function inserted (el, binding, vnode, oldVnode) { if (vnode.tag === 'select') { - setSelected(el, binding, vnode.context); + // #6903 + if (oldVnode.elm && !oldVnode.elm._vOptions) { + mergeVNodeHook(vnode, 'postpatch', function () { + directive.componentUpdated(el, binding, vnode); + }); + } else { + setSelected(el, binding, vnode.context); + } el._vOptions = [].map.call(el.options, getValue); } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) { el._vModifiers = binding.modifiers; @@ -7680,6 +7712,7 @@ var model$1 = { } } }, + componentUpdated: function componentUpdated (el, binding, vnode) { if (vnode.tag === 'select') { setSelected(el, binding, vnode.context); @@ -7838,7 +7871,7 @@ var show = { }; var platformDirectives = { - model: model$1, + model: directive, show: show }; @@ -8255,19 +8288,6 @@ Vue$3.nextTick(function () { /* */ -// check whether current browser encodes a char inside attribute values -function shouldDecode (content, encoded) { - var div = document.createElement('div'); - div.innerHTML = "
"; - return div.innerHTML.indexOf(encoded) > 0 -} - -// #3663 -// IE encodes newlines inside attribute values while other browsers don't -var shouldDecodeNewlines = inBrowser ? shouldDecode('\n', ' ') : false; - -/* */ - var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g; var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g; @@ -8464,10 +8484,11 @@ var decodingMap = { '>': '>', '"': '"', '&': '&', - ' ': '\n' + ' ': '\n', + ' ': '\t' }; var encodedAttr = /&(?:lt|gt|quot|amp);/g; -var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10);/g; +var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g; // #5992 var isIgnoreNewlineTag = makeMap('pre,textarea', true); @@ -8658,12 +8679,12 @@ function parseHTML (html, options) { if (args[5] === '') { delete args[5]; } } var value = args[3] || args[4] || args[5] || ''; + var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href' + ? options.shouldDecodeNewlinesForHref + : options.shouldDecodeNewlines; attrs[i] = { name: args[1], - value: decodeAttr( - value, - options.shouldDecodeNewlines - ) + value: decodeAttr(value, shouldDecodeNewlines) }; } @@ -8822,6 +8843,7 @@ function parse ( isUnaryTag: options.isUnaryTag, canBeLeftOpenTag: options.canBeLeftOpenTag, shouldDecodeNewlines: options.shouldDecodeNewlines, + shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref, shouldKeepComment: options.comments, start: function start (tag, attrs, unary) { // check namespace. @@ -9180,7 +9202,7 @@ function processSlot (el) { el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget; // preserve slot as an attribute for native shadow DOM compat // only for non-scoped slots. - if (!el.slotScope) { + if (el.tag !== 'template' && !el.slotScope) { addAttr(el, 'slot', slotTarget); } } @@ -9269,6 +9291,13 @@ function processAttrs (el) { } } addAttr(el, name, JSON.stringify(value)); + // #6887 firefox doesn't update muted state if set via attribute + // even immediately after element creation + if (!el.component && + name === 'muted' && + platformMustUseProp(el.tag, el.attrsMap.type, name)) { + addProp(el, name, 'true'); + } } } } @@ -9373,6 +9402,8 @@ function preTransformNode (el, options) { var typeBinding = getBindingAttr(el, 'type'); var ifCondition = getAndRemoveAttr(el, 'v-if', true); var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : ""; + var hasElse = getAndRemoveAttr(el, 'v-else', true) != null; + var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true); // 1. checkbox var branch0 = cloneASTElement(el); // process for on the main node @@ -9403,6 +9434,13 @@ function preTransformNode (el, options) { exp: ifCondition, block: branch2 }); + + if (hasElse) { + branch0.else = true; + } else if (elseIfCondition) { + branch0.elseif = elseIfCondition; + } + return branch0 } } @@ -10469,6 +10507,21 @@ var compileToFunctions = ref$1.compileToFunctions; /* */ +// check whether current browser encodes a char inside attribute values +var div; +function getShouldDecode (href) { + div = div || document.createElement('div'); + div.innerHTML = href ? "" : "
"; + return div.innerHTML.indexOf(' ') > 0 +} + +// #3663: IE encodes newlines inside attribute values while other browsers don't +var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false; +// #6828: chrome encodes content in a[href] +var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false; + +/* */ + var idToTemplate = cached(function (id) { var el = query(id); return el && el.innerHTML @@ -10524,6 +10577,7 @@ Vue$3.prototype.$mount = function ( var ref = compileToFunctions(template, { shouldDecodeNewlines: shouldDecodeNewlines, + shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref, delimiters: options.delimiters, comments: options.comments }, this); diff --git a/dist/vue.esm.js b/dist/vue.esm.js index beaec6fc3f1..b623498876a 100644 --- a/dist/vue.esm.js +++ b/dist/vue.esm.js @@ -1,5 +1,5 @@ /*! - * Vue.js v2.5.2 + * Vue.js v2.5.3 * (c) 2014-2017 Evan You * Released under the MIT License. */ @@ -758,6 +758,7 @@ function createTextVNode (val) { // multiple renders, cloning them avoids errors when DOM manipulations rely // on their elm reference. function cloneVNode (vnode, deep) { + var componentOptions = vnode.componentOptions; var cloned = new VNode( vnode.tag, vnode.data, @@ -765,7 +766,7 @@ function cloneVNode (vnode, deep) { vnode.text, vnode.elm, vnode.context, - vnode.componentOptions, + componentOptions, vnode.asyncFactory ); cloned.ns = vnode.ns; @@ -773,8 +774,13 @@ function cloneVNode (vnode, deep) { cloned.key = vnode.key; cloned.isComment = vnode.isComment; cloned.isCloned = true; - if (deep && vnode.children) { - cloned.children = cloneVNodes(vnode.children); + if (deep) { + if (vnode.children) { + cloned.children = cloneVNodes(vnode.children, true); + } + if (componentOptions && componentOptions.children) { + componentOptions.children = cloneVNodes(componentOptions.children, true); + } } return cloned } @@ -1007,7 +1013,7 @@ function set (target, key, val) { target.splice(key, 1, val); return val } - if (hasOwn(target, key)) { + if (key in target && !(key in Object.prototype)) { target[key] = val; return val } @@ -1139,7 +1145,7 @@ function mergeDataOrFn ( typeof parentVal === 'function' ? parentVal.call(this) : parentVal ) } - } else if (parentVal || childVal) { + } else { return function mergedInstanceDataFn () { // instance merge var instanceData = typeof childVal === 'function' @@ -1173,7 +1179,7 @@ strats.data = function ( return parentVal } - return mergeDataOrFn.call(this, parentVal, childVal) + return mergeDataOrFn(parentVal, childVal) } return mergeDataOrFn(parentVal, childVal, vm) @@ -1979,6 +1985,9 @@ function updateListeners ( /* */ function mergeVNodeHook (def, hookKey, hook) { + if (def instanceof VNode) { + def = def.data.hook || (def.data.hook = {}); + } var invoker; var oldHook = def[hookKey]; @@ -2346,6 +2355,7 @@ function updateComponentListeners ( ) { target = vm; updateListeners(listeners, oldListeners || {}, add, remove$1, vm); + target = undefined; } function eventsMixin (Vue) { @@ -2401,7 +2411,7 @@ function eventsMixin (Vue) { if (!cbs) { return vm } - if (arguments.length === 1) { + if (!fn) { vm._events[event] = null; return vm } @@ -2463,7 +2473,6 @@ function resolveSlots ( if (!children) { return slots } - var defaultSlot = []; for (var i = 0, l = children.length; i < l; i++) { var child = children[i]; var data = child.data; @@ -2484,12 +2493,14 @@ function resolveSlots ( slot.push(child); } } else { - defaultSlot.push(child); + (slots.default || (slots.default = [])).push(child); } } - // ignore whitespace - if (!defaultSlot.every(isWhitespace)) { - slots.default = defaultSlot; + // ignore slots that contains only whitespace + for (var name$1 in slots) { + if (slots[name$1].every(isWhitespace)) { + delete slots[name$1]; + } } return slots } @@ -3653,6 +3664,7 @@ function renderSlot ( bindObject ) { var scopedSlotFn = this.$scopedSlots[name]; + var nodes; if (scopedSlotFn) { // scoped slot props = props || {}; if (bindObject) { @@ -3664,19 +3676,28 @@ function renderSlot ( } props = extend(extend({}, bindObject), props); } - return scopedSlotFn(props) || fallback + nodes = scopedSlotFn(props) || fallback; } else { var slotNodes = this.$slots[name]; // warn duplicate slot usage - if (slotNodes && process.env.NODE_ENV !== 'production') { - slotNodes._rendered && warn( - "Duplicate presence of slot \"" + name + "\" found in the same render tree " + - "- this will likely cause render errors.", - this - ); + if (slotNodes) { + if (process.env.NODE_ENV !== 'production' && slotNodes._rendered) { + warn( + "Duplicate presence of slot \"" + name + "\" found in the same render tree " + + "- this will likely cause render errors.", + this + ); + } slotNodes._rendered = true; } - return slotNodes || fallback + nodes = slotNodes || fallback; + } + + var target = props && props.slot; + if (target) { + return this.$createElement('template', { slot: target }, nodes) + } else { + return nodes } } @@ -3779,8 +3800,8 @@ function renderStatic ( ) { // static trees can be rendered once and cached on the contructor options // so every instance shares the same cached trees - var renderFns = this.$options.staticRenderFns; - var cached = renderFns.cached || (renderFns.cached = []); + var options = this.$options; + var cached = options.cached || (options.cached = []); var tree = cached[index]; // if has already-rendered static tree and not inside v-for, // we can reuse the same tree by doing a shallow clone. @@ -3790,7 +3811,7 @@ function renderStatic ( : cloneVNode(tree) } // otherwise, render a fresh tree. - tree = cached[index] = renderFns[index].call(this._renderProxy, null, this); + tree = cached[index] = options.staticRenderFns[index].call(this._renderProxy, null, this); markStatic(tree, ("__static__" + index), false); return tree } @@ -4831,8 +4852,8 @@ var KeepAlive = { // check pattern var name = getComponentName(componentOptions); if (name && ( - (this.include && !matches(this.include, name)) || - (this.exclude && matches(this.exclude, name)) + (this.exclude && matches(this.exclude, name)) || + (this.include && !matches(this.include, name)) )) { return vnode } @@ -4928,7 +4949,7 @@ Object.defineProperty(Vue$3.prototype, '$ssrContext', { } }); -Vue$3.version = '2.5.2'; +Vue$3.version = '2.5.3'; /* */ @@ -5909,9 +5930,12 @@ function createPatchFunction (backend) { // create an empty node and replace it oldVnode = emptyNodeAt(oldVnode); } + // replacing existing element var oldElm = oldVnode.elm; var parentElm$1 = nodeOps.parentNode(oldElm); + + // create new node createElm( vnode, insertedVnodeQueue, @@ -5922,9 +5946,8 @@ function createPatchFunction (backend) { nodeOps.nextSibling(oldElm) ); + // update parent placeholder node element, recursively if (isDef(vnode.parent)) { - // component root element replaced. - // update parent placeholder node element, recursively var ancestor = vnode.parent; var patchable = isPatchable(vnode); while (ancestor) { @@ -5953,6 +5976,7 @@ function createPatchFunction (backend) { } } + // destroy old node if (isDef(parentElm$1)) { removeVnodes(parentElm$1, [oldVnode], 0, 0); } else if (isDef(oldVnode.tag)) { @@ -6018,14 +6042,14 @@ function _update (oldVnode, vnode) { } }; if (isCreate) { - mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', callInsert); + mergeVNodeHook(vnode, 'insert', callInsert); } else { callInsert(); } } if (dirsWithPostpatch.length) { - mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'postpatch', function () { + mergeVNodeHook(vnode, 'postpatch', function () { for (var i = 0; i < dirsWithPostpatch.length; i++) { callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode); } @@ -6810,6 +6834,7 @@ function updateDOMListeners (oldVnode, vnode) { target$1 = vnode.elm; normalizeEvents(on); updateListeners(on, oldOn, add$1, remove$2, vnode.context); + target$1 = undefined; } var events = { @@ -7415,7 +7440,7 @@ function enter (vnode, toggleDisplay) { if (!vnode.data.show) { // remove pending leave element on enter by injecting an insert hook - mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', function () { + mergeVNodeHook(vnode, 'insert', function () { var parent = el.parentNode; var pendingNode = parent && parent._pending && parent._pending[vnode.key]; if (pendingNode && @@ -7654,10 +7679,17 @@ if (isIE9) { }); } -var model$1 = { - inserted: function inserted (el, binding, vnode) { +var directive = { + inserted: function inserted (el, binding, vnode, oldVnode) { if (vnode.tag === 'select') { - setSelected(el, binding, vnode.context); + // #6903 + if (oldVnode.elm && !oldVnode.elm._vOptions) { + mergeVNodeHook(vnode, 'postpatch', function () { + directive.componentUpdated(el, binding, vnode); + }); + } else { + setSelected(el, binding, vnode.context); + } el._vOptions = [].map.call(el.options, getValue); } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) { el._vModifiers = binding.modifiers; @@ -7678,6 +7710,7 @@ var model$1 = { } } }, + componentUpdated: function componentUpdated (el, binding, vnode) { if (vnode.tag === 'select') { setSelected(el, binding, vnode.context); @@ -7836,7 +7869,7 @@ var show = { }; var platformDirectives = { - model: model$1, + model: directive, show: show }; @@ -8253,19 +8286,6 @@ Vue$3.nextTick(function () { /* */ -// check whether current browser encodes a char inside attribute values -function shouldDecode (content, encoded) { - var div = document.createElement('div'); - div.innerHTML = "
"; - return div.innerHTML.indexOf(encoded) > 0 -} - -// #3663 -// IE encodes newlines inside attribute values while other browsers don't -var shouldDecodeNewlines = inBrowser ? shouldDecode('\n', ' ') : false; - -/* */ - var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g; var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g; @@ -8462,10 +8482,11 @@ var decodingMap = { '>': '>', '"': '"', '&': '&', - ' ': '\n' + ' ': '\n', + ' ': '\t' }; var encodedAttr = /&(?:lt|gt|quot|amp);/g; -var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10);/g; +var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g; // #5992 var isIgnoreNewlineTag = makeMap('pre,textarea', true); @@ -8656,12 +8677,12 @@ function parseHTML (html, options) { if (args[5] === '') { delete args[5]; } } var value = args[3] || args[4] || args[5] || ''; + var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href' + ? options.shouldDecodeNewlinesForHref + : options.shouldDecodeNewlines; attrs[i] = { name: args[1], - value: decodeAttr( - value, - options.shouldDecodeNewlines - ) + value: decodeAttr(value, shouldDecodeNewlines) }; } @@ -8820,6 +8841,7 @@ function parse ( isUnaryTag: options.isUnaryTag, canBeLeftOpenTag: options.canBeLeftOpenTag, shouldDecodeNewlines: options.shouldDecodeNewlines, + shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref, shouldKeepComment: options.comments, start: function start (tag, attrs, unary) { // check namespace. @@ -9178,7 +9200,7 @@ function processSlot (el) { el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget; // preserve slot as an attribute for native shadow DOM compat // only for non-scoped slots. - if (!el.slotScope) { + if (el.tag !== 'template' && !el.slotScope) { addAttr(el, 'slot', slotTarget); } } @@ -9267,6 +9289,13 @@ function processAttrs (el) { } } addAttr(el, name, JSON.stringify(value)); + // #6887 firefox doesn't update muted state if set via attribute + // even immediately after element creation + if (!el.component && + name === 'muted' && + platformMustUseProp(el.tag, el.attrsMap.type, name)) { + addProp(el, name, 'true'); + } } } } @@ -9371,6 +9400,8 @@ function preTransformNode (el, options) { var typeBinding = getBindingAttr(el, 'type'); var ifCondition = getAndRemoveAttr(el, 'v-if', true); var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : ""; + var hasElse = getAndRemoveAttr(el, 'v-else', true) != null; + var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true); // 1. checkbox var branch0 = cloneASTElement(el); // process for on the main node @@ -9401,6 +9432,13 @@ function preTransformNode (el, options) { exp: ifCondition, block: branch2 }); + + if (hasElse) { + branch0.else = true; + } else if (elseIfCondition) { + branch0.elseif = elseIfCondition; + } + return branch0 } } @@ -10467,6 +10505,21 @@ var compileToFunctions = ref$1.compileToFunctions; /* */ +// check whether current browser encodes a char inside attribute values +var div; +function getShouldDecode (href) { + div = div || document.createElement('div'); + div.innerHTML = href ? "" : "
"; + return div.innerHTML.indexOf(' ') > 0 +} + +// #3663: IE encodes newlines inside attribute values while other browsers don't +var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false; +// #6828: chrome encodes content in a[href] +var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false; + +/* */ + var idToTemplate = cached(function (id) { var el = query(id); return el && el.innerHTML @@ -10522,6 +10575,7 @@ Vue$3.prototype.$mount = function ( var ref = compileToFunctions(template, { shouldDecodeNewlines: shouldDecodeNewlines, + shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref, delimiters: options.delimiters, comments: options.comments }, this); diff --git a/dist/vue.js b/dist/vue.js index 1d2b02ea047..0f3458d64bb 100644 --- a/dist/vue.js +++ b/dist/vue.js @@ -1,5 +1,5 @@ /*! - * Vue.js v2.5.2 + * Vue.js v2.5.3 * (c) 2014-2017 Evan You * Released under the MIT License. */ @@ -764,6 +764,7 @@ function createTextVNode (val) { // multiple renders, cloning them avoids errors when DOM manipulations rely // on their elm reference. function cloneVNode (vnode, deep) { + var componentOptions = vnode.componentOptions; var cloned = new VNode( vnode.tag, vnode.data, @@ -771,7 +772,7 @@ function cloneVNode (vnode, deep) { vnode.text, vnode.elm, vnode.context, - vnode.componentOptions, + componentOptions, vnode.asyncFactory ); cloned.ns = vnode.ns; @@ -779,8 +780,13 @@ function cloneVNode (vnode, deep) { cloned.key = vnode.key; cloned.isComment = vnode.isComment; cloned.isCloned = true; - if (deep && vnode.children) { - cloned.children = cloneVNodes(vnode.children); + if (deep) { + if (vnode.children) { + cloned.children = cloneVNodes(vnode.children, true); + } + if (componentOptions && componentOptions.children) { + componentOptions.children = cloneVNodes(componentOptions.children, true); + } } return cloned } @@ -1013,7 +1019,7 @@ function set (target, key, val) { target.splice(key, 1, val); return val } - if (hasOwn(target, key)) { + if (key in target && !(key in Object.prototype)) { target[key] = val; return val } @@ -1145,7 +1151,7 @@ function mergeDataOrFn ( typeof parentVal === 'function' ? parentVal.call(this) : parentVal ) } - } else if (parentVal || childVal) { + } else { return function mergedInstanceDataFn () { // instance merge var instanceData = typeof childVal === 'function' @@ -1179,7 +1185,7 @@ strats.data = function ( return parentVal } - return mergeDataOrFn.call(this, parentVal, childVal) + return mergeDataOrFn(parentVal, childVal) } return mergeDataOrFn(parentVal, childVal, vm) @@ -1985,6 +1991,9 @@ function updateListeners ( /* */ function mergeVNodeHook (def, hookKey, hook) { + if (def instanceof VNode) { + def = def.data.hook || (def.data.hook = {}); + } var invoker; var oldHook = def[hookKey]; @@ -2350,6 +2359,7 @@ function updateComponentListeners ( ) { target = vm; updateListeners(listeners, oldListeners || {}, add, remove$1, vm); + target = undefined; } function eventsMixin (Vue) { @@ -2405,7 +2415,7 @@ function eventsMixin (Vue) { if (!cbs) { return vm } - if (arguments.length === 1) { + if (!fn) { vm._events[event] = null; return vm } @@ -2467,7 +2477,6 @@ function resolveSlots ( if (!children) { return slots } - var defaultSlot = []; for (var i = 0, l = children.length; i < l; i++) { var child = children[i]; var data = child.data; @@ -2488,12 +2497,14 @@ function resolveSlots ( slot.push(child); } } else { - defaultSlot.push(child); + (slots.default || (slots.default = [])).push(child); } } - // ignore whitespace - if (!defaultSlot.every(isWhitespace)) { - slots.default = defaultSlot; + // ignore slots that contains only whitespace + for (var name$1 in slots) { + if (slots[name$1].every(isWhitespace)) { + delete slots[name$1]; + } } return slots } @@ -3651,6 +3662,7 @@ function renderSlot ( bindObject ) { var scopedSlotFn = this.$scopedSlots[name]; + var nodes; if (scopedSlotFn) { // scoped slot props = props || {}; if (bindObject) { @@ -3662,19 +3674,28 @@ function renderSlot ( } props = extend(extend({}, bindObject), props); } - return scopedSlotFn(props) || fallback + nodes = scopedSlotFn(props) || fallback; } else { var slotNodes = this.$slots[name]; // warn duplicate slot usage - if (slotNodes && "development" !== 'production') { - slotNodes._rendered && warn( - "Duplicate presence of slot \"" + name + "\" found in the same render tree " + - "- this will likely cause render errors.", - this - ); + if (slotNodes) { + if ("development" !== 'production' && slotNodes._rendered) { + warn( + "Duplicate presence of slot \"" + name + "\" found in the same render tree " + + "- this will likely cause render errors.", + this + ); + } slotNodes._rendered = true; } - return slotNodes || fallback + nodes = slotNodes || fallback; + } + + var target = props && props.slot; + if (target) { + return this.$createElement('template', { slot: target }, nodes) + } else { + return nodes } } @@ -3777,8 +3798,8 @@ function renderStatic ( ) { // static trees can be rendered once and cached on the contructor options // so every instance shares the same cached trees - var renderFns = this.$options.staticRenderFns; - var cached = renderFns.cached || (renderFns.cached = []); + var options = this.$options; + var cached = options.cached || (options.cached = []); var tree = cached[index]; // if has already-rendered static tree and not inside v-for, // we can reuse the same tree by doing a shallow clone. @@ -3788,7 +3809,7 @@ function renderStatic ( : cloneVNode(tree) } // otherwise, render a fresh tree. - tree = cached[index] = renderFns[index].call(this._renderProxy, null, this); + tree = cached[index] = options.staticRenderFns[index].call(this._renderProxy, null, this); markStatic(tree, ("__static__" + index), false); return tree } @@ -4822,8 +4843,8 @@ var KeepAlive = { // check pattern var name = getComponentName(componentOptions); if (name && ( - (this.include && !matches(this.include, name)) || - (this.exclude && matches(this.exclude, name)) + (this.exclude && matches(this.exclude, name)) || + (this.include && !matches(this.include, name)) )) { return vnode } @@ -4919,7 +4940,7 @@ Object.defineProperty(Vue$3.prototype, '$ssrContext', { } }); -Vue$3.version = '2.5.2'; +Vue$3.version = '2.5.3'; /* */ @@ -5900,9 +5921,12 @@ function createPatchFunction (backend) { // create an empty node and replace it oldVnode = emptyNodeAt(oldVnode); } + // replacing existing element var oldElm = oldVnode.elm; var parentElm$1 = nodeOps.parentNode(oldElm); + + // create new node createElm( vnode, insertedVnodeQueue, @@ -5913,9 +5937,8 @@ function createPatchFunction (backend) { nodeOps.nextSibling(oldElm) ); + // update parent placeholder node element, recursively if (isDef(vnode.parent)) { - // component root element replaced. - // update parent placeholder node element, recursively var ancestor = vnode.parent; var patchable = isPatchable(vnode); while (ancestor) { @@ -5944,6 +5967,7 @@ function createPatchFunction (backend) { } } + // destroy old node if (isDef(parentElm$1)) { removeVnodes(parentElm$1, [oldVnode], 0, 0); } else if (isDef(oldVnode.tag)) { @@ -6009,14 +6033,14 @@ function _update (oldVnode, vnode) { } }; if (isCreate) { - mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', callInsert); + mergeVNodeHook(vnode, 'insert', callInsert); } else { callInsert(); } } if (dirsWithPostpatch.length) { - mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'postpatch', function () { + mergeVNodeHook(vnode, 'postpatch', function () { for (var i = 0; i < dirsWithPostpatch.length; i++) { callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode); } @@ -6801,6 +6825,7 @@ function updateDOMListeners (oldVnode, vnode) { target$1 = vnode.elm; normalizeEvents(on); updateListeners(on, oldOn, add$1, remove$2, vnode.context); + target$1 = undefined; } var events = { @@ -7406,7 +7431,7 @@ function enter (vnode, toggleDisplay) { if (!vnode.data.show) { // remove pending leave element on enter by injecting an insert hook - mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', function () { + mergeVNodeHook(vnode, 'insert', function () { var parent = el.parentNode; var pendingNode = parent && parent._pending && parent._pending[vnode.key]; if (pendingNode && @@ -7645,10 +7670,17 @@ if (isIE9) { }); } -var model$1 = { - inserted: function inserted (el, binding, vnode) { +var directive = { + inserted: function inserted (el, binding, vnode, oldVnode) { if (vnode.tag === 'select') { - setSelected(el, binding, vnode.context); + // #6903 + if (oldVnode.elm && !oldVnode.elm._vOptions) { + mergeVNodeHook(vnode, 'postpatch', function () { + directive.componentUpdated(el, binding, vnode); + }); + } else { + setSelected(el, binding, vnode.context); + } el._vOptions = [].map.call(el.options, getValue); } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) { el._vModifiers = binding.modifiers; @@ -7669,6 +7701,7 @@ var model$1 = { } } }, + componentUpdated: function componentUpdated (el, binding, vnode) { if (vnode.tag === 'select') { setSelected(el, binding, vnode.context); @@ -7827,7 +7860,7 @@ var show = { }; var platformDirectives = { - model: model$1, + model: directive, show: show }; @@ -8244,19 +8277,6 @@ Vue$3.nextTick(function () { /* */ -// check whether current browser encodes a char inside attribute values -function shouldDecode (content, encoded) { - var div = document.createElement('div'); - div.innerHTML = "
"; - return div.innerHTML.indexOf(encoded) > 0 -} - -// #3663 -// IE encodes newlines inside attribute values while other browsers don't -var shouldDecodeNewlines = inBrowser ? shouldDecode('\n', ' ') : false; - -/* */ - var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g; var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g; @@ -8453,10 +8473,11 @@ var decodingMap = { '>': '>', '"': '"', '&': '&', - ' ': '\n' + ' ': '\n', + ' ': '\t' }; var encodedAttr = /&(?:lt|gt|quot|amp);/g; -var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10);/g; +var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g; // #5992 var isIgnoreNewlineTag = makeMap('pre,textarea', true); @@ -8647,12 +8668,12 @@ function parseHTML (html, options) { if (args[5] === '') { delete args[5]; } } var value = args[3] || args[4] || args[5] || ''; + var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href' + ? options.shouldDecodeNewlinesForHref + : options.shouldDecodeNewlines; attrs[i] = { name: args[1], - value: decodeAttr( - value, - options.shouldDecodeNewlines - ) + value: decodeAttr(value, shouldDecodeNewlines) }; } @@ -8811,6 +8832,7 @@ function parse ( isUnaryTag: options.isUnaryTag, canBeLeftOpenTag: options.canBeLeftOpenTag, shouldDecodeNewlines: options.shouldDecodeNewlines, + shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref, shouldKeepComment: options.comments, start: function start (tag, attrs, unary) { // check namespace. @@ -9169,7 +9191,7 @@ function processSlot (el) { el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget; // preserve slot as an attribute for native shadow DOM compat // only for non-scoped slots. - if (!el.slotScope) { + if (el.tag !== 'template' && !el.slotScope) { addAttr(el, 'slot', slotTarget); } } @@ -9258,6 +9280,13 @@ function processAttrs (el) { } } addAttr(el, name, JSON.stringify(value)); + // #6887 firefox doesn't update muted state if set via attribute + // even immediately after element creation + if (!el.component && + name === 'muted' && + platformMustUseProp(el.tag, el.attrsMap.type, name)) { + addProp(el, name, 'true'); + } } } } @@ -9362,6 +9391,8 @@ function preTransformNode (el, options) { var typeBinding = getBindingAttr(el, 'type'); var ifCondition = getAndRemoveAttr(el, 'v-if', true); var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : ""; + var hasElse = getAndRemoveAttr(el, 'v-else', true) != null; + var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true); // 1. checkbox var branch0 = cloneASTElement(el); // process for on the main node @@ -9392,6 +9423,13 @@ function preTransformNode (el, options) { exp: ifCondition, block: branch2 }); + + if (hasElse) { + branch0.else = true; + } else if (elseIfCondition) { + branch0.elseif = elseIfCondition; + } + return branch0 } } @@ -10458,6 +10496,21 @@ var compileToFunctions = ref$1.compileToFunctions; /* */ +// check whether current browser encodes a char inside attribute values +var div; +function getShouldDecode (href) { + div = div || document.createElement('div'); + div.innerHTML = href ? "" : "
"; + return div.innerHTML.indexOf(' ') > 0 +} + +// #3663: IE encodes newlines inside attribute values while other browsers don't +var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false; +// #6828: chrome encodes content in a[href] +var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false; + +/* */ + var idToTemplate = cached(function (id) { var el = query(id); return el && el.innerHTML @@ -10513,6 +10566,7 @@ Vue$3.prototype.$mount = function ( var ref = compileToFunctions(template, { shouldDecodeNewlines: shouldDecodeNewlines, + shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref, delimiters: options.delimiters, comments: options.comments }, this); diff --git a/dist/vue.min.js b/dist/vue.min.js index 30eb181a922..3bc6c463096 100644 --- a/dist/vue.min.js +++ b/dist/vue.min.js @@ -1,6 +1,6 @@ /*! - * Vue.js v2.5.2 + * Vue.js v2.5.3 * (c) 2014-2017 Evan You * Released under the MIT License. */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Vue=t()}(this,function(){"use strict";function e(e){return void 0===e||null===e}function t(e){return void 0!==e&&null!==e}function n(e){return!0===e}function r(e){return!1===e}function i(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e}function o(e){return null!==e&&"object"==typeof e}function a(e){return"[object Object]"===Ai.call(e)}function s(e){return"[object RegExp]"===Ai.call(e)}function c(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function u(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}function l(e){var t=parseFloat(e);return isNaN(t)?e:t}function f(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i-1)return e.splice(n,1)}}function p(e,t){return Ti.call(e,t)}function v(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}function h(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n}function m(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function y(e,t){for(var n in t)e[n]=t[n];return e}function g(e){for(var t={},n=0;n0&&(fe((s=de(s,(o||"")+"_"+a))[0])&&fe(u)&&(l[c]=T(u.text+s[0].text),s.shift()),l.push.apply(l,s)):i(s)?fe(u)?l[c]=T(u.text+s):""!==s&&l.push(T(s)):fe(s)&&fe(u)?l[c]=T(u.text+s.text):(n(r._isVList)&&t(s.tag)&&e(s.key)&&t(o)&&(s.key="__vlist"+o+"_"+a+"__"),l.push(s)));return l}function pe(e,t){return(e.__esModule||io&&"Module"===e[Symbol.toStringTag])&&(e=e.default),o(e)?t.extend(e):e}function ve(e,t,n,r,i){var o=fo();return o.asyncFactory=e,o.asyncMeta={data:t,context:n,children:r,tag:i},o}function he(r,i,a){if(n(r.error)&&t(r.errorComp))return r.errorComp;if(t(r.resolved))return r.resolved;if(n(r.loading)&&t(r.loadingComp))return r.loadingComp;if(!t(r.contexts)){var s=r.contexts=[a],c=!0,u=function(){for(var e=0,t=s.length;ePo&&jo[n].id>e.id;)n--;jo.splice(n+1,0,e)}else jo.push(e);Io||(Io=!0,re(Ne))}}function Re(e){Fo.clear(),Fe(e,Fo)}function Fe(e,t){var n,r,i=Array.isArray(e);if((i||o(e))&&Object.isExtensible(e)){if(e.__ob__){var a=e.__ob__.dep.id;if(t.has(a))return;t.add(a)}if(i)for(n=e.length;n--;)Fe(e[n],t);else for(n=(r=Object.keys(e)).length;n--;)Fe(e[r[n]],t)}}function He(e,t,n){Ho.get=function(){return this[t][n]},Ho.set=function(e){this[t][n]=e},Object.defineProperty(e,n,Ho)}function Be(e){e._watchers=[];var t=e.$options;t.props&&Ue(e,t.props),t.methods&&We(e,t.methods),t.data?Ve(e):I(e._data={},!0),t.computed&&Ke(e,t.computed),t.watch&&t.watch!==Yi&&Ge(e,t.watch)}function Ue(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[],o=!e.$parent;mo.shouldConvert=o;for(var a in t)!function(o){i.push(o);var a=W(o,t,n,e);M(r,o,a),o in e||He(e,"_props",o)}(a);mo.shouldConvert=!0}function Ve(e){var t=e.$options.data;a(t=e._data="function"==typeof t?ze(t,e):t||{})||(t={});for(var n=Object.keys(t),r=e.$options.props,i=n.length;i--;){var o=n[i];r&&p(r,o)||w(o)||He(e,"_data",o)}I(t,!0)}function ze(e,t){try{return e.call(t,t)}catch(e){return Q(e,t,"data()"),{}}}function Ke(e,t){var n=e._computedWatchers=Object.create(null),r=no();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new Ro(e,a||_,_,Bo)),i in e||Je(e,i,o)}}function Je(e,t,n){var r=!no();"function"==typeof n?(Ho.get=r?qe(t):n,Ho.set=_):(Ho.get=n.get?r&&!1!==n.cache?qe(t):n.get:_,Ho.set=n.set?n.set:_),Object.defineProperty(e,t,Ho)}function qe(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),so.target&&t.depend(),t.value}}function We(e,t){for(var n in t)e[n]=null==t[n]?_:h(t[n],e)}function Ge(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i=0||n.indexOf(e[i])<0)&&r.push(e[i]);return r}return e}function Ot(e){this._init(e)}function St(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=m(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}function Tt(e){e.mixin=function(e){return this.options=J(this.options,e),this}}function Et(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,i=e._Ctor||(e._Ctor={});if(i[r])return i[r];var o=e.name||n.options.name,a=function(e){this._init(e)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=t++,a.options=J(n.options,e),a.super=n,a.options.props&&jt(a),a.options.computed&&Lt(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,Ri.forEach(function(e){a[e]=n[e]}),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=e,a.sealedOptions=y({},a.options),i[r]=a,a}}function jt(e){var t=e.options.props;for(var n in t)He(e.prototype,"_props",n)}function Lt(e){var t=e.options.computed;for(var n in t)Je(e.prototype,n,t[n])}function Nt(e){Ri.forEach(function(t){e[t]=function(e,n){return n?("component"===t&&a(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}function It(e){return e&&(e.Ctor.options.name||e.tag)}function Mt(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!s(e)&&e.test(t)}function Pt(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=It(a.componentOptions);s&&!t(s)&&Dt(n,o,r,i)}}}function Dt(e,t,n,r){var i=e[t];i&&i!==r&&i.componentInstance.$destroy(),e[t]=null,d(n,t)}function Rt(e){for(var n=e.data,r=e,i=e;t(i.componentInstance);)(i=i.componentInstance._vnode).data&&(n=Ft(i.data,n));for(;t(r=r.parent);)r.data&&(n=Ft(n,r.data));return Ht(n.staticClass,n.class)}function Ft(e,n){return{staticClass:Bt(e.staticClass,n.staticClass),class:t(e.class)?[e.class,n.class]:n.class}}function Ht(e,n){return t(e)||t(n)?Bt(e,Ut(n)):""}function Bt(e,t){return e?t?e+" "+t:e:t||""}function Ut(e){return Array.isArray(e)?Vt(e):o(e)?zt(e):"string"==typeof e?e:""}function Vt(e){for(var n,r="",i=0,o=e.length;i=0&&" "===(m=e.charAt(h));h--);m&&Oa.test(m)||(l=!0)}}else void 0===o?(v=i+1,o=e.slice(0,i).trim()):t();if(void 0===o?o=e.slice(0,i).trim():0!==v&&t(),a)for(i=0;i-1?{exp:e.slice(0,Qo),key:'"'+e.slice(Qo+1)+'"'}:{exp:e,key:null};for(Zo=e,Qo=Xo=ea=0;!bn();)$n(Yo=_n())?wn(Yo):91===Yo&&Cn(Yo);return{exp:e.slice(0,Xo),key:e.slice(Xo+1,ea)}}function _n(){return Zo.charCodeAt(++Qo)}function bn(){return Qo>=Go}function $n(e){return 34===e||39===e}function Cn(e){var t=1;for(Xo=Qo;!bn();)if(e=_n(),$n(e))wn(e);else if(91===e&&t++,93===e&&t--,0===t){ea=Qo;break}}function wn(e){for(var t=e;!bn()&&(e=_n())!==t;);}function xn(e,t,n){var r=n&&n.number,i=vn(e,"value")||"null",o=vn(e,"true-value")||"true",a=vn(e,"false-value")||"false";ln(e,"checked","Array.isArray("+t+")?_i("+t+","+i+")>-1"+("true"===o?":("+t+")":":_q("+t+","+o+")")),pn(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+t+"=$$a.concat([$$v]))}else{$$i>-1&&("+t+"=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{"+yn(t,"$$c")+"}",null,!0)}function kn(e,t,n){var r=n&&n.number,i=vn(e,"value")||"null";ln(e,"checked","_q("+t+","+(i=r?"_n("+i+")":i)+")"),pn(e,"change",yn(t,i),null,!0)}function An(e,t,n){var r="var $$selectedVal = "+('Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(n&&n.number?"_n(val)":"val")+"})")+";";pn(e,"change",r=r+" "+yn(t,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),null,!0)}function On(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,u=o?"change":"range"===r?Sa:"input",l="$event.target.value";s&&(l="$event.target.value.trim()"),a&&(l="_n("+l+")");var f=yn(t,l);c&&(f="if($event.target.composing)return;"+f),ln(e,"value","("+t+")"),pn(e,u,f,null,!0),(s||a)&&pn(e,"blur","$forceUpdate()")}function Sn(e){if(t(e[Sa])){var n=Ji?"change":"input";e[n]=[].concat(e[Sa],e[n]||[]),delete e[Sa]}t(e[Ta])&&(e.change=[].concat(e[Ta],e.change||[]),delete e[Ta])}function Tn(e,t,n){var r=ta;return function i(){null!==e.apply(null,arguments)&&jn(t,i,n,r)}}function En(e,t,n,r,i){t=ne(t),n&&(t=Tn(t,e,r)),ta.addEventListener(e,t,Qi?{capture:r,passive:i}:r)}function jn(e,t,n,r){(r||ta).removeEventListener(e,t._withTask||t,n)}function Ln(t,n){if(!e(t.data.on)||!e(n.data.on)){var r=n.data.on||{},i=t.data.on||{};ta=n.elm,Sn(r),oe(r,i,En,jn,n.context)}}function Nn(n,r){if(!e(n.data.domProps)||!e(r.data.domProps)){var i,o,a=r.elm,s=n.data.domProps||{},c=r.data.domProps||{};t(c.__ob__)&&(c=r.data.domProps=y({},c));for(i in s)e(c[i])&&(a[i]="");for(i in c){if(o=c[i],"textContent"===i||"innerHTML"===i){if(r.children&&(r.children.length=0),o===s[i])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===i){a._value=o;var u=e(o)?"":String(o);In(a,u)&&(a.value=u)}else a[i]=o}}}function In(e,t){return!e.composing&&("OPTION"===e.tagName||Mn(e,t)||Pn(e,t))}function Mn(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}function Pn(e,n){var r=e.value,i=e._vModifiers;return t(i)&&i.number?l(r)!==l(n):t(i)&&i.trim?r.trim()!==n.trim():r!==n}function Dn(e){var t=Rn(e.style);return e.staticStyle?y(e.staticStyle,t):t}function Rn(e){return Array.isArray(e)?g(e):"string"==typeof e?La(e):e}function Fn(e,t){var n,r={};if(t)for(var i=e;i.componentInstance;)(i=i.componentInstance._vnode).data&&(n=Dn(i.data))&&y(r,n);(n=Dn(e.data))&&y(r,n);for(var o=e;o=o.parent;)o.data&&(n=Dn(o.data))&&y(r,n);return r}function Hn(n,r){var i=r.data,o=n.data;if(!(e(i.staticStyle)&&e(i.style)&&e(o.staticStyle)&&e(o.style))){var a,s,c=r.elm,u=o.staticStyle,l=o.normalizedStyle||o.style||{},f=u||l,d=Rn(r.data.style)||{};r.data.normalizedStyle=t(d.__ob__)?y({},d):d;var p=Fn(r,!0);for(s in f)e(p[s])&&Ma(c,s,"");for(s in p)(a=p[s])!==f[s]&&Ma(c,s,null==a?"":a)}}function Bn(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function Un(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function Vn(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&y(t,Fa(e.name||"v")),y(t,e),t}return"string"==typeof e?Fa(e):void 0}}function zn(e){qa(function(){qa(e)})}function Kn(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),Bn(e,t))}function Jn(e,t){e._transitionClasses&&d(e._transitionClasses,t),Un(e,t)}function qn(e,t,n){var r=Wn(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Ba?za:Ja,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++c>=a&&u()};setTimeout(function(){c0&&(n=Ba,l=a,f=o.length):t===Ua?u>0&&(n=Ua,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?Ba:Ua:null)?n===Ba?o.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Ba&&Wa.test(r[Va+"Property"])}}function Gn(e,t){for(;e.length1}function tr(e,t){!0!==t.data.show&&Yn(t)}function nr(e,t,n){rr(e,t,n),(Ji||Wi)&&setTimeout(function(){rr(e,t,n)},0)}function rr(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=e.options.length;s-1,a.selected!==o&&(a.selected=o);else if(b(or(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function ir(e,t){return t.every(function(t){return!b(t,e)})}function or(e){return"_value"in e?e._value:e.value}function ar(e){e.target.composing=!0}function sr(e){e.target.composing&&(e.target.composing=!1,cr(e.target,"input"))}function cr(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function ur(e){return!e.componentInstance||e.data&&e.data.transition?e:ur(e.componentInstance._vnode)}function lr(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?lr(ye(t.children)):e}function fr(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[ji(o)]=i[o];return t}function dr(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}function pr(e){for(;e=e.parent;)if(e.data.transition)return!0}function vr(e,t){return t.key===e.key&&t.tag===e.tag}function hr(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function mr(e){e.data.newPos=e.elm.getBoundingClientRect()}function yr(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}function gr(e,t){var n=t?os(t):rs;if(n.test(e)){for(var r,i,o=[],a=n.lastIndex=0;r=n.exec(e);){(i=r.index)>a&&o.push(JSON.stringify(e.slice(a,i)));var s=an(r[1].trim());o.push("_s("+s+")"),a=i+r[0].length}return a=0&&a[i].lowerCasedTag!==s;i--);else i=0;if(i>=0){for(var c=a.length-1;c>=i;c--)t.end&&t.end(a[c].tag,n,r);a.length=i,o=i&&a[i-1].tag}else"br"===s?t.start&&t.start(e,[],!0,n,r):"p"===s&&(t.start&&t.start(e,[],!1,n,r),t.end&&t.end(e,n,r))}for(var i,o,a=[],s=t.expectHTML,c=t.isUnaryTag||Mi,u=t.canBeLeftOpenTag||Mi,l=0;e;){if(i=e,o&&Ls(o)){var f=0,d=o.toLowerCase(),p=Ns[d]||(Ns[d]=new RegExp("([\\s\\S]*?)(]*>)","i")),v=e.replace(p,function(e,n,r){return f=r.length,Ls(d)||"noscript"===d||(n=n.replace(//g,"$1").replace(//g,"$1")),Rs(d,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""});l+=e.length-v.length,e=v,r(d,l-f,l)}else{var h=e.indexOf("<");if(0===h){if(_s.test(e)){var m=e.indexOf("--\x3e");if(m>=0){t.shouldKeepComment&&t.comment(e.substring(4,m)),n(m+3);continue}}if(bs.test(e)){var y=e.indexOf("]>");if(y>=0){n(y+2);continue}}var g=e.match(gs);if(g){n(g[0].length);continue}var _=e.match(ys);if(_){var b=l;n(_[0].length),r(_[1],b,l);continue}var $=function(){var t=e.match(hs);if(t){var r={tagName:t[1],attrs:[],start:l};n(t[0].length);for(var i,o;!(i=e.match(ms))&&(o=e.match(ds));)n(o[0].length),r.attrs.push(o);if(i)return r.unarySlash=i[1],n(i[0].length),r.end=l,r}}();if($){!function(e){var n=e.tagName,i=e.unarySlash;s&&("p"===o&&fs(n)&&r(o),u(n)&&o===n&&r(n));for(var l=c(n)||!!i,f=e.attrs.length,d=new Array(f),p=0;p=0){for(w=e.slice(h);!(ys.test(w)||hs.test(w)||_s.test(w)||bs.test(w)||(x=w.indexOf("<",1))<0);)h+=x,w=e.slice(h);C=e.substring(0,h),n(h)}h<0&&(C=e,e=""),t.chars&&C&&t.chars(C)}if(e===i){t.chars&&t.chars(e);break}}r()}function $r(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:Fr(t),parent:n,children:[]}}function Cr(e,t){function n(e){e.pre&&(s=!1),Os(e.tag)&&(c=!1)}Cs=t.warn||cn,Os=t.isPreTag||Mi,Ss=t.mustUseProp||Mi,Ts=t.getTagNamespace||Mi,xs=un(t.modules,"transformNode"),ks=un(t.modules,"preTransformNode"),As=un(t.modules,"postTransformNode"),ws=t.delimiters;var r,i,o=[],a=!1!==t.preserveWhitespace,s=!1,c=!1;return br(e,{warn:Cs,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldKeepComment:t.comments,start:function(e,a,u){var l=i&&i.ns||Ts(e);Ji&&"svg"===l&&(a=Ur(a));var f=$r(e,a,i);l&&(f.ns=l),Br(f)&&!no()&&(f.forbidden=!0);for(var d=0;d0,Wi=Ki&&Ki.indexOf("edge/")>0,Gi=Ki&&Ki.indexOf("android")>0,Zi=Ki&&/iphone|ipad|ipod|ios/.test(Ki),Yi=(Ki&&/chrome\/\d+/.test(Ki),{}.watch),Qi=!1;if(zi)try{var Xi={};Object.defineProperty(Xi,"passive",{get:function(){Qi=!0}}),window.addEventListener("test-passive",null,Xi)}catch(e){}var eo,to,no=function(){return void 0===eo&&(eo=!zi&&"undefined"!=typeof global&&"server"===global.process.env.VUE_ENV),eo},ro=zi&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,io="undefined"!=typeof Symbol&&A(Symbol)&&"undefined"!=typeof Reflect&&A(Reflect.ownKeys);to="undefined"!=typeof Set&&A(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var oo=_,ao=0,so=function(){this.id=ao++,this.subs=[]};so.prototype.addSub=function(e){this.subs.push(e)},so.prototype.removeSub=function(e){d(this.subs,e)},so.prototype.depend=function(){so.target&&so.target.addDep(this)},so.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t1?m(n):n;for(var r=m(arguments,1),i=0,o=n.length;iparseInt(this.max)&&Dt(i,o[0],o,this._vnode)),e.data.keepAlive=!0}return e}}};!function(e){var t={};t.get=function(){return Hi},Object.defineProperty(e,"config",t),e.util={warn:oo,extend:y,mergeOptions:J,defineReactive:M},e.set=P,e.delete=D,e.nextTick=re,e.options=Object.create(null),Ri.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,y(e.options.components,Wo),St(e),Tt(e),Et(e),Nt(e)}(Ot),Object.defineProperty(Ot.prototype,"$isServer",{get:no}),Object.defineProperty(Ot.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Ot.version="2.5.2";var Go,Zo,Yo,Qo,Xo,ea,ta,na,ra=f("style,class"),ia=f("input,textarea,option,select,progress"),oa=function(e,t,n){return"value"===n&&ia(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},aa=f("contenteditable,draggable,spellcheck"),sa=f("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),ca="http://www.w3.org/1999/xlink",ua=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},la=function(e){return ua(e)?e.slice(6,e.length):""},fa=function(e){return null==e||!1===e},da={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},pa=f("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),va=f("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),ha=function(e){return pa(e)||va(e)},ma=Object.create(null),ya=f("text,number,password,search,email,tel,url"),ga=Object.freeze({createElement:function(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(e,t){return document.createElementNS(da[e],t)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,t,n){e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},appendChild:function(e,t){e.appendChild(t)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,t){e.textContent=t},setAttribute:function(e,t,n){e.setAttribute(t,n)}}),_a={create:function(e,t){qt(t)},update:function(e,t){e.data.ref!==t.data.ref&&(qt(e,!0),qt(t))},destroy:function(e){qt(e,!0)}},ba=new uo("",{},[]),$a=["create","activate","update","remove","destroy"],Ca={create:Yt,update:Yt,destroy:function(e){Yt(e,ba)}},wa=Object.create(null),xa=[_a,Ca],ka={create:nn,update:nn},Aa={create:on,update:on},Oa=/[\w).+\-_$\]]/,Sa="__r",Ta="__c",Ea={create:Ln,update:Ln},ja={create:Nn,update:Nn},La=v(function(e){var t={},n=/;(?![^(]*\))/g,r=/:(.+)/;return e.split(n).forEach(function(e){if(e){var n=e.split(r);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}),Na=/^--/,Ia=/\s*!important$/,Ma=function(e,t,n){if(Na.test(t))e.style.setProperty(t,n);else if(Ia.test(n))e.style.setProperty(t,n.replace(Ia,""),"important");else{var r=Da(t);if(Array.isArray(n))for(var i=0,o=n.length;ip?g(n,e(i[m+1])?null:i[m+1].elm,i,d,m,o):d>m&&b(n,r,f,p)}function w(e,n,r,i){for(var o=r;o-1?ma[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:ma[e]=/HTMLUnknownElement/.test(t.toString())},y(Ot.options.directives,Za),y(Ot.options.components,es),Ot.prototype.__patch__=zi?Ga:_,Ot.prototype.$mount=function(e,t){return e=e&&zi?Jt(e):void 0,Ae(this,e,t)},Ot.nextTick(function(){Hi.devtools&&ro&&ro.emit("init",Ot)},0);var ts,ns=!!zi&&function(e,t){var n=document.createElement("div");return n.innerHTML='
',n.innerHTML.indexOf(t)>0}("\n"," "),rs=/\{\{((?:.|\n)+?)\}\}/g,is=/[-.*+?^${}()|[\]\/\\]/g,os=v(function(e){var t=e[0].replace(is,"\\$&"),n=e[1].replace(is,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")}),as={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=hn(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=vn(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}},ss={staticKeys:["staticStyle"],transformNode:function(e,t){var n=hn(e,"style");n&&(e.staticStyle=JSON.stringify(La(n)));var r=vn(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},cs={decode:function(e){return ts=ts||document.createElement("div"),ts.innerHTML=e,ts.textContent}},us=f("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),ls=f("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),fs=f("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),ds=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,ps="[a-zA-Z_][\\w\\-\\.]*",vs="((?:"+ps+"\\:)?"+ps+")",hs=new RegExp("^<"+vs),ms=/^\s*(\/?)>/,ys=new RegExp("^<\\/"+vs+"[^>]*>"),gs=/^]+>/i,_s=/^/g,"$1").replace(//g,"$1")),Hs(d,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""});l+=e.length-v.length,e=v,r(d,l-f,l)}else{var h=e.indexOf("<");if(0===h){if(bs.test(e)){var m=e.indexOf("--\x3e");if(m>=0){t.shouldKeepComment&&t.comment(e.substring(4,m)),n(m+3);continue}}if($s.test(e)){var y=e.indexOf("]>");if(y>=0){n(y+2);continue}}var g=e.match(_s);if(g){n(g[0].length);continue}var _=e.match(gs);if(_){var b=l;n(_[0].length),r(_[1],b,l);continue}var $=function(){var t=e.match(ms);if(t){var r={tagName:t[1],attrs:[],start:l};n(t[0].length);for(var i,o;!(i=e.match(ys))&&(o=e.match(ps));)n(o[0].length),r.attrs.push(o);if(i)return r.unarySlash=i[1],n(i[0].length),r.end=l,r}}();if($){!function(e){var n=e.tagName,i=e.unarySlash;s&&("p"===o&&ds(n)&&r(o),u(n)&&o===n&&r(n));for(var l=c(n)||!!i,f=e.attrs.length,d=new Array(f),p=0;p=0){for(w=e.slice(h);!(gs.test(w)||ms.test(w)||bs.test(w)||$s.test(w)||(x=w.indexOf("<",1))<0);)h+=x,w=e.slice(h);C=e.substring(0,h),n(h)}h<0&&(C=e,e=""),t.chars&&C&&t.chars(C)}if(e===i){t.chars&&t.chars(e);break}}r()}function $r(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:Rr(t),parent:n,children:[]}}function Cr(e,t){function n(e){e.pre&&(s=!1),Ss(e.tag)&&(c=!1)}ws=t.warn||cn,Ss=t.isPreTag||Di,Ts=t.mustUseProp||Di,Es=t.getTagNamespace||Di,ks=un(t.modules,"transformNode"),As=un(t.modules,"preTransformNode"),Os=un(t.modules,"postTransformNode"),xs=t.delimiters;var r,i,o=[],a=!1!==t.preserveWhitespace,s=!1,c=!1;return br(e,{warn:ws,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,start:function(e,a,u){var l=i&&i.ns||Es(e);qi&&"svg"===l&&(a=Ur(a));var f=$r(e,a,i);l&&(f.ns=l),Br(f)&&!ro()&&(f.forbidden=!0);for(var d=0;d':'
',Ls.innerHTML.indexOf(" ")>0}function Ai(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}var Oi=Object.prototype.toString,Si=f("slot,component",!0),Ti=f("key,ref,slot,slot-scope,is"),Ei=Object.prototype.hasOwnProperty,ji=/-(\w)/g,Ni=v(function(e){return e.replace(ji,function(e,t){return t?t.toUpperCase():""})}),Li=v(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),Ii=/\B([A-Z])/g,Mi=v(function(e){return e.replace(Ii,"-$1").toLowerCase()}),Di=function(e,t,n){return!1},Pi=function(e){return e},Fi="data-server-rendered",Ri=["component","directive","filter"],Hi=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured"],Bi={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:Di,isReservedAttr:Di,isUnknownElement:Di,getTagNamespace:_,parsePlatformTagName:Pi,mustUseProp:Di,_lifecycleHooks:Hi},Ui=Object.freeze({}),Vi=/[^\w.$]/,zi="__proto__"in{},Ki="undefined"!=typeof window,Ji=Ki&&window.navigator.userAgent.toLowerCase(),qi=Ji&&/msie|trident/.test(Ji),Wi=Ji&&Ji.indexOf("msie 9.0")>0,Gi=Ji&&Ji.indexOf("edge/")>0,Zi=Ji&&Ji.indexOf("android")>0,Yi=Ji&&/iphone|ipad|ipod|ios/.test(Ji),Qi=(Ji&&/chrome\/\d+/.test(Ji),{}.watch),Xi=!1;if(Ki)try{var eo={};Object.defineProperty(eo,"passive",{get:function(){Xi=!0}}),window.addEventListener("test-passive",null,eo)}catch(e){}var to,no,ro=function(){return void 0===to&&(to=!Ki&&"undefined"!=typeof global&&"server"===global.process.env.VUE_ENV),to},io=Ki&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,oo="undefined"!=typeof Symbol&&A(Symbol)&&"undefined"!=typeof Reflect&&A(Reflect.ownKeys);no="undefined"!=typeof Set&&A(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var ao=_,so=0,co=function(){this.id=so++,this.subs=[]};co.prototype.addSub=function(e){this.subs.push(e)},co.prototype.removeSub=function(e){d(this.subs,e)},co.prototype.depend=function(){co.target&&co.target.addDep(this)},co.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t1?m(n):n;for(var r=m(arguments,1),i=0,o=n.length;iparseInt(this.max)&&Pt(i,o[0],o,this._vnode)),e.data.keepAlive=!0}return e}}};!function(e){var t={};t.get=function(){return Bi},Object.defineProperty(e,"config",t),e.util={warn:ao,extend:y,mergeOptions:J,defineReactive:M},e.set=D,e.delete=P,e.nextTick=re,e.options=Object.create(null),Ri.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,y(e.options.components,Go),St(e),Tt(e),Et(e),Lt(e)}(Ot),Object.defineProperty(Ot.prototype,"$isServer",{get:ro}),Object.defineProperty(Ot.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Ot.version="2.5.3";var Zo,Yo,Qo,Xo,ea,ta,na,ra,ia=f("style,class"),oa=f("input,textarea,option,select,progress"),aa=function(e,t,n){return"value"===n&&oa(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},sa=f("contenteditable,draggable,spellcheck"),ca=f("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),ua="http://www.w3.org/1999/xlink",la=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},fa=function(e){return la(e)?e.slice(6,e.length):""},da=function(e){return null==e||!1===e},pa={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},va=f("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),ha=f("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),ma=function(e){return va(e)||ha(e)},ya=Object.create(null),ga=f("text,number,password,search,email,tel,url"),_a=Object.freeze({createElement:function(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(e,t){return document.createElementNS(pa[e],t)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,t,n){e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},appendChild:function(e,t){e.appendChild(t)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,t){e.textContent=t},setAttribute:function(e,t,n){e.setAttribute(t,n)}}),ba={create:function(e,t){qt(t)},update:function(e,t){e.data.ref!==t.data.ref&&(qt(e,!0),qt(t))},destroy:function(e){qt(e,!0)}},$a=new lo("",{},[]),Ca=["create","activate","update","remove","destroy"],wa={create:Yt,update:Yt,destroy:function(e){Yt(e,$a)}},xa=Object.create(null),ka=[ba,wa],Aa={create:nn,update:nn},Oa={create:on,update:on},Sa=/[\w).+\-_$\]]/,Ta="__r",Ea="__c",ja={create:Nn,update:Nn},Na={create:Ln,update:Ln},La=v(function(e){var t={},n=/;(?![^(]*\))/g,r=/:(.+)/;return e.split(n).forEach(function(e){if(e){var n=e.split(r);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}),Ia=/^--/,Ma=/\s*!important$/,Da=function(e,t,n){if(Ia.test(t))e.style.setProperty(t,n);else if(Ma.test(n))e.style.setProperty(t,n.replace(Ma,""),"important");else{var r=Fa(t);if(Array.isArray(n))for(var i=0,o=n.length;ip?g(n,e(i[m+1])?null:i[m+1].elm,i,d,m,o):d>m&&b(n,r,f,p)}function w(e,n,r,i){for(var o=r;o-1?ya[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:ya[e]=/HTMLUnknownElement/.test(t.toString())},y(Ot.options.directives,Qa),y(Ot.options.components,ns),Ot.prototype.__patch__=Ki?Za:_,Ot.prototype.$mount=function(e,t){return e=e&&Ki?Jt(e):void 0,Ae(this,e,t)},Ot.nextTick(function(){Bi.devtools&&io&&io.emit("init",Ot)},0);var rs,is=/\{\{((?:.|\n)+?)\}\}/g,os=/[-.*+?^${}()|[\]\/\\]/g,as=v(function(e){var t=e[0].replace(os,"\\$&"),n=e[1].replace(os,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")}),ss={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=hn(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=vn(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}},cs={staticKeys:["staticStyle"],transformNode:function(e,t){var n=hn(e,"style");n&&(e.staticStyle=JSON.stringify(La(n)));var r=vn(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},us={decode:function(e){return rs=rs||document.createElement("div"),rs.innerHTML=e,rs.textContent}},ls=f("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),fs=f("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),ds=f("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),ps=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,vs="[a-zA-Z_][\\w\\-\\.]*",hs="((?:"+vs+"\\:)?"+vs+")",ms=new RegExp("^<"+hs),ys=/^\s*(\/?)>/,gs=new RegExp("^<\\/"+hs+"[^>]*>"),_s=/^]+>/i,bs=/^