diff --git a/bower.json b/bower.json index 932f211aa97..b40e65c4769 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "vue", - "version": "0.7.6", + "version": "0.8.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 e7d6d5d3ba0..8d5acaa5bad 100644 --- a/component.json +++ b/component.json @@ -1,6 +1,6 @@ { "name": "vue", - "version": "0.7.6", + "version": "0.8.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 10e470fe5ed..c8d26cd24ff 100644 --- a/dist/vue.js +++ b/dist/vue.js @@ -1,5 +1,5 @@ /* - VueJS v0.7.6 + VueJS v0.8.0 (c) 2014 Evan You License: MIT */ @@ -570,7 +570,6 @@ var prefix = 'v', ], config = module.exports = { - async : true, debug : false, silent : false, enterClass : 'v-enter', @@ -806,8 +805,7 @@ var Emitter = require('./emitter'), TextParser = require('./text-parser'), DepsParser = require('./deps-parser'), ExpParser = require('./exp-parser'), - // cache deps ob - depsOb = DepsParser.observer, + // cache methods slice = Array.prototype.slice, log = utils.log, @@ -843,30 +841,23 @@ function Compiler (vm, options) { // set compiler properties compiler.vm = vm + compiler.bindings = makeHash() compiler.dirs = [] compiler.exps = [] compiler.computed = [] compiler.childCompilers = [] compiler.emitter = new Emitter() - // inherit parent bindings - var parent = compiler.parentCompiler - compiler.bindings = parent - ? Object.create(parent.bindings) - : makeHash() - compiler.rootCompiler = parent - ? getRoot(parent) - : compiler - // set inenumerable VM properties def(vm, '$', makeHash()) def(vm, '$el', el) def(vm, '$compiler', compiler) - def(vm, '$root', compiler.rootCompiler.vm) + def(vm, '$root', getRoot(compiler).vm) // set parent VM // and register child id on parent - var childId = utils.attr(el, 'component-id') + var parent = compiler.parentCompiler, + childId = utils.attr(el, 'component-id') if (parent) { parent.childCompilers.push(compiler) def(vm, '$parent', parent.vm) @@ -879,6 +870,14 @@ function Compiler (vm, options) { // setup observer compiler.setupObserver() + // create bindings for computed properties + var computed = options.computed + if (computed) { + for (var key in computed) { + compiler.createBinding(key) + } + } + // beforeCompile hook compiler.execHook('beforeCompile', 'created') @@ -989,7 +988,7 @@ CompilerProto.setupObserver = function () { observer .on('get', function (key) { check(key) - depsOb.emit('get', bindings[key]) + DepsParser.catcher.emit('get', bindings[key]) }) .on('set', function (key, val) { observer.emit('change:' + key, val) @@ -1003,7 +1002,7 @@ CompilerProto.setupObserver = function () { }) function check (key) { - if (!hasOwn.call(bindings, key)) { + if (!bindings[key]) { compiler.createBinding(key) } } @@ -1197,34 +1196,30 @@ CompilerProto.bindDirective = function (directive) { // for a simple directive, simply call its bind() or _update() // and we're done. - if (directive.isSimple) { + if (directive.isEmpty) { if (directive.bind) directive.bind() return } // otherwise, we got more work to do... var binding, - compiler = this, - key = directive.key, - baseKey = key.split('.')[0] + compiler = this, + key = directive.key if (directive.isExp) { // expression bindings are always created on current compiler binding = compiler.createBinding(key, true, directive.isFn) - } else if ( - hasOwn.call(compiler.data, baseKey) || - hasOwn.call(compiler.vm, baseKey) - ) { - // If the directive's compiler's VM has the base key, - // it belongs here. Create the binding if it's not created already. - binding = hasOwn.call(compiler.bindings, key) - ? compiler.bindings[key] - : compiler.createBinding(key) } else { - // due to prototypal inheritance of bindings, if a key doesn't exist - // on the bindings object, then it doesn't exist in the whole - // prototype chain. In this case we create the new binding at the root level. - binding = compiler.bindings[key] || compiler.rootCompiler.createBinding(key) + // recursively locate which compiler owns the binding + while (compiler) { + if (compiler.hasKey(key)) { + break + } else { + compiler = compiler.parentCompiler + } + } + compiler = compiler || this + binding = compiler.bindings[key] || compiler.createBinding(key) } binding.instances.push(directive) @@ -1236,14 +1231,7 @@ CompilerProto.bindDirective = function (directive) { } // set initial value - var value = binding.value - if (value !== undefined) { - if (binding.isComputed) { - directive.refresh(value) - } else { - directive.update(value, true) - } - } + directive.update(binding.val(), true) } /** @@ -1251,35 +1239,32 @@ CompilerProto.bindDirective = function (directive) { */ CompilerProto.createBinding = function (key, isExp, isFn) { + log(' created binding: ' + key) + var compiler = this, bindings = compiler.bindings, + computed = compiler.options.computed, binding = new Binding(compiler, key, isExp, isFn) if (isExp) { - // a complex expression binding - // we need to generate an anonymous computed property for it - var getter = ExpParser.parse(key, compiler) - if (getter) { - log(' created expression binding: ' + key) - binding.value = isFn - ? getter - : { $get: getter } - compiler.markComputed(binding) - compiler.exps.push(binding) - } + // expression bindings are anonymous + compiler.defineExp(key, binding) } else { - log(' created binding: ' + key) bindings[key] = binding - // make sure the key exists in the object so it can be observed - // by the Observer! if (binding.root) { // this is a root level binding. we need to define getter/setters for it. - compiler.define(key, binding) + if (computed && computed[key]) { + // computed property + compiler.defineComputed(key, binding, computed[key]) + } else { + // normal property + compiler.defineProp(key, binding) + } } else { // ensure path in data so it can be observed Observer.ensurePath(compiler.data, key) var parentKey = key.slice(0, key.lastIndexOf('.')) - if (!hasOwn.call(bindings, parentKey)) { + if (!bindings[parentKey]) { // this is a nested value binding, but the binding for its parent // has not been created yet. We better create that one too. compiler.createBinding(parentKey) @@ -1290,18 +1275,17 @@ CompilerProto.createBinding = function (key, isExp, isFn) { } /** - * Defines the getter/setter for a root-level binding on the VM + * Define the getter/setter for a root-level property on the VM * and observe the initial value */ -CompilerProto.define = function (key, binding) { - - log(' defined root binding: ' + key) - +CompilerProto.defineProp = function (key, binding) { + var compiler = this, data = compiler.data, - vm = compiler.vm, ob = data.__observer__ + // make sure the key is present in data + // so it can be observed if (!(key in data)) { data[key] = undefined } @@ -1312,44 +1296,61 @@ CompilerProto.define = function (key, binding) { Observer.convert(data, key) } - var value = binding.value = data[key] - if (utils.typeOf(value) === 'Object' && value.$get) { - compiler.markComputed(binding) - } + binding.value = data[key] - Object.defineProperty(vm, key, { - enumerable: !binding.isComputed, - get: binding.isComputed - ? function () { - return compiler.data[key].$get() - } - : function () { - return compiler.data[key] - }, - set: binding.isComputed - ? function (val) { - if (compiler.data[key].$set) { - compiler.data[key].$set(val) - } - } - : function (val) { - compiler.data[key] = val - } + Object.defineProperty(compiler.vm, key, { + get: function () { + return compiler.data[key] + }, + set: function (val) { + compiler.data[key] = val + } }) } +/** + * Define an expression binding, which is essentially + * an anonymous computed property + */ +CompilerProto.defineExp = function (key, binding) { + var getter = ExpParser.parse(key, this) + if (getter) { + var value = binding.isFn + ? getter + : { $get: getter } + this.markComputed(binding, value) + this.exps.push(binding) + } +} + +/** + * Define a computed property on the VM + */ +CompilerProto.defineComputed = function (key, binding, value) { + this.markComputed(binding, value) + var def = { + get: binding.value.$get + } + if (binding.value.$set) { + def.set = binding.value.$set + } + Object.defineProperty(this.vm, key, def) +} + /** * Process a computed property binding + * so its getter/setter are bound to proper context */ -CompilerProto.markComputed = function (binding) { - var value = binding.value, - vm = this.vm +CompilerProto.markComputed = function (binding, value) { + binding.value = value binding.isComputed = true // bind the accessors to the vm if (!binding.isFn) { - value.$get = utils.bind(value.$get, vm) + binding.value = { + $get: utils.bind(value.$get, this.vm) + } if (value.$set) { - value.$set = utils.bind(value.$set, vm) + binding.value.$set = utils.bind(value.$set, this.vm) } } // keep track for dep parsing later @@ -1380,6 +1381,15 @@ CompilerProto.execHook = function (id, alt) { } } +/** + * Check if a compiler's data contains a keypath + */ +CompilerProto.hasKey = function (key) { + var baseKey = key.split('.')[0] + return hasOwn.call(this.data, baseKey) || + hasOwn.call(this.vm, baseKey) +} + /** * Unbind and remove element */ @@ -1406,7 +1416,7 @@ CompilerProto.destroy = function () { // if this directive is an instance of an external binding // e.g. a directive that refers to a variable on the parent VM // we need to remove it from that binding's instances - if (!dir.isSimple && dir.binding.compiler !== compiler) { + if (!dir.isEmpty && dir.binding.compiler !== compiler) { instances = dir.binding.instances if (instances) instances.splice(instances.indexOf(dir), 1) } @@ -1421,8 +1431,8 @@ CompilerProto.destroy = function () { // unbind/unobserve all own bindings for (key in bindings) { - if (hasOwn.call(bindings, key)) { - binding = bindings[key] + binding = bindings[key] + if (binding) { if (binding.root) { Observer.unobserve(binding.value, binding.key, compiler.observer) } @@ -1668,35 +1678,35 @@ function Binding (compiler, key, isExp, isFn) { var BindingProto = Binding.prototype /** - * Process the value, then trigger updates on all dependents + * Update value and queue instance updates. */ BindingProto.update = function (value) { - this.value = value - batcher.queue(this, 'update') + if (!this.isComputed || this.isFn) { + this.value = value + } + batcher.queue(this) } +/** + * Actually update the instances. + */ BindingProto._update = function () { - var i = this.instances.length + var i = this.instances.length, + value = this.val() while (i--) { - this.instances[i].update(this.value) + this.instances[i].update(value) } this.pub() } /** - * -- computed property only -- - * Force all instances to re-evaluate themselves + * Return the valuated value regardless + * of whether it is computed or not */ -BindingProto.refresh = function () { - batcher.queue(this, 'refresh') -} - -BindingProto._refresh = function () { - var i = this.instances.length - while (i--) { - this.instances[i].refresh() - } - this.pub() +BindingProto.val = function () { + return this.isComputed && !this.isFn + ? this.value.$get() + : this.value } /** @@ -1706,7 +1716,7 @@ BindingProto._refresh = function () { BindingProto.pub = function () { var i = this.subs.length while (i--) { - this.subs[i].refresh() + this.subs[i].update() } } @@ -1738,7 +1748,6 @@ require.register("vue/src/observer.js", function(exports, require, module){ var Emitter = require('./emitter'), utils = require('./utils'), - depsOb = require('./deps-parser').observer, // cache methods typeOf = utils.typeOf, @@ -1879,7 +1888,7 @@ function convert (obj, key) { get: function () { var value = values[key] // only emit get on tip values - if (depsOb.active && typeOf(value) !== OBJECT) { + if (pub.shouldGet && typeOf(value) !== OBJECT) { observer.emit('get', key) } return value @@ -2040,13 +2049,18 @@ function unobserve (obj, path, observer) { observer.proxies[path] = null } -module.exports = { +var pub = module.exports = { + + // whether to emit get events + // only enabled during dependency parsing + shouldGet : false, + observe : observe, unobserve : unobserve, ensurePath : ensurePath, convert : convert, copyPaths : copyPaths, - watchArray : watchArray, + watchArray : watchArray } }); require.register("vue/src/directive.js", function(exports, require, module){ @@ -2079,11 +2093,11 @@ function Directive (definition, expression, rawKey, compiler, node) { this.vm = compiler.vm this.el = node - var isSimple = expression === '' + var isEmpty = expression === '' // mix in properties from the directive definition if (typeof definition === 'function') { - this[isSimple ? 'bind' : '_update'] = definition + this[isEmpty ? 'bind' : '_update'] = definition } else { for (var prop in definition) { if (prop === 'unbind' || prop === 'update') { @@ -2095,8 +2109,8 @@ function Directive (definition, expression, rawKey, compiler, node) { } // empty expression, we're done. - if (isSimple) { - this.isSimple = true + if (isEmpty) { + this.isEmpty = true return } @@ -2175,37 +2189,13 @@ function parseFilter (filter, compiler) { DirProto.update = function (value, init) { if (!init && value === this.value) return this.value = value - this.apply(value) -} - -/** - * -- computed property only -- - * called when a dependency has changed - */ -DirProto.refresh = function (value) { - // pass element and viewmodel info to the getter - // enables context-aware bindings - if (value) this.value = value - - if (this.isFn) { - value = this.value - } else { - value = this.value.$get() - if (value !== undefined && value === this.computedValue) return - this.computedValue = value + if (this._update) { + this._update( + this.filters + ? this.applyFilters(value) + : value + ) } - this.apply(value) -} - -/** - * Actually invoking the _update from the directive's definition - */ -DirProto.apply = function (value) { - this._update( - this.filters - ? this.applyFilters(value) - : value - ) } /** @@ -2275,7 +2265,6 @@ module.exports = Directive }); require.register("vue/src/exp-parser.js", function(exports, require, module){ var utils = require('./utils'), - hasOwn = Object.prototype.hasOwnProperty, stringSaveRE = /"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/g, stringRestoreRE = /"(\d+)"/g @@ -2329,33 +2318,26 @@ function getVariables (code) { * final resolved vm. */ function getRel (path, compiler) { - var rel = '', - vm = compiler.vm, - dot = path.indexOf('.'), - key = dot > -1 - ? path.slice(0, dot) - : path - while (true) { - if ( - hasOwn.call(vm.$data, key) || - hasOwn.call(vm, key) - ) { + var rel = '', + dist = 0, + self = compiler + while (compiler) { + if (compiler.hasKey(path)) { break } else { - if (vm.$parent) { - vm = vm.$parent - rel += '$parent.' - } else { - break - } + compiler = compiler.parentCompiler + dist++ } } - compiler = vm.$compiler - if ( - !hasOwn.call(compiler.bindings, path) && - path.charAt(0) !== '$' - ) { - compiler.createBinding(path) + if (compiler) { + while (dist--) { + rel += '$parent.' + } + if (!compiler.bindings[path] && path.charAt(0) !== '$') { + compiler.createBinding(path) + } + } else { + self.createBinding(path) } return rel } @@ -2484,7 +2466,8 @@ exports.parseAttr = parseAttr require.register("vue/src/deps-parser.js", function(exports, require, module){ var Emitter = require('./emitter'), utils = require('./utils'), - observer = new Emitter() + Observer = require('./observer'), + catcher = new Emitter() /** * Auto-extract the dependencies of a computed property @@ -2494,7 +2477,7 @@ function catchDeps (binding) { if (binding.isFn) return utils.log('\n- ' + binding.key) var got = utils.hash() - observer.on('get', function (dep) { + catcher.on('get', function (dep) { var has = got[dep.key] if (has && has.compiler === dep.compiler) return got[dep.key] = dep @@ -2503,7 +2486,7 @@ function catchDeps (binding) { dep.subs.push(binding) }) binding.value.$get() - observer.off('get') + catcher.off('get') } module.exports = { @@ -2511,16 +2494,16 @@ module.exports = { /** * the observer that catches events triggered by getters */ - observer: observer, + catcher: catcher, /** * parse a list of computed property bindings */ parse: function (bindings) { utils.log('\nparsing dependencies...') - observer.active = true + Observer.shouldGet = true bindings.forEach(catchDeps) - observer.active = false + Observer.shouldGet = false utils.log('\ndone.') } @@ -2616,8 +2599,6 @@ module.exports = { require.register("vue/src/transition.js", function(exports, require, module){ var endEvent = sniffTransitionEndEvent(), config = require('./config'), - enterClass = config.enterClass, - leaveClass = config.leaveClass, // exit codes for testing codes = { CSS_E : 1, @@ -2696,27 +2677,27 @@ function applyTransitionClass (el, stage, changeState) { } // set to hidden state before appending - classList.add(enterClass) + classList.add(config.enterClass) // append changeState() // force a layout so transition can be triggered /* jshint unused: false */ var forceLayout = el.clientHeight // trigger transition - classList.remove(enterClass) + classList.remove(config.enterClass) return codes.CSS_E } else { // leave // trigger hide transition - classList.add(leaveClass) + classList.add(config.leaveClass) var onEnd = function (e) { if (e.target === el) { el.removeEventListener(endEvent, onEnd) el.vue_trans_cb = null // actually remove node here changeState() - classList.remove(leaveClass) + classList.remove(config.leaveClass) } } // attach transition end listener @@ -2776,22 +2757,14 @@ function sniffTransitionEndEvent () { } }); require.register("vue/src/batcher.js", function(exports, require, module){ -var config = require('./config'), - utils = require('./utils'), +var utils = require('./utils'), queue, has, waiting reset() -exports.queue = function (binding, method) { - if (!config.async) { - binding['_' + method]() - return - } +exports.queue = function (binding) { if (!has[binding.id]) { - queue.push({ - binding: binding, - method: method - }) + queue.push(binding) has[binding.id] = true if (!waiting) { waiting = true @@ -2802,10 +2775,9 @@ exports.queue = function (binding, method) { function flush () { for (var i = 0; i < queue.length; i++) { - var task = queue[i], - b = task.binding + var b = queue[i] if (b.unbound) continue - b['_' + task.method]() + b._update() has[b.id] = false } reset() @@ -3256,17 +3228,15 @@ module.exports = { ? 'value' : 'innerHTML' - if (self.filters) { - var compositionLock = false - this.cLock = function () { - compositionLock = true - } - this.cUnlock = function () { - compositionLock = false - } - el.addEventListener('compositionstart', this.cLock) - el.addEventListener('compositionend', this.cUnlock) + var compositionLock = false + this.cLock = function () { + compositionLock = true + } + this.cUnlock = function () { + compositionLock = false } + el.addEventListener('compositionstart', this.cLock) + el.addEventListener('compositionend', this.cUnlock) // attach listener self.set = self.filters @@ -3292,6 +3262,7 @@ module.exports = { }) } : function () { + if (compositionLock) return // no filters, don't let it trigger update() self.lock = true self.vm.$set(self.key, el[attr]) @@ -3349,10 +3320,8 @@ module.exports = { unbind: function () { var el = this.el el.removeEventListener(this.event, this.set) - if (this.filters) { - el.removeEventListener('compositionstart', this.cLock) - el.removeEventListener('compositionend', this.cUnlock) - } + el.removeEventListener('compositionstart', this.cLock) + el.removeEventListener('compositionend', this.cUnlock) if (isIE9) { el.removeEventListener('cut', this.onCut) el.removeEventListener('keyup', this.onDel) @@ -3366,7 +3335,7 @@ var ViewModel module.exports = { bind: function () { - if (this.isSimple) { + if (this.isEmpty) { this.build() } }, diff --git a/dist/vue.min.js b/dist/vue.min.js index 3e0e201caef..5ffa455206d 100644 --- a/dist/vue.min.js +++ b/dist/vue.min.js @@ -1,6 +1,6 @@ /* - VueJS v0.7.6 + VueJS v0.8.0 (c) 2014 Evan You License: MIT */ -!function(){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,t)}return this},n.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[e]||[]},n.prototype.hasListeners=function(e){return!!this.listeners(e).length}}),e.register("vue/src/main.js",function(e,t,i){function n(e){var t=this;e=r(e,t.options,!0),u.processOptions(e);var i=function(i,n){n||(i=r(i,e,!0)),t.call(this,i,!0)},s=i.prototype=Object.create(t.prototype);u.defProtected(s,"constructor",i);var o=e.methods;if(o)for(var c in o)c in a.prototype||"function"!=typeof o[c]||(s[c]=o[c]);return i.extend=n,i.super=t,i.options=e,i}function r(e,t,i){if(e=e||u.hash(),!t)return e;for(var n in t)if("el"!==n&&"methods"!==n){var o=e[n],a=t[n],c=u.typeOf(o);i&&"Function"===c&&a?e[n]=s(o,a):i&&"Object"===c?r(o,a):void 0===o&&(e[n]=a)}return e}function s(e,t){return function(i){t.call(this,i),e.call(this,i)}}var o=t("./config"),a=t("./viewmodel"),c=t("./directives"),l=t("./filters"),u=t("./utils");a.config=function(e,t){if("string"==typeof e){if(void 0===t)return o[e];o[e]=t}else u.extend(o,e);return this},a.directive=function(e,t){return t?(c[e]=t,this):c[e]},a.filter=function(e,t){return t?(l[e]=t,this):l[e]},a.component=function(e,t){return t?(u.components[e]=u.toConstructor(t),this):u.components[e]},a.partial=function(e,t){return t?(u.partials[e]=u.toFragment(t),this):u.partials[e]},a.transition=function(e,t){return t?(u.transitions[e]=t,this):u.transitions[e]},a.extend=n,a.nextTick=u.nextTick,i.exports=a}),e.register("vue/src/emitter.js",function(e,t,i){var n,r="emitter";try{n=t(r)}catch(s){n=t("events").EventEmitter,n.prototype.off=function(){var e=arguments.length>1?this.removeListener:this.removeAllListeners;return e.apply(this,arguments)}}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","text","repeat","partial","with","component","component-id","transition"],o=i.exports={async:!0,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){function n(){return Object.create(null)}var r,s=t("./config"),o=s.attrs,a=Object.prototype.toString,c=Array.prototype.join,l=window.console,u=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.setTimeout,f=i.exports={hash:n,components:n(),partials:n(),transitions:n(),attr:function(e,t,i){var n=o[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 a.call(e).slice(8,-1)},bind:function(e,t){return function(i){return e.call(t,i)}},toText:function(e){return"string"==typeof e||"boolean"==typeof e||"number"==typeof e&&e==e?e:""},extend:function(e,t,i){for(var n in t)i&&e[n]||(e[n]=t[n])},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;)r.appendChild(i);return r},toConstructor:function(e){return r=r||t("./viewmodel"),"Object"===f.typeOf(e)?r.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(){s.debug&&l&&l.log(c.call(arguments," "))},warn:function(){!s.silent&&l&&(l.warn(c.call(arguments," ")),s.debug&&l.trace())},nextTick:function(e){u(e,0)}}}),e.register("vue/src/compiler.js",function(e,t,i){function n(e,t){var i=this;i.init=!0,t=i.options=t||g(),c.processOptions(t);var n=i.data=t.data||{};b(e,n,!0),b(e,t.methods,!0),b(i,t.compilerOptions);var a=i.setupElement(t);m("\nnew VM instance:",a.tagName,"\n"),i.vm=e,i.dirs=[],i.exps=[],i.computed=[],i.childCompilers=[],i.emitter=new s;var l=i.parentCompiler;i.bindings=l?Object.create(l.bindings):g(),i.rootCompiler=l?r(l):i,y(e,"$",g()),y(e,"$el",a),y(e,"$compiler",i),y(e,"$root",i.rootCompiler.vm);var u=c.attr(a,"component-id");l&&(l.childCompilers.push(i),y(e,"$parent",l.vm),u&&(i.childId=u,l.vm.$[u]=e)),i.setupObserver(),i.execHook("beforeCompile","created"),b(n,e),o.observe(n,"",i.observer),i.repeat&&(y(n,"$index",i.repeatIndex,!1,!0),i.createBinding("$index")),Object.defineProperty(e,"$data",{enumerable:!1,get:function(){return i.data},set:function(e){var t=i.data;o.unobserve(t,"",i.observer),i.data=e,o.copyPaths(e,t),o.observe(e,"",i.observer)}}),i.compile(a,!0),i.computed.length&&p.parse(i.computed),i.init=!1,i.execHook("afterCompile","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"),l=t("./binding"),u=t("./directive"),f=t("./text-parser"),p=t("./deps-parser"),h=t("./exp-parser"),v=p.observer,d=Array.prototype.slice,m=c.log,g=c.hash,b=c.extend,y=c.defProtected,_=Object.prototype.hasOwnProperty,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)if(e.replace&&1===i.childNodes.length){var n=i.childNodes[0].cloneNode(!0);t.parentNode&&(t.parentNode.insertBefore(n,t),t.parentNode.removeChild(t)),t=n}else t.innerHTML="",t.appendChild(i.cloneNode(!0));e.id&&(t.id=e.id),e.className&&(t.className=e.className);var r=e.attributes;if(r)for(var s in r)t.setAttribute(s,r[s]);return t},x.setupObserver=function(){function e(e){_.call(i,e)||t.createBinding(e)}var t=this,i=t.bindings,n=t.observer=new s;n.proxies=g(),n.on("get",function(t){e(t),v.emit("get",i[t])}).on("set",function(t,r){n.emit("change:"+t,r),e(t),i[t].update(r)}).on("mutate",function(t,r,s){n.emit("change:"+t,r,s),e(t),i[t].pub()})},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,l,f=c.attr(e,"component")||r.toLowerCase(),p=i.getOption("components",f);if(s=c.attr(e,"repeat"))l=u.parse("repeat",s,i,e),l&&(l.Ctor=p,i.bindDirective(l));else if(t||!(o=c.attr(e,"with"))&&!p){if(e.vue_trans=c.attr(e,"transition"),a=c.attr(e,"partial")){var h=i.getOption("partials",a);h&&(e.innerHTML="",e.appendChild(h.cloneNode(!0)))}i.compileNode(e)}else l=u.parse("with",o||"",i,e),l&&(l.Ctor=p,i.bindDirective(l))}else 3===n&&i.compileTextNode(e)},x.compileNode=function(e){var t,i,n=e.attributes,r=a.prefix+"-";if(n&&n.length){var s,o,c,l,p;for(t=n.length;t--;){if(s=n[t],o=!1,0===s.name.indexOf(r))for(o=!0,c=u.split(s.value),i=c.length;i--;)l=c[i],p=u.parse(s.name.slice(r.length),l,this,e),p&&this.bindDirective(p);else l=f.parseAttr(s.value),l&&(p=u.parse("attr",s.name+":"+l,this,e),p&&this.bindDirective(p));o&&e.removeAttribute(s.name)}}if(e.childNodes.length){var h=d.call(e.childNodes);for(t=0,i=h.length;i>t;t++)this.compile(h[t])}},x.compileTextNode=function(e){var t=f.parse(e.nodeValue);if(t){for(var i,n,r,s,o,a,c=0,l=t.length;l>c;c++)if(n=t[c],n.key?">"===n.key.charAt(0)?(o=n.key.slice(1).trim(),s=this.getOption("partials",o),s&&(i=s.cloneNode(!0),a=d.call(i.childNodes))):(i=document.createTextNode(""),r=u.parse("text",n.key,this,i),r&&this.bindDirective(r)):i=document.createTextNode(n),e.parentNode.insertBefore(i,e),a){for(var p=0,h=a.length;h>p;p++)this.compile(a[p]);a=null}e.parentNode.removeChild(e)}},x.bindDirective=function(e){if(this.dirs.push(e),e.isSimple)return e.bind&&e.bind(),void 0;var t,i=this,n=e.key,r=n.split(".")[0];t=e.isExp?i.createBinding(n,!0,e.isFn):_.call(i.data,r)||_.call(i.vm,r)?_.call(i.bindings,n)?i.bindings[n]:i.createBinding(n):i.bindings[n]||i.rootCompiler.createBinding(n),t.instances.push(e),e.binding=t,e.bind&&e.bind();var s=t.value;void 0!==s&&(t.isComputed?e.refresh(s):e.update(s,!0))},x.createBinding=function(e,t,i){var n=this,r=n.bindings,s=new l(n,e,t,i);if(t){var a=h.parse(e,n);a&&(m(" created expression binding: "+e),s.value=i?a:{$get:a},n.markComputed(s),n.exps.push(s))}else if(m(" created binding: "+e),r[e]=s,s.root)n.define(e,s);else{o.ensurePath(n.data,e);var c=e.slice(0,e.lastIndexOf("."));_.call(r,c)||n.createBinding(c)}return s},x.define=function(e,t){m(" defined root binding: "+e);var i=this,n=i.data,r=i.vm,s=n.__observer__;e in n||(n[e]=void 0),!s||e in s.values||o.convert(n,e);var a=t.value=n[e];"Object"===c.typeOf(a)&&a.$get&&i.markComputed(t),Object.defineProperty(r,e,{enumerable:!t.isComputed,get:t.isComputed?function(){return i.data[e].$get()}:function(){return i.data[e]},set:t.isComputed?function(t){i.data[e].$set&&i.data[e].$set(t)}:function(t){i.data[e]=t}})},x.markComputed=function(e){var t=e.value,i=this.vm;e.isComputed=!0,e.isFn||(t.$get=c.bind(t.$get,i),t.$set&&(t.$set=c.bind(t.$set,i))),this.computed.push(e)},x.getOption=function(e,t){var i=this.options,n=this.parentCompiler;return i[e]&&i[e][t]||(n?n.getOption(e,t):c[e]&&c[e][t])},x.execHook=function(e,t){var i=this.options,n=i[e]||i[t];n&&n.call(this.vm,i)},x.destroy=function(){var e,t,i,n,r,s=this,a=s.vm,c=s.el,l=s.dirs,u=s.exps,f=s.bindings;for(s.execHook("beforeDestroy"),s.observer.off(),s.emitter.off(),e=l.length;e--;)i=l[e],i.isSimple||i.binding.compiler===s||(n=i.binding.instances,n&&n.splice(n.indexOf(i),1)),i.unbind();for(e=u.length;e--;)u[e].unbind();for(t in f)_.call(f,t)&&(r=f[t],r.root&&o.unobserve(r.value,r.key,s.observer),r.unbind());var p=s.parentCompiler,h=s.childId;p&&(p.childCompilers.splice(p.childCompilers.indexOf(s),1),h&&delete p.vm.$[h]),c===document.body?c.innerHTML="":a.$remove(),s.execHook("afterDestroy")},i.exports=n}),e.register("vue/src/viewmodel.js",function(e,t,i){function n(e){new o(this,e)}function r(e){return"string"==typeof e?document.querySelector(e):e}function s(e,t){var i=t[0],n=e.$compiler.bindings[i];return n?n.compiler.vm:null}var o=t("./compiler"),a=t("./utils"),c=t("./transition"),l=a.defProtected,u=a.nextTick,f=n.prototype;l(f,"$set",function(e,t){var i=e.split("."),n=s(this,i);if(n){for(var r=0,o=i.length-1;o>r;r++)n=n[i[r]];n[i[r]]=t}}),l(f,"$watch",function(e,t){function i(){var e=arguments;a.nextTick(function(){t.apply(n,e)})}var n=this;t._fn=i,n.$compiler.observer.on("change:"+e,i)}),l(f,"$unwatch",function(e,t){var i=["change:"+e],n=this.$compiler.observer;t&&i.push(t._fn),n.off.apply(n,i)}),l(f,"$destroy",function(){this.$compiler.destroy()}),l(f,"$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(f,"$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(f,"$"+e,function(){var t=this.$compiler.emitter;t[e].apply(t,arguments)})}),l(f,"$appendTo",function(e,t){e=r(e);var i=this.$el;c(i,1,function(){e.appendChild(i),t&&u(t)},this.$compiler)}),l(f,"$remove",function(e){var t=this.$el,i=t.parentNode;i&&c(t,-1,function(){i.removeChild(t),e&&u(e)},this.$compiler)}),l(f,"$before",function(e,t){e=r(e);var i=this.$el,n=e.parentNode;n&&c(i,1,function(){n.insertBefore(i,e),t&&u(t)},this.$compiler)}),l(f,"$after",function(e,t){e=r(e);var i=this.$el,n=e.parentNode,s=e.nextSibling;n&&c(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.instances=[],this.subs=[],this.deps=[],this.unbound=!1}var r=t("./batcher"),s=0,o=n.prototype;o.update=function(e){this.value=e,r.queue(this,"update")},o._update=function(){for(var e=this.instances.length;e--;)this.instances[e].update(this.value);this.pub()},o.refresh=function(){r.queue(this,"refresh")},o._refresh=function(){for(var e=this.instances.length;e--;)this.instances[e].refresh();this.pub()},o.pub=function(){for(var e=this.subs.length;e--;)this.subs[e].refresh()},o.unbind=function(){this.unbound=!0;for(var e=this.instances.length;e--;)this.instances[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){for(var t in e)s(e,t)}function r(e,t){var i=e.__observer__;if(i||(i=new h,g(e,"__observer__",i)),i.path=t,k)e.__proto__=$;else for(var n in $)g(e,n,$[n])}function s(e,t){var i=t.charAt(0);if("$"!==i&&"_"!==i||"$index"===t){var n=e.__observer__,r=n.values,s=r[t]=e[t];n.emit("set",t,s),Array.isArray(s)&&n.emit("set",t+".length",s.length),Object.defineProperty(e,t,{get:function(){var e=r[t];return d.active&&m(e)!==y&&n.emit("get",t),e},set:function(e){var i=r[t];f(i,t,n),r[t]=e,c(e,i),n.emit("set",t,e),u(e,t,n)}}),u(s,t,n)}}function o(e){p=p||t("./viewmodel");var i=m(e);return!(i!==y&&i!==_||e instanceof p)}function a(e){var t=m(e),i=e&&e.__observer__;if(t===_)i.emit("set","length",e.length);else if(t===y){var n,r;for(n in e)r=e[n],i.emit("set",n,r),a(r)}}function c(e,t){if(m(t)===y&&m(e)===y){var i,n,r,s;for(i in t)i in e||(r=t[i],n=m(r),n===y?(s=e[i]={},c(s,r)):e[i]=n===_?[]:void 0)}}function l(e,t){for(var i,n=t.split("."),r=0,o=n.length-1;o>r;r++)i=n[r],e[i]||(e[i]={},e.__observer__&&s(e,i)),e=e[i];m(e)===y&&(i=n[r],i in e||(e[i]=void 0,e.__observer__&&s(e,i)))}function u(e,t,i){if(o(e)){var s,c=t?t+".":"",l=!!e.__observer__;l||g(e,"__observer__",new h),s=e.__observer__,s.values=s.values||v.hash(),i.proxies=i.proxies||{};var u=i.proxies[c]={get:function(e){i.emit("get",c+e)},set:function(e,t){i.emit("set",c+e,t)},mutate:function(e,n,r){var s=e?c+e:t;i.emit("mutate",s,n,r);var o=r.method;"sort"!==o&&"reverse"!==o&&i.emit("set",s+".length",n.length)}};if(s.on("get",u.get).on("set",u.set).on("mutate",u.mutate),l)a(e);else{var f=m(e);f===y?n(e):f===_&&r(e)}}}function f(e,t,i){if(e&&e.__observer__){t=t?t+".":"";var n=i.proxies[t];n&&(e.__observer__.off("get",n.get).off("set",n.set).off("mutate",n.mutate),i.proxies[t]=null)}}var p,h=t("./emitter"),v=t("./utils"),d=t("./deps-parser").observer,m=v.typeOf,g=v.defProtected,b=Array.prototype.slice,y="Object",_="Array",x=["push","pop","shift","unshift","splice","sort","reverse"],k={}.__proto__,$=Object.create(Array.prototype);x.forEach(function(e){g($,e,function(){var t=Array.prototype[e].apply(this,arguments);return this.__observer__.emit("mutate",this.__observer__.path,this,{method:e,args:b.call(arguments),result:t}),t},!k)});var w={remove:function(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},replace:function(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}};for(var C in w)g($,C,w[C],!k);i.exports={observe:u,unobserve:f,ensurePath:l,convert:s,copyPaths:c,watchArray:r}}),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.isSimple=!0,void 0;this.expression=t.trim(),this.rawKey=i,r(this,i),this.isExp=!d.test(this.key)||v.test(this.key);var l=this.expression.slice(i.length).match(p);if(l){this.filters=[];for(var u,f=0,h=l.length;h>f;f++)u=s(l[f],this.compiler),u&&this.filters.push(u);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(f);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(h);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"),l=/(?:['"](?:\\.|[^'"])*['"]|\((?:\\.|[^\)])*\)|\\.|[^,])+/g,u=/^(?:['"](?:\\.|[^'"])*['"]|\\.|[^\|]|\|\|)+/,f=/^([\w- ]+):(.+)$/,p=/\|[^\|]+/g,h=/[^\s']+|'[^']+'/g,v=/^\$(parent|root)\./,d=/^[\w\.\$]+$/,m=n.prototype;m.update=function(e,t){(t||e!==this.value)&&(this.value=e,this.apply(e))},m.refresh=function(e){if(e&&(this.value=e),this.isFn)e=this.value;else{if(e=this.value.$get(),void 0!==e&&e===this.computedValue)return;this.computedValue=e}this.apply(e)},m.apply=function(e){this._update(this.filters?this.applyFilters(e):e)},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(e){this.el&&(this._unbind&&this._unbind(e),e||(this.vm=this.el=this.binding=this.compiler=null))},n.split=function(e){return e.indexOf(",")>-1?e.match(l)||[""]:[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 l=t.match(u);l&&(c=l[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(h,"").replace(v,",").replace(p,"").replace(d,"").replace(m,""),e?e.split(/,+/):[]}function r(e,t){for(var i="",n=t.vm,r=e.indexOf("."),s=r>-1?e.slice(0,r):e;;){if(c.call(n.$data,s)||c.call(n,s))break;if(!n.$parent)break;n=n.$parent,i+="$parent."}return t=n.$compiler,c.call(t.bindings,e)||"$"===e.charAt(0)||t.createBinding(e),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=Object.prototype.hasOwnProperty,l=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/g,u=/"(\d+)"/g,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",p=new RegExp(["\\b"+f.replace(/,/g,"\\b|\\b")+"\\b"].join("|"),"g"),h=/\/\*(?:.|\n)*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|'[^']*'|"[^"]*"|[\s\t\n]*\.[\s\t\n]*[$\w\.]+/g,v=/[^\w$]+/g,d=/\b\d[^,]*/g,m=/^,+|,+$/g;i.exports={parse:function(e,t){function i(e){var t=d.length;return d[t]=e,'"'+t+'"'}function c(e){var i=e.charAt(0);e=e.slice(1);var n="this."+r(e,t)+e;return v[e]||(h+=n+";",v[e]=1),i+n}function f(e,t){return d[t]}var p=n(e);if(!p.length)return s("return "+e,e);p=a.unique(p);var h="",v=a.hash(),d=[],m=new RegExp("[^$\\w\\.]("+p.map(o).join("|")+")[$\\w\\.]*\\b","g"),g=("return "+e).replace(l,i).replace(m,c).replace(u,f);return g=h+g,s(g,e)}}}),e.register("vue/src/text-parser.js",function(e){function t(e){if(!n.test(e))return null;for(var t,i,r=[];t=e.match(n);)i=t.index,i>0&&r.push(e.slice(0,i)),r.push({key:t[1].trim()}),e=e.slice(i+t[0].length);return e.length&&r.push(e),r}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=/\{\{(.+?)\}\}/;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();o.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(),o.off("get")}}var r=t("./emitter"),s=t("./utils"),o=new r;i.exports={observer:o,parse:function(e){s.log("\nparsing dependencies..."),o.active=!0,e.forEach(n),o.active=!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(),u.CSS_SKIP;var n=e.classList,r=e.vue_trans_cb;if(t>0){r&&(e.removeEventListener(o,r),e.vue_trans_cb=null),n.add(c),i();{e.clientHeight}return n.remove(c),u.CSS_E}n.add(l);var s=function(t){t.target===e&&(e.removeEventListener(o,s),e.vue_trans_cb=null,i(),n.remove(l))};return e.addEventListener(o,s),e.vue_trans_cb=s,u.CSS_L}function r(e,t,i,n,r){var s=r.getOption("transitions",n);if(!s)return i(),u.JS_SKIP;var o=s.enter,a=s.leave;return t>0?"function"!=typeof o?(i(),u.JS_SKIP_E):(o(e,i),u.JS_E):"function"!=typeof a?(i(),u.JS_SKIP_L):(a(e,i),u.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=a.enterClass,l=a.leaveClass,u={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},f=i.exports=function(e,t,i,s){var o=function(){i(),s.execHook(t>0?"enteredView":"leftView")};if(s.init)return o(),u.INIT;var a=e.vue_trans;return a?r(e,t,o,a,s):""===a?n(e,t,o):(o(),u.SKIP)};f.codes=u}),e.register("vue/src/batcher.js",function(e,t){function i(){for(var e=0;et;t++)this.buildItem(e.args[t],n+t)},pop:function(){var e=this.vms.pop();e&&e.$destroy()},unshift:function(e){var t,i=e.args.length;for(t=0;i>t;t++)this.buildItem(e.args[t],t)},shift:function(){var e=this.vms.shift();e&&e.$destroy()},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();for(t=0;s>t;t++)this.buildItem(e.args[t+2],n+t)},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,i=e.el,r=e.container=i.parentNode;n=n||t("../viewmodel"),e.Ctor=e.Ctor||n,e.hasTrans=i.hasAttribute(a.attrs.transition),e.ref=document.createComment(a.prefix+"-repeat-"+e.key),r.insertBefore(e.ref,i),r.removeChild(i),e.initiated=!1,e.collection=null,e.vms=null,e.mutationListener=function(t,i,n){var r=n.method;l[r].call(e,n),"push"!==r&&"pop"!==r&&e.updateIndexes()}},update:function(e){if(this.unbind(!0),this.container.vue_dHandlers=o.hash(),this.initiated||e&&e.length||(this.buildItem(),this.initiated=!0),e=this.collection=e||[],this.vms=[],e.__observer__||r.watchArray(e,null,new s),e.__observer__.on("mutate",this.mutationListener),e.length)for(var t=0,i=e.length;i>t;t++)this.buildItem(e[t],t)},buildItem:function(e,t){var i,n,r=this.el.cloneNode(!0),s=this.container;e&&(i=this.vms.length>t?this.vms[t].$el:this.ref,i.parentNode||(i=i.vue_ref),r.vue_trans=o.attr(r,"transition",!0),c(r,1,function(){s.insertBefore(r,i)},this.compiler)),n=new this.Ctor({el:r,data:e,compilerOptions:{repeat:!0,repeatIndex:t,repeatCollection:this.collection,parentCompiler:this.compiler,delegator:s}}),e?this.vms.splice(t,0,n):n.$destroy()},updateIndexes:function(){for(var e=this.vms.length;e--;)this.vms[e].$data.$index=e},unbind:function(){if(this.collection){this.collection.__observer__.off("mutate",this.mutationListener);for(var e=this.vms.length;e--;)this.vms[e].$destroy()}var t=this.container,i=t.vue_dHandlers;for(var n in i)t.removeEventListener(i[n].event,i[n]);t.vue_dHandlers=null}}}),e.register("vue/src/directives/on.js",function(e,t,i){function n(e,t,i){for(;e&&e!==t;){if(e[i])return e;e=e.parentNode}}var r=t("../utils");i.exports={isFn:!0,bind:function(){this.compiler.repeat&&(this.el[this.expression]=!0,this.el.vue_viewmodel=this.vm)},update:function(e){if(this.unbind(!0),"function"!=typeof e)return r.warn('Directive "on" expects a function value.');var t=this.compiler,i=this.arg,s=this.binding.isExp,o=this.binding.compiler.vm;if(t.repeat&&!this.vm.constructor.super&&"blur"!==i&&"focus"!==i){var a=t.delegator,c=this.expression,l=a.vue_dHandlers[c];if(l)return;l=a.vue_dHandlers[c]=function(t){var i=n(t.target,a,c);i&&(t.el=i,t.targetVM=i.vue_viewmodel,e.call(s?t.targetVM:o,t))},l.event=i,a.addEventListener(i,l)}else{var u=this.vm;this.handler=function(t){t.el=t.currentTarget,t.targetVM=u,e.call(o,t)},this.el.addEventListener(i,this.handler)}},unbind:function(e){this.el.removeEventListener(this.arg,this.handler),this.handler=null,e||(this.el.vue_viewmodel=null)}}}),e.register("vue/src/directives/model.js",function(e,t,i){var n=t("../utils"),r=navigator.userAgent.indexOf("MSIE 9.0")>0;i.exports={bind:function(){var e=this,t=e.el,i=t.type,s=t.tagName;e.lock=!1,e.event=e.compiler.options.lazy||"SELECT"===s||"checkbox"===i||"radio"===i?"change":"input";var o=e.attr="checkbox"===i?"checked":"INPUT"===s||"SELECT"===s||"TEXTAREA"===s?"value":"innerHTML";if(e.filters){var a=!1;this.cLock=function(){a=!0},this.cUnlock=function(){a=!1},t.addEventListener("compositionstart",this.cLock),t.addEventListener("compositionend",this.cUnlock)}e.set=e.filters?function(){if(!a){var i;try{i=t.selectionStart}catch(r){}e.vm.$set(e.key,t[o]),n.nextTick(function(){void 0!==i&&t.setSelectionRange(i,i)})}}:function(){e.lock=!0,e.vm.$set(e.key,t[o]),n.nextTick(function(){e.lock=!1})},t.addEventListener(e.event,e.set),r&&(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))},update:function(e){if(!this.lock){var t=this,i=t.el;if("SELECT"===i.tagName){for(var r=i.options,s=r.length,o=-1;s--;)if(r[s].value==e){o=s;break}r.selectedIndex=o}else"radio"===i.type?i.checked=e==i.value:"checkbox"===i.type?i.checked=!!e:i[t.attr]=n.toText(e)}},unbind:function(){var e=this.el;e.removeEventListener(this.event,this.set),this.filters&&(e.removeEventListener("compositionstart",this.cLock),e.removeEventListener("compositionend",this.cUnlock)),r&&(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.isSimple&&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.alias("component-emitter/index.js","vue/deps/emitter/index.js"),e.alias("component-emitter/index.js","emitter/index.js"),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")}):this.Vue=e("vue")}(); \ No newline at end of file +!function(){function e(t,n,i){var r=e.resolve(t);if(null==r){i=i||t,n=n||"root";var s=new Error('Failed to require "'+i+'" from "'+n+'"');throw s.path=i,s.parent=n,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 n=[t,t+".js",t+".json",t+"/index.js",t+"/index.json"],i=0;ii;++i)n[i].apply(this,t)}return this},i.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[e]||[]},i.prototype.hasListeners=function(e){return!!this.listeners(e).length}}),e.register("vue/src/main.js",function(e,t,n){function i(e){var t=this;e=r(e,t.options,!0),l.processOptions(e);var n=function(n,i){i||(n=r(n,e,!0)),t.call(this,n,!0)},s=n.prototype=Object.create(t.prototype);l.defProtected(s,"constructor",n);var o=e.methods;if(o)for(var c in o)c in a.prototype||"function"!=typeof o[c]||(s[c]=o[c]);return n.extend=i,n.super=t,n.options=e,n}function r(e,t,n){if(e=e||l.hash(),!t)return e;for(var i in t)if("el"!==i&&"methods"!==i){var o=e[i],a=t[i],c=l.typeOf(o);n&&"Function"===c&&a?e[i]=s(o,a):n&&"Object"===c?r(o,a):void 0===o&&(e[i]=a)}return e}function s(e,t){return function(n){t.call(this,n),e.call(this,n)}}var o=t("./config"),a=t("./viewmodel"),c=t("./directives"),u=t("./filters"),l=t("./utils");a.config=function(e,t){if("string"==typeof e){if(void 0===t)return o[e];o[e]=t}else l.extend(o,e);return this},a.directive=function(e,t){return t?(c[e]=t,this):c[e]},a.filter=function(e,t){return t?(u[e]=t,this):u[e]},a.component=function(e,t){return t?(l.components[e]=l.toConstructor(t),this):l.components[e]},a.partial=function(e,t){return t?(l.partials[e]=l.toFragment(t),this):l.partials[e]},a.transition=function(e,t){return t?(l.transitions[e]=t,this):l.transitions[e]},a.extend=i,a.nextTick=l.nextTick,n.exports=a}),e.register("vue/src/emitter.js",function(e,t,n){var i,r="emitter";try{i=t(r)}catch(s){i=t("events").EventEmitter,i.prototype.off=function(){var e=arguments.length>1?this.removeListener:this.removeAllListeners;return e.apply(this,arguments)}}n.exports=i}),e.register("vue/src/config.js",function(e,t,n){function i(){s.forEach(function(e){o.attrs[e]=r+"-"+e})}var r="v",s=["pre","text","repeat","partial","with","component","component-id","transition"],o=n.exports={debug:!1,silent:!1,enterClass:"v-enter",leaveClass:"v-leave",attrs:{},get prefix(){return r},set prefix(e){r=e,i()}};i()}),e.register("vue/src/utils.js",function(e,t,n){function i(){return Object.create(null)}var r,s=t("./config"),o=s.attrs,a=Object.prototype.toString,c=Array.prototype.join,u=window.console,l=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.setTimeout,f=n.exports={hash:i,components:i(),partials:i(),transitions:i(),attr:function(e,t,n){var i=o[t],r=e.getAttribute(i);return n||null===r||e.removeAttribute(i),r},defProtected:function(e,t,n,i,r){e.hasOwnProperty(t)||Object.defineProperty(e,t,{value:n,enumerable:!!i,configurable:!!r})},typeOf:function(e){return a.call(e).slice(8,-1)},bind:function(e,t){return function(n){return e.call(t,n)}},toText:function(e){return"string"==typeof e||"boolean"==typeof e||"number"==typeof e&&e==e?e:""},extend:function(e,t,n){for(var i in t)n&&e[i]||(e[i]=t[i])},unique:function(e){for(var t,n=f.hash(),i=e.length,r=[];i--;)t=e[i],n[t]||(n[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 n,i=document.createElement("div"),r=document.createDocumentFragment();for(i.innerHTML=e.trim();n=i.firstChild;)r.appendChild(n);return r},toConstructor:function(e){return r=r||t("./viewmodel"),"Object"===f.typeOf(e)?r.extend(e):"function"==typeof e?e:null},processOptions:function(e){var t,n=e.components,i=e.partials,r=e.template;if(n)for(t in n)n[t]=f.toConstructor(n[t]);if(i)for(t in i)i[t]=f.toFragment(i[t]);r&&(e.template=f.toFragment(r))},log:function(){s.debug&&u&&u.log(c.call(arguments," "))},warn:function(){!s.silent&&u&&(u.warn(c.call(arguments," ")),s.debug&&u.trace())},nextTick:function(e){l(e,0)}}}),e.register("vue/src/compiler.js",function(e,t,n){function i(e,t){var n=this;n.init=!0,t=n.options=t||m(),c.processOptions(t);var i=n.data=t.data||{};g(e,i,!0),g(e,t.methods,!0),g(n,t.compilerOptions);var a=n.setupElement(t);d("\nnew VM instance:",a.tagName,"\n"),n.vm=e,n.bindings=m(),n.dirs=[],n.exps=[],n.computed=[],n.childCompilers=[],n.emitter=new s,b(e,"$",m()),b(e,"$el",a),b(e,"$compiler",n),b(e,"$root",r(n).vm);var u=n.parentCompiler,l=c.attr(a,"component-id");u&&(u.childCompilers.push(n),b(e,"$parent",u.vm),l&&(n.childId=l,u.vm.$[l]=e)),n.setupObserver();var f=t.computed;if(f)for(var h in f)n.createBinding(h);n.execHook("beforeCompile","created"),g(i,e),o.observe(i,"",n.observer),n.repeat&&(b(i,"$index",n.repeatIndex,!1,!0),n.createBinding("$index")),Object.defineProperty(e,"$data",{enumerable:!1,get:function(){return n.data},set:function(e){var t=n.data;o.unobserve(t,"",n.observer),n.data=e,o.copyPaths(e,t),o.observe(e,"",n.observer)}}),n.compile(a,!0),n.computed.length&&p.parse(n.computed),n.init=!1,n.execHook("afterCompile","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"),f=t("./text-parser"),p=t("./deps-parser"),h=t("./exp-parser"),v=Array.prototype.slice,d=c.log,m=c.hash,g=c.extend,b=c.defProtected,y=Object.prototype.hasOwnProperty,_=i.prototype;_.setupElement=function(e){var t=this.el="string"==typeof e.el?document.querySelector(e.el):e.el||document.createElement(e.tagName||"div"),n=e.template;if(n)if(e.replace&&1===n.childNodes.length){var i=n.childNodes[0].cloneNode(!0);t.parentNode&&(t.parentNode.insertBefore(i,t),t.parentNode.removeChild(t)),t=i}else t.innerHTML="",t.appendChild(n.cloneNode(!0));e.id&&(t.id=e.id),e.className&&(t.className=e.className);var r=e.attributes;if(r)for(var s in r)t.setAttribute(s,r[s]);return t},_.setupObserver=function(){function e(e){n[e]||t.createBinding(e)}var t=this,n=t.bindings,i=t.observer=new s;i.proxies=m(),i.on("get",function(t){e(t),p.catcher.emit("get",n[t])}).on("set",function(t,r){i.emit("change:"+t,r),e(t),n[t].update(r)}).on("mutate",function(t,r,s){i.emit("change:"+t,r,s),e(t),n[t].pub()})},_.compile=function(e,t){var n=this,i=e.nodeType,r=e.tagName;if(1===i&&"SCRIPT"!==r){if(null!==c.attr(e,"pre"))return;var s,o,a,u,f=c.attr(e,"component")||r.toLowerCase(),p=n.getOption("components",f);if(s=c.attr(e,"repeat"))u=l.parse("repeat",s,n,e),u&&(u.Ctor=p,n.bindDirective(u));else if(t||!(o=c.attr(e,"with"))&&!p){if(e.vue_trans=c.attr(e,"transition"),a=c.attr(e,"partial")){var h=n.getOption("partials",a);h&&(e.innerHTML="",e.appendChild(h.cloneNode(!0)))}n.compileNode(e)}else u=l.parse("with",o||"",n,e),u&&(u.Ctor=p,n.bindDirective(u))}else 3===i&&n.compileTextNode(e)},_.compileNode=function(e){var t,n,i=e.attributes,r=a.prefix+"-";if(i&&i.length){var s,o,c,u,p;for(t=i.length;t--;){if(s=i[t],o=!1,0===s.name.indexOf(r))for(o=!0,c=l.split(s.value),n=c.length;n--;)u=c[n],p=l.parse(s.name.slice(r.length),u,this,e),p&&this.bindDirective(p);else u=f.parseAttr(s.value),u&&(p=l.parse("attr",s.name+":"+u,this,e),p&&this.bindDirective(p));o&&e.removeAttribute(s.name)}}if(e.childNodes.length){var h=v.call(e.childNodes);for(t=0,n=h.length;n>t;t++)this.compile(h[t])}},_.compileTextNode=function(e){var t=f.parse(e.nodeValue);if(t){for(var n,i,r,s,o,a,c=0,u=t.length;u>c;c++)if(i=t[c],i.key?">"===i.key.charAt(0)?(o=i.key.slice(1).trim(),s=this.getOption("partials",o),s&&(n=s.cloneNode(!0),a=v.call(n.childNodes))):(n=document.createTextNode(""),r=l.parse("text",i.key,this,n),r&&this.bindDirective(r)):n=document.createTextNode(i),e.parentNode.insertBefore(n,e),a){for(var p=0,h=a.length;h>p;p++)this.compile(a[p]);a=null}e.parentNode.removeChild(e)}},_.bindDirective=function(e){if(this.dirs.push(e),e.isEmpty)return e.bind&&e.bind(),void 0;var t,n=this,i=e.key;if(e.isExp)t=n.createBinding(i,!0,e.isFn);else{for(;n&&!n.hasKey(i);)n=n.parentCompiler;n=n||this,t=n.bindings[i]||n.createBinding(i)}t.instances.push(e),e.binding=t,e.bind&&e.bind(),e.update(t.val(),!0)},_.createBinding=function(e,t,n){d(" created binding: "+e);var i=this,r=i.bindings,s=i.options.computed,a=new u(i,e,t,n);if(t)i.defineExp(e,a);else if(r[e]=a,a.root)s&&s[e]?i.defineComputed(e,a,s[e]):i.defineProp(e,a);else{o.ensurePath(i.data,e);var c=e.slice(0,e.lastIndexOf("."));r[c]||i.createBinding(c)}return a},_.defineProp=function(e,t){var n=this,i=n.data,r=i.__observer__;e in i||(i[e]=void 0),!r||e in r.values||o.convert(i,e),t.value=i[e],Object.defineProperty(n.vm,e,{get:function(){return n.data[e]},set:function(t){n.data[e]=t}})},_.defineExp=function(e,t){var n=h.parse(e,this);if(n){var i=t.isFn?n:{$get:n};this.markComputed(t,i),this.exps.push(t)}},_.defineComputed=function(e,t,n){this.markComputed(t,n);var i={get:t.value.$get};t.value.$set&&(i.set=t.value.$set),Object.defineProperty(this.vm,e,i)},_.markComputed=function(e,t){e.value=t,e.isComputed=!0,e.isFn||(e.value={$get:c.bind(t.$get,this.vm)},t.$set&&(e.value.$set=c.bind(t.$set,this.vm))),this.computed.push(e)},_.getOption=function(e,t){var n=this.options,i=this.parentCompiler;return n[e]&&n[e][t]||(i?i.getOption(e,t):c[e]&&c[e][t])},_.execHook=function(e,t){var n=this.options,i=n[e]||n[t];i&&i.call(this.vm,n)},_.hasKey=function(e){var t=e.split(".")[0];return y.call(this.data,t)||y.call(this.vm,t)},_.destroy=function(){var e,t,n,i,r,s=this,a=s.vm,c=s.el,u=s.dirs,l=s.exps,f=s.bindings;for(s.execHook("beforeDestroy"),s.observer.off(),s.emitter.off(),e=u.length;e--;)n=u[e],n.isEmpty||n.binding.compiler===s||(i=n.binding.instances,i&&i.splice(i.indexOf(n),1)),n.unbind();for(e=l.length;e--;)l[e].unbind();for(t in f)r=f[t],r&&(r.root&&o.unobserve(r.value,r.key,s.observer),r.unbind());var p=s.parentCompiler,h=s.childId;p&&(p.childCompilers.splice(p.childCompilers.indexOf(s),1),h&&delete p.vm.$[h]),c===document.body?c.innerHTML="":a.$remove(),s.execHook("afterDestroy")},n.exports=i}),e.register("vue/src/viewmodel.js",function(e,t,n){function i(e){new o(this,e)}function r(e){return"string"==typeof e?document.querySelector(e):e}function s(e,t){var n=t[0],i=e.$compiler.bindings[n];return i?i.compiler.vm:null}var o=t("./compiler"),a=t("./utils"),c=t("./transition"),u=a.defProtected,l=a.nextTick,f=i.prototype;u(f,"$set",function(e,t){var n=e.split("."),i=s(this,n);if(i){for(var r=0,o=n.length-1;o>r;r++)i=i[n[r]];i[n[r]]=t}}),u(f,"$watch",function(e,t){function n(){var e=arguments;a.nextTick(function(){t.apply(i,e)})}var i=this;t._fn=n,i.$compiler.observer.on("change:"+e,n)}),u(f,"$unwatch",function(e,t){var n=["change:"+e],i=this.$compiler.observer;t&&n.push(t._fn),i.off.apply(i,n)}),u(f,"$destroy",function(){this.$compiler.destroy()}),u(f,"$broadcast",function(){for(var e,t=this.$compiler.childCompilers,n=t.length;n--;)e=t[n],e.emitter.emit.apply(e.emitter,arguments),e.vm.$broadcast.apply(e.vm,arguments)}),u(f,"$dispatch",function(){var e=this.$compiler,t=e.emitter,n=e.parentCompiler;t.emit.apply(t,arguments),n&&n.vm.$dispatch.apply(n.vm,arguments)}),["emit","on","off","once"].forEach(function(e){u(f,"$"+e,function(){var t=this.$compiler.emitter;t[e].apply(t,arguments)})}),u(f,"$appendTo",function(e,t){e=r(e);var n=this.$el;c(n,1,function(){e.appendChild(n),t&&l(t)},this.$compiler)}),u(f,"$remove",function(e){var t=this.$el,n=t.parentNode;n&&c(t,-1,function(){n.removeChild(t),e&&l(e)},this.$compiler)}),u(f,"$before",function(e,t){e=r(e);var n=this.$el,i=e.parentNode;i&&c(n,1,function(){i.insertBefore(n,e),t&&l(t)},this.$compiler)}),u(f,"$after",function(e,t){e=r(e);var n=this.$el,i=e.parentNode,s=e.nextSibling;i&&c(n,1,function(){s?i.insertBefore(n,s):i.appendChild(n),t&&l(t)},this.$compiler)}),n.exports=i}),e.register("vue/src/binding.js",function(e,t,n){function i(e,t,n,i){this.id=s++,this.value=void 0,this.isExp=!!n,this.isFn=i,this.root=!this.isExp&&-1===t.indexOf("."),this.compiler=e,this.key=t,this.instances=[],this.subs=[],this.deps=[],this.unbound=!1}var r=t("./batcher"),s=0,o=i.prototype;o.update=function(e){(!this.isComputed||this.isFn)&&(this.value=e),r.queue(this)},o._update=function(){for(var e=this.instances.length,t=this.val();e--;)this.instances[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.instances.length;e--;)this.instances[e].unbind();e=this.deps.length;for(var t;e--;)t=this.deps[e].subs,t.splice(t.indexOf(this),1)},n.exports=i}),e.register("vue/src/observer.js",function(e,t,n){function i(e){for(var t in e)s(e,t)}function r(e,t){var n=e.__observer__;if(n||(n=new h,m(e,"__observer__",n)),n.path=t,x)e.__proto__=k;else for(var i in k)m(e,i,k[i])}function s(e,t){var n=t.charAt(0);if("$"!==n&&"_"!==n||"$index"===t){var i=e.__observer__,r=i.values,s=r[t]=e[t];i.emit("set",t,s),Array.isArray(s)&&i.emit("set",t+".length",s.length),Object.defineProperty(e,t,{get:function(){var e=r[t];return C.shouldGet&&d(e)!==b&&i.emit("get",t),e},set:function(e){var n=r[t];f(n,t,i),r[t]=e,c(e,n),i.emit("set",t,e),l(e,t,i)}}),l(s,t,i)}}function o(e){p=p||t("./viewmodel");var n=d(e);return!(n!==b&&n!==y||e instanceof p)}function a(e){var t=d(e),n=e&&e.__observer__;if(t===y)n.emit("set","length",e.length);else if(t===b){var i,r;for(i in e)r=e[i],n.emit("set",i,r),a(r)}}function c(e,t){if(d(t)===b&&d(e)===b){var n,i,r,s;for(n in t)n in e||(r=t[n],i=d(r),i===b?(s=e[n]={},c(s,r)):e[n]=i===y?[]:void 0)}}function u(e,t){for(var n,i=t.split("."),r=0,o=i.length-1;o>r;r++)n=i[r],e[n]||(e[n]={},e.__observer__&&s(e,n)),e=e[n];d(e)===b&&(n=i[r],n in e||(e[n]=void 0,e.__observer__&&s(e,n)))}function l(e,t,n){if(o(e)){var s,c=t?t+".":"",u=!!e.__observer__;u||m(e,"__observer__",new h),s=e.__observer__,s.values=s.values||v.hash(),n.proxies=n.proxies||{};var l=n.proxies[c]={get:function(e){n.emit("get",c+e)},set:function(e,t){n.emit("set",c+e,t)},mutate:function(e,i,r){var s=e?c+e:t;n.emit("mutate",s,i,r);var o=r.method;"sort"!==o&&"reverse"!==o&&n.emit("set",s+".length",i.length)}};if(s.on("get",l.get).on("set",l.set).on("mutate",l.mutate),u)a(e);else{var f=d(e);f===b?i(e):f===y&&r(e)}}}function f(e,t,n){if(e&&e.__observer__){t=t?t+".":"";var i=n.proxies[t];i&&(e.__observer__.off("get",i.get).off("set",i.set).off("mutate",i.mutate),n.proxies[t]=null)}}var p,h=t("./emitter"),v=t("./utils"),d=v.typeOf,m=v.defProtected,g=Array.prototype.slice,b="Object",y="Array",_=["push","pop","shift","unshift","splice","sort","reverse"],x={}.__proto__,k=Object.create(Array.prototype);_.forEach(function(e){m(k,e,function(){var t=Array.prototype[e].apply(this,arguments);return this.__observer__.emit("mutate",this.__observer__.path,this,{method:e,args:g.call(arguments),result:t}),t},!x)});var w={remove:function(e){if("function"==typeof e){for(var t=this.length,n=[];t--;)e(this[t])&&n.push(this.splice(t,1)[0]);return n.reverse()}return"number"!=typeof e&&(e=this.indexOf(e)),e>-1?this.splice(e,1)[0]:void 0},replace:function(e,t){if("function"==typeof e){for(var n,i=this.length,r=[];i--;)n=e(this[i]),void 0!==n&&r.push(this.splice(i,1,n)[0]);return r.reverse()}return"number"!=typeof e&&(e=this.indexOf(e)),e>-1?this.splice(e,1,t)[0]:void 0}};for(var $ in w)m(k,$,w[$],!x);var C=n.exports={shouldGet:!1,observe:l,unobserve:f,ensurePath:u,convert:s,copyPaths:c,watchArray:r}}),e.register("vue/src/directive.js",function(e,t,n){function i(e,t,n,i,o){this.compiler=i,this.vm=i.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=n,r(this,n),this.isExp=!d.test(this.key)||v.test(this.key);var u=this.expression.slice(n.length).match(p);if(u){this.filters=[];for(var l,f=0,h=u.length;h>f;f++)l=s(u[f],this.compiler),l&&this.filters.push(l);this.filters.length||(this.filters=null)}else this.filters=null}function r(e,t){var n=t;if(t.indexOf(":")>-1){var i=t.match(f);n=i?i[2].trim():n,e.arg=i?i[1].trim():null}e.key=n}function s(e,t){var n=e.slice(1).match(h);if(n){n=n.map(function(e){return e.replace(/'/g,"").trim()});var i=n[0],r=t.getOption("filters",i)||c[i];return r?{name:i,apply:r,args:n.length>1?n.slice(1):null}:(o.warn("Unknown filter: "+i),void 0)}}var o=t("./utils"),a=t("./directives"),c=t("./filters"),u=/(?:['"](?:\\.|[^'"])*['"]|\((?:\\.|[^\)])*\)|\\.|[^,])+/g,l=/^(?:['"](?:\\.|[^'"])*['"]|\\.|[^\|]|\|\|)+/,f=/^([\w- ]+):(.+)$/,p=/\|[^\|]+/g,h=/[^\s']+|'[^']+'/g,v=/^\$(parent|root)\./,d=/^[\w\.\$]+$/,m=i.prototype;m.update=function(e,t){(t||e!==this.value)&&(this.value=e,this._update&&this._update(this.filters?this.applyFilters(e):e))},m.applyFilters=function(e){for(var t,n=e,i=0,r=this.filters.length;r>i;i++)t=this.filters[i],n=t.apply.call(this.vm,n,t.args);return n},m.unbind=function(e){this.el&&(this._unbind&&this._unbind(e),e||(this.vm=this.el=this.binding=this.compiler=null))},i.split=function(e){return e.indexOf(",")>-1?e.match(u)||[""]:[e]},i.parse=function(e,t,n,r){var s=n.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 i(s,t,c,n,r):o.warn("invalid directive expression: "+t)},n.exports=i}),e.register("vue/src/exp-parser.js",function(e,t,n){function i(e){return e=e.replace(p,"").replace(h,",").replace(f,"").replace(v,"").replace(d,""),e?e.split(/,+/):[]}function r(e,t){for(var n="",i=0,r=t;t&&!t.hasKey(e);)t=t.parentCompiler,i++;if(t){for(;i--;)n+="$parent.";t.bindings[e]||"$"===e.charAt(0)||t.createBinding(e)}else r.createBinding(e);return n}function s(e,t){var n;try{n=new Function(e)}catch(i){a.warn("Invalid expression: "+t)}return n}function o(e){return"$"===e.charAt(0)?"\\"+e:e}var a=t("./utils"),c=/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/g,u=/"(\d+)"/g,l="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",f=new RegExp(["\\b"+l.replace(/,/g,"\\b|\\b")+"\\b"].join("|"),"g"),p=/\/\*(?:.|\n)*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|'[^']*'|"[^"]*"|[\s\t\n]*\.[\s\t\n]*[$\w\.]+/g,h=/[^\w$]+/g,v=/\b\d[^,]*/g,d=/^,+|,+$/g;n.exports={parse:function(e,t){function n(e){var t=d.length;return d[t]=e,'"'+t+'"'}function l(e){var n=e.charAt(0);e=e.slice(1);var i="this."+r(e,t)+e;return v[e]||(h+=i+";",v[e]=1),n+i}function f(e,t){return d[t]}var p=i(e);if(!p.length)return s("return "+e,e);p=a.unique(p);var h="",v=a.hash(),d=[],m=new RegExp("[^$\\w\\.]("+p.map(o).join("|")+")[$\\w\\.]*\\b","g"),g=("return "+e).replace(c,n).replace(m,l).replace(u,f);return g=h+g,s(g,e)}}}),e.register("vue/src/text-parser.js",function(e){function t(e){if(!i.test(e))return null;for(var t,n,r=[];t=e.match(i);)n=t.index,n>0&&r.push(e.slice(0,n)),r.push({key:t[1].trim()}),e=e.slice(n+t[0].length);return e.length&&r.push(e),r}function n(e){var n=t(e);if(!n)return null;for(var i,r=[],s=0,o=n.length;o>s;s++)i=n[s],r.push(i.key||'"'+i+'"');return r.join("+")}var i=/\{\{(.+?)\}\}/;e.parse=t,e.parseAttr=n}),e.register("vue/src/deps-parser.js",function(e,t,n){function i(e){if(!e.isFn){s.log("\n- "+e.key);var t=s.hash();a.on("get",function(n){var i=t[n.key];i&&i.compiler===n.compiler||(t[n.key]=n,s.log(" - "+n.key),e.deps.push(n),n.subs.push(e))}),e.value.$get(),a.off("get")}}var r=t("./emitter"),s=t("./utils"),o=t("./observer"),a=new r;n.exports={catcher:a,parse:function(e){s.log("\nparsing dependencies..."),o.shouldGet=!0,e.forEach(i),o.shouldGet=!1,s.log("\ndone.")}}}),e.register("vue/src/filters.js",function(e,t,n){var i={enter:13,tab:9,"delete":46,up:38,left:37,right:39,down:40,esc:27};n.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 n=t&&t[0]||"$",i=Math.floor(e).toString(),r=i.length%3,s=r>0?i.slice(0,r)+(i.length>3?",":""):"",o="."+e.toFixed(2).slice(-2);return n+s+i.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 n=i[t[0]];return n||(n=parseInt(t[0],10)),function(t){t.keyCode===n&&e.call(this,t)}}}}}),e.register("vue/src/transition.js",function(e,t,n){function i(e,t,n){if(!o)return n(),c.CSS_SKIP;var i=e.classList,r=e.vue_trans_cb;if(t>0){r&&(e.removeEventListener(o,r),e.vue_trans_cb=null),i.add(a.enterClass),n();{e.clientHeight}return i.remove(a.enterClass),c.CSS_E}i.add(a.leaveClass);var s=function(t){t.target===e&&(e.removeEventListener(o,s),e.vue_trans_cb=null,n(),i.remove(a.leaveClass))};return e.addEventListener(o,s),e.vue_trans_cb=s,c.CSS_L}function r(e,t,n,i,r){var s=r.getOption("transitions",i);if(!s)return n(),c.JS_SKIP;var o=s.enter,a=s.leave;return t>0?"function"!=typeof o?(n(),c.JS_SKIP_E):(o(e,n),c.JS_E):"function"!=typeof a?(n(),c.JS_SKIP_L):(a(e,n),c.JS_L)}function s(){var e=document.createElement("vue"),t="transitionend",n={transition:t,mozTransition:t,webkitTransition:"webkitTransitionEnd"};for(var i in n)if(void 0!==e.style[i])return n[i]}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=n.exports=function(e,t,n,s){var o=function(){n(),s.execHook(t>0?"enteredView":"leftView")};if(s.init)return o(),c.INIT;var a=e.vue_trans;return a?r(e,t,o,a,s):""===a?i(e,t,o):(o(),c.SKIP)};u.codes=c}),e.register("vue/src/batcher.js",function(e,t){function n(){for(var e=0;et;t++)this.buildItem(e.args[t],i+t)},pop:function(){var e=this.vms.pop();e&&e.$destroy()},unshift:function(e){var t,n=e.args.length;for(t=0;n>t;t++)this.buildItem(e.args[t],t)},shift:function(){var e=this.vms.shift();e&&e.$destroy()},splice:function(e){var t,n,i=e.args[0],r=e.args[1],s=e.args.length-2,o=this.vms.splice(i,r);for(t=0,n=o.length;n>t;t++)o[t].$destroy();for(t=0;s>t;t++)this.buildItem(e.args[t+2],i+t)},sort:function(){var e,t,n,i,r=this.vms,s=this.collection,o=s.length,a=new Array(o);for(e=0;o>e;e++)for(i=s[e],t=0;o>t;t++)if(n=r[t],n.$data===i){a[e]=n;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,n=e.length;n>t;t++)this.container.insertBefore(e[t].$el,this.ref)}};n.exports={bind:function(){var e=this,n=e.el,r=e.container=n.parentNode;i=i||t("../viewmodel"),e.Ctor=e.Ctor||i,e.hasTrans=n.hasAttribute(a.attrs.transition),e.ref=document.createComment(a.prefix+"-repeat-"+e.key),r.insertBefore(e.ref,n),r.removeChild(n),e.initiated=!1,e.collection=null,e.vms=null,e.mutationListener=function(t,n,i){var r=i.method;u[r].call(e,i),"push"!==r&&"pop"!==r&&e.updateIndexes()}},update:function(e){if(this.unbind(!0),this.container.vue_dHandlers=o.hash(),this.initiated||e&&e.length||(this.buildItem(),this.initiated=!0),e=this.collection=e||[],this.vms=[],e.__observer__||r.watchArray(e,null,new s),e.__observer__.on("mutate",this.mutationListener),e.length)for(var t=0,n=e.length;n>t;t++)this.buildItem(e[t],t)},buildItem:function(e,t){var n,i,r=this.el.cloneNode(!0),s=this.container;e&&(n=this.vms.length>t?this.vms[t].$el:this.ref,n.parentNode||(n=n.vue_ref),r.vue_trans=o.attr(r,"transition",!0),c(r,1,function(){s.insertBefore(r,n)},this.compiler)),i=new this.Ctor({el:r,data:e,compilerOptions:{repeat:!0,repeatIndex:t,repeatCollection:this.collection,parentCompiler:this.compiler,delegator:s}}),e?this.vms.splice(t,0,i):i.$destroy()},updateIndexes:function(){for(var e=this.vms.length;e--;)this.vms[e].$data.$index=e},unbind:function(){if(this.collection){this.collection.__observer__.off("mutate",this.mutationListener);for(var e=this.vms.length;e--;)this.vms[e].$destroy()}var t=this.container,n=t.vue_dHandlers;for(var i in n)t.removeEventListener(n[i].event,n[i]);t.vue_dHandlers=null}}}),e.register("vue/src/directives/on.js",function(e,t,n){function i(e,t,n){for(;e&&e!==t;){if(e[n])return e;e=e.parentNode}}var r=t("../utils");n.exports={isFn:!0,bind:function(){this.compiler.repeat&&(this.el[this.expression]=!0,this.el.vue_viewmodel=this.vm)},update:function(e){if(this.unbind(!0),"function"!=typeof e)return r.warn('Directive "on" expects a function value.');var t=this.compiler,n=this.arg,s=this.binding.isExp,o=this.binding.compiler.vm;if(t.repeat&&!this.vm.constructor.super&&"blur"!==n&&"focus"!==n){var a=t.delegator,c=this.expression,u=a.vue_dHandlers[c];if(u)return;u=a.vue_dHandlers[c]=function(t){var n=i(t.target,a,c);n&&(t.el=n,t.targetVM=n.vue_viewmodel,e.call(s?t.targetVM:o,t))},u.event=n,a.addEventListener(n,u)}else{var l=this.vm;this.handler=function(t){t.el=t.currentTarget,t.targetVM=l,e.call(o,t)},this.el.addEventListener(n,this.handler)}},unbind:function(e){this.el.removeEventListener(this.arg,this.handler),this.handler=null,e||(this.el.vue_viewmodel=null)}}}),e.register("vue/src/directives/model.js",function(e,t,n){var i=t("../utils"),r=navigator.userAgent.indexOf("MSIE 9.0")>0;n.exports={bind:function(){var e=this,t=e.el,n=t.type,s=t.tagName;e.lock=!1,e.event=e.compiler.options.lazy||"SELECT"===s||"checkbox"===n||"radio"===n?"change":"input";var o=e.attr="checkbox"===n?"checked":"INPUT"===s||"SELECT"===s||"TEXTAREA"===s?"value":"innerHTML",a=!1;this.cLock=function(){a=!0},this.cUnlock=function(){a=!1},t.addEventListener("compositionstart",this.cLock),t.addEventListener("compositionend",this.cUnlock),e.set=e.filters?function(){if(!a){var n;try{n=t.selectionStart}catch(r){}e.vm.$set(e.key,t[o]),i.nextTick(function(){void 0!==n&&t.setSelectionRange(n,n)})}}:function(){a||(e.lock=!0,e.vm.$set(e.key,t[o]),i.nextTick(function(){e.lock=!1}))},t.addEventListener(e.event,e.set),r&&(e.onCut=function(){i.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))},update:function(e){if(!this.lock){var t=this,n=t.el;if("SELECT"===n.tagName){for(var r=n.options,s=r.length,o=-1;s--;)if(r[s].value==e){o=s;break}r.selectedIndex=o}else"radio"===n.type?n.checked=e==n.value:"checkbox"===n.type?n.checked=!!e:n[t.attr]=i.toText(e)}},unbind:function(){var e=this.el;e.removeEventListener(this.event,this.set),e.removeEventListener("compositionstart",this.cLock),e.removeEventListener("compositionend",this.cUnlock),r&&(e.removeEventListener("cut",this.onCut),e.removeEventListener("keyup",this.onDel))}}}),e.register("vue/src/directives/with.js",function(e,t,n){var i;n.exports={bind:function(){this.isEmpty&&this.build()},update:function(e){this.component?this.component.$data=e:this.build(e)},build:function(e){i=i||t("../viewmodel");var n=this.Ctor||i;this.component=new n({el:this.el,data:e,compilerOptions:{parentCompiler:this.compiler}})},unbind:function(){this.component.$destroy()}}}),e.alias("component-emitter/index.js","vue/deps/emitter/index.js"),e.alias("component-emitter/index.js","emitter/index.js"),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")}):this.Vue=e("vue")}(); \ No newline at end of file diff --git a/package.json b/package.json index 70af1a53679..b47a5272a86 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue", - "version": "0.7.6", + "version": "0.8.0", "author": { "name": "Evan You", "email": "yyx990803@gmail.com",