seed.min.js 28 KB

1234
  1. // Seed.js - v0.4.1
  2. // (c) 2013 Evan You
  3. // https://github.com/yyx990803/seed
  4. !function(){function a(b,c,d){var e=a.resolve(b);if(null==e){d=d||b,c=c||"root";var f=new Error('Failed to require "'+d+'" from "'+c+'"');throw f.path=d,f.parent=c,f.require=!0,f}var g=a.modules[e];if(!g._resolving&&!g.exports){var h={};h.exports={},h.client=h.component=!0,g._resolving=!0,g.call(this,h.exports,a.relative(e),h),delete g._resolving,g.exports=h.exports}return g.exports}a.modules={},a.aliases={},a.resolve=function(b){"/"===b.charAt(0)&&(b=b.slice(1));for(var c=[b,b+".js",b+".json",b+"/index.js",b+"/index.json"],d=0;d<c.length;d++){var b=c[d];if(a.modules.hasOwnProperty(b))return b;if(a.aliases.hasOwnProperty(b))return a.aliases[b]}},a.normalize=function(a,b){var c=[];if("."!=b.charAt(0))return b;a=a.split("/"),b=b.split("/");for(var d=0;d<b.length;++d)".."==b[d]?a.pop():"."!=b[d]&&""!=b[d]&&c.push(b[d]);return a.concat(c).join("/")},a.register=function(b,c){a.modules[b]=c},a.alias=function(b,c){if(!a.modules.hasOwnProperty(b))throw new Error('Failed to alias "'+b+'", it does not exist');a.aliases[c]=b},a.relative=function(b){function c(a,b){for(var c=a.length;c--;)if(a[c]===b)return c;return-1}function d(c){var e=d.resolve(c);return a(e,b,c)}var e=a.normalize(b,"..");return d.resolve=function(d){var f=d.charAt(0);if("/"==f)return d.slice(1);if("."==f)return a.normalize(e,d);var g=b.split("/"),h=c(g,"deps")+1;return h||(h=0),d=g.slice(0,h+1).join("/")+"/deps/"+d},d.exists=function(b){return a.modules.hasOwnProperty(d.resolve(b))},d},a.register("component-indexof/index.js",function(a,b,c){var d=[].indexOf;c.exports=function(a,b){if(d)return a.indexOf(b);for(var c=0;c<a.length;++c)if(a[c]===b)return c;return-1}}),a.register("component-emitter/index.js",function(a,b,c){function d(a){return a?e(a):void 0}function e(a){for(var b in d.prototype)a[b]=d.prototype[b];return a}var f=b("indexof");c.exports=d,d.prototype.on=function(a,b){return this._callbacks=this._callbacks||{},(this._callbacks[a]=this._callbacks[a]||[]).push(b),this},d.prototype.once=function(a,b){function c(){d.off(a,c),b.apply(this,arguments)}var d=this;return this._callbacks=this._callbacks||{},b._off=c,this.on(a,c),this},d.prototype.off=d.prototype.removeListener=d.prototype.removeAllListeners=function(a,b){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var c=this._callbacks[a];if(!c)return this;if(1==arguments.length)return delete this._callbacks[a],this;var d=f(c,b._off||b);return~d&&c.splice(d,1),this},d.prototype.emit=function(a){this._callbacks=this._callbacks||{};var b=[].slice.call(arguments,1),c=this._callbacks[a];if(c){c=c.slice(0);for(var d=0,e=c.length;e>d;++d)c[d].apply(this,b)}return this},d.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks[a]||[]},d.prototype.hasListeners=function(a){return!!this.listeners(a).length}}),a.register("seed/src/main.js",function(a,b,c){function d(a){var b=this;a=e(a,b.options,!0);var c=function(c){c=e(c,a,!0),b.call(this,c)},f=c.prototype=Object.create(b.prototype);k.defProtected(f,"constructor",c);var g=a.proto;if(g)for(var i in g)i in h.prototype||(f[i]=g[i]);return a.template&&(a.templateFragment=k.templateToFragment(a.template)),c.extend=d,c.super=b,c.options=a,c}function e(a,b,c){if(a=a||k.hash(),!b)return a;for(var d in b)"el"!==d&&"proto"!==d&&(a[d]?c&&"Object"===k.typeOf(a[d])&&e(a[d],b[d],!1):a[d]=b[d]);return a}function f(){var a=g.prefix;g.idAttr=a+"-id",g.vmAttr=a+"-viewmodel",g.preAttr=a+"-pre",g.textAttr=a+"-text",g.repeatAttr=a+"-repeat",g.partialAttr=a+"-partial",g.transAttr=a+"-transition",g.transClassAttr=a+"-transition-class"}var g=b("./config"),h=b("./viewmodel"),i=b("./directives"),j=b("./filters"),k=b("./utils");h.config=function(a){return a&&(k.extend(g,a),a.prefix&&f()),this},h.directive=function(a,b){return b?(i[a]=b,this):i[a]},h.filter=function(a,b){return b?(j[a]=b,this):j[a]},h.viewmodel=function(a,b){return b?(k.viewmodels[a]=b,this):k.viewmodels[a]},h.partial=function(a,b){return b?(k.partials[a]=k.templateToFragment(b),this):k.partials[a]},h.transition=function(a,b){return b?(k.transitions[a]=b,this):k.transitions[a]},h.extend=d,f(),c.exports=h}),a.register("seed/src/emitter.js",function(a,b,c){var d,e="emitter";try{d=b(e)}catch(f){}c.exports=d||b("events").EventEmitter}),a.register("seed/src/config.js",function(a,b,c){c.exports={prefix:"sd",debug:!1}}),a.register("seed/src/utils.js",function(a,b,c){function d(){return Object.create(null)}var e=b("./config"),f=Object.prototype.toString,g=Array.prototype.join,h=window.console,i=c.exports={hash:d,viewmodels:d(),partials:d(),transitions:d(),defProtected:function(a,b,c,d,e){a.hasOwnProperty(b)||Object.defineProperty(a,b,{value:c,enumerable:!!d,configurable:!!e})},typeOf:function(a){return f.call(a).slice(8,-1)},toText:function(a){return"string"==typeof a||"boolean"==typeof a||"number"==typeof a&&a==a?a:""},extend:function(a,b,c){for(var d in b)c&&a[d]||(a[d]=b[d])},convertPartials:function(a){if(a)for(var b in a)"string"==typeof a[b]&&(a[b]=i.templateToFragment(a[b]))},templateToFragment:function(a){if("#"===a.charAt(0)){var b=document.getElementById(a.slice(1));if(!b)return;a=b.innerHTML}var c,d=document.createElement("div"),e=document.createDocumentFragment();for(d.innerHTML=a.trim();c=d.firstChild;)e.appendChild(c);return e},log:function(){e.debug&&h&&h.log(g.call(arguments," "))},warn:function(){e.debug&&h&&h.warn(g.call(arguments," "))}}}),a.register("seed/src/compiler.js",function(a,b,c){function d(a,b){var c=this;c.init=!0,b=c.options=b||s(),j.extend(c,b.compilerOptions),j.convertPartials(b.partials),c.setupElement(b),r("\nnew VM instance:",c.el.tagName,"\n");var d=b.scope;d&&j.extend(a,d,!0),c.vm=a,a.$=s(),a.$el=c.el,a.$compiler=c,c.dirs=[],c.exps=[],c.childCompilers=[],c.emitter=new g;var e=c.observables=[],k=c.computed=[],l=c.parentCompiler;c.bindings=l?Object.create(l.bindings):s(),c.rootCompiler=l?f(l):c;var m=c.el.getAttribute(i.idAttr);l&&(a.$parent=l.vm,m&&(c.childId=m,l.vm.$[m]=a)),c.setupObserver(),b.init&&b.init.apply(a,b.args||[]);var o,p;for(o in a)p=o.charAt(0),"$"!==p&&"_"!==p&&c.createBinding(o);c.repeat&&(a.$index=c.repeatIndex,a.$collection=c.repeatCollection,c.createBinding("$index")),c.compile(c.el,!0);for(var q,t=e.length;t--;)q=e[t],h.observe(q.value,q.key,c.observer);k.length&&n.parse(k),c.init=!1}function e(a,b){if(a.nesting)for(var c=a.nesting;b.parentCompiler&&c--;)b=b.parentCompiler;else if(a.root)for(;b.parentCompiler;)b=b.parentCompiler;return b}function f(a){return e({root:!0},a)}var g=b("./emitter"),h=b("./observer"),i=b("./config"),j=b("./utils"),k=b("./binding"),l=b("./directive"),m=b("./text-parser"),n=b("./deps-parser"),o=b("./exp-parser"),p=b("./transition"),q=Array.prototype.slice,r=j.log,s=j.hash,t=Object.prototype.hasOwnProperty,u=d.prototype;u.setupElement=function(a){var b=this.el="string"==typeof a.el?document.querySelector(a.el):a.el||document.createElement(a.tagName||"div");a.id&&(b.id=a.id),a.className&&(b.className=a.className);var c=a.attributes;if(c)for(var d in c)b.setAttribute(d,c[d]);var e=a.template;if("string"==typeof e)if("#"===e.charAt(0)){var f=document.querySelector(e);f&&(b.innerHTML=f.innerHTML)}else b.innerHTML=e;else a.templateFragment&&(b.innerHTML="",b.appendChild(a.templateFragment.cloneNode(!0)))},u.setupObserver=function(){var a=this.bindings,b=this.observer=new g,c=n.observer;b.proxies=s(),b.on("get",function(b){a[b]&&c.isObserving&&c.emit("get",a[b])}).on("set",function(c,d){b.emit("change:"+c,d),a[c]&&a[c].update(d)}).on("mutate",function(c,d,e){b.emit("change:"+c,d,e),a[c]&&a[c].pub()})},u.compile=function(a,b){var c=this;if(1===a.nodeType){if(a.hasAttribute(i.preAttr))return;var d=a.getAttribute(i.vmAttr),e=a.getAttribute(i.repeatAttr),f=a.getAttribute(i.partialAttr),g=a.getAttribute(i.transAttr),h=a.getAttribute(i.transClassAttr);if(e){a.removeAttribute(i.idAttr);var j=l.parse(i.repeatAttr,e,c,a);j&&c.bindDirective(j)}else if(d&&!b){a.removeAttribute(i.vmAttr);var k=c.getOption("viewmodels",d);if(k){var m=new k({el:a,child:!0,compilerOptions:{parentCompiler:c}});c.childCompilers.push(m.$compiler)}}else{if(f){a.removeAttribute(i.partialAttr);var n=c.getOption("partials",f);n&&(a.innerHTML="",a.appendChild(n.cloneNode(!0)))}g&&(a.removeAttribute(i.transAttr),a.sd_trans=g),h&&(a.removeAttribute(i.transClassAttr),a.sd_trans_class=h),c.compileNode(a)}}else 3===a.nodeType&&c.compileTextNode(a)},u.compileNode=function(a){var b,c;if(a.attributes&&a.attributes.length){var d,e,f,g,h=q.call(a.attributes);for(b=h.length;b--;){for(d=h[b],e=!1,f=d.value.split(","),c=f.length;c--;){g=f[c];var i=l.parse(d.name,g,this,a);i&&(e=!0,this.bindDirective(i))}e&&a.removeAttribute(d.name)}}if(a.childNodes.length){var j=q.call(a.childNodes);for(b=0,c=j.length;c>b;b++)this.compile(j[b])}},u.compileTextNode=function(a){var b=m.parse(a.nodeValue);if(b){for(var c,d,e,f=i.textAttr,g=0,h=b.length;h>g;g++){if(d=b[g],d.key)if(">"===d.key.charAt(0)){var j=d.key.slice(1).trim(),k=this.getOption("partials",j);k&&(c=k.cloneNode(!0),this.compileNode(c))}else c=document.createTextNode(""),e=l.parse(f,d.key,this,c),e&&this.bindDirective(e);else c=document.createTextNode(d);a.parentNode.insertBefore(c,a)}a.parentNode.removeChild(a)}},u.bindDirective=function(a){if(this.dirs.push(a),a.isSimple)return a.bind&&a.bind(),void 0;var b,c=this,d=a.key,f=d.split(".")[0],g=e(a,c);b=a.isExp?c.createBinding(d,!0):g.vm.hasOwnProperty(f)?t.call(g.bindings,d)?g.bindings[d]:g.createBinding(d):g.bindings[d]||c.rootCompiler.createBinding(d),b.instances.push(a),a.binding=b;var h,i,j=b.contextDeps;if(j)for(h=j.length;h--;)i=c.bindings[j[h]],i.subs.push(a);var k=b.value;a.bind&&a.bind(k),b.isComputed?a.refresh(k):a.update(k,!0)},u.createBinding=function(a,b){var c=this,d=c.bindings,e=new k(c,a,b);if(b){var f=o.parse(a);if(f){r(" created anonymous binding: "+a),e.value={get:f.getter},c.markComputed(e),c.exps.push(e);for(var g,h=f.paths.length;h--;)g=f.paths[h],d[g]||c.rootCompiler.createBinding(g)}else j.warn(" invalid expression: "+a)}else if(r(" created binding: "+a),d[a]=e,c.ensurePath(a),e.root)c.define(a,e);else{var i=a.slice(0,a.lastIndexOf("."));t.call(d,i)||c.createBinding(i)}return e},u.ensurePath=function(a){for(var b,c=a.split("."),d=this.vm,e=0,f=c.length-1;f>e;e++)b=c[e],d[b]||(d[b]={}),d=d[b];"Object"===j.typeOf(d)&&(b=c[e],b in d||(d[b]=void 0))},u.define=function(a,b){r(" defined root binding: "+a);var c=this,d=c.vm,e=c.observer,f=b.value=d[a],g=j.typeOf(f);"Object"===g&&f.get?c.markComputed(b):("Object"===g||"Array"===g)&&c.observables.push(b),Object.defineProperty(d,a,{enumerable:!0,get:function(){var c=b.value;return(b.isComputed||c&&c.__observer__)&&!Array.isArray(c)||e.emit("get",a),b.isComputed?c.get():c},set:function(c){var d=b.value;b.isComputed?d.set&&d.set(c):c!==d&&(h.unobserve(d,a,e),b.value=c,e.emit("set",a,c),h.observe(c,a,e))}})},u.markComputed=function(a){var b=a.value,c=this.vm;a.isComputed=!0,b.get=b.get.bind(c),b.set&&(b.set=b.set.bind(c)),this.computed.push(a)},u.bindContexts=function(a){for(var b,c,d,e,f,g,h=a.length;h--;)for(d=a[h],b=d.contextDeps.length;b--;)for(e=d.contextDeps[b],c=d.instances.length;c--;)g=d.instances[c],f=g.compiler.bindings[e],f.subs.push(g)},u.getOption=function(a,b){var c=this.options;return c[a]&&c[a][b]||j[a]&&j[a][b]},u.destroy=function(){var a,b,c,d,e,f=this,g=f.el,i=f.dirs,j=f.exps,k=f.bindings,l=f.options.teardown;for(l&&l(),f.observer.off(),f.emitter.off(),a=i.length;a--;)c=i[a],c.isSimple||c.binding.compiler===f||(d=c.binding.instances,d&&d.splice(d.indexOf(c),1)),c.unbind();for(a=j.length;a--;)j[a].unbind();for(b in k)t.call(k,b)&&(e=k[b],e.root&&h.unobserve(e.value,e.key,f.observer),e.unbind());var m=f.parentCompiler,n=f.childId;m&&(m.childCompilers.splice(m.childCompilers.indexOf(f),1),n&&delete m.vm.$[n]),g===document.body?g.innerHTML="":g.parentNode&&p(g,-1,function(){g.parentNode.removeChild(g)},this)},c.exports=d}),a.register("seed/src/viewmodel.js",function(a,b,c){function d(a){new f(this,a)}function e(a,b){var c=b[0],d=a.$compiler.bindings[c];return d?d.compiler.vm:null}var f=b("./compiler"),g=b("./utils").defProtected,h=d.prototype;g(h,"$set",function(a,b){var c=a.split("."),d=e(this,c);if(d){for(var f=0,g=c.length-1;g>f;f++)d=d[c[f]];d[c[f]]=b}}),g(h,"$get",function(a){var b=a.split("."),c=e(this,b),d=c;if(c){for(var f=0,g=b.length;g>f;f++)c=c[b[f]];return"function"==typeof c&&(c=c.bind(d)),c}}),g(h,"$watch",function(a,b){this.$compiler.observer.on("change:"+a,b)}),g(h,"$unwatch",function(a,b){var c=["change:"+a],d=this.$compiler.observer;b&&c.push(b),d.off.apply(d,c)}),g(h,"$destroy",function(){this.$compiler.destroy()}),g(h,"$broadcast",function(){for(var a,b=this.$compiler.childCompilers,c=b.length;c--;)a=b[c],a.emitter.emit.apply(a.emitter,arguments),a.vm.$broadcast.apply(a.vm,arguments)}),g(h,"$emit",function(){var a=this.$compiler.parentCompiler;a&&(a.emitter.emit.apply(a.emitter,arguments),a.vm.$emit.apply(a.vm,arguments))}),["on","off","once"].forEach(function(a){g(h,"$"+a,function(){var b=this.$compiler.emitter;b[a].apply(b,arguments)})}),c.exports=d}),a.register("seed/src/binding.js",function(a,b,c){function d(a,b,c){this.value=void 0,this.isExp=!!c,this.root=!this.isExp&&-1===b.indexOf("."),this.compiler=a,this.key=b,this.instances=[],this.subs=[],this.deps=[]}var e=d.prototype;e.update=function(a){this.value=a;for(var b=this.instances.length;b--;)this.instances[b].update(a);this.pub()},e.refresh=function(){for(var a=this.instances.length;a--;)this.instances[a].refresh();this.pub()},e.pub=function(){for(var a=this.subs.length;a--;)this.subs[a].refresh()},e.unbind=function(){for(var a=this.instances.length;a--;)this.instances[a].unbind();a=this.deps.length;for(var b;a--;)b=this.deps[a].subs,b.splice(b.indexOf(this),1)},c.exports=d}),a.register("seed/src/observer.js",function(a,b,c){function d(a,b,c){var d=l(a);"Object"===d?e(a,b,c):"Array"===d&&f(a,b,c)}function e(a,b,c){for(var d in a){var e=d.charAt(0);"$"!==e&&"_"!==e&&g(a,d,b,c)}}function f(a,b,c){if(m(a,"__observer__",c),c.path=b,p)a.__proto__=q;else for(var d in q)m(a,d,q[d])}function g(a,b,c,e){var f=a[b],g=h(f),i=e.values,j=(c?c+".":"")+b;i[j]=f,e.emit("set",j,f),Object.defineProperty(a,b,{enumerable:!0,get:function(){return g||e.emit("get",j),i[j]},set:function(a){i[j]=a,e.emit("set",j,a),d(a,j,e)}}),d(f,j,e)}function h(a){var b=l(a);return"Object"===b||"Array"===b}function i(a,b){if("Array"===l(a))b.emit("set","length",a.length);else{var c,d,e=b.values;for(c in b.values)d=e[c],b.emit("set",c,d)}}var j=b("./emitter"),k=b("./utils"),l=k.typeOf,m=k.defProtected,n=Array.prototype.slice,o=["push","pop","shift","unshift","splice","sort","reverse"],p={}.__proto__,q=Object.create(Array.prototype);o.forEach(function(a){m(q,a,function(){var b=Array.prototype[a].apply(this,arguments);return this.__observer__.emit("mutate",this.__observer__.path,this,{method:a,args:n.call(arguments),result:b}),b},!p)});var r={remove:function(a){return"number"!=typeof a&&(a=this.indexOf(a)),this.splice(a,1)[0]},replace:function(a,b){return"number"!=typeof a&&(a=this.indexOf(a)),void 0!==this[a]?this.splice(a,1,b)[0]:void 0},mutateFilter:function(a){for(var b=this.length;b--;)a(this[b])||this.splice(b,1);return this}};for(var s in r)m(q,s,r[s],!p);c.exports={watchArray:f,observe:function(a,b,c){if(h(a)){var e,f=b+".",g=!!a.__observer__;g||m(a,"__observer__",new j),e=a.__observer__,e.values=e.values||k.hash();var l=c.proxies[f]={get:function(a){c.emit("get",f+a)},set:function(a,b){c.emit("set",f+a,b)},mutate:function(a,d,e){var g=a?f+a:b;c.emit("mutate",g,d,e);var h=e.method;"sort"!==h&&"reverse"!==h&&c.emit("set",g+".length",d.length)}};e.on("get",l.get).on("set",l.set).on("mutate",l.mutate),g?i(a,e,b):d(a,null,e)}},unobserve:function(a,b,c){if(a&&a.__observer__){b+=".";var d=c.proxies[b];a.__observer__.off("get",d.get).off("set",d.set).off("mutate",d.mutate),c.proxies[b]=null}}}}),a.register("seed/src/directive.js",function(a,b,c){function d(a,b,c,d,g){this.compiler=d,this.vm=d.vm,this.el=g;var h=""===b;if("function"==typeof a)this[h?"bind":"_update"]=a;else for(var i in a)"unbind"===i||"update"===i?this["_"+i]=a[i]:this[i]=a[i];if(h)return this.isSimple=!0,void 0;this.expression=b.trim(),this.rawKey=c,e(this,c),this.isExp=!p.test(this.key);var j=b.match(m);if(j){this.filters=[];for(var k,l=0,n=j.length;n>l;l++)k=f(j[l],this.compiler),k&&this.filters.push(k);this.filters.length||(this.filters=null)}else this.filters=null}function e(a,b){var c=b.match(l),d=c?c[2].trim():b.trim();a.arg=c?c[1].trim():null;var e=d.match(o);a.nesting=e?e[0].length:!1,a.root="*"===d.charAt(0),a.nesting?d=d.replace(o,""):a.root&&(d=d.slice(1)),a.key=d}function f(a,b){var c=a.slice(1).match(n);if(c){c=c.map(function(a){return a.replace(/'/g,"").trim()});var d=c[0],e=b.getOption("filters",d)||j[d];return e?{name:d,apply:e,args:c.length>1?c.slice(1):null}:(h.warn("Unknown filter: "+d),void 0)}}var g=b("./config"),h=b("./utils"),i=b("./directives"),j=b("./filters"),k=/^[^\|]+/,l=/([^:]+):(.+)$/,m=/\|[^\|]+/g,n=/[^\s']+|'[^']+'/g,o=/^\^+/,p=/^[\w\.\$]+$/,q=d.prototype;q.update=function(a,b){(b||a!==this.value)&&(this.value=a,this.apply(a))},q.refresh=function(a){a&&(this.value=a),a=this.value.get({el:this.el,vm:this.vm}),(void 0===a||a!==this.computedValue)&&(this.computedValue=a,this.apply(a))},q.apply=function(a){this._update(this.filters?this.applyFilters(a):a)},q.applyFilters=function(a){for(var b,c=a,d=0,e=this.filters.length;e>d;d++)b=this.filters[d],c=b.apply(c,b.args);return c},q.unbind=function(a){this.el&&(this._unbind&&this._unbind(a),a||(this.vm=this.el=this.binding=this.compiler=null))},d.parse=function(a,b,c,e){var f=g.prefix;if(-1!==a.indexOf(f)){a=a.slice(f.length+1);var j=c.getOption("directives",a)||i[a];if(!j)return h.warn("unknown directive: "+a);var l=b.match(k),m=l&&l[0].trim();return m||""===b?new d(j,b,m,c,e):h.warn("invalid directive expression: "+b)}},c.exports=d}),a.register("seed/src/exp-parser.js",function(a,b,c){function d(a){return a=a.replace(h,"").replace(i,",").replace(g,"").replace(j,"").replace(k,""),a?a.split(/,+/):[]}function e(a,b){var c=new RegExp("\\b("+b.join("|")+")[$\\w\\.]*\\b","g");return a.match(c)}var 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",g=new RegExp(["\\b"+f.replace(/,/g,"\\b|\\b")+"\\b"].join("|"),"g"),h=/\/\*(?:.|\n)*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|'[^']*'|"[^"]*"|[\s\t\n]*\.[\s\t\n]*[$\w\.]+/g,i=/[^\w$]+/g,j=/\b\d[^,]*/g,k=/^,+|,+$/g;c.exports={parse:function(a){var b=d(a);if(!b.length)return null;var c,f,g,h=[],i=b.length,j=Object.create(null);for(f=0;i>f;f++)c=b[f],j[c]||(j[c]=c,g=c.charAt(0),h.push(c+("$"===g||"_"===g?"=this."+c:'=this.$get("'+c+'")')));return h="var "+h.join(",")+";return "+a,{getter:new Function(h),paths:e(a,Object.keys(j))}}}}),a.register("seed/src/text-parser.js",function(a,b,c){var d=/\{\{(.+?)\}\}/;c.exports={parse:function(a){if(!d.test(a))return null;for(var b,c,e=[];b=a.match(d);)c=b.index,c>0&&e.push(a.slice(0,c)),e.push({key:b[1].trim()}),a=a.slice(c+b[0].length);return a.length&&e.push(a),e}}}),a.register("seed/src/deps-parser.js",function(a,b,c){function d(a){f.log("\n─ "+a.key);var b=f.hash();g.on("get",function(c){b[c.key]||(b[c.key]=1,f.log(" └─ "+c.key),a.deps.push(c),c.subs.push(a))}),a.value.get(),g.off("get")}var e=b("./emitter"),f=b("./utils"),g=new e;c.exports={observer:g,parse:function(a){f.log("\nparsing dependencies..."),g.isObserving=!0,a.forEach(d),g.isObserving=!1,f.log("\ndone.")}}}),a.register("seed/src/filters.js",function(a,b,c){var d={enter:13,tab:9,"delete":46,up:38,left:37,right:39,down:40,esc:27};c.exports={capitalize:function(a){return a||0===a?(a=a.toString(),a.charAt(0).toUpperCase()+a.slice(1)):""},uppercase:function(a){return a||0===a?a.toString().toUpperCase():""},lowercase:function(a){return a||0===a?a.toString().toLowerCase():""},currency:function(a,b){if(!a&&0!==a)return"";var c=b&&b[0]||"$",d=Math.floor(a).toString(),e=d.length%3,f=e>0?d.slice(0,e)+(d.length>3?",":""):"",g="."+a.toFixed(2).slice(-2);return c+f+d.slice(e).replace(/(\d{3})(?=\d)/g,"$1,")+g},pluralize:function(a,b){return b.length>1?b[a-1]||b[b.length-1]:b[a-1]||b[0]+"s"},key:function(a,b){if(a){var c=d[b[0]];return c||(c=parseInt(b[0],10)),function(b){b.keyCode===c&&a.call(this,b)}}}}}),a.register("seed/src/transition.js",function(a,b,c){function d(a,b,c,d){if(!h)return c(),i.CSS_SKIP;var e=a.classList,f=a.sd_trans_cb;if(b>0){f&&(a.removeEventListener(h,f),a.sd_trans_cb=null),e.add(d),c();{a.clientHeight}return e.remove(d),i.CSS_E}e.add(d);var g=function(b){b.target===a&&(a.removeEventListener(h,g),a.sd_trans_cb=null,c(),e.remove(d))};return a.addEventListener(h,g),a.sd_trans_cb=g,i.CSS_L}function e(a,b,c,d,e){var f=e.getOption("transitions",d);if(!f)return c(),i.JS_SKIP;var g=f.enter,h=f.leave;return b>0?"function"!=typeof g?(c(),i.JS_SKIP_E):(g(a,c),i.JS_E):"function"!=typeof h?(c(),i.JS_SKIP_L):(h(a,c),i.JS_L)}function f(){var a=document.createElement("seed"),b="transitionend",c={transition:b,MozTransition:b,WebkitTransition:"webkitTransitionEnd"};for(var d in c)if(void 0!==a.style[d])return c[d]}var g=b("./config"),h=f(),i={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},j=c.exports=function(a,b,c,f){if(f.init)return c(),i.INIT;var h=a.sd_trans||a.getAttribute(g.transAttr),j=a.sd_trans_class||a.getAttribute(g.transClassAttr);return h?e(a,b,c,h,f):j?d(a,b,c,j):(c(),i.SKIP)};j.codes=i}),a.register("seed/src/directives/index.js",function(a,b,c){function d(a){return"-"===a.charAt(0)&&(a=a.slice(1)),a.replace(g,function(a,b){return b.toUpperCase()})}var e=b("../utils"),f=b("../transition");c.exports={on:b("./on"),repeat:b("./repeat"),model:b("./model"),"if":b("./if"),attr:function(a){this.el.setAttribute(this.arg,a)},text:function(a){this.el.textContent=e.toText(a)},html:function(a){this.el.innerHTML=e.toText(a)},visible:function(a){this.el.style.visibility=a?"":"hidden"},show:function(a){var b=this.el,c=a?"":"none",d=function(){b.style.display=c};f(b,a?1:-1,d,this.compiler)},"class":function(a){this.arg?this.el.classList[a?"add":"remove"](this.arg):(this.lastVal&&this.el.classList.remove(this.lastVal),a&&(this.el.classList.add(a),this.lastVal=a))},style:{bind:function(){this.arg=d(this.arg)},update:function(a){this.el.style[this.arg]=a}}};var g=/-(.)/g}),a.register("seed/src/directives/if.js",function(a,b,c){var d=b("../transition");c.exports={bind:function(){this.parent=this.el.parentNode,this.ref=document.createComment("sd-if-"+this.key),this.el.sd_ref=this.ref},update:function(a){function b(){if(e.parentNode){var a=e.nextSibling;a?f.insertBefore(g,a):f.appendChild(g),f.removeChild(e)}}function c(){e.parentNode||(f.insertBefore(e,g),f.removeChild(g))}var e=this.el;if(!this.parent){if(!e.parentNode)return;this.parent=e.parentNode}var f=this.parent,g=this.ref,h=this.compiler;a?d(e,1,c,h):d(e,-1,b,h)},unbind:function(){this.el.sd_ref=null}}}),a.register("seed/src/directives/repeat.js",function(a,b,c){var d,e=b("../config"),f=b("../observer"),g=b("../emitter"),h=b("../utils"),i=b("../transition"),j={push:function(a){var b,c=a.args.length,d=this.collection.length-c;for(b=0;c>b;b++)this.buildItem(a.args[b],d+b)},pop:function(){var a=this.vms.pop();a&&a.$destroy()},unshift:function(a){var b,c=a.args.length;for(b=0;c>b;b++)this.buildItem(a.args[b],b)},shift:function(){var a=this.vms.shift();a&&a.$destroy()},splice:function(a){var b,c,d=a.args[0],e=a.args[1],f=a.args.length-2,g=this.vms.splice(d,e);for(b=0,c=g.length;c>b;b++)g[b].$destroy();for(b=0;f>b;b++)this.buildItem(a.args[b+2],d+b)},sort:function(){var a,b,c,d,e=this.arg,f=this.vms,g=this.collection,h=g.length,i=new Array(h);for(a=0;h>a;a++)for(d=g[a],b=0;h>b;b++)if(c=f[b],c[e]===d){i[a]=c;break}for(a=0;h>a;a++)this.container.insertBefore(i[a].$el,this.ref);this.vms=i},reverse:function(){var a=this.vms;a.reverse();for(var b=0,c=a.length;c>b;b++)this.container.insertBefore(a[b].$el,this.ref)}};c.exports={bind:function(){var a=this,c=a.el,f=a.container=c.parentNode;c.removeAttribute(e.repeatAttr),d=d||b("../viewmodel");var g=c.getAttribute(e.vmAttr);g&&c.removeAttribute(e.vmAttr),a.ChildVM=a.compiler.getOption("viewmodels",g)||d,a.hasTransition=!(!c.getAttribute(e.transAttr)&&!c.getAttribute(e.transClassAttr)),a.ref=document.createComment("sd-repeat-"+a.arg),f.insertBefore(a.ref,c),f.removeChild(c),a.collection=null,a.vms=null,a.mutationListener=function(b,c,d){a.detach();var e=d.method;j[e].call(a,d),"push"!==e&&"pop"!==e&&a.updateIndexes(),a.retach()}},update:function(a){this.unbind(!0),this.container.sd_dHandlers=h.hash(),this.collection||a.length||this.buildItem(),this.collection=a,this.vms=[],a.__observer__||f.watchArray(a,null,new g),a.__observer__.on("mutate",this.mutationListener),this.detach();for(var b=0,c=a.length;c>b;b++)this.buildItem(a[b],b);this.retach()},buildItem:function(a,b){var c,d,e=this.el.cloneNode(!0),f=this.container,g={};a&&(c=this.vms.length>b?this.vms[b].$el:this.ref,c.parentNode||(c=c.sd_ref),i(e,1,function(){f.insertBefore(e,c)},this.compiler)),g[this.arg]=a||{},d=new this.ChildVM({el:e,scope:g,compilerOptions:{repeat:!0,repeatIndex:b,repeatCollection:this.collection,repeatPrefix:this.arg,parentCompiler:this.compiler,delegator:f}}),a?this.vms.splice(b,0,d):d.$destroy()},updateIndexes:function(){for(var a=this.vms.length;a--;)this.vms[a].$index=a},detach:function(){if(!this.hasTransition){var a=this.container,b=this.parent=a.parentNode;this.next=a.nextSibling,b&&b.removeChild(a)}},retach:function(){if(!this.hasTransition){var a=this.next,b=this.parent,c=this.container;b&&(a?b.insertBefore(c,a):b.appendChild(c))}},unbind:function(){if(this.collection){this.collection.__observer__.off("mutate",this.mutationListener);for(var a=this.vms.length;a--;)this.vms[a].$destroy()}var b=this.container,c=b.sd_dHandlers;for(var d in c)b.removeEventListener(c[d].event,c[d]);b.sd_dHandlers=null}}}),a.register("seed/src/directives/on.js",function(a,b,c){function d(a,b,c){return a[c]?a:a!==b&&a.parentNode?d(a.parentNode,b,c):!1}var e=b("../utils");c.exports={bind:function(){this.compiler.repeat&&(this.el[this.expression]=!0,this.el.sd_viewmodel=this.vm)},update:function(a){if(this.unbind(!0),"function"!=typeof a)return e.warn('Directive "on" expects a function value.');var b=this.compiler,c=this.arg,f=this.binding.compiler.vm;if(b.repeat&&!this.vm.constructor.super&&"blur"!==c&&"focus"!==c){var g=b.delegator,h=this.expression,i=g.sd_dHandlers[h];if(i)return;i=g.sd_dHandlers[h]=function(c){var e=d(c.target,g,h);e&&(c.el=e,c.vm=e.sd_viewmodel,c.item=c.vm[b.repeatPrefix],a.call(f,c))},i.event=c,g.addEventListener(c,i)}else{var j=this.vm;this.handler=function(c){c.el=c.currentTarget,c.vm=j,b.repeat&&(c.item=j[b.repeatPrefix]),a.call(f,c)},this.el.addEventListener(c,this.handler)}},unbind:function(a){this.el.removeEventListener(this.arg,this.handler),this.handler=null,a||(this.el.sd_viewmodel=null)}}}),a.register("seed/src/directives/model.js",function(a,b,c){var d=b("../utils"),e=navigator.userAgent.indexOf("MSIE 9.0")>0;c.exports={bind:function(){var a=this,b=a.el,c=b.type;a.lock=!1,a.event=a.compiler.options.lazy||"SELECT"===b.tagName||"checkbox"===c||"radio"===c?"change":"input";var d="checkbox"===c?"checked":"value";a.set=function(){a.lock=!0,a.vm.$set(a.key,b[d]),a.lock=!1},b.addEventListener(a.event,a.set),e&&(a.onCut=function(){setTimeout(function(){a.set()},0)},a.onDel=function(b){(46===b.keyCode||8===b.keyCode)&&a.set()},b.addEventListener("cut",a.onCut),b.addEventListener("keyup",a.onDel))},update:function(a){var b=this,c=b.el;if(!b.lock)if("SELECT"===c.tagName){for(var e=c.options,f=e.length,g=-1;f--;)if(e[f].value==a){g=f;break}e.selectedIndex=g}else"radio"===c.type?c.checked=a==c.value:"checkbox"===c.type?c.checked=!!a:c.value=d.toText(a)},unbind:function(){this.el.removeEventListener(this.event,this.set),e&&(this.el.removeEventListener("cut",this.onCut),this.el.removeEventListener("keyup",this.onDel))}}}),a.alias("component-emitter/index.js","seed/deps/emitter/index.js"),a.alias("component-emitter/index.js","emitter/index.js"),a.alias("component-indexof/index.js","component-emitter/deps/indexof/index.js"),a.alias("seed/src/main.js","seed/index.js"),"object"==typeof exports?module.exports=a("seed"):"function"==typeof define&&define.amd?define(function(){return a("seed")}):this.Seed=a("seed")}();