Comparing version 0.10.6 to 0.11.0-rc
@@ -1,7 +0,7 @@ | ||
/* | ||
Vue.js v0.10.6 | ||
(c) 2014 Evan You | ||
License: MIT | ||
*/ | ||
!function(){"use strict";function e(t,i,r){var n=e.resolve(t);if(null!=n){var s=e.modules[n];if(!s._resolving&&!s.exports){var o={};o.exports={},o.client=o.component=!0,s._resolving=!0,s.call(this,o.exports,e.relative(n),o),delete s._resolving,s.exports=o.exports}return s.exports}}e.modules={},e.aliases={},e.exts=["",".js",".json","/index.js","/index.json"],e.resolve=function(t){"/"===t.charAt(0)&&(t=t.slice(1));for(var i=0;5>i;i++){var r=t+e.exts[i];if(e.modules.hasOwnProperty(r))return r;if(e.aliases.hasOwnProperty(r))return e.aliases[r]}},e.normalize=function(e,t){var i=[];if("."!=t.charAt(0))return t;e=e.split("/"),t=t.split("/");for(var r=0;r<t.length;++r)".."===t[r]?e.pop():"."!=t[r]&&""!=t[r]&&i.push(t[r]);return e.concat(i).join("/")},e.register=function(t,i){e.modules[t]=i},e.alias=function(t,i){e.modules.hasOwnProperty(t)&&(e.aliases[i]=t)},e.relative=function(t){function i(r){var n=i.resolve(r);return e(n,t,r)}var r=e.normalize(t,"..");return i.resolve=function(i){var n=i.charAt(0);if("/"===n)return i.slice(1);if("."===n)return e.normalize(r,i);for(var s=t.split("/"),o=s.length;o--&&"deps"!==s[o];);return i=s.slice(0,o+2).join("/")+"/deps/"+i},i.exists=function(t){return e.modules.hasOwnProperty(i.resolve(t))},i},e.register("vue/src/main.js",function(e,t,i){function r(e){var t=this;e.data&&(e.defaultData=e.data,delete e.data),t!==o&&(e=n(e,t.options,!0)),a.processOptions(e);var i=function(i,r){r||(i=n(i,e,!0)),t.call(this,i,!0)},s=i.prototype=Object.create(t.prototype);return a.defProtected(s,"constructor",i),i.extend=r,i.super=t,i.options=e,l.forEach(function(e){i[e]=o[e]}),i.use=o.use,i.require=o.require,i}function n(e,t,i){if(e=e||{},!t)return e;for(var r in t)if("el"!==r){var s=e[r],c=t[r];i&&"function"==typeof s&&c?(e[r]=[s],Array.isArray(c)?e[r]=e[r].concat(c):e[r].push(c)):!i||!a.isTrueObject(s)&&!a.isTrueObject(c)||c instanceof o?void 0===s&&(e[r]=c):e[r]=n(s,c)}return e}var s=t("./config"),o=t("./viewmodel"),a=t("./utils"),c=a.hash,l=["directive","filter","partial","effect","component"],u={utils:a,config:s,transition:t("./transition"),observer:t("./observer")};o.options=s.globalAssets={directives:t("./directives"),filters:t("./filters"),partials:c(),effects:c(),components:c()},l.forEach(function(e){o[e]=function(t,i){var r=this.options[e+"s"];return r||(r=this.options[e+"s"]=c()),i?("partial"===e?i=a.parseTemplateOption(i):"component"===e?i=a.toConstructor(i):"filter"===e&&a.checkFilter(i),r[t]=i,this):r[t]}}),o.config=function(e,t){if("string"==typeof e){if(void 0===t)return s[e];s[e]=t}else a.extend(s,e);return this},o.use=function(e){if("string"==typeof e)try{e=t(e)}catch(i){return}var r=[].slice.call(arguments,1);return r.unshift(this),"function"==typeof e.install?e.install.apply(e,r):e.apply(null,r),this},o.require=function(e){return u[e]},o.extend=r,o.nextTick=a.nextTick,i.exports=o}),e.register("vue/src/emitter.js",function(e,t,i){function r(e){this._ctx=e||this}var n=[].slice,s=r.prototype;s.on=function(e,t){return this._cbs=this._cbs||{},(this._cbs[e]=this._cbs[e]||[]).push(t),this},s.once=function(e,t){function i(){r.off(e,i),t.apply(this,arguments)}var r=this;return this._cbs=this._cbs||{},i.fn=t,this.on(e,i),this},s.off=function(e,t){if(this._cbs=this._cbs||{},!arguments.length)return this._cbs={},this;var i=this._cbs[e];if(!i)return this;if(1===arguments.length)return delete this._cbs[e],this;for(var r,n=0;n<i.length;n++)if(r=i[n],r===t||r.fn===t){i.splice(n,1);break}return this},s.emit=function(e,t,i,r){this._cbs=this._cbs||{};var n=this._cbs[e];if(n){n=n.slice(0);for(var s=0,o=n.length;o>s;s++)n[s].call(this._ctx,t,i,r)}return this},s.applyEmit=function(e){this._cbs=this._cbs||{};var t,i=this._cbs[e];if(i){i=i.slice(0),t=n.call(arguments,1);for(var r=0,s=i.length;s>r;r++)i[r].apply(this._ctx,t)}return this},i.exports=r}),e.register("vue/src/config.js",function(e,t,i){var r=t("./text-parser");i.exports={prefix:"v",debug:!1,silent:!1,enterClass:"v-enter",leaveClass:"v-leave",interpolate:!0},Object.defineProperty(i.exports,"delimiters",{get:function(){return r.delimiters},set:function(e){r.setDelimiters(e)}})}),e.register("vue/src/utils.js",function(e,t,i){function r(e){return e.indexOf("[")<0?e:e.replace(h,".$1").replace(f,".$1")}var n,s=t("./config"),o={}.toString,a=window,c=(a.console,Object.defineProperty),l="object",u=/[^\w]this[^\w]/,h=/\['([^']+)'\]/g,f=/\["([^"]+)"\]/g,d="classList"in document.documentElement,p=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.setTimeout,v=i.exports={toFragment:t("./fragment"),parseTemplateOption:t("./template-parser.js"),get:function(e,t){if(t=r(t),t.indexOf(".")<0)return e[t];for(var i=t.split("."),n=-1,s=i.length;++n<s&&null!=e;)e=e[i[n]];return e},set:function(e,t,i){if(t=r(t),t.indexOf(".")<0)return void(e[t]=i);for(var n=t.split("."),s=-1,o=n.length-1;++s<o;)null==e[n[s]]&&(e[n[s]]={}),e=e[n[s]];e[n[s]]=i},baseKey:function(e){return e.indexOf(".")>0?e.split(".")[0]:e},hash:function(){return Object.create(null)},attr:function(e,t){var i=s.prefix+"-"+t,r=e.getAttribute(i);return null!==r&&e.removeAttribute(i),r},defProtected:function(e,t,i,r,n){c(e,t,{value:i,enumerable:r,writable:n,configurable:!0})},isObject:function(e){return typeof e===l&&e&&!Array.isArray(e)},isTrueObject:function(e){return"[object Object]"===o.call(e)},bind:function(e,t){return function(i){return e.call(t,i)}},guard:function(e){return null==e?"":"object"==typeof e?JSON.stringify(e):e},checkNumber:function(e){return isNaN(e)||null===e||"boolean"==typeof e?e:Number(e)},extend:function(e,t){for(var i in t)e[i]!==t[i]&&(e[i]=t[i]);return e},unique:function(e){for(var t,i=v.hash(),r=e.length,n=[];r--;)t=e[r],i[t]||(i[t]=1,n.push(t));return n},toConstructor:function(e){return n=n||t("./viewmodel"),v.isObject(e)?n.extend(e):"function"==typeof e?e:null},checkFilter:function(e){u.test(e.toString())&&(e.computed=!0)},processOptions:function(e){var t,i=e.components,r=e.partials,n=e.template,s=e.filters;if(i)for(t in i)i[t]=v.toConstructor(i[t]);if(r)for(t in r)r[t]=v.parseTemplateOption(r[t]);if(s)for(t in s)v.checkFilter(s[t]);n&&(e.template=v.parseTemplateOption(n))},nextTick:function(e){p(e,0)},addClass:function(e,t){if(d)e.classList.add(t);else{var i=" "+e.className+" ";i.indexOf(" "+t+" ")<0&&(e.className=(i+t).trim())}},removeClass:function(e,t){if(d)e.classList.remove(t);else{for(var i=" "+e.className+" ",r=" "+t+" ";i.indexOf(r)>=0;)i=i.replace(r," ");e.className=i.trim()}},objectToArray:function(e){var t,i,r=[];for(var n in e)t=e[n],i=v.isObject(t)?t:{$value:t},i.$key=n,r.push(i);return r}}}),e.register("vue/src/fragment.js",function(e,t,i){var r={legend:[1,"<fieldset>","</fieldset>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],_default:[0,"",""]};r.td=r.th=[3,"<table><tbody><tr>","</tr></tbody></table>"],r.option=r.optgroup=[1,'<select multiple="multiple">',"</select>"],r.thead=r.tbody=r.colgroup=r.caption=r.tfoot=[1,"<table>","</table>"],r.text=r.circle=r.ellipse=r.line=r.path=r.polygon=r.polyline=r.rect=[1,'<svg xmlns="http://www.w3.org/2000/svg" version="1.1">',"</svg>"];var n=/<([\w:]+)/;i.exports=function(e){var t=document.createDocumentFragment(),i=n.exec(e);if(!i)return t.appendChild(document.createTextNode(e)),t;var s=i[1],o=r[s]||r._default,a=o[0],c=o[1],l=o[2],u=document.createElement("div");for(u.innerHTML=c+e.trim()+l;a--;)u=u.lastChild;if(u.firstChild===u.lastChild)return t.appendChild(u.firstChild),t;for(var h;h=u.firstChild;)1===u.nodeType&&t.appendChild(h);return t}}),e.register("vue/src/compiler.js",function(e,t,i){function r(e,t){var i,r,s=this;s.init=!0,s.destroyed=!1,t=s.options=t||{},l.processOptions(t),m(s,t.compilerOptions),s.repeat=s.repeat||!1,s.expCache=s.expCache||{};var a=s.el=s.setupElement(t);s.vm=a.vue_vm=e,s.bindings=l.hash(),s.dirs=[],s.deferred=[],s.computed=[],s.children=[],s.emitter=new o(e),e.$={},e.$el=a,e.$options=t,e.$compiler=s,e.$event=null;var c=t.parent;if(c&&(s.parent=c.$compiler,c.$compiler.children.push(s),e.$parent=c,"lazy"in t||(t.lazy=s.parent.options.lazy)),e.$root=n(s).vm,s.setupObserver(),t.methods)for(i in t.methods)s.createBinding(i);if(t.computed)for(i in t.computed)s.createBinding(i);var u=s.data=t.data||{},h=t.defaultData;if(h)for(i in h)g.call(u,i)||(u[i]=h[i]);var f=t.paramAttributes;if(f)for(r=f.length;r--;)u[f[r]]=l.checkNumber(s.eval(a.getAttribute(f[r])));m(e,u),e.$data=u,s.execHook("created"),u=s.data=e.$data;var p;for(i in e)p=e[i],"$"!==i.charAt(0)&&u[i]!==p&&"function"!=typeof p&&(u[i]=p);for(s.observeData(u),t.template&&this.resolveContent(),s.compile(a,!0),r=s.deferred.length;r--;)s.bindDirective(s.deferred[r]);s.deferred=null,this.computed.length&&d.parse(this.computed),s.init=!1,s.execHook("ready")}function n(e){for(;e.parent;)e=e.parent;return e}var s,o=t("./emitter"),a=t("./observer"),c=t("./config"),l=t("./utils"),u=t("./binding"),h=t("./directive"),f=t("./text-parser"),d=t("./deps-parser"),p=t("./exp-parser"),v=[].slice,m=l.extend,g={}.hasOwnProperty,b=Object.defineProperty,y=["created","ready","beforeDestroy","afterDestroy","attached","detached"],_=["if","repeat","view","component"],x=r.prototype;x.setupElement=function(e){var t,i,r,n,s,o="string"==typeof e.el?document.querySelector(e.el):e.el||document.createElement(e.tagName||"div"),a=e.template;if(a){if(o.hasChildNodes())for(this.rawContent=document.createElement("div");t=o.firstChild;)this.rawContent.appendChild(t);if(e.replace&&a.firstChild===a.lastChild){if(i=a.firstChild.cloneNode(!0),o.parentNode&&(o.parentNode.insertBefore(i,o),o.parentNode.removeChild(o)),o.hasAttributes())for(r=o.attributes.length;r--;)n=o.attributes[r],i.setAttribute(n.name,n.value);o=i}else o.appendChild(a.cloneNode(!0))}if(e.id&&(o.id=e.id),e.className&&(o.className=e.className),s=e.attributes)for(n in s)o.setAttribute(n,s[n]);return o},x.resolveContent=function(){function e(e,t){for(var i=e.parentNode,r=0,n=t.length;n>r;r++)i.insertBefore(t[r],e);i.removeChild(e)}var t,i,r,n,s,o=v.call(this.el.getElementsByTagName("content")),a=this.rawContent;if(r=o.length){for(;r--;)t=o[r],a?(i=t.getAttribute("select"),i?t.content=v.call(a.querySelectorAll(i)):s=t):t.content=v.call(t.childNodes);for(r=0,n=o.length;n>r;r++)t=o[r],t!==s&&e(t,t.content);a&&s&&e(s,v.call(a.childNodes))}this.rawContent=null},x.setupObserver=function(){function e(e){n(e),d.catcher.emit("get",a[e])}function t(e,t,i){l.emit("change:"+e,t,i),n(e),a[e].update(t)}function i(e,t){l.on("hook:"+e,function(){t.call(s.vm)})}function r(e){var t=s.children;if(t)for(var i,r=t.length;r--;)i=t[r],i.el.parentNode&&(e="hook:"+(e?"attached":"detached"),i.observer.emit(e),i.emitter.emit(e))}function n(e){a[e]||s.createBinding(e)}var s=this,a=s.bindings,c=s.options,l=s.observer=new o(s.vm);l.proxies={},l.on("get",e).on("set",t).on("mutate",t);for(var u,h,f,p=y.length;p--;)if(h=y[p],f=c[h],Array.isArray(f))for(u=f.length;u--;)i(h,f[u]);else f&&i(h,f);l.on("hook:attached",function(){r(1)}).on("hook:detached",function(){r(0)})},x.observeData=function(e){function t(e){"$data"!==e&&i()}function i(){s.update(r.data),n.emit("change:$data",r.data)}var r=this,n=r.observer;a.observe(e,"",n);var s=r.bindings.$data=new u(r,"$data");s.update(e),b(r.vm,"$data",{get:function(){return r.observer.emit("get","$data"),r.data},set:function(e){var t=r.data;a.unobserve(t,"",n),r.data=e,a.copyPaths(e,t),a.observe(e,"",n),i()}}),n.on("set",t).on("mutate",t)},x.compile=function(e,t){var i=e.nodeType;1===i&&"SCRIPT"!==e.tagName?this.compileElement(e,t):3===i&&c.interpolate&&this.compileTextNode(e)},x.checkPriorityDir=function(e,t,i){var r,n,s;if("component"===e&&i!==!0&&(s=this.resolveComponent(t,void 0,!0))?(n=this.parseDirective(e,"",t),n.Ctor=s):(r=l.attr(t,e),n=r&&this.parseDirective(e,r,t)),n){if(i===!0)return;return this.deferred.push(n),!0}},x.compileElement=function(e,t){if("TEXTAREA"===e.tagName&&e.value&&(e.value=this.eval(e.value)),e.hasAttributes()||e.tagName.indexOf("-")>-1){if(null!==l.attr(e,"pre"))return;var i,r,n,s;for(i=0,r=_.length;r>i;i++)if(this.checkPriorityDir(_[i],e,t))return;e.vue_trans=l.attr(e,"transition"),e.vue_anim=l.attr(e,"animation"),e.vue_effect=this.eval(l.attr(e,"effect"));var o,a,u,h,d,p,m,g=c.prefix+"-",b=this.options.paramAttributes;if(t){var y=l.attr(e,"with");if(y)for(d=this.parseDirective("with",y,e,!0),n=0,s=d.length;s>n;n++)this.bindDirective(d[n],this.parent)}var x=v.call(e.attributes);for(i=0,r=x.length;r>i;i++){if(o=x[i],a=o.name,u=!1,0===a.indexOf(g))for(u=!0,m=a.slice(g.length),d=this.parseDirective(m,o.value,e,!0),n=0,s=d.length;s>n;n++)this.bindDirective(d[n]);else c.interpolate&&(h=f.parseAttr(o.value),h&&(p=this.parseDirective("attr",h,e),p.arg=a,b&&b.indexOf(a)>-1?this.bindDirective(p,this.parent):this.bindDirective(p)));u&&"cloak"!==m&&e.removeAttribute(a)}}e.hasChildNodes()&&v.call(e.childNodes).forEach(this.compile,this)},x.compileTextNode=function(e){var t=f.parse(e.nodeValue);if(t){for(var i,r,n,s=0,o=t.length;o>s;s++)r=t[s],n=null,r.key?">"===r.key.charAt(0)?(i=document.createComment("ref"),n=this.parseDirective("partial",r.key.slice(1),i)):r.html?(i=document.createComment(c.prefix+"-html"),n=this.parseDirective("html",r.key,i)):(i=document.createTextNode(""),n=this.parseDirective("text",r.key,i)):i=document.createTextNode(r),e.parentNode.insertBefore(i,e),this.bindDirective(n);e.parentNode.removeChild(e)}},x.parseDirective=function(e,t,i,r){function n(t){return new h(e,t,o,s,i)}var s=this,o=s.getOption("directives",e);if(o){var a=h.parse(t);return r?a.map(n):n(a[0])}},x.bindDirective=function(e,t){if(e){if(this.dirs.push(e),e.isEmpty||e.isLiteral)return void(e.bind&&e.bind());var i,r=t||this,n=e.key;if(e.isExp)i=r.createBinding(n,e);else{for(;r&&!r.hasKey(n);)r=r.parent;r=r||this,i=r.bindings[n]||r.createBinding(n)}i.dirs.push(e),e.binding=i;var s=i.val();e.bind&&e.bind(s),e.$update(s,!0)}},x.createBinding=function(e,t){var i=this,r=i.options.methods,n=t&&t.isExp,s=t&&t.isFn||r&&r[e],o=i.bindings,c=i.options.computed,h=new u(i,e,n,s);if(n)i.defineExp(e,h,t);else if(s)o[e]=h,i.defineVmProp(e,h,r[e]);else if(o[e]=h,h.root)c&&c[e]?i.defineComputed(e,h,c[e]):"$"!==e.charAt(0)?i.defineDataProp(e,h):(i.defineVmProp(e,h,i.data[e]),delete i.data[e]);else if(c&&c[l.baseKey(e)])i.defineExp(e,h);else{a.ensurePath(i.data,e);var f=e.slice(0,e.lastIndexOf("."));o[f]||i.createBinding(f)}return h},x.defineDataProp=function(e,t){var i=this,r=i.data,n=r.__emitter__;g.call(r,e)||(r[e]=void 0),n&&!g.call(n.values,e)&&a.convertKey(r,e),t.value=r[e],b(i.vm,e,{get:function(){return i.data[e]},set:function(t){i.data[e]=t}})},x.defineVmProp=function(e,t,i){var r=this.observer;t.value=i,b(this.vm,e,{get:function(){return a.shouldGet&&r.emit("get",e),t.value},set:function(t){r.emit("set",e,t)}})},x.defineExp=function(e,t,i){var r=i&&i.computedKey,n=r?i.expression:e,s=this.expCache[n];s||(s=this.expCache[n]=p.parse(r||e,this)),s&&this.markComputed(t,s)},x.defineComputed=function(e,t,i){this.markComputed(t,i),b(this.vm,e,{get:t.value.$get,set:t.value.$set})},x.markComputed=function(e,t){e.isComputed=!0,e.isFn?e.value=t:("function"==typeof t&&(t={$get:t}),e.value={$get:l.bind(t.$get,this.vm),$set:t.$set?l.bind(t.$set,this.vm):void 0}),this.computed.push(e)},x.getOption=function(e,t,i){var r=this.options,n=this.parent,s=c.globalAssets,o=r[e]&&r[e][t]||(n?n.getOption(e,t,i):s[e]&&s[e][t]);return o},x.execHook=function(e){e="hook:"+e,this.observer.emit(e),this.emitter.emit(e)},x.hasKey=function(e){var t=l.baseKey(e);return g.call(this.data,t)||g.call(this.vm,t)},x.eval=function(e,t){var i=f.parseAttr(e);return i?p.eval(i,this,t):e},x.resolveComponent=function(e,i,r){s=s||t("./viewmodel");var n=l.attr(e,"component"),o=e.tagName,a=this.eval(n,i),c=o.indexOf("-")>0&&o.toLowerCase(),u=this.getOption("components",a||c,!0);return r?""===n?s:u:u||s},x.destroy=function(e){if(!this.destroyed){var t,i,r,n,s,o,c=this,l=c.vm,u=c.el,h=c.dirs,f=c.computed,d=c.bindings,p=c.children,v=c.parent;for(c.execHook("beforeDestroy"),a.unobserve(c.data,"",c.observer),t=p.length;t--;)p[t].destroy(!0);for(t=h.length;t--;)n=h[t],n.binding&&n.binding.compiler!==c&&(s=n.binding.dirs,s&&(i=s.indexOf(n),i>-1&&s.splice(i,1))),n.$unbind();for(t=f.length;t--;)f[t].unbind();for(r in d)o=d[r],o&&o.unbind();v&&(i=v.children.indexOf(c),i>-1&&v.children.splice(i,1)),e||(u===document.body?u.innerHTML="":l.$remove()),u.vue_vm=null,c.destroyed=!0,c.execHook("afterDestroy"),c.observer.off(),c.emitter.off()}},i.exports=r}),e.register("vue/src/viewmodel.js",function(e,t,i){function r(e){e!==!1&&new s(this,e)}function n(e){return"string"==typeof e?document.querySelector(e):e}var s=t("./compiler"),o=t("./utils"),a=t("./transition"),c=t("./batcher"),l=[].slice,u=o.defProtected,h=o.nextTick,f=new c,d=1,p=r.prototype;u(p,"$init",function(e){new s(this,e)}),u(p,"$get",function(e){var t=o.get(this,e);return void 0===t&&this.$parent?this.$parent.$get(e):t}),u(p,"$set",function(e,t){o.set(this,e,t)}),u(p,"$watch",function(e,t){function i(){var e=l.call(arguments);f.push({id:r,override:!0,execute:function(){t.apply(n,e)}})}var r=d++,n=this;t._fn=i,n.$compiler.observer.on("change:"+e,i)}),u(p,"$unwatch",function(e,t){var i=["change:"+e],r=this.$compiler.observer;t&&i.push(t._fn),r.off.apply(r,i)}),u(p,"$destroy",function(e){this.$compiler.destroy(e)}),u(p,"$broadcast",function(){for(var e,t=this.$compiler.children,i=t.length;i--;)e=t[i],e.emitter.applyEmit.apply(e.emitter,arguments),e.vm.$broadcast.apply(e.vm,arguments)}),u(p,"$dispatch",function(){var e=this.$compiler,t=e.emitter,i=e.parent;t.applyEmit.apply(t,arguments),i&&i.vm.$dispatch.apply(i.vm,arguments)}),["emit","on","off","once"].forEach(function(e){var t="emit"===e?"applyEmit":e;u(p,"$"+e,function(){var e=this.$compiler.emitter;e[t].apply(e,arguments)})}),u(p,"$appendTo",function(e,t){e=n(e);var i=this.$el;a(i,1,function(){e.appendChild(i),t&&h(t)},this.$compiler)}),u(p,"$remove",function(e){var t=this.$el;a(t,-1,function(){t.parentNode&&t.parentNode.removeChild(t),e&&h(e)},this.$compiler)}),u(p,"$before",function(e,t){e=n(e);var i=this.$el;a(i,1,function(){e.parentNode.insertBefore(i,e),t&&h(t)},this.$compiler)}),u(p,"$after",function(e,t){e=n(e);var i=this.$el;a(i,1,function(){e.nextSibling?e.parentNode.insertBefore(i,e.nextSibling):e.parentNode.appendChild(i),t&&h(t)},this.$compiler)}),i.exports=r}),e.register("vue/src/binding.js",function(e,t,i){function r(e,t,i,r){this.id=o++,this.value=void 0,this.isExp=!!i,this.isFn=r,this.root=!this.isExp&&-1===t.indexOf("."),this.compiler=e,this.key=t,this.dirs=[],this.subs=[],this.deps=[],this.unbound=!1}var n=t("./batcher"),s=new n,o=1,a=r.prototype;a.update=function(e){if((!this.isComputed||this.isFn)&&(this.value=e),this.dirs.length||this.subs.length){var t=this;s.push({id:this.id,execute:function(){t.unbound||t._update()}})}},a._update=function(){for(var e=this.dirs.length,t=this.val();e--;)this.dirs[e].$update(t);this.pub()},a.val=function(){return this.isComputed&&!this.isFn?this.value.$get():this.value},a.pub=function(){for(var e=this.subs.length;e--;)this.subs[e].update()},a.unbind=function(){this.unbound=!0;for(var e=this.dirs.length;e--;)this.dirs[e].$unbind();e=this.deps.length;for(var t;e--;){t=this.deps[e].subs;var i=t.indexOf(this);i>-1&&t.splice(i,1)}},i.exports=r}),e.register("vue/src/observer.js",function(e,t,i){function r(e){x(O,e,function(){var t,i,r=E.call(arguments),o=Array.prototype[e].apply(this,r);return"push"===e||"unshift"===e?t=r:"pop"===e||"shift"===e?i=[o]:"splice"===e&&(t=r.slice(2),i=o),n(this,t),s(this,i),this.__emitter__.emit("mutate","",this,{method:e,args:r,result:o,inserted:t,removed:i}),o},!A)}function n(e,t){if(t)for(var i,r,n=t.length;n--;)i=t[n],o(i)&&(i.__emitter__||(a(i),l(i)),r=i.__emitter__.owners,r.indexOf(e)<0&&r.push(e))}function s(e,t){if(t)for(var i,r=t.length;r--;)if(i=t[r],i&&i.__emitter__){var n=i.__emitter__.owners;n&&n.splice(n.indexOf(e))}}function o(e){return"object"==typeof e&&e&&!e.$compiler}function a(e){if(e.__emitter__)return!0;var t=new y;return x(e,"__emitter__",t),t.on("set",function(t,i,r){r&&c(e)}).on("mutate",function(){c(e)}),t.values=_.hash(),t.owners=[],!1}function c(e){for(var t=e.__emitter__.owners,i=t.length;i--;)t[i].__emitter__.emit("set","","",!0)}function l(e){k(e)?f(e):h(e)}function u(e,t){if(A)e.__proto__=t;else for(var i in t)x(e,i,t[i])}function h(e){u(e,j);for(var t in e)d(e,t)}function f(e){u(e,O),n(e,e)}function d(e,t,i){function r(e,i){o[t]=e,s.emit("set",t,e,i),k(e)&&s.emit("set",t+".length",e.length,i),g(e,t,s)}var n=t.charAt(0);if("$"!==n&&"_"!==n){var s=e.__emitter__,o=s.values;r(e[t],i),C(e,t,{enumerable:!0,configurable:!0,get:function(){var e=o[t];return N.shouldGet&&s.emit("get",t),e},set:function(e){var i=o[t];b(i,t,s),v(e,i),r(e,!0)}})}}function p(e){var t=e&&e.__emitter__;if(t)if(k(e))t.emit("set","length",e.length);else{var i,r;for(i in e)r=e[i],t.emit("set",i,r),p(r)}}function v(e,t){if($(e)&&$(t)){var i,r,n;for(i in t)w.call(e,i)||(r=t[i],k(r)?e[i]=[]:$(r)?(n=e[i]={},v(n,r)):e[i]=void 0)}}function m(e,t){for(var i,r=t.split("."),n=0,s=r.length-1;s>n;n++)i=r[n],e[i]||(e[i]={},e.__emitter__&&d(e,i)),e=e[i];$(e)&&(i=r[n],w.call(e,i)||(e[i]=void 0,e.__emitter__&&d(e,i)))}function g(e,t,i){if(o(e)){var r=t?t+".":"",n=a(e),s=e.__emitter__;i.proxies=i.proxies||{};var c=i.proxies[r]={get:function(e){i.emit("get",r+e)},set:function(n,s,o){n&&i.emit("set",r+n,s),t&&o&&i.emit("set",t,e,!0)},mutate:function(e,n,s){var o=e?r+e:t;i.emit("mutate",o,n,s);var a=s.method;"sort"!==a&&"reverse"!==a&&i.emit("set",o+".length",n.length)}};s.on("get",c.get).on("set",c.set).on("mutate",c.mutate),n?p(e):l(e)}}function b(e,t,i){if(e&&e.__emitter__){t=t?t+".":"";var r=i.proxies[t];r&&(e.__emitter__.off("get",r.get).off("set",r.set).off("mutate",r.mutate),i.proxies[t]=null)}}var y=t("./emitter"),_=t("./utils"),x=_.defProtected,$=_.isObject,k=Array.isArray,w={}.hasOwnProperty,C=Object.defineProperty,E=[].slice,A={}.__proto__,O=Object.create(Array.prototype);["push","pop","shift","unshift","splice","sort","reverse"].forEach(r),x(O,"$set",function(e,t){return this.splice(e,1,t)[0]},!A),x(O,"$remove",function(e){return"number"!=typeof e&&(e=this.indexOf(e)),e>-1?this.splice(e,1)[0]:void 0},!A);var j=Object.create(Object.prototype);x(j,"$add",function(e,t){w.call(this,e)||(this[e]=t,d(this,e,!0))},!A),x(j,"$delete",function(e){w.call(this,e)&&(this[e]=void 0,delete this[e],this.__emitter__.emit("delete",e))},!A);var N=i.exports={shouldGet:!1,observe:g,unobserve:b,ensurePath:m,copyPaths:v,watch:l,convert:a,convertKey:d}}),e.register("vue/src/directive.js",function(e,t,i){function r(e,t,i,n,o){this.id=s++,this.name=e,this.compiler=n,this.vm=n.vm,this.el=o,this.computeFilters=!1,this.key=t.key,this.arg=t.arg,this.expression=t.expression;var a=""===this.expression;if("function"==typeof i)this[a?"bind":"update"]=i;else for(var u in i)this[u]=i[u];if(a||this.isEmpty)return void(this.isEmpty=!0);h.Regex.test(this.key)&&(this.key=n.eval(this.key),this.isLiteral&&(this.expression=this.key));var f,d,p,v,m,g=t.filters;if(g)for(this.filters=[],p=0,v=g.length;v>p;p++)f=g[p],d=this.compiler.getOption("filters",f.name),d&&(f.apply=d,this.filters.push(f),d.computed&&(m=!0));this.filters&&this.filters.length||(this.filters=null),m&&(this.computedKey=r.inlineFilters(this.key,this.filters),this.filters=null),this.isExp=m||!l.test(this.key)||c.test(this.key)}function n(e){return e.indexOf('"')>-1?e.replace(u,"'"):e}var s=1,o=/^[\w\$-]+$/,a=/[^\s'"]+|'[^']+'|"[^"]+"/g,c=/^\$(parent|root)\./,l=/^[\w\.$]+$/,u=/"/g,h=t("./text-parser"),f=r.prototype;f.$update=function(e,t){this.$lock||(t||e!==this.value||e&&"object"==typeof e)&&(this.value=e,this.update&&this.update(this.filters&&!this.computeFilters?this.$applyFilters(e):e,t))},f.$applyFilters=function(e){for(var t,i=e,r=0,n=this.filters.length;n>r;r++)t=this.filters[r],i=t.apply.apply(this.vm,[i].concat(t.args));return i},f.$unbind=function(){this.el&&this.vm&&(this.unbind&&this.unbind(),this.vm=this.el=this.binding=this.compiler=null)},r.parse=function(e){function t(){v.expression=e.slice(f,g).trim(),void 0===v.key?v.key=e.slice(d,g).trim():m!==f&&i(),(0===g||v.key)&&p.push(v)}function i(){var t,i=e.slice(m,g).trim();if(i){t={};var r=i.match(a);t.name=r[0],t.args=r.length>1?r.slice(1):null}t&&(v.filters=v.filters||[]).push(t),m=g+1}for(var r,n,s=!1,c=!1,l=0,u=0,h=0,f=0,d=0,p=[],v={},m=0,g=0,b=e.length;b>g;g++)n=e.charAt(g),s?"'"===n&&(s=!s):c?'"'===n&&(c=!c):","!==n||h||l||u?":"!==n||v.key||v.arg?"|"===n&&"|"!==e.charAt(g+1)&&"|"!==e.charAt(g-1)?void 0===v.key?(m=g+1,v.key=e.slice(d,g).trim()):i():'"'===n?c=!0:"'"===n?s=!0:"("===n?h++:")"===n?h--:"["===n?u++:"]"===n?u--:"{"===n?l++:"}"===n&&l--:(r=e.slice(f,g).trim(),o.test(r)&&(d=g+1,v.arg=r)):(t(),v={},f=d=m=g+1);return(0===g||f!==g)&&t(),p},r.inlineFilters=function(e,t){for(var i,r,s=0,o=t.length;o>s;s++)r=t[s],i=r.args?',"'+r.args.map(n).join('","')+'"':"",e='this.$compiler.getOption("filters", "'+r.name+'").call(this,'+e+i+")";return e},i.exports=r}),e.register("vue/src/exp-parser.js",function(e,t){function i(e){return e=e.replace(p,"").replace(v,",").replace(d,"").replace(m,"").replace(g,""),e?e.split(/,+/):[]}function r(e,t,i){var r="",n=0,s=t;if(i&&void 0!==o.get(i,e))return"$temp.";for(;t&&!t.hasKey(e);)t=t.parent,n++;if(t){for(;n--;)r+="$parent.";t.bindings[e]||"$"===e.charAt(0)||t.createBinding(e)}else s.createBinding(e);return r}function n(e,t){var i;try{i=new Function(e)}catch(r){}return i}function s(e){return"$"===e.charAt(0)?"\\"+e:e}var o=t("./utils"),a=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/g,c=/"(\d+)"/g,l=/\n/g,u=new RegExp("constructor".split("").join("['\"+, ]*")),h=/\\u\d\d\d\d/,f="break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,undefined,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield,Math",d=new RegExp(["\\b"+f.replace(/,/g,"\\b|\\b")+"\\b"].join("|"),"g"),p=/\/\*(?:.|\n)*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|'[^']*'|"[^"]*"|[\s\t\n]*\.[\s\t\n]*[$\w\.]+|[\{,]\s*[\w\$_]+\s*:/g,v=/[^\w$]+/g,m=/\b\d[^,]*/g,g=/^,+|,+$/g;e.parse=function(e,t,f){function d(e){var t=y.length;return y[t]=e.replace(l,"\\n"),'"'+t+'"'}function p(e){var i=e.charAt(0);e=e.slice(1);var n="this."+r(e,t,f)+e;return b[e]||(g+=n+";",b[e]=1),i+n}function v(e,t){return y[t]}if(!h.test(e)&&!u.test(e)){var m=i(e);if(!m.length)return n("return "+e,e);m=o.unique(m);var g="",b=o.hash(),y=[],_=new RegExp("[^$\\w\\.]("+m.map(s).join("|")+")[$\\w\\.]*\\b","g"),x=(" "+e).replace(a,d).replace(_,p).replace(c,v);return x=g+"return "+x,n(x,e)}},e.eval=function(t,i,r){var n,s=e.parse(t,i,r);return s&&(i.vm.$temp=r,n=s.call(i.vm),delete i.vm.$temp),n}}),e.register("vue/src/template-parser.js",function(e,t,i){var r=t("./fragment");i.exports=function(e){var t;if(e instanceof window.DocumentFragment)return e;if("string"==typeof e){if("#"!==e.charAt(0))return r(e);if(t=document.getElementById(e.slice(1)),!t)return}else{if(!e.nodeType)return;t=e}return"TEMPLATE"===t.tagName&&t.content?t.content:r("SCRIPT"===t.tagName?t.innerHTML:t.outerHTML)}}),e.register("vue/src/text-parser.js",function(e,t){function i(){var e=r(l),t=r(u);return new RegExp(e+e+e+"?(.+?)"+t+"?"+t+t)}function r(e){return e.replace(h,"\\$&")}function n(t){l=t[0],u=t[1],e.delimiters=t,e.Regex=i()}function s(t){if(!e.Regex.test(t))return null;for(var i,r,n,s,o=[];i=t.match(e.Regex);)r=i.index,r>0&&o.push(t.slice(0,r)),n={key:i[1].trim()},s=i[0],n.html=s.charAt(2)===l&&s.charAt(s.length-3)===u,o.push(n),t=t.slice(r+i[0].length);return t.length&&o.push(t),o}function o(e){c=c||t("./directive");var i=s(e);if(!i)return null;if(1===i.length)return i[0].key;for(var r,n=[],o=0,l=i.length;l>o;o++)r=i[o],n.push(r.key?a(r.key):'"'+r+'"');return n.join("+")}function a(e){if(e.indexOf("|")>-1){var t=c.parse(e),i=t&&t[0];i&&i.filters&&(e=c.inlineFilters(i.key,i.filters))}return"("+e+")"}var c,l="{",u="}",h=/[-.*+?^${}()|[\]\/\\]/g;e.Regex=i(),e.parse=s,e.parseAttr=o,e.setDelimiters=n,e.delimiters=[l,u]}),e.register("vue/src/deps-parser.js",function(e,t,i){function r(e){if(!e.isFn){var t=o.hash();e.deps=[],c.on("get",function(i){var r=t[i.key];r&&r.compiler===i.compiler||i.compiler.repeat&&!n(i.compiler,e.compiler)||(t[i.key]=i,e.deps.push(i),i.subs.push(e))}),e.value.$get(),c.off("get")}}function n(e,t){for(;t;){if(e===t)return!0;t=t.parent}}var s=t("./emitter"),o=t("./utils"),a=t("./observer"),c=new s;i.exports={catcher:c,parse:function(e){a.shouldGet=!0,e.forEach(r),a.shouldGet=!1}}}),e.register("vue/src/filters.js",function(e,t,i){function r(e,t){if(s.isObject(e)){for(var i in e)if(r(e[i],t))return!0}else if(null!=e)return e.toString().toLowerCase().indexOf(t)>-1}function n(e){return c.test(e)?e.slice(1,-1):void 0}var s=t("./utils"),o=s.get,a=[].slice,c=/^'.*'$/,l=i.exports=s.hash();l.capitalize=function(e){return e||0===e?(e=e.toString(),e.charAt(0).toUpperCase()+e.slice(1)):""},l.uppercase=function(e){return e||0===e?e.toString().toUpperCase():""},l.lowercase=function(e){return e||0===e?e.toString().toLowerCase():""},l.currency=function(e,t){if(e=parseFloat(e),!e&&0!==e)return"";t=t||"$";var i=Math.floor(e).toString(),r=i.length%3,n=r>0?i.slice(0,r)+(i.length>3?",":""):"",s="."+e.toFixed(2).slice(-2);return t+n+i.slice(r).replace(/(\d{3})(?=\d)/g,"$1,")+s},l.pluralize=function(e){var t=a.call(arguments,1);return t.length>1?t[e-1]||t[t.length-1]:t[e-1]||t[0]+"s"};var u={enter:13,tab:9,"delete":46,up:38,left:37,right:39,down:40,esc:27};l.key=function(e,t){if(e){var i=u[t];return i||(i=parseInt(t,10)),function(t){return t.keyCode===i?e.call(this,t):void 0}}},l.filterBy=function(e,t,i,a){i&&"in"!==i&&(a=i);var c=n(t)||this.$get(t);return c?(c=c.toLowerCase(),a=a&&(n(a)||this.$get(a)),Array.isArray(e)||(e=s.objectToArray(e)),e.filter(function(e){return a?r(o(e,a),c):r(e,c)})):e},l.filterBy.computed=!0,l.orderBy=function(e,t,i){var r=n(t)||this.$get(t);if(!r)return e;Array.isArray(e)||(e=s.objectToArray(e));var a=1;return i&&("-1"===i?a=-1:"!"===i.charAt(0)?(i=i.slice(1),a=this.$get(i)?1:-1):a=this.$get(i)?-1:1),e.slice().sort(function(e,t){return e=o(e,r),t=o(t,r),e===t?0:e>t?a:-a})},l.orderBy.computed=!0}),e.register("vue/src/transition.js",function(e,t,i){function r(e,t,i,r){if(!o.trans)return i(),f.CSS_SKIP;var n,s=e.classList,c=e.vue_trans_cb,u=a.enterClass,h=a.leaveClass,d=r?o.anim:o.trans;return c&&(e.removeEventListener(d,c),s.remove(u),s.remove(h),e.vue_trans_cb=null),t>0?(s.add(u),i(),r?(n=function(t){t.target===e&&(e.removeEventListener(d,n),e.vue_trans_cb=null,s.remove(u))},e.addEventListener(d,n),e.vue_trans_cb=n):l.push({execute:function(){s.remove(u)}}),f.CSS_E):(e.offsetWidth||e.offsetHeight?(s.add(h),n=function(t){t.target===e&&(e.removeEventListener(d,n),e.vue_trans_cb=null,i(),s.remove(h))},e.addEventListener(d,n),e.vue_trans_cb=n):i(),f.CSS_L)}function n(e,t,i,r,n){function s(t,i){var r=u(function(){t(),l.splice(l.indexOf(r),1),l.length||(e.vue_timeouts=null)},i);l.push(r)}var o=n.getOption("effects",r);if(!o)return i(),f.JS_SKIP;var a=o.enter,c=o.leave,l=e.vue_timeouts;if(l)for(var d=l.length;d--;)h(l[d]);return l=e.vue_timeouts=[],t>0?"function"!=typeof a?(i(),f.JS_SKIP_E):(a(e,i,s),f.JS_E):"function"!=typeof c?(i(),f.JS_SKIP_L):(c(e,i,s),f.JS_L)}function s(){var e=document.createElement("vue"),t="transitionend",i={webkitTransition:"webkitTransitionEnd",transition:t,mozTransition:t},r={};for(var n in i)if(void 0!==e.style[n]){r.trans=i[n];break}return r.anim=""===e.style.animation?"animationend":"webkitAnimationEnd",r}var o=s(),a=t("./config"),c=t("./batcher"),l=new c,u=window.setTimeout,h=window.clearTimeout,f={CSS_E:1,CSS_L:2,JS_E:3,JS_L:4,CSS_SKIP:-1,JS_SKIP:-2,JS_SKIP_E:-3,JS_SKIP_L:-4,INIT:-5,SKIP:-6};l._preFlush=function(){document.body.offsetHeight};var d=i.exports=function(e,t,i,s){var o=function(){i(),s.execHook(t>0?"attached":"detached") | ||
};if(s.init)return o(),f.INIT;var a=""===e.vue_trans,c=""===e.vue_anim,l=e.vue_effect;return l?n(e,t,o,l,s):a||c?r(e,t,o,c):(o(),f.SKIP)};d.codes=f,d.sniff=s}),e.register("vue/src/batcher.js",function(e,t,i){function r(){this.reset()}var n=t("./utils"),s=r.prototype;s.push=function(e){if(e.id&&this.has[e.id]){if(e.override){var t=this.has[e.id];t.cancelled=!0,this.queue.push(e),this.has[e.id]=e}}else this.queue.push(e),this.has[e.id]=e,this.waiting||(this.waiting=!0,n.nextTick(n.bind(this.flush,this)))},s.flush=function(){this._preFlush&&this._preFlush();for(var e=0;e<this.queue.length;e++){var t=this.queue[e];t.cancelled||t.execute()}this.reset()},s.reset=function(){this.has=n.hash(),this.queue=[],this.waiting=!1},i.exports=r}),e.register("vue/src/directives/index.js",function(e,t,i){var r=t("../utils"),n=t("../config"),s=t("../transition"),o=i.exports=r.hash();o.component={isLiteral:!0,bind:function(){this.el.vue_vm||(this.childVM=new this.Ctor({el:this.el,parent:this.vm}))},unbind:function(){this.childVM&&this.childVM.$destroy()}},o.attr={bind:function(){var e=this.vm.$options.paramAttributes;this.isParam=e&&e.indexOf(this.arg)>-1},update:function(e){e||0===e?this.el.setAttribute(this.arg,e):this.el.removeAttribute(this.arg),this.isParam&&(this.vm[this.arg]=r.checkNumber(e))}},o.text={bind:function(){this.attr=3===this.el.nodeType?"nodeValue":"textContent"},update:function(e){this.el[this.attr]=r.guard(e)}},o.show=function(e){var t=this.el,i=e?"":"none",r=function(){t.style.display=i};s(t,e?1:-1,r,this.compiler)},o["class"]=function(e){this.arg?r[e?"addClass":"removeClass"](this.el,this.arg):(this.lastVal&&r.removeClass(this.el,this.lastVal),e&&(r.addClass(this.el,e),this.lastVal=e))},o.cloak={isEmpty:!0,bind:function(){var e=this.el;this.compiler.observer.once("hook:ready",function(){e.removeAttribute(n.prefix+"-cloak")})}},o.ref={isLiteral:!0,bind:function(){var e=this.expression;e&&(this.vm.$parent.$[e]=this.vm)},unbind:function(){var e=this.expression;e&&delete this.vm.$parent.$[e]}},o.on=t("./on"),o.repeat=t("./repeat"),o.model=t("./model"),o["if"]=t("./if"),o["with"]=t("./with"),o.html=t("./html"),o.style=t("./style"),o.partial=t("./partial"),o.view=t("./view")}),e.register("vue/src/directives/if.js",function(e,t,i){var r=t("../utils");i.exports={bind:function(){this.parent=this.el.parentNode,this.ref=document.createComment("vue-if"),this.Ctor=this.compiler.resolveComponent(this.el),this.parent.insertBefore(this.ref,this.el),this.parent.removeChild(this.el),r.attr(this.el,"view"),r.attr(this.el,"repeat")},update:function(e){e?this.childVM||(this.childVM=new this.Ctor({el:this.el.cloneNode(!0),parent:this.vm}),this.compiler.init?this.parent.insertBefore(this.childVM.$el,this.ref):this.childVM.$before(this.ref)):this.unbind()},unbind:function(){this.childVM&&(this.childVM.$destroy(),this.childVM=null)}}}),e.register("vue/src/directives/repeat.js",function(e,t,i){function r(e,t){for(var i,r=0,n=e.length;n>r;r++)if(i=e[r],!i.$reused&&i.$value===t)return r;return-1}var n=t("../utils"),s=t("../config");i.exports={bind:function(){this.identifier="$r"+this.id,this.expCache=n.hash();var e=this.el,t=this.container=e.parentNode;this.childId=this.compiler.eval(n.attr(e,"ref")),this.ref=document.createComment(s.prefix+"-repeat-"+this.key),t.insertBefore(this.ref,e),t.removeChild(e),this.collection=null,this.vms=null},update:function(e){Array.isArray(e)||n.isObject(e)&&(e=n.objectToArray(e)),this.oldVMs=this.vms,this.oldCollection=this.collection,e=this.collection=e||[];var t=e[0]&&n.isObject(e[0]);this.vms=this.oldCollection?this.diff(e,t):this.init(e,t),this.childId&&(this.vm.$[this.childId]=this.vms)},init:function(e,t){for(var i,r=[],n=0,s=e.length;s>n;n++)i=this.build(e[n],n,t),r.push(i),this.compiler.init?this.container.insertBefore(i.$el,this.ref):i.$before(this.ref);return r},diff:function(e,t){var i,n,s,o,a,c,l,u,h=this.container,f=this.oldVMs,d=[];for(d.length=e.length,i=0,n=e.length;n>i;i++)s=e[i],t?(s.$index=i,s.__emitter__&&s.__emitter__[this.identifier]?s.$reused=!0:d[i]=this.build(s,i,t)):(a=r(f,s),a>-1?(f[a].$reused=!0,f[a].$data.$index=i):d[i]=this.build(s,i,t));for(i=0,n=f.length;n>i;i++)o=f[i],s=this.arg?o.$data[this.arg]:o.$data,s.$reused&&(o.$reused=!0,delete s.$reused),o.$reused?(o.$index=s.$index,s.$key&&s.$key!==o.$key&&(o.$key=s.$key),d[o.$index]=o):(s.__emitter__&&delete s.__emitter__[this.identifier],o.$destroy());for(i=d.length;i--;)if(o=d[i],s=o.$data,c=d[i+1],o.$reused){for(u=o.$el.nextSibling;!u.vue_vm&&u!==this.ref;)u=u.nextSibling;if(l=u.vue_vm,l!==c)if(c){for(u=c.$el;!u.parentNode;)c=d[u.vue_vm.$index+1],u=c?c.$el:this.ref;h.insertBefore(o.$el,u)}else h.insertBefore(o.$el,this.ref);delete o.$reused,delete s.$index,delete s.$key}else o.$before(c?c.$el:this.ref);return d},build:function(e,t,i){var r,n,s=!i||this.arg;s&&(r=e,n=this.arg||"$value",e={},e[n]=r),e.$index=t;var o=this.el.cloneNode(!0),a=this.compiler.resolveComponent(o,e),c=new a({el:o,data:e,parent:this.vm,compilerOptions:{repeat:!0,expCache:this.expCache}});return i&&((r||e).__emitter__[this.identifier]=!0),c},unbind:function(){if(this.childId&&delete this.vm.$[this.childId],this.vms)for(var e=this.vms.length;e--;)this.vms[e].$destroy()}}}),e.register("vue/src/directives/on.js",function(e,t,i){t("../utils");i.exports={isFn:!0,bind:function(){if(this.context=this.binding.isExp?this.vm:this.binding.compiler.vm,"IFRAME"===this.el.tagName&&"load"!==this.arg){var e=this;this.iframeBind=function(){e.el.contentWindow.addEventListener(e.arg,e.handler)},this.el.addEventListener("load",this.iframeBind)}},update:function(e){if("function"==typeof e){this.reset();var t=this.vm,i=this.context;this.handler=function(r){r.targetVM=t,i.$event=r;var n=e.call(i,r);return i.$event=null,n},this.iframeBind?this.iframeBind():this.el.addEventListener(this.arg,this.handler)}},reset:function(){var e=this.iframeBind?this.el.contentWindow:this.el;this.handler&&e.removeEventListener(this.arg,this.handler)},unbind:function(){this.reset(),this.el.removeEventListener("load",this.iframeBind)}}}),e.register("vue/src/directives/model.js",function(e,t,i){function r(e){return o.call(e.options,function(e){return e.selected}).map(function(e){return e.value||e.text})}var n=t("../utils"),s=navigator.userAgent.indexOf("MSIE 9.0")>0,o=[].filter;i.exports={bind:function(){var e=this,t=e.el,i=t.type,r=t.tagName;e.lock=!1,e.ownerVM=e.binding.compiler.vm,e.event=e.compiler.options.lazy||"SELECT"===r||"checkbox"===i||"radio"===i?"change":"input",e.attr="checkbox"===i?"checked":"INPUT"===r||"SELECT"===r||"TEXTAREA"===r?"value":"innerHTML","SELECT"===r&&t.hasAttribute("multiple")&&(this.multi=!0);var o=!1;e.cLock=function(){o=!0},e.cUnlock=function(){o=!1},t.addEventListener("compositionstart",this.cLock),t.addEventListener("compositionend",this.cUnlock),e.set=e.filters?function(){if(!o){var i;try{i=t.selectionStart}catch(r){}e._set(),n.nextTick(function(){void 0!==i&&t.setSelectionRange(i,i)})}}:function(){o||(e.lock=!0,e._set(),n.nextTick(function(){e.lock=!1}))},t.addEventListener(e.event,e.set),s&&(e.onCut=function(){n.nextTick(function(){e.set()})},e.onDel=function(t){(46===t.keyCode||8===t.keyCode)&&e.set()},t.addEventListener("cut",e.onCut),t.addEventListener("keyup",e.onDel))},_set:function(){this.ownerVM.$set(this.key,this.multi?r(this.el):this.el[this.attr])},update:function(e,t){if(t&&void 0===e)return this._set();if(!this.lock){var i=this.el;"SELECT"===i.tagName?(i.selectedIndex=-1,this.multi&&Array.isArray(e)?e.forEach(this.updateSelect,this):this.updateSelect(e)):"radio"===i.type?i.checked=e==i.value:"checkbox"===i.type?i.checked=!!e:i[this.attr]=n.guard(e)}},updateSelect:function(e){for(var t=this.el.options,i=t.length;i--;)if(t[i].value==e){t[i].selected=!0;break}},unbind:function(){var e=this.el;e.removeEventListener(this.event,this.set),e.removeEventListener("compositionstart",this.cLock),e.removeEventListener("compositionend",this.cUnlock),s&&(e.removeEventListener("cut",this.onCut),e.removeEventListener("keyup",this.onDel))}}}),e.register("vue/src/directives/with.js",function(e,t,i){var r=t("../utils");i.exports={bind:function(){var e=this,t=e.arg,i=e.key,n=e.compiler,s=e.binding.compiler;return n===s?void(this.alone=!0):void(t&&(n.bindings[t]||n.createBinding(t),n.observer.on("change:"+t,function(t){n.init||(e.lock||(e.lock=!0,r.nextTick(function(){e.lock=!1})),s.vm.$set(i,t))})))},update:function(e){this.alone||this.lock||(this.arg?this.vm.$set(this.arg,e):this.vm.$data!==e&&(this.vm.$data=e))}}}),e.register("vue/src/directives/html.js",function(e,t,i){var r=t("../utils"),n=[].slice;i.exports={bind:function(){8===this.el.nodeType&&(this.nodes=[])},update:function(e){e=r.guard(e),this.nodes?this.swap(e):this.el.innerHTML=e},swap:function(e){for(var t=this.el.parentNode,i=this.nodes,s=i.length;s--;)t.removeChild(i[s]);var o=r.toFragment(e);this.nodes=n.call(o.childNodes),t.insertBefore(o,this.el)}}}),e.register("vue/src/directives/style.js",function(e,t,i){var r=["-webkit-","-moz-","-ms-"];i.exports={bind:function(){var e=this.arg;e&&("$"===e.charAt(0)&&(e=e.slice(1),this.prefixed=!0),this.prop=e)},update:function(e){var t,i=this.prop;if(null!=e&&(e+=""),i){if(e&&(t="!important"===e.slice(-10)?"important":"",t&&(e=e.slice(0,-10).trim())),this.el.style.setProperty(i,e,t),this.prefixed)for(var n=r.length;n--;)this.el.style.setProperty(r[n]+i,e,t)}else this.el.style.cssText=e}}}),e.register("vue/src/directives/partial.js",function(e,t,i){t("../utils");i.exports={isLiteral:!0,bind:function(){var e=this.expression;if(e){var t=this.el,i=this.compiler,r=i.getOption("partials",e);if(r)if(r=r.cloneNode(!0),8===t.nodeType){var n=[].slice.call(r.childNodes),s=t.parentNode;s.insertBefore(r,t),s.removeChild(t),n.forEach(i.compile,i)}else t.innerHTML="",t.appendChild(r)}}}}),e.register("vue/src/directives/view.js",function(e,t,i){i.exports={bind:function(){var e=this.raw=this.el,t=e.parentNode,i=this.ref=document.createComment("v-view");t.insertBefore(i,e),t.removeChild(e);for(var r,n=this.inner=document.createElement("div");r=e.firstChild;)n.appendChild(r)},update:function(e){this.unbind();var t=this.compiler.getOption("components",e);t&&(this.childVM=new t({el:this.raw.cloneNode(!0),parent:this.vm,compilerOptions:{rawContent:this.inner.cloneNode(!0)}}),this.el=this.childVM.$el,this.compiler.init?this.ref.parentNode.insertBefore(this.el,this.ref):this.childVM.$before(this.ref))},unbind:function(){this.childVM&&this.childVM.$destroy()}}}),e.alias("vue/src/main.js","vue/index.js"),"object"==typeof exports?module.exports=e("vue"):"function"==typeof define&&define.amd?define(function(){return e("vue")}):window.Vue=e("vue")}(); | ||
/** | ||
* Vue.js v0.11.0-rc | ||
* (c) 2014 Evan You | ||
* Released under the MIT License. | ||
*/ | ||
!function(){"use strict";function t(e){var i=t.modules[e];if(!i)throw new Error('failed to require "'+e+'"');return"exports"in i||"function"!=typeof i.definition||(i.client=i.component=!0,i.definition.call(this,i.exports={},i),delete i.definition),i.exports}t.modules={},t.register=function(e,i){t.modules[e]={definition:i}},t.define=function(e,i){t.modules[e]={exports:i}},t.register(1,function(e){var i=t(2);e.$addChild=function(t,e){e=e||i.Vue,t=t||{};var n,r=this,s=void 0!==t.inherit?t.inherit:e.options.inherit;if(s){var o=r._childCtors;o||(o=r._childCtors={}),n=o[e.cid],n||(n=function(t){this.constructor=n,i.Vue.call(this,t)},n.options=e.options,n.prototype=this,o[e.cid]=n)}else n=e;t._parent=r,t._root=r.$root;var a=new n(t);return this._children||(this._children=[]),this._children.push(a),a}}),t.register(3,function(e){var i=t(2),n=t(4),r=t(5),s=t(6),o=t(7),a=/[^|]\|[^|]/;e.$get=function(t){var e=o.parse(t);return e?e.get.call(this,this):void 0},e.$set=function(t,e){var i=o.parse(t,!0);i&&i.set&&i.set.call(this,this,e)},e.$add=function(t,e){this._data.$add(t,e)},e.$delete=function(t){this._data.$delete(t)},e.$watch=function(t,e,i,r){var s=this,o=i?t+"**deep**":t,a=s._userWatchers[o],h=function(t,i){e.call(s,t,i)};return a?a.addCb(h):a=s._userWatchers[o]=new n(s,t,h,null,!1,i),r&&h(a.value),function(){a.removeCb(h),a.active||(s._userWatchers[o]=null)}},e.$eval=function(t){if(a.test(t)){var e=s.parse(t)[0];return e.filters?i.applyFilters(this.$get(e.expression),i.resolveFilters(this,e.filters).read,this):this.$get(e.expression)}return this.$get(t)},e.$interpolate=function(t){var e=r.parse(t),i=this;return e?1===e.length?i.$eval(e[0].value):e.map(function(t){return t.tag?i.$eval(t.value):t.value}).join(""):t},e.$log=function(t){var e=this[t||"_data"];console.log(JSON.parse(JSON.stringify(e)))}}),t.register(8,function(e){function i(t,e,i,s,o){e=r(e);var a=!s&&!t._isAttached&&!h.inDoc(t.$el);t._isBlock?n(t,e,i,o):i(t.$el,e,t,o),a&&t._callHook("attached")}function n(t,e,i,n){for(var r,s=t._blockStart,o=t._blockEnd;r!==o;)r=s.nextSibling,i(s,e,t),s=r;i(o,e,t,n)}function r(t){return"string"==typeof t?document.querySelector(t):t}function s(t,e,i,n){e.appendChild(t),n&&n()}function o(t,e,i,n){h.before(t,e),n&&n()}function a(t,e,i){h.remove(t),i&&i()}var h=t(2),c=t(9);e.$appendTo=function(t,e,n){var r=!h.inDoc(t),o=n===!1||r?s:c.append;i(this,t,o,r,e)},e.$prependTo=function(t,e,i){t=r(t),t.hasChildNodes()?this.$before(t.firstChild,e,i):this.$appendTo(t,e,i)},e.$before=function(t,e,n){var r=!h.inDoc(t),s=n===!1||r?o:c.before;i(this,t,s,r,e)},e.$after=function(t,e,i){t=r(t),t.nextSibling?this.$before(t.nextSibling,e,i):this.$appendTo(t.parentNode,e,i)},e.$remove=function(t,e){var i=this._isAttached&&h.inDoc(this.$el);i||(e=!1);var r,o=this,u=function(){i&&o._callHook("detached"),t&&t()};this._isBlock&&!this._blockFragment.hasChildNodes()?(r=e===!1?s:c.removeThenAppend,n(this,this._blockFragment,r,u)):(r=e===!1?a:c.remove)(this.$el,this,u)}}),t.register(10,function(e){function i(t,e,i){var n=t.$parent;if(n&&i&&!r.test(e))for(;n;)n._eventsCount[e]=(n._eventsCount[e]||0)+i,n=n.$parent}var n=t(2);e.$on=function(t,e){(this._events[t]||(this._events[t]=[])).push(e),i(this,t,1)},e.$once=function(t,e){function i(){n.$off(t,i),e.apply(this,arguments)}var n=this;i.fn=e,this.$on(t,i)},e.$off=function(t,e){var n;if(!arguments.length){if(this.$parent)for(t in this._events)n=this._events[t],n&&i(this,t,-n.length);return void(this._events={})}if(n=this._events[t]){if(1===arguments.length)return i(this,t,-n.length),void(this._events[t]=null);for(var r,s=n.length;s--;)if(r=n[s],r===e||r.fn===e){i(this,t,-1),n.splice(s,1);break}}},e.$emit=function(t){this._eventCancelled=!1;var e=this._events[t];if(e){for(var i=arguments.length-1,r=new Array(i);i--;)r[i]=arguments[i+1];i=0,e=e.length>1?n.toArray(e):e;for(var s=e.length;s>i;i++)e[i].apply(this,r)===!1&&(this._eventCancelled=!0)}},e.$broadcast=function(t){if(this._eventsCount[t]){var e=this._children;if(e)for(var i=0,n=e.length;n>i;i++){var r=e[i];r.$emit.apply(r,arguments),r._eventCancelled||r.$broadcast.apply(r,arguments)}}},e.$dispatch=function(){for(var t=this.$parent;t;)t.$emit.apply(t,arguments),t=t._eventCancelled?null:t.$parent};var r=/^hook:/}),t.register(11,function(e){function i(t){return new Function("Vue","return function "+r.camelize(t)+" (options) { Vue.call(this, options) }")(r.Vue)}function n(t){a.forEach(function(e){t[e]=function(t,i){return i?void(this.options[e+"s"][t]=i):this.options[e+"s"][t]}}),t.component=function(t,e){return e?(r.isPlainObject(e)&&(e.name=t,e=r.Vue.extend(e)),void(this.options.components[t]=e)):this.options.components[t]}}var r=t(2),s=t(12);e.util=r,e.nextTick=r.nextTick,e.config=t(13),e.cid=0;var o=1;e.extend=function(t){t=t||{};var e=this,r=i(t.name||"VueComponent");return r.prototype=Object.create(e.prototype),r.prototype.constructor=r,r.cid=o++,r.options=s(e.options,t),r["super"]=e,r.extend=e.extend,n(r),r},e.use=function(t){var e=r.toArray(arguments,1);return e.unshift(this),"function"==typeof t.install?t.install.apply(t,e):t.apply(null,e),this};var a=["directive","filter","partial","transition"];n(e)}),t.register(14,function(e){function i(){this._isAttached=!0,this._isReady=!0,this._callHook("ready")}var n=t(2);e.$mount=function(t){if(!this._isCompiled){if("string"==typeof t){if(t=document.querySelector(t),!t)return}this._compile(t),this._isCompiled=!0,this._callHook("compiled"),n.inDoc(this.$el)?(this._callHook("attached"),this._initDOMHooks(),i.call(this)):(this._initDOMHooks(),this.$once("hook:attached",i))}},e.$destroy=function(t){if(!this._isDestroyed){this._callHook("beforeDestroy"),this._isBeingDestroyed=!0,t&&this.$el&&this.$remove();var e,i=this.$parent;if(i&&!i._isBeingDestroyed&&(e=i._children.indexOf(this),i._children.splice(e)),this._children)for(e=this._children.length;e--;)this._children[e].$destroy();for(e=this._directives.length;e--;)this._directives[e]._teardown();for(e in this._userWatchers)this._userWatchers[e].teardown();this.$el&&(this.$el.__vue__=null),this._data.__ob__.removeVm(this),this._data=this._watchers=this._userWatchers=this._watcherList=this.$el=this.$parent=this.$root=this._children=this._bindings=this._directives=null,this._isDestroyed=!0,this._callHook("destroyed"),this.$off()}}}),t.register(15,function(e,i){function n(){this._preFlush=null,this.reset()}var r=t(2),s=n.prototype;s.push=function(t){if(t.id&&this.has[t.id]){if(t.override){var e=this.has[t.id];e.cancelled=!0,this.queue.push(t),this.has[t.id]=t}}else this.queue.push(t),this.has[t.id]=t,this.waiting||(this.waiting=!0,r.nextTick(this.flush,this))},s.flush=function(){this._preFlush&&this._preFlush();for(var t=0;t<this.queue.length;t++){var e=this.queue[t];e.cancelled||e.run()}this.reset()},s.reset=function(){this.has={},this.queue=[],this.waiting=!1},i.exports=n}),t.register(16,function(t,e){function i(){this.id=++n,this.subs=[]}var n=0,r=i.prototype;r.addSub=function(t){this.subs.push(t)},r.removeSub=function(t){if(this.subs.length){var e=this.subs.indexOf(t);e>-1&&this.subs.splice(e,1)}},r.notify=function(){for(var t=this.subs.length;t--;)this.subs[t].update()},e.exports=i}),t.register(17,function(t,e){function i(t){this.size=0,this.limit=t,this.head=this.tail=void 0,this._keymap={}}var n=i.prototype;n.put=function(t,e){var i={key:t,value:e};return this._keymap[t]=i,this.tail?(this.tail.newer=i,i.older=this.tail):this.head=i,this.tail=i,this.size===this.limit?this.shift():void this.size++},n.shift=function(){var t=this.head;return t&&(this.head=this.head.newer,this.head.older=void 0,t.newer=t.older=void 0,this._keymap[t.key]=void 0),t},n.get=function(t,e){var i=this._keymap[t];if(void 0!==i)return i===this.tail?e?i:i.value:(i.newer&&(i===this.head&&(this.head=i.newer),i.newer.older=i.older),i.older&&(i.older.newer=i.newer),i.newer=void 0,i.older=this.tail,this.tail&&(this.tail.newer=i),this.tail=i,e?i:i.value)},e.exports=i}),t.register(18,function(e,i){function n(){}function r(t,e){var i=t.nodeType;return 1===i&&"SCRIPT"!==t.tagName?s(t,e):3===i&&b.interpolate?a(t,e):void 0}function s(t,e){var i=t.hasAttributes(),n=t.tagName.toLowerCase();if(i)for(var r,s=0;3>s;s++)if(r=d(t,e))return r.terminal=!0,r;var a=n.indexOf("-")>0&&e.components[n];if(a)return p(t,"component",n,e);var h;if(i){var c=v(t,e);h=c.length?o(c):null}if("TEXTAREA"===t.tagName){var u=h;h=function(t,e){e.value=t.$interpolate(e.value),u&&u(t,e)}}return h}function o(t){return function(e,i){for(var n,r,s=t.length;s--;)if(n=t[s],n._link)n._link(e,i);else for(r=n.descriptors.length;r--;)e._bindDir(n.name,i,n.descriptors[r],n.def)}}function a(t,e){var i=y.parse(t.nodeValue);if(!i)return null;for(var n,r,s,o=document.createDocumentFragment(),a=e.directives,c=0,u=i.length;u>c;c++)r=i[c],s=r.value,r.tag?r.oneTime?n=document.createTextNode(s):r.html?(n=document.createComment("v-html"),r.type="html",r.def=a.html,r.descriptor=w.parse(s)[0]):r.partial?(n=document.createComment("v-partial"),r.type="partial",r.def=a.partial,r.descriptor=w.parse(s)[0]):(n=document.createTextNode(" "),r.type="text",r.def=a.text,r.descriptor=w.parse(s)[0]):n=document.createTextNode(s),o.appendChild(n);return h(i,o,e)}function h(t,e){return function(i,n){for(var r,s,o,a=e.cloneNode(!0),h=_.toArray(a.childNodes),c=0,u=t.length;u>c;c++)r=t[c],s=r.value,r.tag&&(o=h[c],r.oneTime?(s=i.$eval(s),r.html?_.replace(o,$.parse(s,!0)):o.nodeValue=s):i._bindDir(r.type,o,r.descriptor,r.def));_.replace(n,a)}}function c(t,e){for(var i,n,s,o=[],a=0,h=t.length;h>a;a++)s=t[a],i=r(s,e),n=i&&i.terminal||!s.hasChildNodes()?null:c(s.childNodes,e),o.push(i,n);return o.length?u(o):null}function u(t){return function(e,i){i=_.toArray(i);for(var n,r,s,o=0,a=0,h=t.length;h>o;a++)n=i[a],r=t[o++],s=t[o++],r&&r(e,n),s&&s(e,n.childNodes)}}function l(t,e,i){for(var n,r,s,o=[],a=e.length;a--;)if(n=e[a],r=t.getAttribute(n),null!==r){s={name:n,value:r};var h=y.parse(r);if(h){if(t.removeAttribute(n),h.length>1)continue;s.dynamic=!0,s.value=h[0].value}o.push(s)}return f(o,i)}function f(t,e){var i=e.directives["with"];return function(e,n){for(var r,s=t.length;s--;)r=t[s],r.dynamic?e._bindDir("with",n,{arg:r.name,expression:r.value},i):e.$set(r.name,r.value)}}function d(t,e){if(null!==_.attr(t,"pre"))return n;for(var i,r,s=0;3>s;s++)if(r=x[s],i=_.attr(t,r))return p(t,r,i,e)}function p(t,e,i,n){var r=w.parse(i)[0],s=n.directives[e];return function(t,i){t._bindDir(e,i,r,s)}}function v(t,e){for(var i,n,r,s,o,a=_.toArray(t.attributes),h=a.length,c=[];h--;)i=a[h],n=i.name,0===n.indexOf(b.prefix)?(s=n.slice(b.prefix.length),o=e.directives[s],o&&("cloak"!==s&&t.removeAttribute(n),c.push({name:s,descriptors:w.parse(i.value),def:o}))):b.interpolate&&(r=m(t,n,i.value,e),r&&c.push(r));return c.sort(g),c}function m(t,e,i,n){var r=y.parse(i);if(r){for(var s=n.directives.attr,o=r.length,a=!0;o--;){var h=r[o];h.tag&&!h.oneTime&&(a=!1)}return{def:s,_link:a?function(t,n){n.setAttribute(e,t.$interpolate(i))}:function(t,i){var n=y.tokensToExp(r,t),o=w.parse(e+":"+n)[0];t._bindDir("attr",i,o,s)}}}}function g(t,e){return t=t.def.priority||0,e=e.def.priority||0,t>e?1:-1}var _=t(2),b=t(13),y=t(5),w=t(6),$=t(19);i.exports=function(t,e,i){var n=!i&&e.paramAttributes,s=n?l(t,n,e):null,o=t instanceof DocumentFragment?null:r(t,e),a=o&&o.terminal||!t.hasChildNodes()?null:c(t.childNodes,e);return function(t,e){s&&s(t,e),o&&o(t,e),a&&a(t,e.childNodes)}};var x=["repeat","component","if"]}),t.register(20,function(e,i){function n(t,e){var i=e.template,n=c.parse(i,!0);if(n){if(r(t),e.replace){if(n.childNodes.length>1)return s(h.toArray(n.childNodes)),n;var o=n.firstChild;return h.copyAttributes(t,o),s(o),o}return t.appendChild(n),s(t),t}}function r(t){var e;if(u=null,t.hasChildNodes())for(u=document.createElement("div");e=t.firstChild;)u.appendChild(e)}function s(t){var e=o(t),i=e.length;if(i){for(var n,r,s,c;i--;)n=e[i],u?(r=n.getAttribute("select"),r?n.content=h.toArray(u.querySelectorAll(r)):c=n):n.content=h.toArray(n.childNodes);for(i=0,s=e.length;s>i;i++)n=e[i],n!==c&&a(n,n.content);c&&a(c,h.toArray(u.childNodes))}}function o(t){return h.isArray(t)?l.apply([],t.map(o)):1===t.nodeType?h.toArray(t.querySelectorAll("content")):[]}function a(t,e){for(var i=t.parentNode,n=0,r=e.length;r>n;n++)i.insertBefore(e[n],t);i.removeChild(t)}var h=t(2),c=t(19);i.exports=function(t,e){return"TEMPLATE"===t.tagName&&(t=c.parse(t)),e.template?n(t,e):t};var u,l=[].concat}),t.register(13,function(t,e){e.exports={prefix:"v-",debug:!1,silent:!1,proto:!0,interpolate:!0,_delimitersChanged:!0};var i=["{{","}}"];Object.defineProperty(e.exports,"delimiters",{get:function(){return i},set:function(t){i=t,this._delimitersChanged=!0}})}),t.register(21,function(e,i){function n(t,e,i,n,s,o){this.name=t,this.el=e,this.vm=i,this.raw=n.raw,this.expression=n.expression,this.arg=n.arg,this.filters=r.resolveFilters(i,n.filters),this._linker=o,this._locked=!1,this._bound=!1,this._bind(s)}var r=t(2),s=t(4),o=t(5),a=t(7),h=n.prototype;h._bind=function(t){if("function"==typeof t?this.update=t:r.extend(this,t),this._watcherExp=this.expression,this._checkDynamicLiteral(),this.bind&&this.bind(),this.expression&&this.update&&(!this.isLiteral||this._isDynamicLiteral)&&!this._checkExpFn()){var e=this.vm._watchers[this.raw],i=this,n=this._update=function(t,e){i._locked||i.update(t,e)};e?e.addCb(n):e=this.vm._watchers[this.raw]=new s(this.vm,this._watcherExp,n,this.filters,this.twoWay),this._watcher=e,this.update(e.value)}this._bound=!0},h._checkDynamicLiteral=function(){var t=this.expression;if(t&&this.isLiteral){var e=o.parse(t);if(e){var i=o.tokensToExp(e);this.expression=this.vm.$get(i),this._watcherExp=i,this._isDynamicLiteral=!0}}},h._checkExpFn=function(){var t=this.expression;if(t&&this.isFn&&!a.pathTestRE.test(t)){var e=a.parse(t).get,i=this.vm,n=function(){e.call(i,i)};return this.filters&&(n=r.applyFilters(n,this.filters.read,i)),this.update(n),!0}},h._teardown=function(){if(this._bound){this.unbind&&this.unbind();var t=this._watcher;t&&t.active&&(t.removeCb(this._update),t.active||(this.vm._watchers[this.expression]=null)),this._bound=!1,this.vm=this.el=this._watcher=null}},h.set=function(t,e){if(this.twoWay&&(e&&(this._locked=!0),this._watcher.set(t),e)){var i=this;r.nextTick(function(){i._locked=!1})}},i.exports=n}),t.register(22,function(t,e){function i(t){null!=t?this.el.setAttribute(this.arg,t):this.el.removeAttribute(this.arg)}function n(t){null!=t?this.el.setAttributeNS(r,this.arg,t):this.el.removeAttributeNS(r,"href")}var r="http://www.w3.org/1999/xlink",s=/^xlink:/;e.exports={priority:850,bind:function(){var t=this.arg;this.update=s.test(t)?n:i}}}),t.register(23,function(e,i){var n=t(2),r="undefined"!=typeof document&&"classList"in document.documentElement,s=r?function(t,e){t.classList.add(e)}:n.addClass,o=r?function(t,e){t.classList.remove(e)}:n.removeClass;i.exports=function(t){if(this.arg){var e=t?s:o;e(this.el,this.arg)}else this.lastVal&&o(this.el,this.lastVal),t&&(s(this.el,t),this.lastVal=t)}}),t.register(24,function(e,i){var n=t(13);i.exports={bind:function(){var t=this.el;this.vm.$once("hook:compiled",function(){t.removeAttribute(n.prefix+"cloak")})}}}),t.register(25,function(e,i){var n=t(2),r=t(4);i.exports={isLiteral:!0,bind:function(){this.el.__vue__||(this.ref=document.createComment("v-component"),n.replace(this.el,this.ref),this.checkIf(),this.checkKeepAlive(),this._isDynamicLiteral||(this.resolveCtor(this.expression),this.build()))},checkIf:function(){var t=n.attr(this.el,"if");if(null!==t){var e=this;this.ifWatcher=new r(this.vm,t,function(t){e.toggleIf(t)}),this.active=this.ifWatcher.value}else this.active=!0},toggleIf:function(t){t?(this.active=!0,this.build()):(this.active=!1,this.unbuild(!0))},checkKeepAlive:function(){this.keepAlive=this.el.hasAttribute("keep-alive"),this.keepAlive&&(this.el.removeAttribute("keep-alive"),this.cache={})},resolveCtor:function(t){this.ctorId=t,this.Ctor=this.vm.$options.components[t]},build:function(){if(this.active){if(this.keepAlive){var t=this.cache[this.ctorId];if(t)return this.childVM=t,void t.$before(this.ref)}this.Ctor&&!this.childVM&&(this.childVM=this.vm.$addChild({el:this.el.cloneNode(!0)},this.Ctor),this.keepAlive&&(this.cache[this.ctorId]=this.childVM),this.childVM.$before(this.ref))}},unbuild:function(t){this.childVM&&(this.keepAlive?t&&this.childVM.$remove():this.childVM.$destroy(t),this.childVM=null)},update:function(t){this.unbuild(!0),t&&(this.resolveCtor(t),this.build())},unbind:function(){this.keepAlive=!1,this.unbuild(),this.ifWatcher&&this.ifWatcher.teardown()}}}),t.register(26,function(t,e){e.exports={isLiteral:!0,bind:function(){this.vm._owner.$$[this.expression]=this.el},unbind:function(){this.vm._owner.$$[this.expression]=null}}}),t.register(27,function(e,i){var n=t(2),r=t(19);i.exports={bind:function(){8===this.el.nodeType&&(this.nodes=[])},update:function(t){t=n.toString(t),this.nodes?this.swap(t):this.el.innerHTML=t},swap:function(t){for(var e=this.nodes.length;e--;)n.remove(this.nodes[e]);var i=r.parse(t,!0);this.nodes=n.toArray(i.childNodes),n.before(i,this.el)}}}),t.register(28,function(e,i){var n=t(2),r=t(19);i.exports={bind:function(){var t=this.el;t.__vue__?this.invalid=!0:(this.ref=document.createComment("v-if"),n.replace(t,this.ref),this.inserted=!1,"TEMPLATE"===t.tagName&&(this.el=r.parse(t,!0)))},update:function(t){this.invalid||(t?this.inserted||(this.childVM||(this.childVM=this.vm.$addChild({el:this.el,inherit:!0,_anonymous:!0})),this.childVM.$before(this.ref),this.inserted=!0):this.inserted&&(this.childVM.$remove(),this.inserted=!1))},unbind:function(){this.childVM&&this.childVM.$destroy()}}}),t.register(29,function(e){e.text=t(30),e.html=t(27),e.attr=t(22),e.show=t(31),e["class"]=t(23),e.el=t(26),e.ref=t(32),e.cloak=t(24),e.style=t(33),e.partial=t(34),e.transition=t(35),e.on=t(36),e.model=t(37),e.component=t(25),e.repeat=t(38),e["if"]=t(28),e["with"]=t(39)}),t.register(40,function(e,i){var n=t(2);i.exports={bind:function(){var t=this,e=this.el;this.listener=function(){t.set(e.checked,!0)},n.on(e,"change",this.listener),e.checked&&this.vm.$set(this.expression,e.checked)},update:function(t){this.el.checked=!!t},unbind:function(){n.off(this.el,"change",this.listener)}}}),t.register(37,function(e,i){var n={text:t(41),radio:t(42),select:t(43),checkbox:t(40)};i.exports={priority:800,twoWay:!0,handlers:n,bind:function(){var t,e=this.el,i=e.tagName;if("INPUT"===i)t=n[e.type]||n.text;else if("SELECT"===i)t=n.select;else{if("TEXTAREA"!==i)return;t=n.text}t.bind.call(this),this.update=t.update,this.unbind=t.unbind}}}),t.register(42,function(e,i){var n=t(2);i.exports={bind:function(){var t=this,e=this.el;this.listener=function(){t.set(e.value,!0)},n.on(e,"change",this.listener),e.checked&&this.vm.$set(this.expression,e.value)},update:function(t){this.el.checked=t==this.el.value},unbind:function(){n.off(this.el,"change",this.listener)}}}),t.register(43,function(e,i){function n(t){function e(t){c.isArray(t)&&(i.el.innerHTML="",r(i.el,t),i._watcher&&i.update(i._watcher.value))}var i=this;this.optionWatcher=new u(this.vm,t,e),e(this.optionWatcher.value)}function r(t,e){for(var i,n,s=0,o=e.length;o>s;s++)i=e[s],i.options?(n=document.createElement("optgroup"),n.label=i.label,r(n,i.options)):(n=document.createElement("option"),"string"==typeof i?n.text=n.value=i:(n.text=i.text,n.value=i.value)),t.appendChild(n)}function s(){for(var t,e=this.el.options,i=0,n=e.length;n>i;i++)e[i].hasAttribute("selected")&&(this.multiple?(t||(t=[])).push(e[i].value):t=e[i].value);t&&this.vm.$set(this.expression,t)}function o(t){return Array.prototype.filter.call(t.options,a).map(h)}function a(t){return t.selected}function h(t){return t.value||t.text}var c=t(2),u=t(4);i.exports={bind:function(){var t=this,e=this.el,i=e.getAttribute("options");i&&(e.removeAttribute("options"),n.call(this,i)),this.multiple=e.hasAttribute("multiple"),this.listener=function(){var i=t.multiple?o(e):e.value;t.set(i,!0)},c.on(e,"change",this.listener),s.call(this)},update:function(t){var e=this.el;e.selectedIndex=-1;for(var i,n=this.multiple&&c.isArray(t),r=e.options,s=r.length;s--;)i=r[s],i.selected=n?t.indexOf(i.value)>-1:t==i.value},unbind:function(){c.off(this.el,"change",this.listener),this.optionWatcher&&this.optionWatcher.teardown()}}}),t.register(41,function(e,i){var n=t(2);i.exports={bind:function(){function t(){e.set(s?n.toNumber(i.value):i.value,!0)}var e=this,i=this.el,r=i.hasAttribute("lazy");r&&i.removeAttribute("lazy");var s=i.hasAttribute("number")||"number"===i.type;s&&i.removeAttribute("number");var o=!1;this.cpLock=function(){o=!0},this.cpUnlock=function(){o=!1,t()},n.on(i,"compositionstart",this.cpLock),n.on(i,"compositionend",this.cpUnlock),this.listener=this.filters?function(){if(!o){var r;try{r=i.selectionStart}catch(s){}t(),n.nextTick(function(){var t=e._watcher.value;e.update(t),null!=r&&i.setSelectionRange(r,r)})}}:function(){o||t()},this.event=r?"change":"input",n.on(i,this.event,this.listener),!r&&n.isIE9&&(this.onCut=function(){n.nextTick(e.listener)},this.onDel=function(t){(46===t.keyCode||8===t.keyCode)&&e.listener()},n.on(i,"cut",this.onCut),n.on(i,"keyup",this.onDel)),(i.hasAttribute("value")||"TEXTAREA"===i.tagName&&i.value.trim())&&this.vm.$set(this.expression,i.value)},update:function(t){this.el.value=n.toString(t)},unbind:function(){var t=this.el;n.off(t,this.event,this.listener),n.off(t,"compositionstart",this.cpLock),n.off(t,"compositionend",this.cpUnlock),this.onCut&&(n.off(t,"cut",this.onCut),n.off(t,"keyup",this.onDel))}}}),t.register(36,function(e,i){var n=t(2);i.exports={isFn:!0,priority:700,bind:function(){if("IFRAME"===this.el.tagName&&"load"!==this.arg){var t=this;this.iframeBind=function(){n.on(t.el.contentWindow,t.arg,t.handler)},n.on(this.el,"load",this.iframeBind)}},update:function(t){if("function"==typeof t){this.reset();var e=this.vm,i=e.$root;this.handler=function(n){n.targetVM=e,i.$event=n;var r=t(n);return i.$event=null,r},this.iframeBind?this.iframeBind():n.on(this.el,this.arg,this.handler)}},reset:function(){var t=this.iframeBind?this.el.contentWindow:this.el;this.handler&&n.off(t,this.arg,this.handler)},unbind:function(){this.reset(),n.off(this.el,"load",this.iframeBind)}}}),t.register(34,function(e,i){var n=t(2),r=t(18),s=t(19);i.exports={isLiteral:!0,bind:function(){var t=this.expression,e=this.vm.$options.partials[t];if(e){e=s.parse(e,!0);var i=this.el,o=this.vm;8===i.nodeType?(r(e,o.$options)(o,e),n.replace(i,e)):(i.innerHTML="",i.appendChild(e),r(i,o.$options,!0)(o,i))}}}}),t.register(32,function(t,e){e.exports={isLiteral:!0,bind:function(){this.el===this.vm.$el&&(this.vm._owner.$[this.expression]=this.vm)},unbind:function(){this.vm._owner.$[this.expression]=null}}}),t.register(38,function(e,i){function n(t,e){for(var i=(t._blockEnd||t.$el).nextSibling;!i.__vue__&&i!==e;)i=i.nextSibling;return i.__vue__}function r(t){if(!o.isPlainObject(t))return t;for(var e,i=Object.keys(t),n=i.length,r=new Array(n);n--;)e=i[n],r[n]={key:e,value:t[e]};return r._converted=!0,r}function s(t){for(var e=-1,i=new Array(t);++e<t;)i[e]=e;return i}var o=t(2),a=o.isObject,h=t(5),c=t(7),u=t(19),l=t(18),f=t(20),d=t(12),p=0;i.exports={bind:function(){this.id="__v_repeat_"+ ++p,this.filters||(this.filters={}),this.filters.read?this.filters.read.unshift(r):this.filters.read=[r],this.ref=document.createComment("v-repeat"),o.replace(this.el,this.ref),this.template="TEMPLATE"===this.el.tagName?u.parse(this.el,!0):this.el,this.checkIf(),this.checkRef(),this.checkTrackById(),this.checkComponent(),this.cache=Object.create(null)},checkIf:function(){null!==o.attr(this.el,"if")},checkRef:function(){this.owner=this.vm._owner;var t=o.attr(this.el,"ref");this.childId=t?this.vm.$interpolate(t):null;var e=o.attr(this.el,"el");this.elId=e?this.vm.$interpolate(e):null},checkTrackById:function(){this.idKey=this.el.getAttribute("trackby"),null!==this.idKey&&this.el.removeAttribute("trackby")},checkComponent:function(){var t=o.attr(this.el,"component");if(t){var e=h.parse(t);if(e){var i=h.tokensToExp(e);this.ctorGetter=c.parse(i).get}else{var n=this.Ctor=this.vm.$options.components[t];if(n){var r=d(n.options,{},{$parent:this.vm});this.template=f(this.template,r),this._linker=l(this.template,r)}}}else this.Ctor=o.Vue,this.inherit=!0,this._linker=l(this.template,this.vm.$options)},update:function(t){"number"==typeof t&&(t=s(t)),this.converted=t&&t._converted,this.vms=this.diff(t||[],this.vms),this.childId&&(this.owner.$[this.childId]=this.vms),this.elId&&(this.owner.$$[this.elId]=this.vms.map(function(t){return t.$el}))},diff:function(t,e){var i,r,s,o,a,h=this.idKey,c=this.converted,u=this.ref,l=this.arg,f=!e,d=new Array(t.length);for(o=0,a=t.length;a>o;o++)i=t[o],r=c?i.value:i,s=!f&&this.getVm(r),s?(s._reused=!0,s.$index=o,c&&(s.$key=i.key),h&&(l?s[l]=r:s._setData(r))):s=this.build(i,o),d[o]=s,f&&s.$before(u);if(f)return d;for(o=0,a=e.length;a>o;o++)s=e[o],s._reused||(this.uncacheVm(s),s.$destroy(!0));var p,v;for(o=d.length;o--;)s=d[o],p=d[o+1],p?s._reused?(v=n(s,u),v!==p&&s.$before(p.$el,null,!1)):s.$before(p.$el):s._reused||s.$before(u),s._reused=!1;return d},build:function(t,e){var i=t,n={$index:e};this.converted&&(n.$key=i.key);var r=this.converted?t.value:t,s=this.arg,o=!a(r)||s;t=o?{}:r,s?t[s]=r:o&&(n.$value=r);var h=this.Ctor||this.resolveCtor(t),c=this.vm.$addChild({el:this.template.cloneNode(!0),_linker:this._linker,_meta:n,data:t,inherit:this.inherit},h);return this.cacheVm(r,c),c},resolveCtor:function(t){var e=Object.create(this.vm);for(var i in t)o.define(e,i,t[i]);var n=this.ctorGetter.call(e,e),r=this.vm.$options.components[n];return r},unbind:function(){if(this.childId&&delete this.owner.$[this.childId],this.vms)for(var t,e=this.vms.length;e--;)t=this.vms[e],this.uncacheVm(t),t.$destroy()},cacheVm:function(t,e){var i,n=this.idKey,r=this.cache;n?(i=t[n],r[i]||(r[i]=e)):a(t)?(i=this.id,t.hasOwnProperty(i)?null===t[i]&&(t[i]=e):o.define(t,this.id,e)):r[t]?r[t].push(e):r[t]=[e],e._raw=t},getVm:function(t){if(this.idKey)return this.cache[t[this.idKey]];if(a(t))return t[this.id];var e=this.cache[t];if(e){for(var i=0,n=e[i];n&&n._reused;)n=e[++i];return n}},uncacheVm:function(t){var e=t._raw;this.idKey?this.cache[e[this.idKey]]=null:a(e)?(e[this.id]=null,t._raw=null):this.cache[e].pop()}}}),t.register(31,function(e,i){var n=t(9);i.exports=function(t){var e=this.el;n.apply(e,t?1:-1,function(){e.style.display=t?"":"none"},this.vm)}}),t.register(33,function(t,e){var i=["-webkit-","-moz-","-ms-"],n=/!important;?$/;e.exports={bind:function(){var t=this.arg;t&&("$"===t.charAt(0)&&(t=t.slice(1),this.prefixed=!0),this.prop=t)},update:function(t){var e=this.prop;if(null!=t&&(t+=""),e){var r=n.test(t)?"important":"";if(r&&(t=t.replace(n,"").trim()),this.el.style.setProperty(e,t,r),this.prefixed)for(var s=i.length;s--;)this.el.style.setProperty(i[s]+e,t,r)}else this.el.style.cssText=t}}}),t.register(30,function(e,i){var n=t(2);i.exports={bind:function(){this.attr=3===this.el.nodeType?"nodeValue":"textContent"},update:function(t){this.el[this.attr]=n.toString(t)}}}),t.register(35,function(t,e){e.exports={priority:1e3,isLiteral:!0,bind:function(){this.el.__v_trans={id:this.expression}}}}),t.register(39,function(e,i){var n=t(4);i.exports={priority:900,bind:function(){var t=this.vm;if(this.el!==t.$el);else if(t.$parent){var e=this.arg;this.watcher=new n(t.$parent,this.expression,e?function(i){t.$set(e,i)}:function(e){t.$data=e});var i=this.watcher.value;e?t.$set(e,i):t.$data=i}else;},unbind:function(){this.watcher&&this.watcher.teardown()}}}),t.register(44,function(e){function i(t,e){if(n.isObject(t)){for(var r in t)if(i(t[r],e))return!0}else if(null!=t)return t.toString().toLowerCase().indexOf(e)>-1}var n=t(2),r=t(45);e.filterBy=function(t,e,s,o){s&&"in"!==s&&(o=s);var a=n.stripQuotes(e)||this.$get(e);return a?(a=a.toLowerCase(),o=o&&(n.stripQuotes(o)||this.$get(o)),t.filter(function(t){return o?i(r.get(t,o),a):i(t,a)})):t},e.orderBy=function(t,e,i){var s=n.stripQuotes(e)||this.$get(e);if(!s)return t;var o=1;return i&&("-1"===i?o=-1:33===i.charCodeAt(0)?(i=i.slice(1),o=this.$get(i)?1:-1):o=this.$get(i)?-1:1),t.slice().sort(function(t,e){return t=r.get(t,s),e=r.get(e,s),t===e?0:t>e?o:-o})}}),t.register(46,function(e){var i=t(2);e.json=function(t,e){return JSON.stringify(t,null,Number(e)||2)},e.capitalize=function(t){return t||0===t?(t=t.toString(),t.charAt(0).toUpperCase()+t.slice(1)):""},e.uppercase=function(t){return t||0===t?t.toString().toUpperCase():""},e.lowercase=function(t){return t||0===t?t.toString().toLowerCase():""};var n=/(\d{3})(?=\d)/g;e.currency=function(t,e){if(t=parseFloat(t),!t&&0!==t)return"";e=e||"$";var i=Math.floor(t).toString(),r=i.length%3,s=r>0?i.slice(0,r)+(i.length>3?",":""):"",o="."+t.toFixed(2).slice(-2);return e+s+i.slice(r).replace(n,"$1,")+o},e.pluralize=function(t){var e=i.toArray(arguments,1);return e.length>1?e[t%10-1]||e[e.length-1]:e[0]+(1===t?"":"s")};var r={enter:13,tab:9,"delete":46,up:38,left:37,right:39,down:40,esc:27};e.key=function(t,e){if(t){var i=r[e];return i||(i=parseInt(e,10)),function(e){return e.keyCode===i?t.call(this,e):void 0}}},i.extend(e,t(44))}),t.register(47,function(e){var i=t(2),n=t(21),r=t(18),s=t(20);e._compile=function(t){var e=this.$options;if(e._linker)this._initElement(t),e._linker(this,t);else{var n=t;t=s(t,e),this._initElement(t);var o=r(t,e);o(this,t),e.replace&&i.replace(n,t)}return t},e._initElement=function(t){t instanceof DocumentFragment?(this._isBlock=!0,this.$el=this._blockStart=t.firstChild,this._blockEnd=t.lastChild,this._blockFragment=t):this.$el=t,this.$el.__vue__=this,this._callHook("beforeCompile")},e._bindDir=function(t,e,i,r,s){this._directives.push(new n(t,e,this,i,r,s))}}),t.register(48,function(e){function i(t,e,i,n){var r=typeof i;if("function"===r)t.$on(e,i);else if("string"===r){var s=n&&n[i];s&&t.$on(e,s)}}function n(){this._isAttached=!0;var t=this._children;if(t)for(var e=0,i=t.length;i>e;e++){var n=t[e];!n._isAttached&&o(n.$el)&&n._callHook("attached")}}function r(){this._isAttached=!1;var t=this._children;if(t)for(var e=0,i=t.length;i>e;e++){var n=t[e];n._isAttached&&!o(n.$el)&&n._callHook("detached")}}var s=t(2),o=s.inDoc;e._initEvents=function(){var t=this.$options,e=t.events,n=t.methods;if(e){var r,o,a,h;for(o in e)if(r=e[o],s.isArray(r))for(a=0,h=r.length;h>a;a++)i(this,o,r[a],n);else i(this,o,r,n)}},e._initDOMHooks=function(){this.$on("hook:attached",n),this.$on("hook:detached",r)},e._callHook=function(t){var e=this.$options[t];if(e)for(var i=0,n=e.length;n>i;i++)e[i].call(this);this.$emit("hook:"+t)}}),t.register(49,function(e){var i=t(12);e._init=function(t){t=t||{},this.$el=null,this.$parent=t._parent,this.$root=t._root||this,this.$={},this.$$={},this._watcherList=[],this._watchers={},this._userWatchers={},this._directives=[],this._isVue=!0,this._events={},this._eventsCount={},this._eventCancelled=!1,this._isBlock=!1,this._blockStart=this._blockEnd=null,this._isCompiled=this._isDestroyed=this._isReady=this._isAttached=this._isBeingDestroyed=!1,this._children=this._childCtors=null,this._isAnonymous=t._anonymous;for(var e=this.$parent;e&&e._isAnonymous;)e=e.$parent;this._owner=e||this,t=this.$options=i(this.constructor.options,t,this),this._data=t.data||{},this._initEvents(),this._initScope(),this._callHook("created"),t.el&&this.$mount(t.el)}}),t.register(50,function(e){function i(){}var n=t(2),r=t(51),s=t(16);e._initScope=function(){this._initData(),this._initComputed(),this._initMethods(),this._initMeta()},e._initData=function(){for(var t,e=this._data,i=Object.keys(e),s=i.length;s--;)t=i[s],n.isReserved(t)||this._proxy(t);r.create(e).addVm(this)},e._setData=function(t){var e=this._data;this._data=t;var i,s,o;for(i=Object.keys(e),o=i.length;o--;)s=i[o],n.isReserved(s)||s in t||this._unproxy(s);for(i=Object.keys(t),o=i.length;o--;)s=i[o],this.hasOwnProperty(s)||n.isReserved(s)||this._proxy(s);e.__ob__.removeVm(this),r.create(t).addVm(this),this._digest()},e._proxy=function(t){var e=this;Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:function(){return e._data[t] | ||
},set:function(i){e._data[t]=i}})},e._unproxy=function(t){delete this[t]},e._digest=function(){for(var t=this._watcherList.length;t--;)this._watcherList[t].update();var e,i=this._children;if(i)for(t=i.length;t--;)e=i[t],e.$options.inherit&&e._digest()},e._initComputed=function(){var t=this.$options.computed;if(t)for(var e in t){var r=t[e];"function"==typeof r?r={get:n.bind(r,this),set:i}:(r.get=r.get?n.bind(r.get,this):i,r.set=r.set?n.bind(r.set,this):i),r.enumerable=!0,r.configurable=!0,Object.defineProperty(this,e,r)}},e._initMethods=function(){var t=this.$options.methods;if(t)for(var e in t)this[e]=n.bind(t[e],this)},e._initMeta=function(){var t=this.$options._meta;if(t)for(var e in t)this._defineMeta(e,t[e])},e._defineMeta=function(t,e){var i=new s;Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:function(){return r.target&&r.target.addDep(i),e},set:function(t){t!==e&&(e=t,i.notify())}})}}),t.register(52,function(e,i){var n=t(2),r=Object.create(Array.prototype);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(t){var e=Array.prototype[t];n.define(r,t,function(){for(var i=arguments.length,n=new Array(i);i--;)n[i]=arguments[i];var r,s=e.apply(this,n),o=this.__ob__;switch(t){case"push":r=n;break;case"unshift":r=n;break;case"splice":r=n.slice(2)}return r&&o.observeArray(r),o.notify(),s})}),n.define(r,"$set",function(t,e){return t>=this.length&&(this.length=t+1),this.splice(t,1,e)[0]}),n.define(r,"$remove",function(t){return"number"!=typeof t&&(t=this.indexOf(t)),t>-1?this.splice(t,1)[0]:void 0}),i.exports=r}),t.register(51,function(e,i){function n(t,e){t.__proto__=e}function r(t,e,i){for(var n,r=i.length;r--;)n=i[r],o.define(t,n,e[n])}function s(t,e){this.id=++d,this.value=t,this.active=!0,this.bindings=[],o.define(t,"__ob__",this);var i=a.proto&&o.hasProto?n:r;e===p?(i(t,c,l),this.observeArray(t)):e===v&&(i(t,u,f),this.walk(t))}var o=t(2),a=t(13),h=t(16),c=t(52),u=t(53),l=Object.getOwnPropertyNames(c),f=Object.getOwnPropertyNames(u),d=0,p=0,v=1;s.target=null;var m=s.prototype;s.create=function(t){return t&&t.hasOwnProperty("__ob__")&&t.__ob__ instanceof s?t.__ob__:o.isArray(t)?new s(t,p):o.isPlainObject(t)&&!t._isVue?new s(t,v):void 0},m.walk=function(t){for(var e,i,n=Object.keys(t),r=n.length;r--;)e=n[r],i=e.charCodeAt(0),36!==i&&95!==i&&this.convert(e,t[e])},m.observe=function(t){return s.create(t)},m.observeArray=function(t){for(var e=t.length;e--;)this.observe(t[e])},m.convert=function(t,e){var i=this,n=i.observe(e),r=new h;n&&n.bindings.push(r),Object.defineProperty(i.value,t,{enumerable:!0,configurable:!0,get:function(){return i.active&&s.target&&s.target.addDep(r),e},set:function(t){if(t!==e){var n=e&&e.__ob__;if(n){var s=n.bindings;s.splice(s.indexOf(r))}e=t;var o=i.observe(t);o&&o.bindings.push(r),r.notify()}}})},m.notify=function(){for(var t=this.bindings,e=0,i=t.length;i>e;e++)t[e].notify()},m.addVm=function(t){(this.vms=this.vms||[]).push(t)},m.removeVm=function(t){this.vms.splice(this.vms.indexOf(t),1)},i.exports=s}),t.register(53,function(e,i){var n=t(2),r=Object.create(Object.prototype);n.define(r,"$add",function(t,e){if(!n.isReserved(t)&&!this.hasOwnProperty(t)){var i=this.__ob__;if(i.convert(t,e),i.vms)for(var r=i.vms.length;r--;){var s=i.vms[r];s._proxy(t),s._digest()}else i.notify()}}),n.define(r,"$delete",function(t){if(!n.isReserved(t)&&this.hasOwnProperty(t)){delete this[t];var e=this.__ob__;if(e.vms)for(var i=e.vms.length;i--;){var r=e.vms[i];r._unproxy(t),r._digest()}else e.notify()}}),i.exports=r}),t.register(6,function(e){function i(){m.raw=r.slice(d,o).trim(),void 0===m.expression?m.expression=r.slice(p,o).trim():g!==d&&n(),(0===o||m.expression)&&v.push(m)}function n(){var t,e=r.slice(g,o).trim();if(e){t={};var i=e.match(x);t.name=i[0],t.args=i.length>1?i.slice(1):null}t&&(m.filters=m.filters||[]).push(t),g=o+1}var r,s,o,a,h,c,u,l,f,d,p,v,m,g,_,b=t(2),y=t(17),w=new y(1e3),$=/^[^\{\?]+$|^'[^']*'$|^"[^"]*"$/,x=/[^\s'"]+|'[^']+'|"[^"]+"/g;e.parse=function(t){var e=w.get(t);if(e)return e;for(r=t,h=c=!1,u=l=f=d=p=0,g=0,v=[],m={},_=null,o=0,a=r.length;a>o;o++)if(s=r.charCodeAt(o),h)39===s&&(h=!h);else if(c)34===s&&(c=!c);else if(44!==s||f||u||l)if(58!==s||m.expression||m.arg)if(124===s&&124!==r.charCodeAt(o+1)&&124!==r.charCodeAt(o-1))void 0===m.expression?(g=o+1,m.expression=r.slice(p,o).trim()):n();else switch(s){case 34:c=!0;break;case 39:h=!0;break;case 40:f++;break;case 41:f--;break;case 91:l++;break;case 93:l--;break;case 123:u++;break;case 125:u--}else _=r.slice(d,o).trim(),$.test(_)&&(p=o+1,m.arg=b.stripQuotes(_)||_);else i(),m={},d=p=g=o+1;return(0===o||d!==o)&&i(),w.put(t,v),v}}),t.register(7,function(e){function i(t){var e=w.length;return w[e]=t.replace(v,"\\n"),'"'+e+'"'}function n(t){var e=t.charAt(0),i=t.slice(1);return y.test(i)?t:(i=i.indexOf('"')>-1?i.replace(g,r):i,e+"scope."+i)}function r(t,e){return w[e]}function s(t,e){w.length=0;var s=t.replace(m,i).replace(p,"");s=(" "+s).replace(b,n).replace(g,r);var o=a(s);return o?{get:o,body:s,set:e?h(s):null}:void 0}function o(t){var e,i;return t.indexOf("[")<0?(i=t.split("."),e=u.compileGetter(i)):(i=u.parse(t),e=i.get),{get:e,set:function(t,e){u.set(t,i,e)}}}function a(t){try{return new Function("scope",'"use strict";try{return '+t+"}catch(e){};")}catch(e){}}function h(t){try{return new Function("scope","value",'"use strict";'+t+" = value;")}catch(e){}}function c(t){t.set||(t.set=h(t.body))}var u=t(45),l=t(17),f=new l(1e3),d="Math,break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,undefined,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield",p=/\s/g,v=/\n/g,m=/[\{,]\s*[\w\$_]+\s*:|'[^']*'|"[^"]*"/g,g=/"(\d+)"/g,_=/^[A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\])*$/,b=/[^\w$\.]([A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\])*)/g,y=new RegExp("^("+d.replace(/,/g,"\\b|")+"\\b)"),w=[];e.parse=function(t,e){t=t.trim();var i=f.get(t);if(i)return e&&c(i),i;var n=_.test(t)?o(t):s(t,e);return f.put(t,n),n},e.pathTestRE=_}),t.register(45,function(e){function i(){}function n(t){if(void 0===t)return"eof";var e=t.charCodeAt(0);switch(e){case 91:case 93:case 46:case 34:case 39:case 48:return t;case 95:case 36:return"ident";case 32:case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return e>=97&&122>=e||e>=65&&90>=e?"ident":e>=49&&57>=e?"number":"else"}function r(t){function e(){var e=t[d+1];return"inSingleQuote"===p&&"'"===e||"inDoubleQuote"===p&&'"'===e?(d++,s=e,v.append(),!0):void 0}for(var r,s,o,a,h,c,u,f=[],d=-1,p="beforePath",v={push:function(){void 0!==o&&(f.push(o),o=void 0)},append:function(){void 0===o?o=s:o+=s}};p;)if(d++,r=t[d],"\\"!==r||!e()){if(a=n(r),u=l[p],h=u[a]||u["else"]||"error","error"===h)return;if(p=h[0],c=v[h[1]]||i,s=void 0===h[2]?r:h[2],c(),"afterPath"===p)return f}}function s(t){return u.test(t)?"."+t:+t===t>>>0?"["+t+"]":'["'+t.replace(/"/g,'\\"')+'"]'}function o(t,e,i){t.$add?t.$add(e,i):t[e]=i}var a=t(2),h=t(17),c=new h(1e3),u=/^[$_a-zA-Z]+[\w$]*$/,l={beforePath:{ws:["beforePath"],ident:["inIdent","append"],"[":["beforeElement"],eof:["afterPath"]},inPath:{ws:["inPath"],".":["beforeIdent"],"[":["beforeElement"],eof:["afterPath"]},beforeIdent:{ws:["beforeIdent"],ident:["inIdent","append"]},inIdent:{ident:["inIdent","append"],0:["inIdent","append"],number:["inIdent","append"],ws:["inPath","push"],".":["beforeIdent","push"],"[":["beforeElement","push"],eof:["afterPath","push"]},beforeElement:{ws:["beforeElement"],0:["afterZero","append"],number:["inIndex","append"],"'":["inSingleQuote","append",""],'"':["inDoubleQuote","append",""]},afterZero:{ws:["afterElement","push"],"]":["inPath","push"]},inIndex:{0:["inIndex","append"],number:["inIndex","append"],ws:["afterElement"],"]":["inPath","push"]},inSingleQuote:{"'":["afterElement"],eof:"error","else":["inSingleQuote","append"]},inDoubleQuote:{'"':["afterElement"],eof:"error","else":["inDoubleQuote","append"]},afterElement:{ws:["afterElement"],"]":["inPath","push"]}};e.compileGetter=function(t){var e="try{return o"+t.map(s).join("")+"}catch(e){};";return new Function("o",e)},e.parse=function(t){var i=c.get(t);return i||(i=r(t),i&&(i.get=e.compileGetter(i),c.put(t,i))),i},e.get=function(t,i){return i=e.parse(i),i?i.get(t):void 0},e.set=function(t,i,n){if("string"==typeof i&&(i=e.parse(i)),!i||!a.isObject(t))return!1;for(var r,s,h=0,c=i.length-1;c>h;h++)r=t,s=i[h],t=t[s],a.isObject(t)||(t={},o(r,s,t));return s=i[h],s in t?t[s]=n:o(t,s,n),!0}}),t.register(19,function(e){function i(t){var e=s.get(t);if(e)return e;var i=document.createDocumentFragment(),n=a.exec(t);if(n){var r=n[1],h=o[r]||o._default,c=h[0],u=h[1],l=h[2],f=document.createElement("div");for(f.innerHTML=u+t.trim()+l;c--;)f=f.lastChild;for(var d;d=f.firstChild;)i.appendChild(d)}else i.appendChild(document.createTextNode(t));return s.put(t,i),i}function n(t){var e=t.tagName;return"TEMPLATE"===e&&t.content instanceof DocumentFragment?t.content:i("SCRIPT"===e?t.textContent:t.innerHTML)}var r=t(17),s=new r(100),o={_default:[0,"",""],legend:[1,"<fieldset>","</fieldset>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]};o.td=o.th=[3,"<table><tbody><tr>","</tr></tbody></table>"],o.option=o.optgroup=[1,'<select multiple="multiple">',"</select>"],o.thead=o.tbody=o.colgroup=o.caption=o.tfoot=[1,"<table>","</table>"],o.g=o.defs=o.symbol=o.use=o.image=o.text=o.circle=o.ellipse=o.line=o.path=o.polygon=o.polyline=o.rect=[1,'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"version="1.1">',"</svg>"];var a=/<([\w:]+)/;e.parse=function(t,e){var r,o;return t instanceof DocumentFragment?e?t.cloneNode(!0):t:("string"==typeof t?"#"===t.charAt(0)?(o=s.get(t),o||(r=document.getElementById(t.slice(1)),r&&(o=n(r),s.put(t,o)))):o=i(t):t.nodeType&&(o=n(t)),o&&e?o.cloneNode(!0):o)}}),t.register(5,function(e){function i(t){return t.replace(f,"\\$&")}function n(){l._delimitersChanged=!1;var t=l.delimiters[0],e=l.delimiters[1];h=t.charAt(0),c=e.charAt(e.length-1);var n=i(h),r=i(c),f=i(t),d=i(e);o=new RegExp(n+"?"+f+"(.+?)"+d+r+"?","g"),a=new RegExp("^"+n+f+".*"+d+r+"$"),s=new u(1e3)}function r(t,e){return t.tag?e&&t.oneTime?'"'+e.$get(t.value)+'"':t.value:'"'+t.value+'"'}var s,o,a,h,c,u=t(17),l=t(13),f=/[-.*+?^${}()|[\]\/\\]/g;e.parse=function(t){l._delimitersChanged&&n();var e=s.get(t);if(e)return e;if(!o.test(t))return null;for(var i,r,h,c,u,f,d=[],p=o.lastIndex=0;i=o.exec(t);)r=i.index,r>p&&d.push({value:t.slice(p,r)}),c=i[1].charCodeAt(0),u=42===c,f=62===c,h=u||f?i[1].slice(1):i[1],d.push({tag:!0,value:h.trim(),html:a.test(i[0]),oneTime:u,partial:f}),p=r+i[0].length;return p<t.length&&d.push({value:t.slice(p)}),s.put(t,d),d},e.tokensToExp=function(t,e){return t.length>1?t.map(function(t){return r(t,e)}).join("+"):r(t[0],e)}}),t.register(54,function(e,i){function n(t,e,i){var n=e.cache&&e.cache[i];if(n)return n;var r=t.style,s=window.getComputedStyle(t),o=r[a]||s[a];if(o&&"0s"!==o)n=1;else{var c=r[h]||s[h];c&&"0s"!==c&&(n=2)}return n&&(e.cache||(e.cache={}),e.cache[i]=n),n}var r=t(2),s=t(15),o=new s,a=r.transitionProp+"Duration",h=r.animationProp+"Duration";o._preFlush=function(){document.documentElement.offsetHeight},i.exports=function(t,e,i,s,a){var h=t.classList,c=s.id||"v",u=c+"-enter",l=c+"-leave";s.callback&&(r.off(t,s.event,s.callback),h.remove(u),h.remove(l),s.event=s.callback=null);var f,d,p;e>0?(h.add(u),i(),f=n(t,s,u),1===f?(o.push({run:function(){h.remove(u)}}),a&&(p=s.event=r.transitionEndEvent,d=s.callback=function(e){e.target===t&&(r.off(t,p,d),s.event=s.callback=null,a())},r.on(t,p,d))):2===f?(p=s.event=r.animationEndEvent,d=s.callback=function(e){e.target===t&&(r.off(t,p,d),s.event=s.callback=null,h.remove(u),a&&a())},r.on(t,p,d)):(h.remove(u),a&&a())):(h.add(l),f=n(t,s,l),f?(1===f&&(h.remove(l),o.push({run:function(){h.add(l)}})),p=s.event=1===f?r.transitionEndEvent:r.animationEndEvent,d=s.callback=function(e){e.target===t&&(r.off(t,p,d),s.event=s.callback=null,i(),h.remove(l),a&&a())},r.on(t,p,d)):(i(),h.remove(l),a&&a()))}}),t.register(9,function(e){var i=t(2),n=t(54),r=t(55);e.append=function(t,e,i,n){s(t,1,function(){e.appendChild(t)},i,n)},e.before=function(t,e,n,r){s(t,1,function(){i.before(t,e)},n,r)},e.remove=function(t,e,n){s(t,-1,function(){i.remove(t)},e,n)},e.removeThenAppend=function(t,e,i,n){s(t,-1,function(){e.appendChild(t)},i,n)};var s=e.apply=function(t,e,s,o,a){var h=t.__v_trans;if(!h||!o._isCompiled||o.$parent&&!o.$parent._isCompiled)return s(),void(a&&a());var c=o.$options.transitions[h.id];c?r(t,e,s,h,c,a):i.transitionEndEvent?n(t,e,s,h,a):(s(),a&&a())}}),t.register(55,function(t,e){e.exports=function(t,e,i,n,r,s){n.cancel&&(n.cancel(),n.cancel=null),e>0?(r.beforeEnter&&r.beforeEnter(t),i(),r.enter?n.cancel=r.enter(t,function(){n.cancel=null,s&&s()}):s&&s()):r.leave?n.cancel=r.leave(t,function(){n.cancel=null,i(),s&&s()}):(i(),s&&s())}}),t.register(56,function(t){}),t.register(57,function(e){var i=t(13),n="undefined"!=typeof document&&document.documentElement;e.inDoc=function(t){return n&&n.contains(t)},e.attr=function(t,e){e=i.prefix+e;var n=t.getAttribute(e);return null!==n&&t.removeAttribute(e),n},e.before=function(t,e){e.parentNode.insertBefore(t,e)},e.after=function(t,i){i.nextSibling?e.before(t,i.nextSibling):i.parentNode.appendChild(t)},e.remove=function(t){t.parentNode.removeChild(t)},e.prepend=function(t,i){i.firstChild?e.before(t,i.firstChild):i.appendChild(t)},e.replace=function(t,e){var i=t.parentNode;i&&i.replaceChild(e,t)},e.copyAttributes=function(t,e){if(t.hasAttributes())for(var i=t.attributes,n=0,r=i.length;r>n;n++){var s=i[n];e.setAttribute(s.name,s.value)}},e.on=function(t,e,i){t.addEventListener(e,i)},e.off=function(t,e,i){t.removeEventListener(e,i)},e.addClass=function(t,e){var i=" "+t.className+" ";i.indexOf(" "+e+" ")<0&&(t.className=(i+e).trim())},e.removeClass=function(t,e){for(var i=" "+t.className+" ",n=" "+e+" ";i.indexOf(n)>=0;)i=i.replace(n," ");t.className=i.trim()}}),t.register(58,function(t){t.hasProto="__proto__"in{};var e=Object.prototype.toString,i=t.inBrowser="undefined"!=typeof window&&"[object Object]"!==e.call(window),n=i?window.requestAnimationFrame||window.webkitRequestAnimationFrame||setTimeout:setTimeout;if(t.nextTick=function(t,e){e?n(function(){t.call(e)},0):n(t,0)},t.isIE9=i&&navigator.userAgent.indexOf("MSIE 9.0")>0,i&&!t.isIE9){var r=void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend,s=void 0===window.onanimationend&&void 0!==window.onwebkitanimationend;t.transitionProp=r?"WebkitTransition":"transition",t.transitionEndEvent=r?"webkitTransitionEnd":"transitionend",t.animationProp=s?"WebkitAnimation":"animation",t.animationEndEvent=s?"webkitAnimationEnd":"animationend"}}),t.register(59,function(t){t.resolveFilters=function(t,e,i){if(e){var n=i||{};return e.forEach(function(e){var i=t.$options.filters[e.name];if(i){var r,s,o=e.args;"function"==typeof i?r=i:(r=i.read,s=i.write),r&&(n.read||(n.read=[]),n.read.push(function(e){return o?r.apply(t,[e].concat(o)):r.call(t,e)})),s&&(n.write||(n.write=[]),n.write.push(function(e,i){return o?s.apply(t,[e,i].concat(o)):s.call(t,e,i)}))}}),n}},t.applyFilters=function(t,e,i,n){if(!e)return t;for(var r=0,s=e.length;s>r;r++)t=e[r].call(i,t,n);return t}}),t.register(2,function(e){var i=t(60),n=i.extend;n(e,i),n(e,t(58)),n(e,t(57)),n(e,t(59)),n(e,t(56))}),t.register(60,function(t){t.isReserved=function(t){var e=t.charCodeAt(0);return 36===e||95===e},t.toString=function(t){return null==t?"":t.toString()},t.toNumber=function(t){return isNaN(t)||null===t||"boolean"==typeof t?t:Number(t)},t.stripQuotes=function(t){var e=t.charCodeAt(0),i=t.charCodeAt(t.length-1);return e!==i||34!==e&&39!==e?!1:t.slice(1,-1)};var e=/(?:^|[-_])(\w)/g;t.camelize=function(t){return t.replace(e,function(t,e){return e?e.toUpperCase():""})},t.bind=function(t,e){return function(){return t.apply(e,arguments)}},t.toArray=function(t,e){e=e||0;for(var i=t.length-e,n=new Array(i);i--;)n[i]=t[i+e];return n},t.extend=function(t,e){for(var i in e)t[i]=e[i]},t.isObject=function(t){return t&&"object"==typeof t};var i=Object.prototype.toString;t.isPlainObject=function(t){return"[object Object]"===i.call(t)},t.isArray=function(t){return Array.isArray(t)},t.define=function(t,e,i,n){Object.defineProperty(t,e,{value:i,enumerable:!!n,writable:!0,configurable:!0})}}),t.register(12,function(e,i){function n(t){if(t){var e;for(var i in t)e=t[i],r.isPlainObject(e)&&(e.name=i,t[i]=r.Vue.extend(e))}}var r=t(2),s=r.extend,o={};o.data=function(t,e,i){if(!i){if(e&&"function"!=typeof e)return;return e||t}var n="function"==typeof e?e():e,r="function"==typeof t?t():void 0;if(n){for(var s in r)n.hasOwnProperty(s)||(n[s]=r[s]);return n}return r},o.el=function(t,e,i){if(i||!e||"function"==typeof e){var n=e||t;return i&&"function"==typeof n?n():n}},o.created=o.ready=o.attached=o.detached=o.beforeCompile=o.compiled=o.beforeDestroy=o.destroyed=o.paramAttributes=function(t,e){return e?t?t.concat(e):r.isArray(e)?e:[e]:t},o.directives=o.filters=o.partials=o.transitions=o.components=function(t,e,i,n){var o=Object.create(i&&i.$parent?i.$parent.$options[n]:r.Vue.options[n]);if(t)for(var a,h=Object.keys(t),c=h.length;c--;)a=h[c],o[a]=t[a];return e&&s(o,e),o},o.events=function(t,e){if(!e)return t;if(!t)return e;var i={};s(i,t);for(var n in e){var r=i[n],o=e[n];i[n]=r?r.concat(o):[o]}return i},o.methods=o.computed=function(t,e){if(!e)return t;if(!t)return e;var i=Object.create(t);return s(i,e),i};var a=function(t,e){return void 0===e?t:e};i.exports=function(t,e,i){function r(t,e,n){var r=o[n]||a;h[n]=r(t,e,i,n)}n(e.components);var s,h={};for(s in t)r(t[s],e[s],s);for(s in e)t.hasOwnProperty(s)||r(t[s],e[s],s);var c=e.mixins;if(c)for(var u=0,l=c.length;l>u;u++)for(s in c[u])r(h[s],c[u][s],s);return h}}),t.register("vue",function(e,i){function n(t){this._init(t)}var r=t(2),s=r.extend;s(n,t(11)),n.options={directives:t(29),filters:t(46),partials:{},transitions:{},components:{}};var o=n.prototype;Object.defineProperty(o,"$data",{get:function(){return this._data},set:function(t){this._setData(t)}}),s(o,t(49)),s(o,t(48)),s(o,t(50)),s(o,t(47)),s(o,t(3)),s(o,t(8)),s(o,t(10)),s(o,t(1)),s(o,t(14)),i.exports=r.Vue=n}),t.register(4,function(e,i){function n(t,e,i,n,r,s){this.vm=t,t._watcherList.push(this),this.expression=e,this.cbs=[i],this.id=++c,this.active=!0,this.deep=s,this.deps=Object.create(null),this.readFilters=n&&n.read,this.writeFilters=n&&n.write;var a=o.parse(e,r);this.getter=a.get,this.setter=a.set,this.value=this.get()}var r=t(2),s=t(51),o=t(7),a=t(15),h=new a,c=0,u=n.prototype;u.addDep=function(t){var e=t.id;this.newDeps[e]||(this.newDeps[e]=t,this.deps[e]||(this.deps[e]=t,t.addSub(this)))},u.get=function(){this.beforeGet();var t=this.vm,e=this.getter.call(t,t);return this.deep&&JSON.stringify(e),e=r.applyFilters(e,this.readFilters,t),this.afterGet(),e},u.set=function(t){var e=this.vm;t=r.applyFilters(t,this.writeFilters,e,this.value),this.setter.call(e,e,t)},u.beforeGet=function(){s.target=this,this.newDeps={}},u.afterGet=function(){s.target=null;for(var t in this.deps)this.newDeps[t]||this.deps[t].removeSub(this);this.deps=this.newDeps},u.update=function(){h.push(this)},u.run=function(){if(this.active){var t=this.get();if("object"==typeof t&&null!==t||t!==this.value){var e=this.value;this.value=t;for(var i=this.cbs,n=0,r=i.length;r>n;n++)i[n](t,e)}}},u.addCb=function(t){this.cbs.push(t)},u.removeCb=function(t){var e=this.cbs;if(e.length>1){var i=e.indexOf(t);i>-1&&e.splice(i,1)}else t===e[0]&&this.teardown()},u.teardown=function(){if(this.active){if(!this.vm._isBeingDestroyed){var t=this.vm._watcherList;t.splice(t.indexOf(this))}for(var e in this.deps)this.deps[e].removeSub(this);this.active=!1,this.vm=this.cbs=this.value=null}},i.exports=n}),"object"==typeof exports?module.exports=t("vue"):"function"==typeof define&&define.amd?define([],function(){return t("vue")}):window.Vue=t("vue")}(); |
{ | ||
"name": "vue", | ||
"version": "0.10.6", | ||
"author": { | ||
"name": "Evan You", | ||
"email": "yyx990803@gmail.com", | ||
"url": "http://evanyou.me" | ||
}, | ||
"version": "0.11.0-rc", | ||
"author": "Evan You <yyx990803@gmail.com>", | ||
"license": "MIT", | ||
@@ -16,3 +12,3 @@ "description": "Simple, Fast & Composable MVVM for building interative interfaces", | ||
], | ||
"main": "src/main.js", | ||
"main": "src/vue.js", | ||
"repository": { | ||
@@ -25,42 +21,24 @@ "type": "git", | ||
"scripts": { | ||
"test": "grunt travis" | ||
"test": "grunt ci" | ||
}, | ||
"devDependencies": { | ||
"grunt": "~0.4.5", | ||
"grunt-contrib-watch": "~0.6.1", | ||
"grunt-contrib-jshint": "~0.10.0", | ||
"grunt-contrib-connect": "~0.7.1", | ||
"grunt-karma": "~0.8.3", | ||
"grunt-karma-coveralls": "~2.5.1", | ||
"grunt-saucelabs": "~7.0.0", | ||
"gulp-component": "~0.1.8", | ||
"vinyl-fs": "~0.1.4", | ||
"jshint-stylish": "~0.2.0", | ||
"semver": "~2.3.0", | ||
"shell-task": "~0.1.2", | ||
"map-stream": "0.1.0", | ||
"uglify-js": "~2.4.13", | ||
"karma": "~0.12.6", | ||
"karma-mocha": "~0.1.3", | ||
"karma-coverage": "~0.2.4", | ||
"karma-script-launcher": "~0.1.0", | ||
"karma-phantomjs-launcher": "~0.1.4", | ||
"karma-chrome-launcher": "~0.1.4", | ||
"karma-firefox-launcher": "~0.1.3", | ||
"karma-safari-launcher": "~0.1.1" | ||
}, | ||
"spm": { | ||
"main": "src/main.js", | ||
"ignore": [ | ||
".*", | ||
"examples", | ||
"test", | ||
"tasks", | ||
"dist", | ||
"Gruntfile.js", | ||
"bower.json", | ||
"component.json", | ||
"*.md" | ||
] | ||
"browserify": "^5.11.0", | ||
"component-builder": "^1.1.10", | ||
"component-resolver": "^1.1.8", | ||
"grunt": "^0.4.5", | ||
"grunt-contrib-jshint": "^0.10.0", | ||
"grunt-contrib-watch": "^0.6.1", | ||
"grunt-karma": "^0.8.3", | ||
"grunt-karma-coveralls": "^2.5.2", | ||
"jshint-stylish": "^0.3.0", | ||
"karma": "^0.12.16", | ||
"karma-chrome-launcher": "^0.1.4", | ||
"karma-commonjs": "^0.0.10", | ||
"karma-coverage": "^0.2.5", | ||
"karma-firefox-launcher": "^0.1.3", | ||
"karma-jasmine": "^0.2.2", | ||
"karma-phantomjs-launcher": "^0.1.4", | ||
"karma-sauce-launcher": "^0.2.10", | ||
"uglify-js": "^2.4.15" | ||
} | ||
} |
@@ -21,4 +21,4 @@ <p align="center"><a href="http://vuejs.org" target="_blank"><img width="100"src="http://vuejs.org/images/logo.png"></a></p> | ||
<div id="demo"> | ||
{{message}} | ||
<input v-model="message"> | ||
{{message}} | ||
<input v-model="message"> | ||
</div> | ||
@@ -29,7 +29,6 @@ ``` | ||
var demo = new Vue({ | ||
el: '#demo', | ||
data: { | ||
message: 'Hello Vue.js!' | ||
} | ||
}) | ||
data: { | ||
message: 'Hello Vue.js!' | ||
} | ||
}).$mount('#demo') | ||
``` | ||
@@ -36,0 +35,0 @@ |
@@ -1,45 +0,74 @@ | ||
var utils = require('./utils') | ||
var _ = require('./util') | ||
/** | ||
* The Batcher maintains a job queue to be run | ||
* async on the next event loop. | ||
*/ | ||
function Batcher () { | ||
this.reset() | ||
this._preFlush = null | ||
this.reset() | ||
} | ||
var BatcherProto = Batcher.prototype | ||
var p = Batcher.prototype | ||
BatcherProto.push = function (job) { | ||
if (!job.id || !this.has[job.id]) { | ||
this.queue.push(job) | ||
this.has[job.id] = job | ||
if (!this.waiting) { | ||
this.waiting = true | ||
utils.nextTick(utils.bind(this.flush, this)) | ||
} | ||
} else if (job.override) { | ||
var oldJob = this.has[job.id] | ||
oldJob.cancelled = true | ||
this.queue.push(job) | ||
this.has[job.id] = job | ||
/** | ||
* Push a job into the job queue. | ||
* Jobs with duplicate IDs will be skipped, however we can | ||
* use the `override` option to override existing jobs. | ||
* | ||
* @param {Object} job | ||
* properties: | ||
* - {String|Number} id | ||
* - {Boolean} override | ||
* - {Function} run | ||
*/ | ||
p.push = function (job) { | ||
if (!job.id || !this.has[job.id]) { | ||
this.queue.push(job) | ||
this.has[job.id] = job | ||
if (!this.waiting) { | ||
this.waiting = true | ||
_.nextTick(this.flush, this) | ||
} | ||
} else if (job.override) { | ||
var oldJob = this.has[job.id] | ||
oldJob.cancelled = true | ||
this.queue.push(job) | ||
this.has[job.id] = job | ||
} | ||
} | ||
BatcherProto.flush = function () { | ||
// before flush hook | ||
if (this._preFlush) this._preFlush() | ||
// do not cache length because more jobs might be pushed | ||
// as we execute existing jobs | ||
for (var i = 0; i < this.queue.length; i++) { | ||
var job = this.queue[i] | ||
if (!job.cancelled) { | ||
job.execute() | ||
} | ||
/** | ||
* Flush the queue and run the jobs. | ||
* Will call a preFlush hook if has one. | ||
*/ | ||
p.flush = function () { | ||
// before flush hook | ||
if (this._preFlush) { | ||
this._preFlush() | ||
} | ||
// do not cache length because more jobs might be pushed | ||
// as we run existing jobs | ||
for (var i = 0; i < this.queue.length; i++) { | ||
var job = this.queue[i] | ||
if (!job.cancelled) { | ||
job.run() | ||
} | ||
this.reset() | ||
} | ||
this.reset() | ||
} | ||
BatcherProto.reset = function () { | ||
this.has = utils.hash() | ||
this.queue = [] | ||
this.waiting = false | ||
/** | ||
* Reset the batcher's state. | ||
*/ | ||
p.reset = function () { | ||
this.has = {} | ||
this.queue = [] | ||
this.waiting = false | ||
} | ||
module.exports = Batcher |
@@ -1,103 +0,51 @@ | ||
var Batcher = require('./batcher'), | ||
bindingBatcher = new Batcher(), | ||
bindingId = 1 | ||
var uid = 0 | ||
/** | ||
* Binding class. | ||
* A binding is an observable that can have multiple | ||
* directives subscribing to it. | ||
* | ||
* each property on the viewmodel has one corresponding Binding object | ||
* which has multiple directive instances on the DOM | ||
* and multiple computed property dependents | ||
* @constructor | ||
*/ | ||
function Binding (compiler, key, isExp, isFn) { | ||
this.id = bindingId++ | ||
this.value = undefined | ||
this.isExp = !!isExp | ||
this.isFn = isFn | ||
this.root = !this.isExp && key.indexOf('.') === -1 | ||
this.compiler = compiler | ||
this.key = key | ||
this.dirs = [] | ||
this.subs = [] | ||
this.deps = [] | ||
this.unbound = false | ||
function Binding () { | ||
this.id = ++uid | ||
this.subs = [] | ||
} | ||
var BindingProto = Binding.prototype | ||
var p = Binding.prototype | ||
/** | ||
* Update value and queue instance updates. | ||
* Add a directive subscriber. | ||
* | ||
* @param {Directive} sub | ||
*/ | ||
BindingProto.update = function (value) { | ||
if (!this.isComputed || this.isFn) { | ||
this.value = value | ||
} | ||
if (this.dirs.length || this.subs.length) { | ||
var self = this | ||
bindingBatcher.push({ | ||
id: this.id, | ||
execute: function () { | ||
if (!self.unbound) { | ||
self._update() | ||
} | ||
} | ||
}) | ||
} | ||
p.addSub = function (sub) { | ||
this.subs.push(sub) | ||
} | ||
/** | ||
* Actually update the directives. | ||
* Remove a directive subscriber. | ||
* | ||
* @param {Directive} sub | ||
*/ | ||
BindingProto._update = function () { | ||
var i = this.dirs.length, | ||
value = this.val() | ||
while (i--) { | ||
this.dirs[i].$update(value) | ||
} | ||
this.pub() | ||
} | ||
/** | ||
* Return the valuated value regardless | ||
* of whether it is computed or not | ||
*/ | ||
BindingProto.val = function () { | ||
return this.isComputed && !this.isFn | ||
? this.value.$get() | ||
: this.value | ||
p.removeSub = function (sub) { | ||
if (this.subs.length) { | ||
var i = this.subs.indexOf(sub) | ||
if (i > -1) this.subs.splice(i, 1) | ||
} | ||
} | ||
/** | ||
* Notify computed properties that depend on this binding | ||
* to update themselves | ||
* Notify all subscribers of a new value. | ||
*/ | ||
BindingProto.pub = function () { | ||
var i = this.subs.length | ||
while (i--) { | ||
this.subs[i].update() | ||
} | ||
} | ||
/** | ||
* Unbind the binding, remove itself from all of its dependencies | ||
*/ | ||
BindingProto.unbind = function () { | ||
// Indicate this has been unbound. | ||
// It's possible this binding will be in | ||
// the batcher's flush queue when its owner | ||
// compiler has already been destroyed. | ||
this.unbound = true | ||
var i = this.dirs.length | ||
while (i--) { | ||
this.dirs[i].$unbind() | ||
} | ||
i = this.deps.length | ||
var subs | ||
while (i--) { | ||
subs = this.deps[i].subs | ||
var j = subs.indexOf(this) | ||
if (j > -1) subs.splice(j, 1) | ||
} | ||
p.notify = function () { | ||
var i = this.subs.length | ||
while (i--) { | ||
this.subs[i].update() | ||
} | ||
} | ||
module.exports = Binding |
@@ -1,19 +0,73 @@ | ||
var TextParser = require('./text-parser') | ||
module.exports = { | ||
module.exports = { | ||
prefix : 'v', | ||
debug : false, | ||
silent : false, | ||
enterClass : 'v-enter', | ||
leaveClass : 'v-leave', | ||
interpolate : true | ||
/** | ||
* The prefix to look for when parsing directives. | ||
* | ||
* @type {String} | ||
*/ | ||
prefix: 'v-', | ||
/** | ||
* Whether to print debug messages. | ||
* Also enables stack trace for warnings. | ||
* | ||
* @type {Boolean} | ||
*/ | ||
debug: false, | ||
/** | ||
* Whether to suppress warnings. | ||
* | ||
* @type {Boolean} | ||
*/ | ||
silent: false, | ||
/** | ||
* Whether allow observer to alter data objects' | ||
* __proto__. | ||
* | ||
* @type {Boolean} | ||
*/ | ||
proto: true, | ||
/** | ||
* Whether to parse mustache tags in templates. | ||
* | ||
* @type {Boolean} | ||
*/ | ||
interpolate: true, | ||
/** | ||
* Internal flag to indicate the delimiters have been | ||
* changed. | ||
* | ||
* @type {Boolean} | ||
*/ | ||
_delimitersChanged: true | ||
} | ||
/** | ||
* Interpolation delimiters. | ||
* We need to mark the changed flag so that the text parser | ||
* knows it needs to recompile the regex. | ||
* | ||
* @type {Array<String>} | ||
*/ | ||
var delimiters = ['{{', '}}'] | ||
Object.defineProperty(module.exports, 'delimiters', { | ||
get: function () { | ||
return TextParser.delimiters | ||
}, | ||
set: function (delimiters) { | ||
TextParser.setDelimiters(delimiters) | ||
} | ||
get: function () { | ||
return delimiters | ||
}, | ||
set: function (val) { | ||
delimiters = val | ||
this._delimitersChanged = true | ||
} | ||
}) |
@@ -1,258 +0,194 @@ | ||
var dirId = 1, | ||
ARG_RE = /^[\w\$-]+$/, | ||
FILTER_TOKEN_RE = /[^\s'"]+|'[^']+'|"[^"]+"/g, | ||
NESTING_RE = /^\$(parent|root)\./, | ||
SINGLE_VAR_RE = /^[\w\.$]+$/, | ||
QUOTE_RE = /"/g, | ||
TextParser = require('./text-parser') | ||
var _ = require('./util') | ||
var Watcher = require('./watcher') | ||
var textParser = require('./parse/text') | ||
var expParser = require('./parse/expression') | ||
/** | ||
* Directive class | ||
* represents a single directive instance in the DOM | ||
* A directive links a DOM element with a piece of data, | ||
* which is the result of evaluating an expression. | ||
* It registers a watcher with the expression and calls | ||
* the DOM update function when a change is triggered. | ||
* | ||
* @param {String} name | ||
* @param {Node} el | ||
* @param {Vue} vm | ||
* @param {Object} descriptor | ||
* - {String} expression | ||
* - {String} [arg] | ||
* - {Array<Object>} [filters] | ||
* @param {Object} def - directive definition object | ||
* @param {Function} [linker] - pre-compiled linker function | ||
* @constructor | ||
*/ | ||
function Directive (name, ast, definition, compiler, el) { | ||
this.id = dirId++ | ||
this.name = name | ||
this.compiler = compiler | ||
this.vm = compiler.vm | ||
this.el = el | ||
this.computeFilters = false | ||
this.key = ast.key | ||
this.arg = ast.arg | ||
this.expression = ast.expression | ||
function Directive (name, el, vm, descriptor, def, linker) { | ||
// public | ||
this.name = name | ||
this.el = el | ||
this.vm = vm | ||
// copy descriptor props | ||
this.raw = descriptor.raw | ||
this.expression = descriptor.expression | ||
this.arg = descriptor.arg | ||
this.filters = _.resolveFilters(vm, descriptor.filters) | ||
// private | ||
this._linker = linker | ||
this._locked = false | ||
this._bound = false | ||
// init | ||
this._bind(def) | ||
} | ||
var isEmpty = this.expression === '' | ||
var p = Directive.prototype | ||
// mix in properties from the directive definition | ||
if (typeof definition === 'function') { | ||
this[isEmpty ? 'bind' : 'update'] = definition | ||
} else { | ||
for (var prop in definition) { | ||
this[prop] = definition[prop] | ||
} | ||
} | ||
/** | ||
* Initialize the directive, mixin definition properties, | ||
* setup the watcher, call definition bind() and update() | ||
* if present. | ||
* | ||
* @param {Object} def | ||
*/ | ||
// empty expression, we're done. | ||
if (isEmpty || this.isEmpty) { | ||
this.isEmpty = true | ||
return | ||
p._bind = function (def) { | ||
if (typeof def === 'function') { | ||
this.update = def | ||
} else { | ||
_.extend(this, def) | ||
} | ||
this._watcherExp = this.expression | ||
this._checkDynamicLiteral() | ||
if (this.bind) { | ||
this.bind() | ||
} | ||
if ( | ||
this.expression && this.update && | ||
(!this.isLiteral || this._isDynamicLiteral) && | ||
!this._checkExpFn() | ||
) { | ||
// use raw expression as identifier because filters | ||
// make them different watchers | ||
var watcher = this.vm._watchers[this.raw] | ||
// wrapped updater for context | ||
var dir = this | ||
var update = this._update = function (val, oldVal) { | ||
if (!dir._locked) { | ||
dir.update(val, oldVal) | ||
} | ||
} | ||
if (TextParser.Regex.test(this.key)) { | ||
this.key = compiler.eval(this.key) | ||
if (this.isLiteral) { | ||
this.expression = this.key | ||
} | ||
if (!watcher) { | ||
watcher = this.vm._watchers[this.raw] = new Watcher( | ||
this.vm, | ||
this._watcherExp, | ||
update, // callback | ||
this.filters, | ||
this.twoWay // need setter | ||
) | ||
} else { | ||
watcher.addCb(update) | ||
} | ||
var filters = ast.filters, | ||
filter, fn, i, l, computed | ||
if (filters) { | ||
this.filters = [] | ||
for (i = 0, l = filters.length; i < l; i++) { | ||
filter = filters[i] | ||
fn = this.compiler.getOption('filters', filter.name) | ||
if (fn) { | ||
filter.apply = fn | ||
this.filters.push(filter) | ||
if (fn.computed) { | ||
computed = true | ||
} | ||
} | ||
} | ||
} | ||
if (!this.filters || !this.filters.length) { | ||
this.filters = null | ||
} | ||
if (computed) { | ||
this.computedKey = Directive.inlineFilters(this.key, this.filters) | ||
this.filters = null | ||
} | ||
this.isExp = | ||
computed || | ||
!SINGLE_VAR_RE.test(this.key) || | ||
NESTING_RE.test(this.key) | ||
this._watcher = watcher | ||
this.update(watcher.value) | ||
} | ||
this._bound = true | ||
} | ||
var DirProto = Directive.prototype | ||
/** | ||
* called when a new value is set | ||
* for computed properties, this will only be called once | ||
* during initialization. | ||
* check if this is a dynamic literal binding. | ||
* | ||
* e.g. v-component="{{currentView}}" | ||
*/ | ||
DirProto.$update = function (value, init) { | ||
if (this.$lock) return | ||
if (init || value !== this.value || (value && typeof value === 'object')) { | ||
this.value = value | ||
if (this.update) { | ||
this.update( | ||
this.filters && !this.computeFilters | ||
? this.$applyFilters(value) | ||
: value, | ||
init | ||
) | ||
} | ||
p._checkDynamicLiteral = function () { | ||
var expression = this.expression | ||
if (expression && this.isLiteral) { | ||
var tokens = textParser.parse(expression) | ||
if (tokens) { | ||
var exp = textParser.tokensToExp(tokens) | ||
this.expression = this.vm.$get(exp) | ||
this._watcherExp = exp | ||
this._isDynamicLiteral = true | ||
} | ||
} | ||
} | ||
/** | ||
* pipe the value through filters | ||
* Check if the directive is a function caller | ||
* and if the expression is a callable one. If both true, | ||
* we wrap up the expression and use it as the event | ||
* handler. | ||
* | ||
* e.g. v-on="click: a++" | ||
* | ||
* @return {Boolean} | ||
*/ | ||
DirProto.$applyFilters = function (value) { | ||
var filtered = value, filter | ||
for (var i = 0, l = this.filters.length; i < l; i++) { | ||
filter = this.filters[i] | ||
filtered = filter.apply.apply(this.vm, [filtered].concat(filter.args)) | ||
p._checkExpFn = function () { | ||
var expression = this.expression | ||
if ( | ||
expression && this.isFn && | ||
!expParser.pathTestRE.test(expression) | ||
) { | ||
var fn = expParser.parse(expression).get | ||
var vm = this.vm | ||
var handler = function () { | ||
fn.call(vm, vm) | ||
} | ||
return filtered | ||
if (this.filters) { | ||
handler = _.applyFilters( | ||
handler, | ||
this.filters.read, | ||
vm | ||
) | ||
} | ||
this.update(handler) | ||
return true | ||
} | ||
} | ||
/** | ||
* Unbind diretive | ||
* Teardown the watcher and call unbind. | ||
*/ | ||
DirProto.$unbind = function () { | ||
// this can be called before the el is even assigned... | ||
if (!this.el || !this.vm) return | ||
if (this.unbind) this.unbind() | ||
this.vm = this.el = this.binding = this.compiler = null | ||
} | ||
// Exposed static methods ----------------------------------------------------- | ||
/** | ||
* Parse a directive string into an Array of | ||
* AST-like objects representing directives | ||
*/ | ||
Directive.parse = function (str) { | ||
var inSingle = false, | ||
inDouble = false, | ||
curly = 0, | ||
square = 0, | ||
paren = 0, | ||
begin = 0, | ||
argIndex = 0, | ||
dirs = [], | ||
dir = {}, | ||
lastFilterIndex = 0, | ||
arg | ||
for (var c, i = 0, l = str.length; i < l; i++) { | ||
c = str.charAt(i) | ||
if (inSingle) { | ||
// check single quote | ||
if (c === "'") inSingle = !inSingle | ||
} else if (inDouble) { | ||
// check double quote | ||
if (c === '"') inDouble = !inDouble | ||
} else if (c === ',' && !paren && !curly && !square) { | ||
// reached the end of a directive | ||
pushDir() | ||
// reset & skip the comma | ||
dir = {} | ||
begin = argIndex = lastFilterIndex = i + 1 | ||
} else if (c === ':' && !dir.key && !dir.arg) { | ||
// argument | ||
arg = str.slice(begin, i).trim() | ||
if (ARG_RE.test(arg)) { | ||
argIndex = i + 1 | ||
dir.arg = arg | ||
} | ||
} else if (c === '|' && str.charAt(i + 1) !== '|' && str.charAt(i - 1) !== '|') { | ||
if (dir.key === undefined) { | ||
// first filter, end of key | ||
lastFilterIndex = i + 1 | ||
dir.key = str.slice(argIndex, i).trim() | ||
} else { | ||
// already has filter | ||
pushFilter() | ||
} | ||
} else if (c === '"') { | ||
inDouble = true | ||
} else if (c === "'") { | ||
inSingle = true | ||
} else if (c === '(') { | ||
paren++ | ||
} else if (c === ')') { | ||
paren-- | ||
} else if (c === '[') { | ||
square++ | ||
} else if (c === ']') { | ||
square-- | ||
} else if (c === '{') { | ||
curly++ | ||
} else if (c === '}') { | ||
curly-- | ||
} | ||
p._teardown = function () { | ||
if (this._bound) { | ||
if (this.unbind) { | ||
this.unbind() | ||
} | ||
if (i === 0 || begin !== i) { | ||
pushDir() | ||
var watcher = this._watcher | ||
if (watcher && watcher.active) { | ||
watcher.removeCb(this._update) | ||
if (!watcher.active) { | ||
this.vm._watchers[this.expression] = null | ||
} | ||
} | ||
function pushDir () { | ||
dir.expression = str.slice(begin, i).trim() | ||
if (dir.key === undefined) { | ||
dir.key = str.slice(argIndex, i).trim() | ||
} else if (lastFilterIndex !== begin) { | ||
pushFilter() | ||
} | ||
if (i === 0 || dir.key) { | ||
dirs.push(dir) | ||
} | ||
} | ||
function pushFilter () { | ||
var exp = str.slice(lastFilterIndex, i).trim(), | ||
filter | ||
if (exp) { | ||
filter = {} | ||
var tokens = exp.match(FILTER_TOKEN_RE) | ||
filter.name = tokens[0] | ||
filter.args = tokens.length > 1 ? tokens.slice(1) : null | ||
} | ||
if (filter) { | ||
(dir.filters = dir.filters || []).push(filter) | ||
} | ||
lastFilterIndex = i + 1 | ||
} | ||
return dirs | ||
this._bound = false | ||
this.vm = this.el = this._watcher = null | ||
} | ||
} | ||
/** | ||
* Inline computed filters so they become part | ||
* of the expression | ||
* Set the corresponding value with the setter. | ||
* This should only be used in two-way directives | ||
* e.g. v-model. | ||
* | ||
* @param {*} value | ||
* @param {Boolean} lock - prevent wrtie triggering update. | ||
* @public | ||
*/ | ||
Directive.inlineFilters = function (key, filters) { | ||
var args, filter | ||
for (var i = 0, l = filters.length; i < l; i++) { | ||
filter = filters[i] | ||
args = filter.args | ||
? ',"' + filter.args.map(escapeQuote).join('","') + '"' | ||
: '' | ||
key = 'this.$compiler.getOption("filters", "' + | ||
filter.name + | ||
'").call(this,' + | ||
key + args + | ||
')' | ||
p.set = function (value, lock) { | ||
if (this.twoWay) { | ||
if (lock) { | ||
this._locked = true | ||
} | ||
return key | ||
this._watcher.set(value) | ||
if (lock) { | ||
var self = this | ||
_.nextTick(function () { | ||
self._locked = false | ||
}) | ||
} | ||
} | ||
} | ||
/** | ||
* Convert double quotes to single quotes | ||
* so they don't mess up the generated function body | ||
*/ | ||
function escapeQuote (v) { | ||
return v.indexOf('"') > -1 | ||
? v.replace(QUOTE_RE, '\'') | ||
: v | ||
} | ||
module.exports = Directive |
@@ -1,41 +0,37 @@ | ||
var utils = require('../utils'), | ||
slice = [].slice | ||
var _ = require('../util') | ||
var templateParser = require('../parse/template') | ||
/** | ||
* Binding for innerHTML | ||
*/ | ||
module.exports = { | ||
bind: function () { | ||
// a comment node means this is a binding for | ||
// {{{ inline unescaped html }}} | ||
if (this.el.nodeType === 8) { | ||
// hold nodes | ||
this.nodes = [] | ||
} | ||
}, | ||
bind: function () { | ||
// a comment node means this is a binding for | ||
// {{{ inline unescaped html }}} | ||
if (this.el.nodeType === 8) { | ||
// hold nodes | ||
this.nodes = [] | ||
} | ||
}, | ||
update: function (value) { | ||
value = utils.guard(value) | ||
if (this.nodes) { | ||
this.swap(value) | ||
} else { | ||
this.el.innerHTML = value | ||
} | ||
}, | ||
update: function (value) { | ||
value = _.toString(value) | ||
if (this.nodes) { | ||
this.swap(value) | ||
} else { | ||
this.el.innerHTML = value | ||
} | ||
}, | ||
swap: function (value) { | ||
var parent = this.el.parentNode, | ||
nodes = this.nodes, | ||
i = nodes.length | ||
// remove old nodes | ||
while (i--) { | ||
parent.removeChild(nodes[i]) | ||
} | ||
// convert new value to a fragment | ||
var frag = utils.toFragment(value) | ||
// save a reference to these nodes so we can remove later | ||
this.nodes = slice.call(frag.childNodes) | ||
parent.insertBefore(frag, this.el) | ||
swap: function (value) { | ||
// remove old nodes | ||
var i = this.nodes.length | ||
while (i--) { | ||
_.remove(this.nodes[i]) | ||
} | ||
// convert new value to a fragment | ||
var frag = templateParser.parse(value, true) | ||
// save a reference to these nodes so we can remove later | ||
this.nodes = _.toArray(frag.childNodes) | ||
_.before(frag, this.el) | ||
} | ||
} |
@@ -1,56 +0,52 @@ | ||
var utils = require('../utils') | ||
var _ = require('../util') | ||
var templateParser = require('../parse/template') | ||
/** | ||
* Manages a conditional child VM | ||
*/ | ||
module.exports = { | ||
bind: function () { | ||
this.parent = this.el.parentNode | ||
this.ref = document.createComment('vue-if') | ||
this.Ctor = this.compiler.resolveComponent(this.el) | ||
bind: function () { | ||
var el = this.el | ||
if (!el.__vue__) { | ||
this.ref = document.createComment('v-if') | ||
_.replace(el, this.ref) | ||
this.inserted = false | ||
if (el.tagName === 'TEMPLATE') { | ||
this.el = templateParser.parse(el, true) | ||
} | ||
} else { | ||
this.invalid = true | ||
_.warn( | ||
'v-if="' + this.expression + '" cannot be ' + | ||
'used on an already mounted instance.' | ||
) | ||
} | ||
}, | ||
// insert ref | ||
this.parent.insertBefore(this.ref, this.el) | ||
this.parent.removeChild(this.el) | ||
if (utils.attr(this.el, 'view')) { | ||
utils.warn( | ||
'Conflict: v-if cannot be used together with v-view. ' + | ||
'Just set v-view\'s binding value to empty string to empty it.' | ||
) | ||
update: function (value) { | ||
if (this.invalid) return | ||
if (value) { | ||
if (!this.inserted) { | ||
if (!this.childVM) { | ||
this.childVM = this.vm.$addChild({ | ||
el: this.el, | ||
inherit: true, | ||
_anonymous: true | ||
}) | ||
} | ||
if (utils.attr(this.el, 'repeat')) { | ||
utils.warn( | ||
'Conflict: v-if cannot be used together with v-repeat. ' + | ||
'Use `v-show` or the `filterBy` filter instead.' | ||
) | ||
} | ||
}, | ||
this.childVM.$before(this.ref) | ||
this.inserted = true | ||
} | ||
} else { | ||
if (this.inserted) { | ||
this.childVM.$remove() | ||
this.inserted = false | ||
} | ||
} | ||
}, | ||
update: function (value) { | ||
unbind: function () { | ||
if (this.childVM) { | ||
this.childVM.$destroy() | ||
} | ||
} | ||
if (!value) { | ||
this.unbind() | ||
} else if (!this.childVM) { | ||
this.childVM = new this.Ctor({ | ||
el: this.el.cloneNode(true), | ||
parent: this.vm | ||
}) | ||
if (this.compiler.init) { | ||
this.parent.insertBefore(this.childVM.$el, this.ref) | ||
} else { | ||
this.childVM.$before(this.ref) | ||
} | ||
} | ||
}, | ||
unbind: function () { | ||
if (this.childVM) { | ||
this.childVM.$destroy() | ||
this.childVM = null | ||
} | ||
} | ||
} |
@@ -1,129 +0,22 @@ | ||
var utils = require('../utils'), | ||
config = require('../config'), | ||
transition = require('../transition'), | ||
directives = module.exports = utils.hash() | ||
// manipulation directives | ||
exports.text = require('./text') | ||
exports.html = require('./html') | ||
exports.attr = require('./attr') | ||
exports.show = require('./show') | ||
exports['class'] = require('./class') | ||
exports.el = require('./el') | ||
exports.ref = require('./ref') | ||
exports.cloak = require('./cloak') | ||
exports.style = require('./style') | ||
exports.partial = require('./partial') | ||
exports.transition = require('./transition') | ||
/** | ||
* Nest and manage a Child VM | ||
*/ | ||
directives.component = { | ||
isLiteral: true, | ||
bind: function () { | ||
if (!this.el.vue_vm) { | ||
this.childVM = new this.Ctor({ | ||
el: this.el, | ||
parent: this.vm | ||
}) | ||
} | ||
}, | ||
unbind: function () { | ||
if (this.childVM) { | ||
this.childVM.$destroy() | ||
} | ||
} | ||
} | ||
// event listener directives | ||
exports.on = require('./on') | ||
exports.model = require('./model') | ||
/** | ||
* Binding HTML attributes | ||
*/ | ||
directives.attr = { | ||
bind: function () { | ||
var params = this.vm.$options.paramAttributes | ||
this.isParam = params && params.indexOf(this.arg) > -1 | ||
}, | ||
update: function (value) { | ||
if (value || value === 0) { | ||
this.el.setAttribute(this.arg, value) | ||
} else { | ||
this.el.removeAttribute(this.arg) | ||
} | ||
if (this.isParam) { | ||
this.vm[this.arg] = utils.checkNumber(value) | ||
} | ||
} | ||
} | ||
/** | ||
* Binding textContent | ||
*/ | ||
directives.text = { | ||
bind: function () { | ||
this.attr = this.el.nodeType === 3 | ||
? 'nodeValue' | ||
: 'textContent' | ||
}, | ||
update: function (value) { | ||
this.el[this.attr] = utils.guard(value) | ||
} | ||
} | ||
/** | ||
* Binding CSS display property | ||
*/ | ||
directives.show = function (value) { | ||
var el = this.el, | ||
target = value ? '' : 'none', | ||
change = function () { | ||
el.style.display = target | ||
} | ||
transition(el, value ? 1 : -1, change, this.compiler) | ||
} | ||
/** | ||
* Binding CSS classes | ||
*/ | ||
directives['class'] = function (value) { | ||
if (this.arg) { | ||
utils[value ? 'addClass' : 'removeClass'](this.el, this.arg) | ||
} else { | ||
if (this.lastVal) { | ||
utils.removeClass(this.el, this.lastVal) | ||
} | ||
if (value) { | ||
utils.addClass(this.el, value) | ||
this.lastVal = value | ||
} | ||
} | ||
} | ||
/** | ||
* Only removed after the owner VM is ready | ||
*/ | ||
directives.cloak = { | ||
isEmpty: true, | ||
bind: function () { | ||
var el = this.el | ||
this.compiler.observer.once('hook:ready', function () { | ||
el.removeAttribute(config.prefix + '-cloak') | ||
}) | ||
} | ||
} | ||
/** | ||
* Store a reference to self in parent VM's $ | ||
*/ | ||
directives.ref = { | ||
isLiteral: true, | ||
bind: function () { | ||
var id = this.expression | ||
if (id) { | ||
this.vm.$parent.$[id] = this.vm | ||
} | ||
}, | ||
unbind: function () { | ||
var id = this.expression | ||
if (id) { | ||
delete this.vm.$parent.$[id] | ||
} | ||
} | ||
} | ||
directives.on = require('./on') | ||
directives.repeat = require('./repeat') | ||
directives.model = require('./model') | ||
directives['if'] = require('./if') | ||
directives['with'] = require('./with') | ||
directives.html = require('./html') | ||
directives.style = require('./style') | ||
directives.partial = require('./partial') | ||
directives.view = require('./view') | ||
// child vm directives | ||
exports.component = require('./component') | ||
exports.repeat = require('./repeat') | ||
exports['if'] = require('./if') | ||
exports['with'] = require('./with') |
@@ -1,58 +0,60 @@ | ||
var utils = require('../utils') | ||
var _ = require('../util') | ||
/** | ||
* Binding for event listeners | ||
*/ | ||
module.exports = { | ||
isFn: true, | ||
isFn: true, | ||
priority: 700, | ||
bind: function () { | ||
this.context = this.binding.isExp | ||
? this.vm | ||
: this.binding.compiler.vm | ||
if (this.el.tagName === 'IFRAME' && this.arg !== 'load') { | ||
var self = this | ||
this.iframeBind = function () { | ||
self.el.contentWindow.addEventListener(self.arg, self.handler) | ||
} | ||
this.el.addEventListener('load', this.iframeBind) | ||
} | ||
}, | ||
bind: function () { | ||
// deal with iframes | ||
if ( | ||
this.el.tagName === 'IFRAME' && | ||
this.arg !== 'load' | ||
) { | ||
var self = this | ||
this.iframeBind = function () { | ||
_.on(self.el.contentWindow, self.arg, self.handler) | ||
} | ||
_.on(this.el, 'load', this.iframeBind) | ||
} | ||
}, | ||
update: function (handler) { | ||
if (typeof handler !== 'function') { | ||
utils.warn('Directive "v-on:' + this.expression + '" expects a method.') | ||
return | ||
} | ||
this.reset() | ||
var vm = this.vm, | ||
context = this.context | ||
this.handler = function (e) { | ||
e.targetVM = vm | ||
context.$event = e | ||
var res = handler.call(context, e) | ||
context.$event = null | ||
return res | ||
} | ||
if (this.iframeBind) { | ||
this.iframeBind() | ||
} else { | ||
this.el.addEventListener(this.arg, this.handler) | ||
} | ||
}, | ||
update: function (handler) { | ||
if (typeof handler !== 'function') { | ||
_.warn( | ||
'Directive "v-on:' + this.expression + '" ' + | ||
'expects a function value.' | ||
) | ||
return | ||
} | ||
this.reset() | ||
var vm = this.vm | ||
var root = vm.$root | ||
this.handler = function (e) { | ||
e.targetVM = vm | ||
root.$event = e | ||
var res = handler(e) | ||
root.$event = null | ||
return res | ||
} | ||
if (this.iframeBind) { | ||
this.iframeBind() | ||
} else { | ||
_.on(this.el, this.arg, this.handler) | ||
} | ||
}, | ||
reset: function () { | ||
var el = this.iframeBind | ||
? this.el.contentWindow | ||
: this.el | ||
if (this.handler) { | ||
el.removeEventListener(this.arg, this.handler) | ||
} | ||
}, | ||
reset: function () { | ||
var el = this.iframeBind | ||
? this.el.contentWindow | ||
: this.el | ||
if (this.handler) { | ||
_.off(el, this.arg, this.handler) | ||
} | ||
}, | ||
unbind: function () { | ||
this.reset() | ||
this.el.removeEventListener('load', this.iframeBind) | ||
} | ||
unbind: function () { | ||
this.reset() | ||
_.off(this.el, 'load', this.iframeBind) | ||
} | ||
} |
@@ -1,50 +0,31 @@ | ||
var utils = require('../utils') | ||
var _ = require('../util') | ||
var compile = require('../compile/compile') | ||
var templateParser = require('../parse/template') | ||
/** | ||
* Binding for partials | ||
*/ | ||
module.exports = { | ||
isLiteral: true, | ||
isLiteral: true, | ||
bind: function () { | ||
var id = this.expression | ||
if (!id) return | ||
var el = this.el, | ||
compiler = this.compiler, | ||
partial = compiler.getOption('partials', id) | ||
if (!partial) { | ||
if (id === 'yield') { | ||
utils.warn('{{>yield}} syntax has been deprecated. Use <content> tag instead.') | ||
} | ||
return | ||
} | ||
partial = partial.cloneNode(true) | ||
// comment ref node means inline partial | ||
if (el.nodeType === 8) { | ||
// keep a ref for the partial's content nodes | ||
var nodes = [].slice.call(partial.childNodes), | ||
parent = el.parentNode | ||
parent.insertBefore(partial, el) | ||
parent.removeChild(el) | ||
// compile partial after appending, because its children's parentNode | ||
// will change from the fragment to the correct parentNode. | ||
// This could affect directives that need access to its element's parentNode. | ||
nodes.forEach(compiler.compile, compiler) | ||
} else { | ||
// just set innerHTML... | ||
el.innerHTML = '' | ||
el.appendChild(partial) | ||
} | ||
bind: function () { | ||
var id = this.expression | ||
var partial = this.vm.$options.partials[id] | ||
_.assertAsset(partial, 'partial', id) | ||
if (!partial) { | ||
return | ||
} | ||
partial = templateParser.parse(partial, true) | ||
var el = this.el | ||
var vm = this.vm | ||
if (el.nodeType === 8) { | ||
// comment ref node means inline partial | ||
compile(partial, vm.$options)(vm, partial) | ||
_.replace(el, partial) | ||
} else { | ||
// just set innerHTML... | ||
el.innerHTML = '' | ||
el.appendChild(partial) | ||
compile(el, vm.$options, true)(vm, el) | ||
} | ||
} | ||
} |
@@ -1,246 +0,489 @@ | ||
var utils = require('../utils'), | ||
config = require('../config') | ||
var _ = require('../util') | ||
var isObject = _.isObject | ||
var textParser = require('../parse/text') | ||
var expParser = require('../parse/expression') | ||
var templateParser = require('../parse/template') | ||
var compile = require('../compile/compile') | ||
var transclude = require('../compile/transclude') | ||
var mergeOptions = require('../util/merge-option') | ||
var uid = 0 | ||
/** | ||
* Binding that manages VMs based on an Array | ||
*/ | ||
module.exports = { | ||
bind: function () { | ||
/** | ||
* Setup. | ||
*/ | ||
this.identifier = '$r' + this.id | ||
bind: function () { | ||
// uid as a cache identifier | ||
this.id = '__v_repeat_' + (++uid) | ||
// we need to insert the objToArray converter | ||
// as the first read filter. | ||
if (!this.filters) { | ||
this.filters = {} | ||
} | ||
if (!this.filters.read) { | ||
this.filters.read = [objToArray] | ||
} else { | ||
this.filters.read.unshift(objToArray) | ||
} | ||
// setup ref node | ||
this.ref = document.createComment('v-repeat') | ||
_.replace(this.el, this.ref) | ||
// check if this is a block repeat | ||
this.template = this.el.tagName === 'TEMPLATE' | ||
? templateParser.parse(this.el, true) | ||
: this.el | ||
// check other directives that need to be handled | ||
// at v-repeat level | ||
this.checkIf() | ||
this.checkRef() | ||
this.checkTrackById() | ||
this.checkComponent() | ||
// cache for primitive value instances | ||
this.cache = Object.create(null) | ||
}, | ||
// a hash to cache the same expressions on repeated instances | ||
// so they don't have to be compiled for every single instance | ||
this.expCache = utils.hash() | ||
/** | ||
* Warn against v-if usage. | ||
*/ | ||
var el = this.el, | ||
ctn = this.container = el.parentNode | ||
checkIf: function () { | ||
if (_.attr(this.el, 'if') !== null) { | ||
_.warn( | ||
'Don\'t use v-if with v-repeat. ' + | ||
'Use v-show or the "filterBy" filter instead.' | ||
) | ||
} | ||
}, | ||
// extract child Id, if any | ||
this.childId = this.compiler.eval(utils.attr(el, 'ref')) | ||
/** | ||
* Check if v-ref/ v-el is also present. | ||
*/ | ||
// create a comment node as a reference node for DOM insertions | ||
this.ref = document.createComment(config.prefix + '-repeat-' + this.key) | ||
ctn.insertBefore(this.ref, el) | ||
ctn.removeChild(el) | ||
checkRef: function () { | ||
this.owner = this.vm._owner | ||
var childId = _.attr(this.el, 'ref') | ||
this.childId = childId | ||
? this.vm.$interpolate(childId) | ||
: null | ||
var elId = _.attr(this.el, 'el') | ||
this.elId = elId | ||
? this.vm.$interpolate(elId) | ||
: null | ||
}, | ||
this.collection = null | ||
this.vms = null | ||
/** | ||
* Check for a track-by ID, which allows us to identify | ||
* a piece of data and its associated instance by its | ||
* unique id. | ||
*/ | ||
}, | ||
checkTrackById: function () { | ||
this.idKey = this.el.getAttribute('trackby') | ||
if (this.idKey !== null) { | ||
this.el.removeAttribute('trackby') | ||
} | ||
}, | ||
update: function (collection) { | ||
/** | ||
* Check the component constructor to use for repeated | ||
* instances. If static we resolve it now, otherwise it | ||
* needs to be resolved at build time with actual data. | ||
*/ | ||
if (!Array.isArray(collection)) { | ||
if (utils.isObject(collection)) { | ||
collection = utils.objectToArray(collection) | ||
} else { | ||
utils.warn('v-repeat only accepts Array or Object values.') | ||
} | ||
checkComponent: function () { | ||
var id = _.attr(this.el, 'component') | ||
if (!id) { | ||
this.Ctor = _.Vue // default constructor | ||
this.inherit = true // inline repeats should inherit | ||
this._linker = compile(this.template, this.vm.$options) | ||
} else { | ||
var tokens = textParser.parse(id) | ||
if (!tokens) { // static component | ||
var Ctor = this.Ctor = this.vm.$options.components[id] | ||
_.assertAsset(Ctor, 'component', id) | ||
if (Ctor) { | ||
// merge an empty object with owner vm as parent | ||
// so child vms can access parent assets. | ||
var merged = mergeOptions( | ||
Ctor.options, | ||
{}, | ||
{ $parent: this.vm } | ||
) | ||
this.template = transclude(this.template, merged) | ||
this._linker = compile(this.template, merged) | ||
} | ||
} else { | ||
// to be resolved later | ||
var ctorExp = textParser.tokensToExp(tokens) | ||
this.ctorGetter = expParser.parse(ctorExp).get | ||
} | ||
} | ||
}, | ||
// keep reference of old data and VMs | ||
// so we can reuse them if possible | ||
this.oldVMs = this.vms | ||
this.oldCollection = this.collection | ||
collection = this.collection = collection || [] | ||
/** | ||
* Update. | ||
* This is called whenever the Array mutates. | ||
* | ||
* @param {Array} data | ||
*/ | ||
var isObject = collection[0] && utils.isObject(collection[0]) | ||
this.vms = this.oldCollection | ||
? this.diff(collection, isObject) | ||
: this.init(collection, isObject) | ||
update: function (data) { | ||
if (typeof data === 'number') { | ||
data = range(data) | ||
} | ||
this.converted = data && data._converted | ||
this.vms = this.diff(data || [], this.vms) | ||
// update v-ref | ||
if (this.childId) { | ||
this.owner.$[this.childId] = this.vms | ||
} | ||
if (this.elId) { | ||
this.owner.$$[this.elId] = this.vms.map(function (vm) { | ||
return vm.$el | ||
}) | ||
} | ||
}, | ||
if (this.childId) { | ||
this.vm.$[this.childId] = this.vms | ||
} | ||
/** | ||
* Diff, based on new data and old data, determine the | ||
* minimum amount of DOM manipulations needed to make the | ||
* DOM reflect the new data Array. | ||
* | ||
* The algorithm diffs the new data Array by storing a | ||
* hidden reference to an owner vm instance on previously | ||
* seen data. This allows us to achieve O(n) which is | ||
* better than a levenshtein distance based algorithm, | ||
* which is O(m * n). | ||
* | ||
* @param {Array} data | ||
* @param {Array} oldVms | ||
* @return {Array} | ||
*/ | ||
}, | ||
init: function (collection, isObject) { | ||
var vm, vms = [] | ||
for (var i = 0, l = collection.length; i < l; i++) { | ||
vm = this.build(collection[i], i, isObject) | ||
vms.push(vm) | ||
if (this.compiler.init) { | ||
this.container.insertBefore(vm.$el, this.ref) | ||
} else { | ||
vm.$before(this.ref) | ||
} | ||
diff: function (data, oldVms) { | ||
var idKey = this.idKey | ||
var converted = this.converted | ||
var ref = this.ref | ||
var alias = this.arg | ||
var init = !oldVms | ||
var vms = new Array(data.length) | ||
var obj, raw, vm, i, l | ||
// First pass, go through the new Array and fill up | ||
// the new vms array. If a piece of data has a cached | ||
// instance for it, we reuse it. Otherwise build a new | ||
// instance. | ||
for (i = 0, l = data.length; i < l; i++) { | ||
obj = data[i] | ||
raw = converted ? obj.value : obj | ||
vm = !init && this.getVm(raw) | ||
if (vm) { // reusable instance | ||
vm._reused = true | ||
vm.$index = i // update $index | ||
if (converted) { | ||
vm.$key = obj.key // update $key | ||
} | ||
return vms | ||
}, | ||
if (idKey) { // swap track by id data | ||
if (alias) { | ||
vm[alias] = raw | ||
} else { | ||
vm._setData(raw) | ||
} | ||
} | ||
} else { // new instance | ||
vm = this.build(obj, i) | ||
} | ||
vms[i] = vm | ||
// insert if this is first run | ||
if (init) { | ||
vm.$before(ref) | ||
} | ||
} | ||
// if this is the first run, we're done. | ||
if (init) { | ||
return vms | ||
} | ||
// Second pass, go through the old vm instances and | ||
// destroy those who are not reused (and remove them | ||
// from cache) | ||
for (i = 0, l = oldVms.length; i < l; i++) { | ||
vm = oldVms[i] | ||
if (!vm._reused) { | ||
this.uncacheVm(vm) | ||
vm.$destroy(true) | ||
} | ||
} | ||
// final pass, move/insert new instances into the | ||
// right place. We're going in reverse here because | ||
// insertBefore relies on the next sibling to be | ||
// resolved. | ||
var targetNext, currentNext | ||
i = vms.length | ||
while (i--) { | ||
vm = vms[i] | ||
// this is the vm that we should be in front of | ||
targetNext = vms[i + 1] | ||
if (!targetNext) { | ||
// This is the last item. If it's reused then | ||
// everything else will eventually be in the right | ||
// place, so no need to touch it. Otherwise, insert | ||
// it. | ||
if (!vm._reused) { | ||
vm.$before(ref) | ||
} | ||
} else { | ||
if (vm._reused) { | ||
// this is the vm we are actually in front of | ||
currentNext = findNextVm(vm, ref) | ||
// we only need to move if we are not in the right | ||
// place already. | ||
if (currentNext !== targetNext) { | ||
vm.$before(targetNext.$el, null, false) | ||
} | ||
} else { | ||
// new instance, insert to existing next | ||
vm.$before(targetNext.$el) | ||
} | ||
} | ||
vm._reused = false | ||
} | ||
return vms | ||
}, | ||
/** | ||
* Diff the new array with the old | ||
* and determine the minimum amount of DOM manipulations. | ||
*/ | ||
diff: function (newCollection, isObject) { | ||
/** | ||
* Build a new instance and cache it. | ||
* | ||
* @param {Object} data | ||
* @param {Number} index | ||
*/ | ||
var i, l, item, vm, | ||
oldIndex, | ||
targetNext, | ||
currentNext, | ||
nextEl, | ||
ctn = this.container, | ||
oldVMs = this.oldVMs, | ||
vms = [] | ||
build: function (data, index) { | ||
var original = data | ||
var meta = { $index: index } | ||
if (this.converted) { | ||
meta.$key = original.key | ||
} | ||
var raw = this.converted ? data.value : data | ||
var alias = this.arg | ||
var hasAlias = !isObject(raw) || alias | ||
// wrap the raw data with alias | ||
data = hasAlias ? {} : raw | ||
if (alias) { | ||
data[alias] = raw | ||
} else if (hasAlias) { | ||
meta.$value = raw | ||
} | ||
// resolve constructor | ||
var Ctor = this.Ctor || this.resolveCtor(data) | ||
var vm = this.vm.$addChild({ | ||
el: this.template.cloneNode(true), | ||
_linker: this._linker, | ||
_meta: meta, | ||
data: data, | ||
inherit: this.inherit | ||
}, Ctor) | ||
// cache instance | ||
this.cacheVm(raw, vm) | ||
return vm | ||
}, | ||
vms.length = newCollection.length | ||
/** | ||
* Resolve a contructor to use for an instance. | ||
* The tricky part here is that there could be dynamic | ||
* components depending on instance data. | ||
* | ||
* @param {Object} data | ||
* @return {Function} | ||
*/ | ||
// first pass, collect new reused and new created | ||
for (i = 0, l = newCollection.length; i < l; i++) { | ||
item = newCollection[i] | ||
if (isObject) { | ||
item.$index = i | ||
if (item.__emitter__ && item.__emitter__[this.identifier]) { | ||
// this piece of data is being reused. | ||
// record its final position in reused vms | ||
item.$reused = true | ||
} else { | ||
vms[i] = this.build(item, i, isObject) | ||
} | ||
} else { | ||
// we can't attach an identifier to primitive values | ||
// so have to do an indexOf... | ||
oldIndex = indexOf(oldVMs, item) | ||
if (oldIndex > -1) { | ||
// record the position on the existing vm | ||
oldVMs[oldIndex].$reused = true | ||
oldVMs[oldIndex].$data.$index = i | ||
} else { | ||
vms[i] = this.build(item, i, isObject) | ||
} | ||
} | ||
} | ||
resolveCtor: function (data) { | ||
var context = Object.create(this.vm) | ||
for (var key in data) { | ||
// use _.define to avoid accidentally | ||
// overwriting scope properties | ||
_.define(context, key, data[key]) | ||
} | ||
var id = this.ctorGetter.call(context, context) | ||
var Ctor = this.vm.$options.components[id] | ||
_.assertAsset(Ctor, 'component', id) | ||
return Ctor | ||
}, | ||
// second pass, collect old reused and destroy unused | ||
for (i = 0, l = oldVMs.length; i < l; i++) { | ||
vm = oldVMs[i] | ||
item = this.arg | ||
? vm.$data[this.arg] | ||
: vm.$data | ||
if (item.$reused) { | ||
vm.$reused = true | ||
delete item.$reused | ||
} | ||
if (vm.$reused) { | ||
// update the index to latest | ||
vm.$index = item.$index | ||
// the item could have had a new key | ||
if (item.$key && item.$key !== vm.$key) { | ||
vm.$key = item.$key | ||
} | ||
vms[vm.$index] = vm | ||
} else { | ||
// this one can be destroyed. | ||
if (item.__emitter__) { | ||
delete item.__emitter__[this.identifier] | ||
} | ||
vm.$destroy() | ||
} | ||
} | ||
/** | ||
* Unbind, teardown everything | ||
*/ | ||
// final pass, move/insert DOM elements | ||
i = vms.length | ||
while (i--) { | ||
vm = vms[i] | ||
item = vm.$data | ||
targetNext = vms[i + 1] | ||
if (vm.$reused) { | ||
nextEl = vm.$el.nextSibling | ||
// destroyed VMs' element might still be in the DOM | ||
// due to transitions | ||
while (!nextEl.vue_vm && nextEl !== this.ref) { | ||
nextEl = nextEl.nextSibling | ||
} | ||
currentNext = nextEl.vue_vm | ||
if (currentNext !== targetNext) { | ||
if (!targetNext) { | ||
ctn.insertBefore(vm.$el, this.ref) | ||
} else { | ||
nextEl = targetNext.$el | ||
// new VMs' element might not be in the DOM yet | ||
// due to transitions | ||
while (!nextEl.parentNode) { | ||
targetNext = vms[nextEl.vue_vm.$index + 1] | ||
nextEl = targetNext | ||
? targetNext.$el | ||
: this.ref | ||
} | ||
ctn.insertBefore(vm.$el, nextEl) | ||
} | ||
} | ||
delete vm.$reused | ||
delete item.$index | ||
delete item.$key | ||
} else { // a new vm | ||
vm.$before(targetNext ? targetNext.$el : this.ref) | ||
} | ||
} | ||
unbind: function () { | ||
if (this.childId) { | ||
delete this.owner.$[this.childId] | ||
} | ||
if (this.vms) { | ||
var i = this.vms.length | ||
var vm | ||
while (i--) { | ||
vm = this.vms[i] | ||
this.uncacheVm(vm) | ||
vm.$destroy() | ||
} | ||
} | ||
}, | ||
return vms | ||
}, | ||
/** | ||
* Cache a vm instance based on its data. | ||
* | ||
* If the data is an object, we save the vm's reference on | ||
* the data object as a hidden property. Otherwise we | ||
* cache them in an object and for each primitive value | ||
* there is an array in case there are duplicates. | ||
* | ||
* @param {Object} data | ||
* @param {Vue} vm | ||
*/ | ||
build: function (data, index, isObject) { | ||
// wrap non-object values | ||
var raw, alias, | ||
wrap = !isObject || this.arg | ||
if (wrap) { | ||
raw = data | ||
alias = this.arg || '$value' | ||
data = {} | ||
data[alias] = raw | ||
cacheVm: function (data, vm) { | ||
var idKey = this.idKey | ||
var cache = this.cache | ||
var id | ||
if (idKey) { | ||
id = data[idKey] | ||
if (!cache[id]) { | ||
cache[id] = vm | ||
} else { | ||
_.warn('Duplicate ID in v-repeat: ' + id) | ||
} | ||
} else if (isObject(data)) { | ||
id = this.id | ||
if (data.hasOwnProperty(id)) { | ||
if (data[id] === null) { | ||
data[id] = vm | ||
} else { | ||
_.warn( | ||
'Duplicate objects are not supported in v-repeat.' | ||
) | ||
} | ||
data.$index = index | ||
} else { | ||
_.define(data, this.id, vm) | ||
} | ||
} else { | ||
if (!cache[data]) { | ||
cache[data] = [vm] | ||
} else { | ||
cache[data].push(vm) | ||
} | ||
} | ||
vm._raw = data | ||
}, | ||
var el = this.el.cloneNode(true), | ||
Ctor = this.compiler.resolveComponent(el, data), | ||
vm = new Ctor({ | ||
el: el, | ||
data: data, | ||
parent: this.vm, | ||
compilerOptions: { | ||
repeat: true, | ||
expCache: this.expCache | ||
} | ||
}) | ||
/** | ||
* Try to get a cached instance from a piece of data. | ||
* | ||
* @param {Object} data | ||
* @return {Vue|undefined} | ||
*/ | ||
if (isObject) { | ||
// attach an ienumerable identifier to the raw data | ||
(raw || data).__emitter__[this.identifier] = true | ||
getVm: function (data) { | ||
if (this.idKey) { | ||
return this.cache[data[this.idKey]] | ||
} else if (isObject(data)) { | ||
return data[this.id] | ||
} else { | ||
var cached = this.cache[data] | ||
if (cached) { | ||
var i = 0 | ||
var vm = cached[i] | ||
// since duplicated vm instances might be reused | ||
// already, we need to return the first non-reused | ||
// instance. | ||
while (vm && vm._reused) { | ||
vm = cached[++i] | ||
} | ||
return vm | ||
} | ||
} | ||
}, | ||
}, | ||
/** | ||
* Delete a cached vm instance. | ||
* | ||
* @param {Vue} vm | ||
*/ | ||
unbind: function () { | ||
if (this.childId) { | ||
delete this.vm.$[this.childId] | ||
} | ||
if (this.vms) { | ||
var i = this.vms.length | ||
while (i--) { | ||
this.vms[i].$destroy() | ||
} | ||
} | ||
uncacheVm: function (vm) { | ||
var data = vm._raw | ||
if (this.idKey) { | ||
this.cache[data[this.idKey]] = null | ||
} else if (isObject(data)) { | ||
data[this.id] = null | ||
vm._raw = null | ||
} else { | ||
this.cache[data].pop() | ||
} | ||
} | ||
} | ||
// Helpers -------------------------------------------------------------------- | ||
/** | ||
* Helper to find the next element that is an instance | ||
* root node. This is necessary because a destroyed vm's | ||
* element could still be lingering in the DOM before its | ||
* leaving transition finishes, but its __vue__ reference | ||
* should have been removed so we can skip them. | ||
* | ||
* @param {Vue} vm | ||
* @param {CommentNode} ref | ||
* @return {Vue} | ||
*/ | ||
function findNextVm (vm, ref) { | ||
var el = (vm._blockEnd || vm.$el).nextSibling | ||
while (!el.__vue__ && el !== ref) { | ||
el = el.nextSibling | ||
} | ||
return el.__vue__ | ||
} | ||
/** | ||
* Find an object or a wrapped data object | ||
* from an Array | ||
* Attempt to convert non-Array objects to array. | ||
* This is the default filter installed to every v-repeat | ||
* directive. | ||
* | ||
* @param {*} obj | ||
* @return {Array} | ||
* @private | ||
*/ | ||
function indexOf (vms, obj) { | ||
for (var vm, i = 0, l = vms.length; i < l; i++) { | ||
vm = vms[i] | ||
if (!vm.$reused && vm.$value === obj) { | ||
return i | ||
} | ||
function objToArray (obj) { | ||
if (!_.isPlainObject(obj)) { | ||
return obj | ||
} | ||
var keys = Object.keys(obj) | ||
var i = keys.length | ||
var res = new Array(i) | ||
var key | ||
while (i--) { | ||
key = keys[i] | ||
res[i] = { | ||
key: key, | ||
value: obj[key] | ||
} | ||
return -1 | ||
} | ||
res._converted = true | ||
return res | ||
} | ||
/** | ||
* Create a range array from given number. | ||
* | ||
* @param {Number} n | ||
* @return {Array} | ||
*/ | ||
function range (n) { | ||
var i = -1 | ||
var ret = new Array(n) | ||
while (++i < n) { | ||
ret[i] = i | ||
} | ||
return ret | ||
} |
var prefixes = ['-webkit-', '-moz-', '-ms-'] | ||
var importantRE = /!important;?$/ | ||
/** | ||
* Binding for CSS styles | ||
*/ | ||
module.exports = { | ||
bind: function () { | ||
var prop = this.arg | ||
if (!prop) return | ||
if (prop.charAt(0) === '$') { | ||
// properties that start with $ will be auto-prefixed | ||
prop = prop.slice(1) | ||
this.prefixed = true | ||
} | ||
this.prop = prop | ||
}, | ||
bind: function () { | ||
var prop = this.arg | ||
if (!prop) return | ||
if (prop.charAt(0) === '$') { | ||
// properties that start with $ will be auto-prefixed | ||
prop = prop.slice(1) | ||
this.prefixed = true | ||
} | ||
this.prop = prop | ||
}, | ||
update: function (value) { | ||
var prop = this.prop, | ||
update: function (value) { | ||
var prop = this.prop | ||
// cast possible numbers/booleans into strings | ||
if (value != null) { | ||
value += '' | ||
} | ||
if (prop) { | ||
var isImportant = importantRE.test(value) | ||
? 'important' | ||
: '' | ||
if (isImportant) { | ||
value = value.replace(importantRE, '').trim() | ||
} | ||
this.el.style.setProperty(prop, value, isImportant) | ||
if (this.prefixed) { | ||
var i = prefixes.length | ||
while (i--) { | ||
this.el.style.setProperty( | ||
prefixes[i] + prop, | ||
value, | ||
isImportant | ||
/* jshint eqeqeq: true */ | ||
// cast possible numbers/booleans into strings | ||
if (value != null) value += '' | ||
if (prop) { | ||
if (value) { | ||
isImportant = value.slice(-10) === '!important' | ||
? 'important' | ||
: '' | ||
if (isImportant) { | ||
value = value.slice(0, -10).trim() | ||
} | ||
} | ||
this.el.style.setProperty(prop, value, isImportant) | ||
if (this.prefixed) { | ||
var i = prefixes.length | ||
while (i--) { | ||
this.el.style.setProperty(prefixes[i] + prop, value, isImportant) | ||
} | ||
} | ||
} else { | ||
this.el.style.cssText = value | ||
) | ||
} | ||
} | ||
} else { | ||
this.el.style.cssText = value | ||
} | ||
} | ||
} |
@@ -1,50 +0,47 @@ | ||
var utils = require('../utils') | ||
var _ = require('../util') | ||
var Watcher = require('../watcher') | ||
/** | ||
* Binding for inheriting data from parent VMs. | ||
*/ | ||
module.exports = { | ||
bind: function () { | ||
priority: 900, | ||
var self = this, | ||
childKey = self.arg, | ||
parentKey = self.key, | ||
compiler = self.compiler, | ||
owner = self.binding.compiler | ||
if (compiler === owner) { | ||
this.alone = true | ||
return | ||
} | ||
if (childKey) { | ||
if (!compiler.bindings[childKey]) { | ||
compiler.createBinding(childKey) | ||
bind: function () { | ||
var vm = this.vm | ||
if (this.el !== vm.$el) { | ||
_.warn( | ||
'v-with can only be used on instance root elements.' | ||
) | ||
} else if (!vm.$parent) { | ||
_.warn( | ||
'v-with must be used on an instance with a parent.' | ||
) | ||
} else { | ||
var key = this.arg | ||
this.watcher = new Watcher( | ||
vm.$parent, | ||
this.expression, | ||
key | ||
? function (val) { | ||
vm.$set(key, val) | ||
} | ||
// sync changes on child back to parent | ||
compiler.observer.on('change:' + childKey, function (val) { | ||
if (compiler.init) return | ||
if (!self.lock) { | ||
self.lock = true | ||
utils.nextTick(function () { | ||
self.lock = false | ||
}) | ||
} | ||
owner.vm.$set(parentKey, val) | ||
}) | ||
} | ||
}, | ||
update: function (value) { | ||
// sync from parent | ||
if (!this.alone && !this.lock) { | ||
if (this.arg) { | ||
this.vm.$set(this.arg, value) | ||
} else if (this.vm.$data !== value) { | ||
this.vm.$data = value | ||
: function (val) { | ||
vm.$data = val | ||
} | ||
} | ||
) | ||
// initial set | ||
var initialVal = this.watcher.value | ||
if (key) { | ||
vm.$set(key, initialVal) | ||
} else { | ||
vm.$data = initialVal | ||
} | ||
} | ||
}, | ||
unbind: function () { | ||
if (this.watcher) { | ||
this.watcher.teardown() | ||
} | ||
} | ||
} |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Native code
Supply chain riskContains native code (e.g., compiled binaries or shared libraries). Including native code can obscure malicious behavior.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
381226
18
69
12844
0
61
10