diff --git a/bower.json b/bower.json index 82e8794a1bb..f1ae90d026f 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "vue", - "version": "0.8.8", + "version": "0.9.0", "main": "dist/vue.js", "description": "Simple, Fast & Composable MVVM for building interative interfaces", "authors": ["Evan You "], diff --git a/component.json b/component.json index e44e27d9d82..ac2ec4f00e1 100644 --- a/component.json +++ b/component.json @@ -1,6 +1,6 @@ { "name": "vue", - "version": "0.8.8", + "version": "0.9.0", "main": "src/main.js", "author": "Evan You ", "description": "Simple, Fast & Composable MVVM for building interative interfaces", diff --git a/dist/vue.js b/dist/vue.js index 6bf4ff787b0..f1a3e6b82ea 100644 --- a/dist/vue.js +++ b/dist/vue.js @@ -1,5 +1,5 @@ /* - Vue.js v0.8.8 + Vue.js v0.9.0 (c) 2014 Evan You License: MIT */ @@ -211,7 +211,7 @@ var config = require('./config'), ViewModel = require('./viewmodel'), utils = require('./utils'), makeHash = utils.hash, - assetTypes = ['directive', 'filter', 'partial', 'transition', 'component'] + assetTypes = ['directive', 'filter', 'partial', 'effect', 'component'] // require these so Browserify can catch them // so they can be used in Vue.require @@ -222,7 +222,7 @@ ViewModel.options = config.globalAssets = { directives : require('./directives'), filters : require('./filters'), partials : makeHash(), - transitions : makeHash(), + effects : makeHash(), components : makeHash() } @@ -477,7 +477,9 @@ var prefix = 'v', 'repeat', 'partial', 'component', - 'transition' + 'animation', + 'transition', + 'effect' ], config = module.exports = { @@ -938,6 +940,7 @@ CompilerProto.setupObserver = function () { // a hash to hold event proxies for each root level key // so they can be referenced and removed later observer.proxies = makeHash() + observer._ctx = compiler.vm // add own listeners which trigger binding updates observer @@ -1080,8 +1083,10 @@ CompilerProto.compile = function (node, root) { } else { - // check transition property - node.vue_trans = utils.attr(node, 'transition') + // check transition & animation properties + node.vue_trans = utils.attr(node, 'transition') + node.vue_anim = utils.attr(node, 'animation') + node.vue_effect = utils.attr(node, 'effect') // replace innerHTML with partial partialId = utils.attr(node, 'partial') @@ -1565,8 +1570,14 @@ require.register("vue/src/viewmodel.js", function(exports, require, module){ var Compiler = require('./compiler'), utils = require('./utils'), transition = require('./transition'), + Batcher = require('./batcher'), + slice = [].slice, def = utils.defProtected, - nextTick = utils.nextTick + nextTick = utils.nextTick, + + // batch $watch callbacks + watcherBatcher = new Batcher(), + watcherId = 1 /** * ViewModel exposed to the user that holds data, @@ -1600,11 +1611,17 @@ def(VMProto, '$set', function (key, value) { * fire callback with new value */ def(VMProto, '$watch', function (key, callback) { - var self = this + // save a unique id for each watcher + var id = watcherId++, + self = this function on () { - var args = arguments - utils.nextTick(function () { - callback.apply(self, args) + var args = slice.call(arguments) + watcherBatcher.push({ + id: id, + override: true, + execute: function () { + callback.apply(self, args) + } }) } callback._fn = on @@ -1725,8 +1742,9 @@ function query (el) { module.exports = ViewModel }); require.register("vue/src/binding.js", function(exports, require, module){ -var batcher = require('./batcher'), - id = 0 +var Batcher = require('./batcher'), + bindingBatcher = new Batcher(), + bindingId = 1 /** * Binding class. @@ -1736,7 +1754,7 @@ var batcher = require('./batcher'), * and multiple computed property dependents */ function Binding (compiler, key, isExp, isFn) { - this.id = id++ + this.id = bindingId++ this.value = undefined this.isExp = !!isExp this.isFn = isFn @@ -1759,7 +1777,17 @@ BindingProto.update = function (value) { this.value = value } if (this.dirs.length || this.subs.length) { - batcher.queue(this) + var self = this + bindingBatcher.push({ + id: this.id, + execute: function () { + if (!self.unbound) { + self._update() + } else { + return false + } + } + }) } } @@ -2726,8 +2754,14 @@ module.exports = { } }); require.register("vue/src/transition.js", function(exports, require, module){ -var endEvent = sniffTransitionEndEvent(), +var endEvents = sniffEndEvents(), config = require('./config'), + // batch enter animations so we only force the layout once + Batcher = require('./batcher'), + batcher = new Batcher(), + // cache timer functions + setTO = window.setTimeout, + clearTO = window.clearTimeout, // exit codes for testing codes = { CSS_E : 1, @@ -2759,21 +2793,24 @@ var transition = module.exports = function (el, stage, cb, compiler) { return codes.INIT } - var transitionId = el.vue_trans + var hasTransition = el.vue_trans === '', + hasAnimation = el.vue_anim === '', + effectId = el.vue_effect - if (transitionId) { + if (effectId) { return applyTransitionFunctions( el, stage, changeState, - transitionId, + effectId, compiler ) - } else if (transitionId === '') { + } else if (hasTransition || hasAnimation) { return applyTransitionClass( el, stage, - changeState + changeState, + hasAnimation ) } else { changeState() @@ -2787,50 +2824,68 @@ transition.codes = codes /** * Togggle a CSS class to trigger transition */ -function applyTransitionClass (el, stage, changeState) { +function applyTransitionClass (el, stage, changeState, hasAnimation) { - if (!endEvent) { + if (!endEvents.trans) { changeState() return codes.CSS_SKIP } // if the browser supports transition, // it must have classList... - var classList = el.classList, - lastLeaveCallback = el.vue_trans_cb + var onEnd, + classList = el.classList, + existingCallback = el.vue_trans_cb, + enterClass = config.enterClass, + leaveClass = config.leaveClass, + endEvent = hasAnimation ? endEvents.anim : endEvents.trans - if (stage > 0) { // enter + // cancel unfinished callbacks and jobs + if (existingCallback) { + el.removeEventListener(endEvent, existingCallback) + classList.remove(enterClass) + classList.remove(leaveClass) + el.vue_trans_cb = null + } - // cancel unfinished leave transition - if (lastLeaveCallback) { - el.removeEventListener(endEvent, lastLeaveCallback) - classList.remove(config.leaveClass) - el.vue_trans_cb = null - } + if (stage > 0) { // enter - // set to hidden state before appending - classList.add(config.enterClass) + // set to enter state before appending + classList.add(enterClass) // append changeState() - // force a layout so transition can be triggered - /* jshint unused: false */ - var forceLayout = el.clientHeight // trigger transition - classList.remove(config.enterClass) + if (!hasAnimation) { + batcher.push({ + execute: function () { + classList.remove(enterClass) + } + }) + } else { + onEnd = function (e) { + if (e.target === el) { + el.removeEventListener(endEvent, onEnd) + el.vue_trans_cb = null + classList.remove(enterClass) + } + } + el.addEventListener(endEvent, onEnd) + el.vue_trans_cb = onEnd + } return codes.CSS_E } else { // leave if (el.offsetWidth || el.offsetHeight) { // trigger hide transition - classList.add(config.leaveClass) - var onEnd = function (e) { + classList.add(leaveClass) + onEnd = function (e) { if (e.target === el) { el.removeEventListener(endEvent, onEnd) el.vue_trans_cb = null // actually remove node here changeState() - classList.remove(config.leaveClass) + classList.remove(leaveClass) } } // attach transition end listener @@ -2846,30 +2901,51 @@ function applyTransitionClass (el, stage, changeState) { } -function applyTransitionFunctions (el, stage, changeState, functionId, compiler) { +function applyTransitionFunctions (el, stage, changeState, effectId, compiler) { - var funcs = compiler.getOption('transitions', functionId) + var funcs = compiler.getOption('effects', effectId) if (!funcs) { changeState() return codes.JS_SKIP } var enter = funcs.enter, - leave = funcs.leave + leave = funcs.leave, + timeouts = el.vue_timeouts + + // clear previous timeouts + if (timeouts) { + var i = timeouts.length + while (i--) { + clearTO(timeouts[i]) + } + } + + timeouts = el.vue_timeouts = [] + function timeout (cb, delay) { + var id = setTO(function () { + cb() + timeouts.splice(timeouts.indexOf(id), 1) + if (!timeouts.length) { + el.vue_timeouts = null + } + }, delay) + timeouts.push(id) + } if (stage > 0) { // enter if (typeof enter !== 'function') { changeState() return codes.JS_SKIP_E } - enter(el, changeState) + enter(el, changeState, timeout) return codes.JS_E } else { // leave if (typeof leave !== 'function') { changeState() return codes.JS_SKIP_L } - leave(el, changeState) + leave(el, changeState, timeout) return codes.JS_L } @@ -2878,53 +2954,74 @@ function applyTransitionFunctions (el, stage, changeState, functionId, compiler) /** * Sniff proper transition end event name */ -function sniffTransitionEndEvent () { +function sniffEndEvents () { var el = document.createElement('vue'), defaultEvent = 'transitionend', events = { 'transition' : defaultEvent, 'mozTransition' : defaultEvent, 'webkitTransition' : 'webkitTransitionEnd' - } + }, + ret = {} for (var name in events) { if (el.style[name] !== undefined) { - return events[name] + ret.trans = events[name] + break } } + ret.anim = el.style.animation === '' + ? 'animationend' + : 'webkitAnimationEnd' + return ret } }); require.register("vue/src/batcher.js", function(exports, require, module){ -var utils = require('./utils'), - queue, has, waiting +var utils = require('./utils') -reset() +function Batcher () { + this.reset() +} + +var BatcherProto = Batcher.prototype -exports.queue = function (binding) { - if (!has[binding.id]) { - queue.push(binding) - has[binding.id] = true - if (!waiting) { - waiting = true - utils.nextTick(flush) +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 } } -function flush () { - for (var i = 0; i < queue.length; i++) { - var b = queue[i] - if (b.unbound) continue - b._update() - has[b.id] = false +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) continue + if (job.execute() !== false) { + this.has[job.id] = false + } } - reset() + this.reset() } -function reset () { - queue = [] - has = utils.hash() - waiting = false +BatcherProto.reset = function () { + this.has = utils.hash() + this.queue = [] + this.waiting = false } + +module.exports = Batcher }); require.register("vue/src/directives/index.js", function(exports, require, module){ var utils = require('../utils'), @@ -3182,8 +3279,6 @@ module.exports = { // extract child VM information, if any ViewModel = ViewModel || require('../viewmodel') this.Ctor = this.Ctor || ViewModel - // extract transition information - this.hasTrans = el.hasAttribute(config.attrs.transition) // extract child Id, if any this.childId = utils.attr(el, 'ref') @@ -3327,7 +3422,9 @@ module.exports = { el = this.el.cloneNode(true) // process transition info before appending - el.vue_trans = utils.attr(el, 'transition', true) + el.vue_trans = utils.attr(el, 'transition', true) + el.vue_anim = utils.attr(el, 'animation', true) + el.vue_effect = utils.attr(el, 'effect', true) // wrap primitive element in an object if (utils.typeOf(data) !== 'Object') { primitive = true @@ -3490,7 +3587,7 @@ module.exports = { // so they can't be delegated this.bubbles = this.arg !== 'blur' && this.arg !== 'focus' if (this.bubbles) { - this.compiler.addListener(this) + this.binding.compiler.addListener(this) } }, @@ -3518,7 +3615,7 @@ module.exports = { unbind: function () { if (this.bubbles) { - this.compiler.removeListener(this) + this.binding.compiler.removeListener(this) } else { this.reset() } diff --git a/dist/vue.min.js b/dist/vue.min.js index 76c6735c24a..72125a8a2ce 100644 --- a/dist/vue.min.js +++ b/dist/vue.min.js @@ -1,7 +1,7 @@ /* - Vue.js v0.8.8 + Vue.js v0.9.0 (c) 2014 Evan You License: MIT */ -!function(){"use strict";function e(t,i,n){var r=e.resolve(t);if(null==r){n=n||t,i=i||"root";var s=new Error('Failed to require "'+n+'" from "'+i+'"');throw s.path=n,s.parent=i,s.require=!0,s}var o=e.modules[r];if(!o._resolving&&!o.exports){var a={};a.exports={},a.client=a.component=!0,o._resolving=!0,o.call(this,a.exports,e.relative(r),a),delete o._resolving,o.exports=a.exports}return o.exports}e.modules={},e.aliases={},e.resolve=function(t){"/"===t.charAt(0)&&(t=t.slice(1));for(var i=[t,t+".js",t+".json",t+"/index.js",t+"/index.json"],n=0;nn;n++)i[n].apply(this._ctx||this,t)}return this},i.exports=n}),e.register("vue/src/config.js",function(e,t,i){function n(){s.forEach(function(e){o.attrs[e]=r+"-"+e})}var r="v",s=["pre","ref","with","text","repeat","partial","component","transition"],o=i.exports={debug:!1,silent:!1,enterClass:"v-enter",leaveClass:"v-leave",attrs:{},get prefix(){return r},set prefix(e){r=e,n()}};n()}),e.register("vue/src/utils.js",function(e,t,i){var n,r=t("./config"),s=r.attrs,o={}.toString,a=[].join,c=window,u=c.console,l="classList"in document.documentElement,h=c.requestAnimationFrame||c.webkitRequestAnimationFrame||c.setTimeout,f=i.exports={hash:function(){return Object.create(null)},attr:function(e,t,i){var n=s[t],r=e.getAttribute(n);return i||null===r||e.removeAttribute(n),r},defProtected:function(e,t,i,n,r){e.hasOwnProperty(t)||Object.defineProperty(e,t,{value:i,enumerable:!!n,configurable:!!r})},typeOf:function(e){return o.call(e).slice(8,-1)},bind:function(e,t){return function(i){return e.call(t,i)}},toText:function(e){var t=typeof e;return"string"===t||"boolean"===t||"number"===t&&e==e?e:"object"===t&&null!==e?JSON.stringify(e):""},extend:function(e,t,i){for(var n in t)i&&e[n]||(e[n]=t[n]);return e},unique:function(e){for(var t,i=f.hash(),n=e.length,r=[];n--;)t=e[n],i[t]||(i[t]=1,r.push(t));return r},toFragment:function(e){if("string"!=typeof e)return e;if("#"===e.charAt(0)){var t=document.getElementById(e.slice(1));if(!t)return;e=t.innerHTML}var i,n=document.createElement("div"),r=document.createDocumentFragment();for(n.innerHTML=e.trim();i=n.firstChild;)1===n.nodeType&&r.appendChild(i);return r},toConstructor:function(e){return n=n||t("./viewmodel"),"Object"===f.typeOf(e)?n.extend(e):"function"==typeof e?e:null},processOptions:function(e){var t,i=e.components,n=e.partials,r=e.template;if(i)for(t in i)i[t]=f.toConstructor(i[t]);if(n)for(t in n)n[t]=f.toFragment(n[t]);r&&(e.template=f.toFragment(r))},log:function(){r.debug&&u&&u.log(a.call(arguments," "))},warn:function(){!r.silent&&u&&(u.warn(a.call(arguments," ")),r.debug&&u.trace())},nextTick:function(e){h(e,0)},addClass:function(e,t){if(l)e.classList.add(t);else{var i=" "+e.className+" ";i.indexOf(" "+t+" ")<0&&(e.className=(i+t).trim())}},removeClass:function(e,t){if(l)e.classList.remove(t);else{for(var i=" "+e.className+" ",n=" "+t+" ";i.indexOf(n)>=0;)i=i.replace(n," ");e.className=i.trim()}}}}),e.register("vue/src/compiler.js",function(e,t,i){function n(e,t){var i=this;i.init=!0,t=i.options=t||m(),c.processOptions(t);var n=i.data=t.data||{};g(e,n,!0),g(e,t.methods,!0),g(i,t.compilerOptions);var o=i.setupElement(t);v("\nnew VM instance:",o.tagName,"\n"),i.vm=e,i.bindings=m(),i.dirs=[],i.deferred=[],i.exps=[],i.computed=[],i.childCompilers=[],i.emitter=new s,i.emitter._ctx=e,i.delegators=m(),b(e,"$",m()),b(e,"$el",o),b(e,"$compiler",i),b(e,"$root",r(i).vm);var a=i.parentCompiler,u=c.attr(o,"ref");a&&(a.childCompilers.push(i),b(e,"$parent",a.vm),u&&(i.childId=u,a.vm.$[u]=e)),i.setupObserver();var l=t.computed;if(l)for(var h in l)i.createBinding(h);t.paramAttributes&&t.paramAttributes.forEach(function(t){var i=o.getAttribute(t);e[t]=isNaN(i)?i:Number(i)}),i.execHook("created"),g(n,e),i.observeData(n),i.repeat&&(i.createBinding("$index"),n.$key&&i.createBinding("$key")),i.compile(o,!0),i.deferred.forEach(i.bindDirective,i),i.parseDeps(),i.rawContent=null,i.init=!1,i.execHook("ready")}function r(e){for(;e.parentCompiler;)e=e.parentCompiler;return e}var s=t("./emitter"),o=t("./observer"),a=t("./config"),c=t("./utils"),u=t("./binding"),l=t("./directive"),h=t("./text-parser"),f=t("./deps-parser"),d=t("./exp-parser"),p=[].slice,v=c.log,m=c.hash,g=c.extend,b=c.defProtected,y={}.hasOwnProperty,_=["created","ready","beforeDestroy","afterDestroy","attached","detached"],x=n.prototype;x.setupElement=function(e){var t=this.el="string"==typeof e.el?document.querySelector(e.el):e.el||document.createElement(e.tagName||"div"),i=e.template;if(i){for(var n,r=this.rawContent=document.createDocumentFragment();n=t.firstChild;)r.appendChild(n);if(e.replace&&1===i.childNodes.length){var s=i.childNodes[0].cloneNode(!0);t.parentNode&&(t.parentNode.insertBefore(s,t),t.parentNode.removeChild(t)),t=s}else t.appendChild(i.cloneNode(!0))}e.id&&(t.id=e.id),e.className&&(t.className=e.className);var o=e.attributes;if(o)for(var a in o)t.setAttribute(a,o[a]);return t},x.setupObserver=function(){function e(e){n(e),f.catcher.emit("get",o[e])}function t(e,t,i){c.emit("change:"+e,t,i),n(e),o[e].update(t)}function i(e,t){c.on("hook:"+e,function(){t.call(r.vm,a)})}function n(e){o[e]||r.createBinding(e)}var r=this,o=r.bindings,a=r.options,c=r.observer=new s;c.proxies=m(),c.on("get",e).on("set",t).on("mutate",t),_.forEach(function(e){var t=a[e];if(Array.isArray(t))for(var n=t.length;n--;)i(e,t[n]);else t&&i(e,t)})},x.observeData=function(e){function t(e){"$data"!==e&&r.update(i.data)}var i=this,n=i.observer;o.observe(e,"",n);var r=i.bindings.$data=new u(i,"$data");r.update(e),Object.defineProperty(i.vm,"$data",{enumerable:!1,get:function(){return i.observer.emit("get","$data"),i.data},set:function(e){var t=i.data;o.unobserve(t,"",n),i.data=e,o.copyPaths(e,t),o.observe(e,"",n),i.observer.emit("set","$data",e)}}),n.on("set",t).on("mutate",t)},x.compile=function(e,t){var i=this,n=e.nodeType,r=e.tagName;if(1===n&&"SCRIPT"!==r){if(null!==c.attr(e,"pre"))return;var s,o,a,u,h=c.attr(e,"component")||r.toLowerCase(),f=i.getOption("components",h);if(s=c.attr(e,"repeat"))u=l.parse("repeat",s,i,e),u&&(u.Ctor=f,i.deferred.push(u));else if(t!==!0&&((o=c.attr(e,"with"))||f))u=l.parse("with",o||"",i,e),u&&(u.Ctor=f,i.deferred.push(u));else{if(e.vue_trans=c.attr(e,"transition"),a=c.attr(e,"partial")){var d=i.getOption("partials",a);d&&(e.innerHTML="",e.appendChild(d.cloneNode(!0)))}i.compileNode(e)}}else 3===n&&i.compileTextNode(e)},x.compileNode=function(e){var t,i,n=p.call(e.attributes),r=a.prefix+"-";if(n&&n.length){var s,o,c,u,f,d;for(t=n.length;t--;){if(s=n[t],o=!1,0===s.name.indexOf(r))for(o=!0,c=l.split(s.value),i=c.length;i--;)u=c[i],d=s.name.slice(r.length),f=l.parse(d,u,this,e),f&&this.bindDirective(f);else u=h.parseAttr(s.value),u&&(f=l.parse("attr",s.name+":"+u,this,e),f&&this.bindDirective(f));o&&"cloak"!==d&&e.removeAttribute(s.name)}}e.childNodes.length&&p.call(e.childNodes).forEach(this.compile,this)},x.compileTextNode=function(e){var t=h.parse(e.nodeValue);if(t){for(var i,n,r,s,o,u,f=0,d=t.length;d>f;f++){if(n=t[f],r=u=null,n.key)if(">"===n.key.charAt(0)){if(o=n.key.slice(1).trim(),"yield"===o)i=this.rawContent;else{if(s=this.getOption("partials",o),!s){c.warn("Unknown partial: "+o);continue}i=s.cloneNode(!0)}i&&(u=p.call(i.childNodes))}else n.html?(i=document.createComment(a.prefix+"-html"),r=l.parse("html",n.key,this,i)):(i=document.createTextNode(""),r=l.parse("text",n.key,this,i));else i=document.createTextNode(n);e.parentNode.insertBefore(i,e),r&&this.bindDirective(r),u&&u.forEach(this.compile,this)}e.parentNode.removeChild(e)}},x.bindDirective=function(e){if(this.dirs.push(e),e.isEmpty||!e._update)return e.bind&&e.bind(),void 0;var t,i=this,n=e.key;if(e.isExp)t=i.createBinding(n,!0,e.isFn);else{for(;i&&!i.hasKey(n);)i=i.parentCompiler;i=i||this,t=i.bindings[n]||i.createBinding(n)}t.dirs.push(e),e.binding=t,e.bind&&e.bind(),e.update(t.val(),!0)},x.createBinding=function(e,t,i){v(" created binding: "+e);var n=this,r=n.bindings,s=n.options.computed,a=new u(n,e,t,i);if(t)n.defineExp(e,a);else if(r[e]=a,a.root)s&&s[e]?n.defineComputed(e,a,s[e]):n.defineProp(e,a);else{o.ensurePath(n.data,e);var c=e.slice(0,e.lastIndexOf("."));r[c]||n.createBinding(c)}return a},x.defineProp=function(e,t){var i=this,n=i.data,r=n.__emitter__;e in n||(n[e]=void 0),!r||e in r.values||o.convert(n,e),t.value=n[e],Object.defineProperty(i.vm,e,{get:function(){return i.data[e]},set:function(t){i.data[e]=t}})},x.defineExp=function(e,t){var i=d.parse(e,this);i&&(this.markComputed(t,i),this.exps.push(t))},x.defineComputed=function(e,t,i){this.markComputed(t,i),Object.defineProperty(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:c.bind(t.$get,this.vm),$set:t.$set?c.bind(t.$set,this.vm):void 0}),this.computed.push(e)},x.getOption=function(e,t){var i=this.options,n=this.parentCompiler,r=a.globalAssets;return i[e]&&i[e][t]||(n?n.getOption(e,t):r[e]&&r[e][t])},x.execHook=function(e){e="hook:"+e,this.observer.emit(e),this.emitter.emit(e)},x.hasKey=function(e){var t=e.split(".")[0];return y.call(this.data,t)||y.call(this.vm,t)},x.parseDeps=function(){this.computed.length&&f.parse(this.computed)},x.addListener=function(e){var t=e.arg,i=this.delegators[t];i||(i=this.delegators[t]={targets:[],handler:function(e){for(var t,n=i.targets.length;n--;)t=i.targets[n],e.target===t.el&&t.handler&&t.handler(e)}},this.el.addEventListener(t,i.handler)),i.targets.push(e)},x.removeListener=function(e){var t=this.delegators[e.arg].targets;t.splice(t.indexOf(e),1)},x.destroy=function(){if(!this.destroyed){var e,t,i,n,r,s=this,a=s.vm,c=s.el,u=s.dirs,l=s.exps,h=s.bindings,f=s.delegators;for(s.execHook("beforeDestroy"),o.unobserve(s.data,"",s.observer),e=u.length;e--;)i=u[e],i.binding&&i.binding.compiler!==s&&(n=i.binding.dirs,n&&n.splice(n.indexOf(i),1)),i.unbind();for(e=l.length;e--;)l[e].unbind();for(t in h)r=h[t],r&&r.unbind();for(t in f)c.removeEventListener(t,f[t].handler);var d=s.parentCompiler,p=s.childId;d&&(d.childCompilers.splice(d.childCompilers.indexOf(s),1),p&&delete d.vm.$[p]),c===document.body?c.innerHTML="":a.$remove(),this.destroyed=!0,s.execHook("afterDestroy"),s.observer.off(),s.emitter.off()}},i.exports=n}),e.register("vue/src/viewmodel.js",function(e,t,i){function n(e){new s(this,e)}function r(e){return"string"==typeof e?document.querySelector(e):e}var s=t("./compiler"),o=t("./utils"),a=t("./transition"),c=o.defProtected,u=o.nextTick,l=n.prototype;c(l,"$set",function(e,t){for(var i=e.split("."),n=this,r=0,s=i.length-1;s>r;r++)n=n[i[r]];n[i[r]]=t}),c(l,"$watch",function(e,t){function i(){var e=arguments;o.nextTick(function(){t.apply(n,e)})}var n=this;t._fn=i,n.$compiler.observer.on("change:"+e,i)}),c(l,"$unwatch",function(e,t){var i=["change:"+e],n=this.$compiler.observer;t&&i.push(t._fn),n.off.apply(n,i)}),c(l,"$destroy",function(){this.$compiler.destroy()}),c(l,"$broadcast",function(){for(var e,t=this.$compiler.childCompilers,i=t.length;i--;)e=t[i],e.emitter.emit.apply(e.emitter,arguments),e.vm.$broadcast.apply(e.vm,arguments)}),c(l,"$dispatch",function(){var e=this.$compiler,t=e.emitter,i=e.parentCompiler;t.emit.apply(t,arguments),i&&i.vm.$dispatch.apply(i.vm,arguments)}),["emit","on","off","once"].forEach(function(e){c(l,"$"+e,function(){var t=this.$compiler.emitter;t[e].apply(t,arguments)})}),c(l,"$appendTo",function(e,t){e=r(e);var i=this.$el;a(i,1,function(){e.appendChild(i),t&&u(t)},this.$compiler)}),c(l,"$remove",function(e){var t=this.$el,i=t.parentNode;i&&a(t,-1,function(){i.removeChild(t),e&&u(e)},this.$compiler)}),c(l,"$before",function(e,t){e=r(e);var i=this.$el,n=e.parentNode;n&&a(i,1,function(){n.insertBefore(i,e),t&&u(t)},this.$compiler)}),c(l,"$after",function(e,t){e=r(e);var i=this.$el,n=e.parentNode,s=e.nextSibling;n&&a(i,1,function(){s?n.insertBefore(i,s):n.appendChild(i),t&&u(t)},this.$compiler)}),i.exports=n}),e.register("vue/src/binding.js",function(e,t,i){function n(e,t,i,n){this.id=s++,this.value=void 0,this.isExp=!!i,this.isFn=n,this.root=!this.isExp&&-1===t.indexOf("."),this.compiler=e,this.key=t,this.dirs=[],this.subs=[],this.deps=[],this.unbound=!1}var r=t("./batcher"),s=0,o=n.prototype;o.update=function(e){(!this.isComputed||this.isFn)&&(this.value=e),(this.dirs.length||this.subs.length)&&r.queue(this)},o._update=function(){for(var e=this.dirs.length,t=this.val();e--;)this.dirs[e].update(t);this.pub()},o.val=function(){return this.isComputed&&!this.isFn?this.value.$get():this.value},o.pub=function(){for(var e=this.subs.length;e--;)this.subs[e].update()},o.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,t.splice(t.indexOf(this),1)},i.exports=n}),e.register("vue/src/observer.js",function(e,t,i){function n(e){if("function"==typeof e){for(var t=this.length,i=[];t--;)e(this[t])&&i.push(this.splice(t,1)[0]);return i.reverse()}return"number"!=typeof e&&(e=this.indexOf(e)),e>-1?this.splice(e,1)[0]:void 0}function r(e,t){if("function"==typeof e){for(var i,n=this.length,r=[];n--;)i=e(this[n]),void 0!==i&&r.push(this.splice(n,1,i)[0]);return r.reverse()}return"number"!=typeof e&&(e=this.indexOf(e)),e>-1?this.splice(e,1,t)[0]:void 0}function s(e){for(var t in e)a(e,t)}function o(e){var t=e.__emitter__;if(t||(t=new v,b(e,"__emitter__",t)),C)e.__proto__=k;else for(var i in k)b(e,i,k[i])}function a(e,t){function i(e,i){s[t]=e,r.emit("set",t,e,i),Array.isArray(e)&&r.emit("set",t+".length",e.length),f(e,t,r)}var n=t.charAt(0);if("$"!==n&&"_"!==n||"$index"===t||"$key"===t||"$value"===t){var r=e.__emitter__,s=r.values;i(e[t]),Object.defineProperty(e,t,{get:function(){var e=s[t];return w.shouldGet&&g(e)!==_&&r.emit("get",t),e},set:function(e){var n=s[t];d(n,t,r),l(e,n),i(e,!0)}})}}function c(e){p=p||t("./viewmodel");var i=g(e);return!(i!==_&&i!==x||e instanceof p)}function u(e){var t=g(e),i=e&&e.__emitter__;if(t===x)i.emit("set","length",e.length);else if(t===_){var n,r;for(n in e)r=e[n],i.emit("set",n,r),u(r)}}function l(e,t){if(g(t)===_&&g(e)===_){var i,n,r,s;for(i in t)i in e||(r=t[i],n=g(r),n===_?(s=e[i]={},l(s,r)):e[i]=n===x?[]:void 0)}}function h(e,t){for(var i,n=t.split("."),r=0,s=n.length-1;s>r;r++)i=n[r],e[i]||(e[i]={},e.__emitter__&&a(e,i)),e=e[i];g(e)===_&&(i=n[r],i in e||(e[i]=void 0,e.__emitter__&&a(e,i)))}function f(e,t,i){if(c(e)){var n,r=t?t+".":"",a=!!e.__emitter__;a||b(e,"__emitter__",new v),n=e.__emitter__,n.values=n.values||m.hash(),i.proxies=i.proxies||{};var l=i.proxies[r]={get:function(e){i.emit("get",r+e)},set:function(n,s,o){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)}};if(n.on("get",l.get).on("set",l.set).on("mutate",l.mutate),a)u(e);else{var h=g(e);h===_?s(e):h===x&&o(e)}}}function d(e,t,i){if(e&&e.__emitter__){t=t?t+".":"";var n=i.proxies[t];n&&(e.__emitter__.off("get",n.get).off("set",n.set).off("mutate",n.mutate),i.proxies[t]=null)}}var p,v=t("./emitter"),m=t("./utils"),g=m.typeOf,b=m.defProtected,y=[].slice,_="Object",x="Array",$=["push","pop","shift","unshift","splice","sort","reverse"],C={}.__proto__,k=Object.create(Array.prototype);$.forEach(function(e){b(k,e,function(){var t=Array.prototype[e].apply(this,arguments);return this.__emitter__.emit("mutate",null,this,{method:e,args:y.call(arguments),result:t}),t},!C)}),b(k,"remove",n,!C),b(k,"set",r,!C),b(k,"replace",r,!C);var w=i.exports={shouldGet:!1,observe:f,unobserve:d,ensurePath:h,convert:a,copyPaths:l,watchArray:o}}),e.register("vue/src/directive.js",function(e,t,i){function n(e,t,i,n,o){this.compiler=n,this.vm=n.vm,this.el=o;var a=""===t;if("function"==typeof e)this[a?"bind":"_update"]=e;else for(var c in e)"unbind"===c||"update"===c?this["_"+c]=e[c]:this[c]=e[c];if(a)return this.isEmpty=!0,void 0;this.expression=t.trim(),this.rawKey=i,r(this,i),this.isExp=!v.test(this.key)||p.test(this.key);var u=this.expression.slice(i.length).match(f);if(u){this.filters=[];for(var l,h=0,d=u.length;d>h;h++)l=s(u[h],this.compiler),l&&this.filters.push(l);this.filters.length||(this.filters=null)}else this.filters=null}function r(e,t){var i=t;if(t.indexOf(":")>-1){var n=t.match(h);i=n?n[2].trim():i,e.arg=n?n[1].trim():null}e.key=i}function s(e,t){var i=e.slice(1).match(d);if(i){i=i.map(function(e){return e.replace(/'/g,"").trim()});var n=i[0],r=t.getOption("filters",n)||c[n];return r?{name:n,apply:r,args:i.length>1?i.slice(1):null}:(o.warn("Unknown filter: "+n),void 0)}}var o=t("./utils"),a=t("./directives"),c=t("./filters"),u=/(?:['"](?:\\.|[^'"])*['"]|\((?:\\.|[^\)])*\)|\\.|[^,])+/g,l=/^(?:['"](?:\\.|[^'"])*['"]|\\.|[^\|]|\|\|)+/,h=/^([\w-$ ]+):(.+)$/,f=/\|[^\|]+/g,d=/[^\s']+|'[^']+'/g,p=/^\$(parent|root)\./,v=/^[\w\.$]+$/,m=n.prototype;m.update=function(e,t){var i=o.typeOf(e);(t||e!==this.value||"Object"===i||"Array"===i)&&(this.value=e,this._update&&this._update(this.filters?this.applyFilters(e):e,t))},m.applyFilters=function(e){for(var t,i=e,n=0,r=this.filters.length;r>n;n++)t=this.filters[n],i=t.apply.call(this.vm,i,t.args);return i},m.unbind=function(){this.el&&this.vm&&(this._unbind&&this._unbind(),this.vm=this.el=this.binding=this.compiler=null)},n.split=function(e){return e.indexOf(",")>-1?e.match(u)||[""]:[e]},n.parse=function(e,t,i,r){var s=i.getOption("directives",e)||a[e];if(!s)return o.warn("unknown directive: "+e);var c;if(t.indexOf("|")>-1){var u=t.match(l);u&&(c=u[0].trim())}else c=t.trim();return c||""===t?new n(s,t,c,i,r):o.warn("invalid directive expression: "+t)},i.exports=n}),e.register("vue/src/exp-parser.js",function(e,t,i){function n(e){return e=e.replace(p,"").replace(v,",").replace(d,"").replace(m,"").replace(g,""),e?e.split(/,+/):[]}function r(e,t){for(var i="",n=0,r=t;t&&!t.hasKey(e);)t=t.parentCompiler,n++;if(t){for(;n--;)i+="$parent.";t.bindings[e]||"$"===e.charAt(0)||t.createBinding(e)}else r.createBinding(e);return i}function s(e,t){var i;try{i=new Function(e)}catch(n){a.warn("Invalid expression: "+t)}return i}function o(e){return"$"===e.charAt(0)?"\\"+e:e}var a=t("./utils"),c=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/g,u=/"(\d+)"/g,l=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\.]+/g,v=/[^\w$]+/g,m=/\b\d[^,]*/g,g=/^,+|,+$/g;i.exports={parse:function(e,t){function i(e){var t=g.length;return g[t]=e,'"'+t+'"'}function f(e){var i=e.charAt(0);e=e.slice(1);var n="this."+r(e,t)+e;return m[e]||(v+=n+";",m[e]=1),i+n}function d(e,t){return g[t]}if(h.test(e)||l.test(e))return a.warn("Unsafe expression: "+e),function(){};var p=n(e);if(!p.length)return s("return "+e,e);p=a.unique(p);var v="",m=a.hash(),g=[],b=new RegExp("[^$\\w\\.]("+p.map(o).join("|")+")[$\\w\\.]*\\b","g"),y=("return "+e).replace(c,i).replace(b,f).replace(u,d);return y=v+y,s(y,e)}}}),e.register("vue/src/text-parser.js",function(e){function t(e){if(!n.test(e))return null;for(var t,i,s,o=[];t=e.match(n);)i=t.index,i>0&&o.push(e.slice(0,i)),s={key:t[1].trim()},r.test(t[0])&&(s.html=!0),o.push(s),e=e.slice(i+t[0].length);return e.length&&o.push(e),o}function i(e){var i=t(e);if(!i)return null;for(var n,r=[],s=0,o=i.length;o>s;s++)n=i[s],r.push(n.key||'"'+n+'"');return r.join("+")}var n=/{{{?([^{}]+?)}?}}/,r=/{{{[^{}]+}}}/;e.parse=t,e.parseAttr=i}),e.register("vue/src/deps-parser.js",function(e,t,i){function n(e){if(!e.isFn){s.log("\n- "+e.key);var t=s.hash();e.deps=[],a.on("get",function(i){var n=t[i.key];n&&n.compiler===i.compiler||(t[i.key]=i,s.log(" - "+i.key),e.deps.push(i),i.subs.push(e))}),e.value.$get(),a.off("get")}}var r=t("./emitter"),s=t("./utils"),o=t("./observer"),a=new r;i.exports={catcher:a,parse:function(e){s.log("\nparsing dependencies..."),o.shouldGet=!0,e.forEach(n),o.shouldGet=!1,s.log("\ndone.")}}}),e.register("vue/src/filters.js",function(e,t,i){var n={enter:13,tab:9,"delete":46,up:38,left:37,right:39,down:40,esc:27};i.exports={capitalize:function(e){return e||0===e?(e=e.toString(),e.charAt(0).toUpperCase()+e.slice(1)):""},uppercase:function(e){return e||0===e?e.toString().toUpperCase():""},lowercase:function(e){return e||0===e?e.toString().toLowerCase():""},currency:function(e,t){if(!e&&0!==e)return"";var i=t&&t[0]||"$",n=Math.floor(e).toString(),r=n.length%3,s=r>0?n.slice(0,r)+(n.length>3?",":""):"",o="."+e.toFixed(2).slice(-2);return i+s+n.slice(r).replace(/(\d{3})(?=\d)/g,"$1,")+o},pluralize:function(e,t){return t.length>1?t[e-1]||t[t.length-1]:t[e-1]||t[0]+"s"},key:function(e,t){if(e){var i=n[t[0]];return i||(i=parseInt(t[0],10)),function(t){t.keyCode===i&&e.call(this,t)}}}}}),e.register("vue/src/transition.js",function(e,t,i){function n(e,t,i){if(!o)return i(),c.CSS_SKIP;var n=e.classList,r=e.vue_trans_cb;if(t>0){r&&(e.removeEventListener(o,r),n.remove(a.leaveClass),e.vue_trans_cb=null),n.add(a.enterClass),i();{e.clientHeight}return n.remove(a.enterClass),c.CSS_E}if(e.offsetWidth||e.offsetHeight){n.add(a.leaveClass);var s=function(t){t.target===e&&(e.removeEventListener(o,s),e.vue_trans_cb=null,i(),n.remove(a.leaveClass))};e.addEventListener(o,s),e.vue_trans_cb=s}else i();return c.CSS_L}function r(e,t,i,n,r){var s=r.getOption("transitions",n);if(!s)return i(),c.JS_SKIP;var o=s.enter,a=s.leave;return t>0?"function"!=typeof o?(i(),c.JS_SKIP_E):(o(e,i),c.JS_E):"function"!=typeof a?(i(),c.JS_SKIP_L):(a(e,i),c.JS_L)}function s(){var e=document.createElement("vue"),t="transitionend",i={transition:t,mozTransition:t,webkitTransition:"webkitTransitionEnd"};for(var n in i)if(void 0!==e.style[n])return i[n]}var o=s(),a=t("./config"),c={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},u=i.exports=function(e,t,i,s){var o=function(){i(),s.execHook(t>0?"attached":"detached")};if(s.init)return o(),c.INIT;var a=e.vue_trans;return a?r(e,t,o,a,s):""===a?n(e,t,o):(o(),c.SKIP)};u.codes=c}),e.register("vue/src/batcher.js",function(e,t){function i(){for(var e=0;ei;i++)if(e[i]===t||t.$value&&e[i].$value===t.$value)return i;return-1}var s,o=t("../observer"),a=t("../utils"),c=t("../config"),u=t("../transition"),l=a.defProtected,h={push:function(e){for(var t=e.args.length,i=this.collection.length-t,n=0;t>n;n++)this.buildItem(e.args[n],i+n),this.updateObject(e.args[n],1)},pop:function(){var e=this.vms.pop();e&&(e.$destroy(),this.updateObject(e.$data,-1))},unshift:function(e){for(var t=0,i=e.args.length;i>t;t++)this.buildItem(e.args[t],t),this.updateObject(e.args[t],1)},shift:function(){var e=this.vms.shift();e&&(e.$destroy(),this.updateObject(e.$data,-1))},splice:function(e){var t,i,n=e.args[0],r=e.args[1],s=e.args.length-2,o=this.vms.splice(n,r);for(t=0,i=o.length;i>t;t++)o[t].$destroy(),this.updateObject(o[t].$data,-1);for(t=0;s>t;t++)this.buildItem(e.args[t+2],n+t),this.updateObject(e.args[t+2],1)},sort:function(){var e,t,i,n,r=this.vms,s=this.collection,o=s.length,a=new Array(o);for(e=0;o>e;e++)for(n=s[e],t=0;o>t;t++)if(i=r[t],i.$data===n){a[e]=i;break}for(e=0;o>e;e++)this.container.insertBefore(a[e].$el,this.ref);this.vms=a},reverse:function(){var e=this.vms;e.reverse();for(var t=0,i=e.length;i>t;t++)this.container.insertBefore(e[t].$el,this.ref)}};i.exports={bind:function(){var e=this.el,i=this.container=e.parentNode;s=s||t("../viewmodel"),this.Ctor=this.Ctor||s,this.hasTrans=e.hasAttribute(c.attrs.transition),this.childId=a.attr(e,"ref"),this.ref=document.createComment(c.prefix+"-repeat-"+this.key),i.insertBefore(this.ref,e),i.removeChild(e),this.initiated=!1,this.collection=null,this.vms=null;var n=this;this.mutationListener=function(e,t,i){var r=i.method;if(h[r].call(n,i),"push"!==r&&"pop"!==r)for(var s=t.length;s--;)t[s].$index=s;("push"===r||"unshift"===r||"splice"===r)&&n.changed()}},update:function(e,t){if(e!==this.collection&&e!==this.object){"Object"===a.typeOf(e)&&(e=this.convertObject(e)),this.reset(),this.container.vue_dHandlers=a.hash(),this.initiated||e&&e.length||(this.buildItem(),this.initiated=!0),this.old=this.collection;var i=this.oldVMs=this.vms;if(e=this.collection=e||[],this.vms=[],this.childId&&(this.vm.$[this.childId]=this.vms),e.__emitter__||o.watchArray(e),e.__emitter__.on("mutate",this.mutationListener),e.length&&(e.forEach(this.buildItem,this),t||this.changed()),i)for(var n,r=i.length;r--;)n=i[r],n.$reused?n.$reused=!1:n.$destroy();this.old=this.oldVMs=null}},changed:function(){if(!this.queued){this.queued=!0;var e=this;setTimeout(function(){e.compiler&&(e.compiler.parseDeps(),e.queued=!1)},0)}},buildItem:function(e,t){var i,n,s,o,c,h,f=this.container,d=this.vms,p=this.collection;e&&(this.old&&(n=r(this.old,e)),n>-1?(o=this.oldVMs[n],o.$reused=!0,i=o.$el,e.$index=t,h=!i.parentNode):(i=this.el.cloneNode(!0),i.vue_trans=a.attr(i,"transition",!0),"Object"!==a.typeOf(e)&&(c=!0,e={$value:e}),l(e,"$index",t,!1,!0)),s=d.length>t?d[t].$el:this.ref,s.parentNode||(s=s.vue_ref),h?f.insertBefore(i.vue_ref,s):n>-1?f.insertBefore(i,s):u(i,1,function(){f.insertBefore(i,s)},this.compiler)),o=o||new this.Ctor({el:i,data:e,compilerOptions:{repeat:!0,parentCompiler:this.compiler,delegator:f}}),e?(d.splice(t,0,o),c&&e.__emitter__.on("set",function(e,t){"$value"===e&&(p[o.$index]=t)})):o.$destroy()},convertObject:function(e){this.object&&(delete this.object.$repeater,this.object.__emitter__.off("set",this.updateRepeater)),this.object=e;var t=n(e);l(e,"$repeater",t,!1,!0);var i=this;return this.updateRepeater=function(e,n){if(-1===e.indexOf("."))for(var r,s=t.length;s--;)if(r=t[s],r.$key===e){r!==n&&r.$value!==n&&("$value"in r?r.$value=n:(l(n,"$key",e,!1,!0),i.lock=!0,t.set(s,n),i.lock=!1));break}},e.__emitter__.on("set",this.updateRepeater),t},updateObject:function(e,t){if(!this.lock){var i=this.object;if(i&&e.$key){var n=e.$key,r=e.$value||e;t>0?(delete e.$key,l(e,"$key",n,!1,!0),i[n]=r,o.convert(i,n)):delete i[n],i.__emitter__.emit("set",n,r,!0)}}},reset:function(e){if(this.childId&&delete this.vm.$[this.childId],this.collection&&(this.collection.__emitter__.off("mutate",this.mutationListener),e))for(var t=this.vms.length;t--;)this.vms[t].$destroy();var i=this.container,n=i.vue_dHandlers;for(var r in n)i.removeEventListener(n[r].event,n[r]);i.vue_dHandlers=null},unbind:function(){this.reset(!0)}}}),e.register("vue/src/directives/on.js",function(e,t,i){var n=t("../utils").warn;i.exports={isFn:!0,bind:function(){this.bubbles="blur"!==this.arg&&"focus"!==this.arg,this.bubbles&&this.compiler.addListener(this) -},update:function(e){if("function"!=typeof e)return n('Directive "on" expects a function value.');var t=this.vm,i=this.binding.compiler.vm,r=this.binding.isExp,s=function(n){n.targetVM=t,e.call(r?t:i,n)};this.bubbles||(this.reset(),this.el.addEventListener(this.arg,s)),this.handler=s},reset:function(){this.el.removeEventListener(this.arg,this.handler)},unbind:function(){this.bubbles?this.compiler.removeListener(this):this.reset()}}}),e.register("vue/src/directives/model.js",function(e,t,i){function n(e){return o.call(e.options,function(e){return e.selected}).map(function(e){return e.value||e.text})}var r=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,n=t.tagName;e.lock=!1,e.ownerVM=e.binding.compiler.vm,e.event=e.compiler.options.lazy||"SELECT"===n||"checkbox"===i||"radio"===i?"change":"input",e.attr="checkbox"===i?"checked":"INPUT"===n||"SELECT"===n||"TEXTAREA"===n?"value":"innerHTML","SELECT"===n&&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(n){}e._set(),r.nextTick(function(){void 0!==i&&t.setSelectionRange(i,i)})}}:function(){o||(e.lock=!0,e._set(),r.nextTick(function(){e.lock=!1}))},t.addEventListener(e.event,e.set),s&&(e.onCut=function(){r.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?n(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]=r.toText(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 n;i.exports={bind:function(){this.isEmpty&&this.build()},update:function(e){this.component?this.component.$data=e:this.build(e)},build:function(e){n=n||t("../viewmodel");var i=this.Ctor||n;this.component=new i({el:this.el,data:e,compilerOptions:{parentCompiler:this.compiler}})},unbind:function(){this.component.$destroy()}}}),e.register("vue/src/directives/html.js",function(e,t,i){var n=t("../utils").toText,r=[].slice;i.exports={bind:function(){8===this.el.nodeType&&(this.holder=document.createElement("div"),this.nodes=[])},update:function(e){e=n(e),this.holder?this.swap(e):this.el.innerHTML=e},swap:function(e){for(var t,i=this.el.parentNode,n=this.holder,s=this.nodes,o=s.length;o--;)i.removeChild(s[o]);for(n.innerHTML=e,s=this.nodes=r.call(n.childNodes),o=0,t=s.length;t>o;o++)i.insertBefore(s[o],this.el)}}}),e.register("vue/src/directives/style.js",function(e,t,i){function n(e){return e[1].toUpperCase()}var r=/-([a-z])/g,s=["webkit","moz","ms"];i.exports={bind:function(){var e=this.arg;if(e){var t=e.charAt(0);"$"===t?(e=e.slice(1),this.prefixed=!0):"-"===t&&(e=e.slice(1)),this.prop=e.replace(r,n)}},update:function(e){var t=this.prop;if(t){if(this.el.style[t]=e,this.prefixed){t=t.charAt(0).toUpperCase()+t.slice(1);for(var i=s.length;i--;)this.el.style[s[i]+t]=e}}else this.el.style.cssText=e}}}),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")}(); \ No newline at end of file +!function(){"use strict";function e(t,i,n){var r=e.resolve(t);if(null==r){n=n||t,i=i||"root";var s=new Error('Failed to require "'+n+'" from "'+i+'"');throw s.path=n,s.parent=i,s.require=!0,s}var o=e.modules[r];if(!o._resolving&&!o.exports){var a={};a.exports={},a.client=a.component=!0,o._resolving=!0,o.call(this,a.exports,e.relative(r),a),delete o._resolving,o.exports=a.exports}return o.exports}e.modules={},e.aliases={},e.resolve=function(t){"/"===t.charAt(0)&&(t=t.slice(1));for(var i=[t,t+".js",t+".json",t+"/index.js",t+"/index.json"],n=0;nn;n++)i[n].apply(this._ctx||this,t)}return this},i.exports=n}),e.register("vue/src/config.js",function(e,t,i){function n(){s.forEach(function(e){o.attrs[e]=r+"-"+e})}var r="v",s=["pre","ref","with","text","repeat","partial","component","animation","transition","effect"],o=i.exports={debug:!1,silent:!1,enterClass:"v-enter",leaveClass:"v-leave",attrs:{},get prefix(){return r},set prefix(e){r=e,n()}};n()}),e.register("vue/src/utils.js",function(e,t,i){var n,r=t("./config"),s=r.attrs,o={}.toString,a=[].join,c=window,u=c.console,l="classList"in document.documentElement,h=c.requestAnimationFrame||c.webkitRequestAnimationFrame||c.setTimeout,f=i.exports={hash:function(){return Object.create(null)},attr:function(e,t,i){var n=s[t],r=e.getAttribute(n);return i||null===r||e.removeAttribute(n),r},defProtected:function(e,t,i,n,r){e.hasOwnProperty(t)||Object.defineProperty(e,t,{value:i,enumerable:!!n,configurable:!!r})},typeOf:function(e){return o.call(e).slice(8,-1)},bind:function(e,t){return function(i){return e.call(t,i)}},toText:function(e){var t=typeof e;return"string"===t||"boolean"===t||"number"===t&&e==e?e:"object"===t&&null!==e?JSON.stringify(e):""},extend:function(e,t,i){for(var n in t)i&&e[n]||(e[n]=t[n]);return e},unique:function(e){for(var t,i=f.hash(),n=e.length,r=[];n--;)t=e[n],i[t]||(i[t]=1,r.push(t));return r},toFragment:function(e){if("string"!=typeof e)return e;if("#"===e.charAt(0)){var t=document.getElementById(e.slice(1));if(!t)return;e=t.innerHTML}var i,n=document.createElement("div"),r=document.createDocumentFragment();for(n.innerHTML=e.trim();i=n.firstChild;)1===n.nodeType&&r.appendChild(i);return r},toConstructor:function(e){return n=n||t("./viewmodel"),"Object"===f.typeOf(e)?n.extend(e):"function"==typeof e?e:null},processOptions:function(e){var t,i=e.components,n=e.partials,r=e.template;if(i)for(t in i)i[t]=f.toConstructor(i[t]);if(n)for(t in n)n[t]=f.toFragment(n[t]);r&&(e.template=f.toFragment(r))},log:function(){r.debug&&u&&u.log(a.call(arguments," "))},warn:function(){!r.silent&&u&&(u.warn(a.call(arguments," ")),r.debug&&u.trace())},nextTick:function(e){h(e,0)},addClass:function(e,t){if(l)e.classList.add(t);else{var i=" "+e.className+" ";i.indexOf(" "+t+" ")<0&&(e.className=(i+t).trim())}},removeClass:function(e,t){if(l)e.classList.remove(t);else{for(var i=" "+e.className+" ",n=" "+t+" ";i.indexOf(n)>=0;)i=i.replace(n," ");e.className=i.trim()}}}}),e.register("vue/src/compiler.js",function(e,t,i){function n(e,t){var i=this;i.init=!0,t=i.options=t||m(),c.processOptions(t);var n=i.data=t.data||{};g(e,n,!0),g(e,t.methods,!0),g(i,t.compilerOptions);var o=i.setupElement(t);v("\nnew VM instance:",o.tagName,"\n"),i.vm=e,i.bindings=m(),i.dirs=[],i.deferred=[],i.exps=[],i.computed=[],i.childCompilers=[],i.emitter=new s,i.emitter._ctx=e,i.delegators=m(),b(e,"$",m()),b(e,"$el",o),b(e,"$compiler",i),b(e,"$root",r(i).vm);var a=i.parentCompiler,u=c.attr(o,"ref");a&&(a.childCompilers.push(i),b(e,"$parent",a.vm),u&&(i.childId=u,a.vm.$[u]=e)),i.setupObserver();var l=t.computed;if(l)for(var h in l)i.createBinding(h);t.paramAttributes&&t.paramAttributes.forEach(function(t){var i=o.getAttribute(t);e[t]=isNaN(i)?i:Number(i)}),i.execHook("created"),g(n,e),i.observeData(n),i.repeat&&(i.createBinding("$index"),n.$key&&i.createBinding("$key")),i.compile(o,!0),i.deferred.forEach(i.bindDirective,i),i.parseDeps(),i.rawContent=null,i.init=!1,i.execHook("ready")}function r(e){for(;e.parentCompiler;)e=e.parentCompiler;return e}var s=t("./emitter"),o=t("./observer"),a=t("./config"),c=t("./utils"),u=t("./binding"),l=t("./directive"),h=t("./text-parser"),f=t("./deps-parser"),d=t("./exp-parser"),p=[].slice,v=c.log,m=c.hash,g=c.extend,b=c.defProtected,y={}.hasOwnProperty,_=["created","ready","beforeDestroy","afterDestroy","attached","detached"],x=n.prototype;x.setupElement=function(e){var t=this.el="string"==typeof e.el?document.querySelector(e.el):e.el||document.createElement(e.tagName||"div"),i=e.template;if(i){for(var n,r=this.rawContent=document.createDocumentFragment();n=t.firstChild;)r.appendChild(n);if(e.replace&&1===i.childNodes.length){var s=i.childNodes[0].cloneNode(!0);t.parentNode&&(t.parentNode.insertBefore(s,t),t.parentNode.removeChild(t)),t=s}else t.appendChild(i.cloneNode(!0))}e.id&&(t.id=e.id),e.className&&(t.className=e.className);var o=e.attributes;if(o)for(var a in o)t.setAttribute(a,o[a]);return t},x.setupObserver=function(){function e(e){n(e),f.catcher.emit("get",o[e])}function t(e,t,i){c.emit("change:"+e,t,i),n(e),o[e].update(t)}function i(e,t){c.on("hook:"+e,function(){t.call(r.vm,a)})}function n(e){o[e]||r.createBinding(e)}var r=this,o=r.bindings,a=r.options,c=r.observer=new s;c.proxies=m(),c._ctx=r.vm,c.on("get",e).on("set",t).on("mutate",t),_.forEach(function(e){var t=a[e];if(Array.isArray(t))for(var n=t.length;n--;)i(e,t[n]);else t&&i(e,t)})},x.observeData=function(e){function t(e){"$data"!==e&&r.update(i.data)}var i=this,n=i.observer;o.observe(e,"",n);var r=i.bindings.$data=new u(i,"$data");r.update(e),Object.defineProperty(i.vm,"$data",{enumerable:!1,get:function(){return i.observer.emit("get","$data"),i.data},set:function(e){var t=i.data;o.unobserve(t,"",n),i.data=e,o.copyPaths(e,t),o.observe(e,"",n),i.observer.emit("set","$data",e)}}),n.on("set",t).on("mutate",t)},x.compile=function(e,t){var i=this,n=e.nodeType,r=e.tagName;if(1===n&&"SCRIPT"!==r){if(null!==c.attr(e,"pre"))return;var s,o,a,u,h=c.attr(e,"component")||r.toLowerCase(),f=i.getOption("components",h);if(s=c.attr(e,"repeat"))u=l.parse("repeat",s,i,e),u&&(u.Ctor=f,i.deferred.push(u));else if(t!==!0&&((o=c.attr(e,"with"))||f))u=l.parse("with",o||"",i,e),u&&(u.Ctor=f,i.deferred.push(u));else{if(e.vue_trans=c.attr(e,"transition"),e.vue_anim=c.attr(e,"animation"),e.vue_effect=c.attr(e,"effect"),a=c.attr(e,"partial")){var d=i.getOption("partials",a);d&&(e.innerHTML="",e.appendChild(d.cloneNode(!0)))}i.compileNode(e)}}else 3===n&&i.compileTextNode(e)},x.compileNode=function(e){var t,i,n=p.call(e.attributes),r=a.prefix+"-";if(n&&n.length){var s,o,c,u,f,d;for(t=n.length;t--;){if(s=n[t],o=!1,0===s.name.indexOf(r))for(o=!0,c=l.split(s.value),i=c.length;i--;)u=c[i],d=s.name.slice(r.length),f=l.parse(d,u,this,e),f&&this.bindDirective(f);else u=h.parseAttr(s.value),u&&(f=l.parse("attr",s.name+":"+u,this,e),f&&this.bindDirective(f));o&&"cloak"!==d&&e.removeAttribute(s.name)}}e.childNodes.length&&p.call(e.childNodes).forEach(this.compile,this)},x.compileTextNode=function(e){var t=h.parse(e.nodeValue);if(t){for(var i,n,r,s,o,u,f=0,d=t.length;d>f;f++){if(n=t[f],r=u=null,n.key)if(">"===n.key.charAt(0)){if(o=n.key.slice(1).trim(),"yield"===o)i=this.rawContent;else{if(s=this.getOption("partials",o),!s){c.warn("Unknown partial: "+o);continue}i=s.cloneNode(!0)}i&&(u=p.call(i.childNodes))}else n.html?(i=document.createComment(a.prefix+"-html"),r=l.parse("html",n.key,this,i)):(i=document.createTextNode(""),r=l.parse("text",n.key,this,i));else i=document.createTextNode(n);e.parentNode.insertBefore(i,e),r&&this.bindDirective(r),u&&u.forEach(this.compile,this)}e.parentNode.removeChild(e)}},x.bindDirective=function(e){if(this.dirs.push(e),e.isEmpty||!e._update)return e.bind&&e.bind(),void 0;var t,i=this,n=e.key;if(e.isExp)t=i.createBinding(n,!0,e.isFn);else{for(;i&&!i.hasKey(n);)i=i.parentCompiler;i=i||this,t=i.bindings[n]||i.createBinding(n)}t.dirs.push(e),e.binding=t,e.bind&&e.bind(),e.update(t.val(),!0)},x.createBinding=function(e,t,i){v(" created binding: "+e);var n=this,r=n.bindings,s=n.options.computed,a=new u(n,e,t,i);if(t)n.defineExp(e,a);else if(r[e]=a,a.root)s&&s[e]?n.defineComputed(e,a,s[e]):n.defineProp(e,a);else{o.ensurePath(n.data,e);var c=e.slice(0,e.lastIndexOf("."));r[c]||n.createBinding(c)}return a},x.defineProp=function(e,t){var i=this,n=i.data,r=n.__emitter__;e in n||(n[e]=void 0),!r||e in r.values||o.convert(n,e),t.value=n[e],Object.defineProperty(i.vm,e,{get:function(){return i.data[e]},set:function(t){i.data[e]=t}})},x.defineExp=function(e,t){var i=d.parse(e,this);i&&(this.markComputed(t,i),this.exps.push(t))},x.defineComputed=function(e,t,i){this.markComputed(t,i),Object.defineProperty(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:c.bind(t.$get,this.vm),$set:t.$set?c.bind(t.$set,this.vm):void 0}),this.computed.push(e)},x.getOption=function(e,t){var i=this.options,n=this.parentCompiler,r=a.globalAssets;return i[e]&&i[e][t]||(n?n.getOption(e,t):r[e]&&r[e][t])},x.execHook=function(e){e="hook:"+e,this.observer.emit(e),this.emitter.emit(e)},x.hasKey=function(e){var t=e.split(".")[0];return y.call(this.data,t)||y.call(this.vm,t)},x.parseDeps=function(){this.computed.length&&f.parse(this.computed)},x.addListener=function(e){var t=e.arg,i=this.delegators[t];i||(i=this.delegators[t]={targets:[],handler:function(e){for(var t,n=i.targets.length;n--;)t=i.targets[n],e.target===t.el&&t.handler&&t.handler(e)}},this.el.addEventListener(t,i.handler)),i.targets.push(e)},x.removeListener=function(e){var t=this.delegators[e.arg].targets;t.splice(t.indexOf(e),1)},x.destroy=function(){if(!this.destroyed){var e,t,i,n,r,s=this,a=s.vm,c=s.el,u=s.dirs,l=s.exps,h=s.bindings,f=s.delegators;for(s.execHook("beforeDestroy"),o.unobserve(s.data,"",s.observer),e=u.length;e--;)i=u[e],i.binding&&i.binding.compiler!==s&&(n=i.binding.dirs,n&&n.splice(n.indexOf(i),1)),i.unbind();for(e=l.length;e--;)l[e].unbind();for(t in h)r=h[t],r&&r.unbind();for(t in f)c.removeEventListener(t,f[t].handler);var d=s.parentCompiler,p=s.childId;d&&(d.childCompilers.splice(d.childCompilers.indexOf(s),1),p&&delete d.vm.$[p]),c===document.body?c.innerHTML="":a.$remove(),this.destroyed=!0,s.execHook("afterDestroy"),s.observer.off(),s.emitter.off()}},i.exports=n}),e.register("vue/src/viewmodel.js",function(e,t,i){function n(e){new s(this,e)}function r(e){return"string"==typeof e?document.querySelector(e):e}var s=t("./compiler"),o=t("./utils"),a=t("./transition"),c=t("./batcher"),u=[].slice,l=o.defProtected,h=o.nextTick,f=new c,d=1,p=n.prototype;l(p,"$set",function(e,t){for(var i=e.split("."),n=this,r=0,s=i.length-1;s>r;r++)n=n[i[r]];n[i[r]]=t}),l(p,"$watch",function(e,t){function i(){var e=u.call(arguments);f.push({id:n,override:!0,execute:function(){t.apply(r,e)}})}var n=d++,r=this;t._fn=i,r.$compiler.observer.on("change:"+e,i)}),l(p,"$unwatch",function(e,t){var i=["change:"+e],n=this.$compiler.observer;t&&i.push(t._fn),n.off.apply(n,i)}),l(p,"$destroy",function(){this.$compiler.destroy()}),l(p,"$broadcast",function(){for(var e,t=this.$compiler.childCompilers,i=t.length;i--;)e=t[i],e.emitter.emit.apply(e.emitter,arguments),e.vm.$broadcast.apply(e.vm,arguments)}),l(p,"$dispatch",function(){var e=this.$compiler,t=e.emitter,i=e.parentCompiler;t.emit.apply(t,arguments),i&&i.vm.$dispatch.apply(i.vm,arguments)}),["emit","on","off","once"].forEach(function(e){l(p,"$"+e,function(){var t=this.$compiler.emitter;t[e].apply(t,arguments)})}),l(p,"$appendTo",function(e,t){e=r(e);var i=this.$el;a(i,1,function(){e.appendChild(i),t&&h(t)},this.$compiler)}),l(p,"$remove",function(e){var t=this.$el,i=t.parentNode;i&&a(t,-1,function(){i.removeChild(t),e&&h(e)},this.$compiler)}),l(p,"$before",function(e,t){e=r(e);var i=this.$el,n=e.parentNode;n&&a(i,1,function(){n.insertBefore(i,e),t&&h(t)},this.$compiler)}),l(p,"$after",function(e,t){e=r(e);var i=this.$el,n=e.parentNode,s=e.nextSibling;n&&a(i,1,function(){s?n.insertBefore(i,s):n.appendChild(i),t&&h(t)},this.$compiler)}),i.exports=n}),e.register("vue/src/binding.js",function(e,t,i){function n(e,t,i,n){this.id=o++,this.value=void 0,this.isExp=!!i,this.isFn=n,this.root=!this.isExp&&-1===t.indexOf("."),this.compiler=e,this.key=t,this.dirs=[],this.subs=[],this.deps=[],this.unbound=!1}var r=t("./batcher"),s=new r,o=1,a=n.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(){return t.unbound?!1:(t._update(),void 0)}})}},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,t.splice(t.indexOf(this),1)},i.exports=n}),e.register("vue/src/observer.js",function(e,t,i){function n(e){if("function"==typeof e){for(var t=this.length,i=[];t--;)e(this[t])&&i.push(this.splice(t,1)[0]);return i.reverse()}return"number"!=typeof e&&(e=this.indexOf(e)),e>-1?this.splice(e,1)[0]:void 0}function r(e,t){if("function"==typeof e){for(var i,n=this.length,r=[];n--;)i=e(this[n]),void 0!==i&&r.push(this.splice(n,1,i)[0]);return r.reverse()}return"number"!=typeof e&&(e=this.indexOf(e)),e>-1?this.splice(e,1,t)[0]:void 0}function s(e){for(var t in e)a(e,t)}function o(e){var t=e.__emitter__;if(t||(t=new v,b(e,"__emitter__",t)),w)e.__proto__=k;else for(var i in k)b(e,i,k[i])}function a(e,t){function i(e,i){s[t]=e,r.emit("set",t,e,i),Array.isArray(e)&&r.emit("set",t+".length",e.length),f(e,t,r)}var n=t.charAt(0);if("$"!==n&&"_"!==n||"$index"===t||"$key"===t||"$value"===t){var r=e.__emitter__,s=r.values;i(e[t]),Object.defineProperty(e,t,{get:function(){var e=s[t];return C.shouldGet&&g(e)!==_&&r.emit("get",t),e},set:function(e){var n=s[t];d(n,t,r),l(e,n),i(e,!0)}})}}function c(e){p=p||t("./viewmodel");var i=g(e);return!(i!==_&&i!==x||e instanceof p)}function u(e){var t=g(e),i=e&&e.__emitter__;if(t===x)i.emit("set","length",e.length);else if(t===_){var n,r;for(n in e)r=e[n],i.emit("set",n,r),u(r)}}function l(e,t){if(g(t)===_&&g(e)===_){var i,n,r,s;for(i in t)i in e||(r=t[i],n=g(r),n===_?(s=e[i]={},l(s,r)):e[i]=n===x?[]:void 0)}}function h(e,t){for(var i,n=t.split("."),r=0,s=n.length-1;s>r;r++)i=n[r],e[i]||(e[i]={},e.__emitter__&&a(e,i)),e=e[i];g(e)===_&&(i=n[r],i in e||(e[i]=void 0,e.__emitter__&&a(e,i)))}function f(e,t,i){if(c(e)){var n,r=t?t+".":"",a=!!e.__emitter__;a||b(e,"__emitter__",new v),n=e.__emitter__,n.values=n.values||m.hash(),i.proxies=i.proxies||{};var l=i.proxies[r]={get:function(e){i.emit("get",r+e)},set:function(n,s,o){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)}};if(n.on("get",l.get).on("set",l.set).on("mutate",l.mutate),a)u(e);else{var h=g(e);h===_?s(e):h===x&&o(e)}}}function d(e,t,i){if(e&&e.__emitter__){t=t?t+".":"";var n=i.proxies[t];n&&(e.__emitter__.off("get",n.get).off("set",n.set).off("mutate",n.mutate),i.proxies[t]=null)}}var p,v=t("./emitter"),m=t("./utils"),g=m.typeOf,b=m.defProtected,y=[].slice,_="Object",x="Array",$=["push","pop","shift","unshift","splice","sort","reverse"],w={}.__proto__,k=Object.create(Array.prototype);$.forEach(function(e){b(k,e,function(){var t=Array.prototype[e].apply(this,arguments);return this.__emitter__.emit("mutate",null,this,{method:e,args:y.call(arguments),result:t}),t},!w)}),b(k,"remove",n,!w),b(k,"set",r,!w),b(k,"replace",r,!w);var C=i.exports={shouldGet:!1,observe:f,unobserve:d,ensurePath:h,convert:a,copyPaths:l,watchArray:o}}),e.register("vue/src/directive.js",function(e,t,i){function n(e,t,i,n,o){this.compiler=n,this.vm=n.vm,this.el=o;var a=""===t;if("function"==typeof e)this[a?"bind":"_update"]=e;else for(var c in e)"unbind"===c||"update"===c?this["_"+c]=e[c]:this[c]=e[c];if(a)return this.isEmpty=!0,void 0;this.expression=t.trim(),this.rawKey=i,r(this,i),this.isExp=!v.test(this.key)||p.test(this.key);var u=this.expression.slice(i.length).match(f);if(u){this.filters=[];for(var l,h=0,d=u.length;d>h;h++)l=s(u[h],this.compiler),l&&this.filters.push(l);this.filters.length||(this.filters=null)}else this.filters=null}function r(e,t){var i=t;if(t.indexOf(":")>-1){var n=t.match(h);i=n?n[2].trim():i,e.arg=n?n[1].trim():null}e.key=i}function s(e,t){var i=e.slice(1).match(d);if(i){i=i.map(function(e){return e.replace(/'/g,"").trim()});var n=i[0],r=t.getOption("filters",n)||c[n];return r?{name:n,apply:r,args:i.length>1?i.slice(1):null}:(o.warn("Unknown filter: "+n),void 0)}}var o=t("./utils"),a=t("./directives"),c=t("./filters"),u=/(?:['"](?:\\.|[^'"])*['"]|\((?:\\.|[^\)])*\)|\\.|[^,])+/g,l=/^(?:['"](?:\\.|[^'"])*['"]|\\.|[^\|]|\|\|)+/,h=/^([\w-$ ]+):(.+)$/,f=/\|[^\|]+/g,d=/[^\s']+|'[^']+'/g,p=/^\$(parent|root)\./,v=/^[\w\.$]+$/,m=n.prototype;m.update=function(e,t){var i=o.typeOf(e);(t||e!==this.value||"Object"===i||"Array"===i)&&(this.value=e,this._update&&this._update(this.filters?this.applyFilters(e):e,t))},m.applyFilters=function(e){for(var t,i=e,n=0,r=this.filters.length;r>n;n++)t=this.filters[n],i=t.apply.call(this.vm,i,t.args);return i},m.unbind=function(){this.el&&this.vm&&(this._unbind&&this._unbind(),this.vm=this.el=this.binding=this.compiler=null)},n.split=function(e){return e.indexOf(",")>-1?e.match(u)||[""]:[e]},n.parse=function(e,t,i,r){var s=i.getOption("directives",e)||a[e];if(!s)return o.warn("unknown directive: "+e);var c;if(t.indexOf("|")>-1){var u=t.match(l);u&&(c=u[0].trim())}else c=t.trim();return c||""===t?new n(s,t,c,i,r):o.warn("invalid directive expression: "+t)},i.exports=n}),e.register("vue/src/exp-parser.js",function(e,t,i){function n(e){return e=e.replace(p,"").replace(v,",").replace(d,"").replace(m,"").replace(g,""),e?e.split(/,+/):[]}function r(e,t){for(var i="",n=0,r=t;t&&!t.hasKey(e);)t=t.parentCompiler,n++;if(t){for(;n--;)i+="$parent.";t.bindings[e]||"$"===e.charAt(0)||t.createBinding(e)}else r.createBinding(e);return i}function s(e,t){var i;try{i=new Function(e)}catch(n){a.warn("Invalid expression: "+t)}return i}function o(e){return"$"===e.charAt(0)?"\\"+e:e}var a=t("./utils"),c=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/g,u=/"(\d+)"/g,l=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\.]+/g,v=/[^\w$]+/g,m=/\b\d[^,]*/g,g=/^,+|,+$/g;i.exports={parse:function(e,t){function i(e){var t=g.length;return g[t]=e,'"'+t+'"'}function f(e){var i=e.charAt(0);e=e.slice(1);var n="this."+r(e,t)+e;return m[e]||(v+=n+";",m[e]=1),i+n}function d(e,t){return g[t]}if(h.test(e)||l.test(e))return a.warn("Unsafe expression: "+e),function(){};var p=n(e);if(!p.length)return s("return "+e,e);p=a.unique(p);var v="",m=a.hash(),g=[],b=new RegExp("[^$\\w\\.]("+p.map(o).join("|")+")[$\\w\\.]*\\b","g"),y=("return "+e).replace(c,i).replace(b,f).replace(u,d);return y=v+y,s(y,e)}}}),e.register("vue/src/text-parser.js",function(e){function t(e){if(!n.test(e))return null;for(var t,i,s,o=[];t=e.match(n);)i=t.index,i>0&&o.push(e.slice(0,i)),s={key:t[1].trim()},r.test(t[0])&&(s.html=!0),o.push(s),e=e.slice(i+t[0].length);return e.length&&o.push(e),o}function i(e){var i=t(e);if(!i)return null;for(var n,r=[],s=0,o=i.length;o>s;s++)n=i[s],r.push(n.key||'"'+n+'"');return r.join("+")}var n=/{{{?([^{}]+?)}?}}/,r=/{{{[^{}]+}}}/;e.parse=t,e.parseAttr=i}),e.register("vue/src/deps-parser.js",function(e,t,i){function n(e){if(!e.isFn){s.log("\n- "+e.key);var t=s.hash();e.deps=[],a.on("get",function(i){var n=t[i.key];n&&n.compiler===i.compiler||(t[i.key]=i,s.log(" - "+i.key),e.deps.push(i),i.subs.push(e))}),e.value.$get(),a.off("get")}}var r=t("./emitter"),s=t("./utils"),o=t("./observer"),a=new r;i.exports={catcher:a,parse:function(e){s.log("\nparsing dependencies..."),o.shouldGet=!0,e.forEach(n),o.shouldGet=!1,s.log("\ndone.")}}}),e.register("vue/src/filters.js",function(e,t,i){var n={enter:13,tab:9,"delete":46,up:38,left:37,right:39,down:40,esc:27};i.exports={capitalize:function(e){return e||0===e?(e=e.toString(),e.charAt(0).toUpperCase()+e.slice(1)):""},uppercase:function(e){return e||0===e?e.toString().toUpperCase():""},lowercase:function(e){return e||0===e?e.toString().toLowerCase():""},currency:function(e,t){if(!e&&0!==e)return"";var i=t&&t[0]||"$",n=Math.floor(e).toString(),r=n.length%3,s=r>0?n.slice(0,r)+(n.length>3?",":""):"",o="."+e.toFixed(2).slice(-2);return i+s+n.slice(r).replace(/(\d{3})(?=\d)/g,"$1,")+o},pluralize:function(e,t){return t.length>1?t[e-1]||t[t.length-1]:t[e-1]||t[0]+"s"},key:function(e,t){if(e){var i=n[t[0]];return i||(i=parseInt(t[0],10)),function(t){t.keyCode===i&&e.call(this,t)}}}}}),e.register("vue/src/transition.js",function(e,t,i){function n(e,t,i,n){if(!o.trans)return i(),f.CSS_SKIP;var r,s=e.classList,c=e.vue_trans_cb,l=a.enterClass,h=a.leaveClass,d=n?o.anim:o.trans;return c&&(e.removeEventListener(d,c),s.remove(l),s.remove(h),e.vue_trans_cb=null),t>0?(s.add(l),i(),n?(r=function(t){t.target===e&&(e.removeEventListener(d,r),e.vue_trans_cb=null,s.remove(l))},e.addEventListener(d,r),e.vue_trans_cb=r):u.push({execute:function(){s.remove(l)}}),f.CSS_E):(e.offsetWidth||e.offsetHeight?(s.add(h),r=function(t){t.target===e&&(e.removeEventListener(d,r),e.vue_trans_cb=null,i(),s.remove(h))},e.addEventListener(d,r),e.vue_trans_cb=r):i(),f.CSS_L)}function r(e,t,i,n,r){function s(t,i){var n=l(function(){t(),u.splice(u.indexOf(n),1),u.length||(e.vue_timeouts=null)},i);u.push(n)}var o=r.getOption("effects",n);if(!o)return i(),f.JS_SKIP;var a=o.enter,c=o.leave,u=e.vue_timeouts;if(u)for(var d=u.length;d--;)h(u[d]);return u=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={transition:t,mozTransition:t,webkitTransition:"webkitTransitionEnd"},n={};for(var r in i)if(void 0!==e.style[r]){n.trans=i[r];break}return n.anim=""===e.style.animation?"animationend":"webkitAnimationEnd",n}var o=s(),a=t("./config"),c=t("./batcher"),u=new c,l=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},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,u=e.vue_effect;return u?r(e,t,o,u,s):a||c?n(e,t,o,c):(o(),f.SKIP)};d.codes=f}),e.register("vue/src/batcher.js",function(e,t,i){function n(){this.reset()}var r=t("./utils"),s=n.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,r.nextTick(r.bind(this.flush,this)))},s.flush=function(){this._preFlush&&this._preFlush();for(var e=0;ei;i++)if(e[i]===t||t.$value&&e[i].$value===t.$value)return i;return-1}var s,o=t("../observer"),a=t("../utils"),c=t("../config"),u=t("../transition"),l=a.defProtected,h={push:function(e){for(var t=e.args.length,i=this.collection.length-t,n=0;t>n;n++)this.buildItem(e.args[n],i+n),this.updateObject(e.args[n],1)},pop:function(){var e=this.vms.pop();e&&(e.$destroy(),this.updateObject(e.$data,-1))},unshift:function(e){for(var t=0,i=e.args.length;i>t;t++)this.buildItem(e.args[t],t),this.updateObject(e.args[t],1)},shift:function(){var e=this.vms.shift();e&&(e.$destroy(),this.updateObject(e.$data,-1))},splice:function(e){var t,i,n=e.args[0],r=e.args[1],s=e.args.length-2,o=this.vms.splice(n,r);for(t=0,i=o.length;i>t;t++)o[t].$destroy(),this.updateObject(o[t].$data,-1);for(t=0;s>t;t++)this.buildItem(e.args[t+2],n+t),this.updateObject(e.args[t+2],1)},sort:function(){var e,t,i,n,r=this.vms,s=this.collection,o=s.length,a=new Array(o);for(e=0;o>e;e++)for(n=s[e],t=0;o>t;t++)if(i=r[t],i.$data===n){a[e]=i;break}for(e=0;o>e;e++)this.container.insertBefore(a[e].$el,this.ref);this.vms=a},reverse:function(){var e=this.vms;e.reverse();for(var t=0,i=e.length;i>t;t++)this.container.insertBefore(e[t].$el,this.ref)}};i.exports={bind:function(){var e=this.el,i=this.container=e.parentNode;s=s||t("../viewmodel"),this.Ctor=this.Ctor||s,this.childId=a.attr(e,"ref"),this.ref=document.createComment(c.prefix+"-repeat-"+this.key),i.insertBefore(this.ref,e),i.removeChild(e),this.initiated=!1,this.collection=null,this.vms=null;var n=this;this.mutationListener=function(e,t,i){var r=i.method;if(h[r].call(n,i),"push"!==r&&"pop"!==r)for(var s=t.length;s--;)t[s].$index=s;("push"===r||"unshift"===r||"splice"===r)&&n.changed()}},update:function(e,t){if(e!==this.collection&&e!==this.object){"Object"===a.typeOf(e)&&(e=this.convertObject(e)),this.reset(),this.container.vue_dHandlers=a.hash(),this.initiated||e&&e.length||(this.buildItem(),this.initiated=!0),this.old=this.collection;var i=this.oldVMs=this.vms;if(e=this.collection=e||[],this.vms=[],this.childId&&(this.vm.$[this.childId]=this.vms),e.__emitter__||o.watchArray(e),e.__emitter__.on("mutate",this.mutationListener),e.length&&(e.forEach(this.buildItem,this),t||this.changed()),i)for(var n,r=i.length;r--;)n=i[r],n.$reused?n.$reused=!1:n.$destroy();this.old=this.oldVMs=null}},changed:function(){if(!this.queued){this.queued=!0;var e=this;setTimeout(function(){e.compiler&&(e.compiler.parseDeps(),e.queued=!1)},0)}},buildItem:function(e,t){var i,n,s,o,c,h,f=this.container,d=this.vms,p=this.collection;e&&(this.old&&(n=r(this.old,e)),n>-1?(o=this.oldVMs[n],o.$reused=!0,i=o.$el,e.$index=t,h=!i.parentNode):(i=this.el.cloneNode(!0),i.vue_trans=a.attr(i,"transition",!0),i.vue_anim=a.attr(i,"animation",!0),i.vue_effect=a.attr(i,"effect",!0),"Object"!==a.typeOf(e)&&(c=!0,e={$value:e}),l(e,"$index",t,!1,!0)),s=d.length>t?d[t].$el:this.ref,s.parentNode||(s=s.vue_ref),h?f.insertBefore(i.vue_ref,s):n>-1?f.insertBefore(i,s):u(i,1,function(){f.insertBefore(i,s)},this.compiler)),o=o||new this.Ctor({el:i,data:e,compilerOptions:{repeat:!0,parentCompiler:this.compiler,delegator:f}}),e?(d.splice(t,0,o),c&&e.__emitter__.on("set",function(e,t){"$value"===e&&(p[o.$index]=t) +})):o.$destroy()},convertObject:function(e){this.object&&(delete this.object.$repeater,this.object.__emitter__.off("set",this.updateRepeater)),this.object=e;var t=n(e);l(e,"$repeater",t,!1,!0);var i=this;return this.updateRepeater=function(e,n){if(-1===e.indexOf("."))for(var r,s=t.length;s--;)if(r=t[s],r.$key===e){r!==n&&r.$value!==n&&("$value"in r?r.$value=n:(l(n,"$key",e,!1,!0),i.lock=!0,t.set(s,n),i.lock=!1));break}},e.__emitter__.on("set",this.updateRepeater),t},updateObject:function(e,t){if(!this.lock){var i=this.object;if(i&&e.$key){var n=e.$key,r=e.$value||e;t>0?(delete e.$key,l(e,"$key",n,!1,!0),i[n]=r,o.convert(i,n)):delete i[n],i.__emitter__.emit("set",n,r,!0)}}},reset:function(e){if(this.childId&&delete this.vm.$[this.childId],this.collection&&(this.collection.__emitter__.off("mutate",this.mutationListener),e))for(var t=this.vms.length;t--;)this.vms[t].$destroy();var i=this.container,n=i.vue_dHandlers;for(var r in n)i.removeEventListener(n[r].event,n[r]);i.vue_dHandlers=null},unbind:function(){this.reset(!0)}}}),e.register("vue/src/directives/on.js",function(e,t,i){var n=t("../utils").warn;i.exports={isFn:!0,bind:function(){this.bubbles="blur"!==this.arg&&"focus"!==this.arg,this.bubbles&&this.binding.compiler.addListener(this)},update:function(e){if("function"!=typeof e)return n('Directive "on" expects a function value.');var t=this.vm,i=this.binding.compiler.vm,r=this.binding.isExp,s=function(n){n.targetVM=t,e.call(r?t:i,n)};this.bubbles||(this.reset(),this.el.addEventListener(this.arg,s)),this.handler=s},reset:function(){this.el.removeEventListener(this.arg,this.handler)},unbind:function(){this.bubbles?this.binding.compiler.removeListener(this):this.reset()}}}),e.register("vue/src/directives/model.js",function(e,t,i){function n(e){return o.call(e.options,function(e){return e.selected}).map(function(e){return e.value||e.text})}var r=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,n=t.tagName;e.lock=!1,e.ownerVM=e.binding.compiler.vm,e.event=e.compiler.options.lazy||"SELECT"===n||"checkbox"===i||"radio"===i?"change":"input",e.attr="checkbox"===i?"checked":"INPUT"===n||"SELECT"===n||"TEXTAREA"===n?"value":"innerHTML","SELECT"===n&&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(n){}e._set(),r.nextTick(function(){void 0!==i&&t.setSelectionRange(i,i)})}}:function(){o||(e.lock=!0,e._set(),r.nextTick(function(){e.lock=!1}))},t.addEventListener(e.event,e.set),s&&(e.onCut=function(){r.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?n(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]=r.toText(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 n;i.exports={bind:function(){this.isEmpty&&this.build()},update:function(e){this.component?this.component.$data=e:this.build(e)},build:function(e){n=n||t("../viewmodel");var i=this.Ctor||n;this.component=new i({el:this.el,data:e,compilerOptions:{parentCompiler:this.compiler}})},unbind:function(){this.component.$destroy()}}}),e.register("vue/src/directives/html.js",function(e,t,i){var n=t("../utils").toText,r=[].slice;i.exports={bind:function(){8===this.el.nodeType&&(this.holder=document.createElement("div"),this.nodes=[])},update:function(e){e=n(e),this.holder?this.swap(e):this.el.innerHTML=e},swap:function(e){for(var t,i=this.el.parentNode,n=this.holder,s=this.nodes,o=s.length;o--;)i.removeChild(s[o]);for(n.innerHTML=e,s=this.nodes=r.call(n.childNodes),o=0,t=s.length;t>o;o++)i.insertBefore(s[o],this.el)}}}),e.register("vue/src/directives/style.js",function(e,t,i){function n(e){return e[1].toUpperCase()}var r=/-([a-z])/g,s=["webkit","moz","ms"];i.exports={bind:function(){var e=this.arg;if(e){var t=e.charAt(0);"$"===t?(e=e.slice(1),this.prefixed=!0):"-"===t&&(e=e.slice(1)),this.prop=e.replace(r,n)}},update:function(e){var t=this.prop;if(t){if(this.el.style[t]=e,this.prefixed){t=t.charAt(0).toUpperCase()+t.slice(1);for(var i=s.length;i--;)this.el.style[s[i]+t]=e}}else this.el.style.cssText=e}}}),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")}(); \ No newline at end of file diff --git a/package.json b/package.json index 05604d18e03..352746de285 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue", - "version": "0.8.8", + "version": "0.9.0", "author": { "name": "Evan You", "email": "yyx990803@gmail.com",