vue2/dist/seed.min.js

1 line
18 KiB
JavaScript

!function(a){function b(a,c,d){var e=b.resolve(a);if(null==e){d=d||a,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=b.modules[e];return g.exports||(g.exports={},g.client=g.component=!0,g.call(this,g.exports,b.relative(e),g)),g.exports}b.modules={},b.aliases={},b.resolve=function(a){"/"===a.charAt(0)&&(a=a.slice(1));for(var c=[a,a+".js",a+".json",a+"/index.js",a+"/index.json"],d=0;d<c.length;d++){var a=c[d];if(b.modules.hasOwnProperty(a))return a;if(b.aliases.hasOwnProperty(a))return b.aliases[a]}},b.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("/")},b.register=function(a,c){b.modules[a]=c},b.alias=function(a,c){if(!b.modules.hasOwnProperty(a))throw new Error('Failed to alias "'+a+'", it does not exist');b.aliases[c]=a},b.relative=function(a){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 b(e,a,c)}var e=b.normalize(a,"..");return d.resolve=function(d){var f=d.charAt(0);if("/"==f)return d.slice(1);if("."==f)return b.normalize(e,d);var g=a.split("/"),h=c(g,"deps")+1;return h||(h=0),d=g.slice(0,h+1).join("/")+"/deps/"+d},d.exists=function(a){return b.modules.hasOwnProperty(d.resolve(a))},d},b.register("component-indexof/index.js",function(a,b,c){c.exports=function(a,b){if(a.indexOf)return a.indexOf(b);for(var c=0;c<a.length;++c)if(a[c]===b)return c;return-1}}),b.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}}),b.register("seed/src/main.js",function(a,b,c){var d=b("./config"),e=b("./seed"),f=b("./directives"),g=b("./filters"),h=b("./text-parser"),i=d.controllers,j=d.datum,k={},l=["datum","controllers"],m=!1;k.data=function(a,b){return b?(j[a]=b,void 0):j[a]},k.controller=function(a,b){return b?(i[a]=b,void 0):i[a]},k.directive=function(a,b){return b?(f[a]=b,void 0):f[a]},k.filter=function(a,b){return b?(g[a]=b,void 0):g[a]},k.bootstrap=function(a){if(!m){if(a)for(var b in a)-1===l.indexOf(b)&&(d[b]=a[b]);h.buildRegex();for(var c,f="["+d.prefix+"-controller]",g="["+d.prefix+"-data]",i=[];c=document.querySelector(f)||document.querySelector(g);)i.push(new e(c).scope);return m=!0,i.length>1?i:i[0]}},c.exports=k}),b.register("seed/src/config.js",function(a,b,c){c.exports={prefix:"sd",debug:!1,datum:{},controllers:{},interpolateTags:{open:"{{",close:"}}"},log:function(a){this.debug&&console.log(a)},warn:function(a){this.debug&&console.warn(a)}}}),b.register("seed/src/utils.js",function(b,c,d){function e(a){return h.call(a).slice(8,-1)}function f(a){var b=e(a);if("Array"===b)return a.map(f);if("Object"===b){if(a.get)return a.get();var c={};for(var d in a)a.hasOwnProperty(d)&&"function"!=typeof a[d]&&"$"!==d.charAt(0)&&(c[d]=f(a[d]));return c}return"Function"!==b?a:void 0}var g=c("emitter"),h=Object.prototype.toString,i=Array.prototype,j=["push","pop","shift","unshift","splice","sort","reverse"],k={remove:function(a){"number"!=typeof a&&(a=a.$index),this.splice(a,1)},replace:function(a,b){"number"!=typeof a&&(a=a.$index),this.splice(a,1,b)}};d.exports={typeOf:e,dumpValue:f,getNestedValue:function(b,c){if(1===c.length)return b[c[0]];for(var d=0;b[c[d]];)b=b[c[d]],d++;return d===c.length?b:a},watchArray:function(a){g(a),j.forEach(function(b){a[b]=function(){var c=i[b].apply(this,arguments);a.emit("mutate",{method:b,args:i.slice.call(arguments),result:c})}});for(var b in k)a[b]=k[b]}}}),b.register("seed/src/seed.js",function(a,b,c){function d(a,b){f.log("\ncreated new Seed instance.\n"),"string"==typeof a&&(a=document.querySelector(a)),this.el=a,a.seed=this,this._bindings={},this._computed=[],this._contextBindings=[],b=b||{};for(var c in b)this[c]=b[c];var e=f.prefix+"-data",h=a.getAttribute(e),i=b&&b.data||f.datum[h];h&&!i&&f.warn('data "'+h+'" is not defined.'),i=i||{},a.removeAttribute(e),i.$seed instanceof d&&(i=i.$dump());var j,l=this.scope=new g(this,b);for(j in i)l[j]=i[j];var n=a.getAttribute(m);if(n){a.removeAttribute(m);var o=f.controllers[n];o?o(this.scope):f.warn('controller "'+n+'" is not defined.')}this._compileNode(a,!0);for(j in l)"$"===j.charAt(0)||this._bindings[j]||this._createBinding(j);this._computed.length&&k.parse(this._computed),delete this._computed,this._contextBindings.length&&this._bindContexts(this._contextBindings),delete this._contextBindings}function e(a,b){if(a.nesting)for(var c=a.nesting;b.parentSeed&&c--;)b=b.parentSeed;else if(a.root)for(;b.parentSeed;)b=b.parentSeed;return b}var f=b("./config"),g=b("./scope"),h=b("./binding"),i=b("./directive-parser"),j=b("./text-parser"),k=b("./deps-parser"),l=Array.prototype.slice,m=f.prefix+"-controller",n=f.prefix+"-each",o=d.prototype;o._compileNode=function(a,b){var c=this;if(3===a.nodeType)c._compileTextNode(a);else if(1===a.nodeType){var e=a.getAttribute(n),f=a.getAttribute(m);if(e){var g=i.parse(n,e);g&&(g.el=a,c._bind(g))}else f&&!b?new d(a,{child:!0,parentSeed:c}):(a.attributes&&a.attributes.length&&l.call(a.attributes).forEach(function(b){if(b.name!==m){var d=!1;b.value.split(",").forEach(function(e){var f=i.parse(b.name,e);f&&(d=!0,f.el=a,c._bind(f))}),d&&a.removeAttribute(b.name)}}),a.childNodes.length&&l.call(a.childNodes).forEach(c._compileNode,c))}},o._compileTextNode=function(a){var b=j.parse(a);if(b){for(var c,d,e,g=this,h=f.prefix+"-text",k=0,l=b.length;l>k;k++)d=b[k],c=document.createTextNode(),d.key?(e=i.parse(h,d.key),e&&(e.el=c,g._bind(e))):c.nodeValue=d,a.parentNode.insertBefore(c,a);a.parentNode.removeChild(a)}},o._bind=function(a){var b=a.key,c=a.seed=this;this.each&&(0===b.indexOf(this.eachPrefix)?b=a.key=b.replace(this.eachPrefix,""):c=this.parentSeed),c=e(a,c);var d=c._bindings[b]||c._createBinding(b);d.contextDeps&&console.log(1),d.instances.push(a),a.binding=d,a.bind&&a.bind(d.value),a.update(d.value),d.isComputed&&a.refresh()},o._createBinding=function(a){f.log(" created binding: "+a);var b=new h(this,a);return this._bindings[a]=b,b.isComputed&&this._computed.push(b),b},o._bindContexts=function(a){for(var b,c,d,e,f=a.length;f--;)for(c=a[f],b=c.contextDeps.length;b--;)d=c.contextDeps[b],e=this._bindings[d],e.subs.push(c)},o._unbind=function(){var a,b;for(var c in this._bindings)for(b=this._bindings[c].instances,a=b.length;a--;)b[a].unbind&&b[a].unbind()},o._destroy=function(){this._unbind(),this.el.parentNode.removeChild(this.el)},c.exports=d}),b.register("seed/src/scope.js",function(a,b,c){function d(a,b){this.$seed=a,this.$el=a.el,this.$index=b.index,this.$parent=b.parentSeed&&b.parentSeed.scope,this.$watchers={}}var e=b("./utils"),f=d.prototype;f.$watch=function(a,b){var c=this;setTimeout(function(){var d=c.$seed.scope,e=c.$seed._bindings[a],f=c.$watchers[a]={refresh:function(){b(d[a])},deps:e.deps};e.deps.forEach(function(a){a.subs.push(f)})},0)},f.$unwatch=function(a){var b=this;setTimeout(function(){var c=b.$watchers[a];c&&(c.deps.forEach(function(a){a.subs.splice(a.subs.indexOf(c))}),delete b.$watchers[a])},0)},f.$dump=function(a){var b=this.$seed._bindings;return e.dumpValue(a?b[a].value:this)},f.$serialize=function(a){return JSON.stringify(this.$dump(a))},f.$destroy=function(){this.$seed._destroy()},c.exports=d}),b.register("seed/src/binding.js",function(a,b,c){function d(a,b){this.seed=a,this.scope=a.scope,this.key=b;var c=b.split(".");this.inspect(e.getNestedValue(a.scope,c)),this.def(a.scope,c),this.instances=[],this.subs=[],this.deps=[]}var e=b("./utils"),f=b("./deps-parser").observer,g=Object.defineProperty,h=d.prototype;h.inspect=function(a){var b=e.typeOf(a),c=this;"Object"===b?(a.get||a.set)&&(c.isComputed=!0):"Array"===b&&(e.watchArray(a),a.on("mutate",function(){c.pub()})),c.value=a},h.def=function(a,b){var c=this,d=b[0];if(1===b.length)g(a,d,{get:function(){return f.isObserving&&f.emit("get",c),c.isComputed?c.value.get({el:c.seed.el,scope:c.seed.scope}):c.value},set:function(a){c.isComputed?c.value.set&&c.value.set(a):a!==c.value&&c.update(a)}});else{var e=a[d];e||(e={},g(a,d,{get:function(){return e},set:function(a){for(var b in a)e[b]=a[b]}})),this.def(e,b.slice(1))}},h.update=function(a){this.inspect(a);for(var b=this.instances.length;b--;)this.instances[b].update(a);this.pub()},h.refresh=function(){for(var a=this.instances.length;a--;)this.instances[a].refresh()},h.pub=function(){for(var a=this.subs.length;a--;)this.subs[a].refresh()},c.exports=d}),b.register("seed/src/directive-parser.js",function(a,b,c){function d(a,b,c){var d,f=g[a];if("function"==typeof f)this._update=f;else{this._update=f.update;for(d in f)"update"!==d&&(this[d]=f[d])}this.oneway=!!c,this.directiveName=a,this.expression=b.trim(),this.rawKey=b.match(i)[0].trim(),this.parseKey(this.rawKey);var h=b.match(k);this.filters=h?h.map(e):null}function e(a){var b=a.slice(1).match(l).map(function(a){return a.replace(/'/g,"").trim()});return{name:b[0],apply:h[b[0]],args:b.length>1?b.slice(1):null}}var f=b("./config"),g=b("./directives"),h=b("./filters"),i=/^[^\|<]+/,j=/([^:]+):(.+)$/,k=/\|[^\|<]+/g,l=/[^\s']+|'[^']+'/g,m=/^!/,n=/^\^+/,o=/-oneway$/,p=d.prototype;p.update=function(a){a&&a===this.value||(this.value=a,this.apply(a))},p.refresh=function(){var a=this.value.get({el:this.el,scope:this.seed.scope});a!==this.computedValue&&(this.computedValue=a,this.apply(a),this.binding.pub())},p.apply=function(a){this.inverse&&(a=!a),this._update(this.filters?this.applyFilters(a):a)},p.applyFilters=function(a){var b=a;return this.filters.forEach(function(a){if(!a.apply)throw new Error("Unknown filter: "+a.name);b=a.apply(b,a.args)}),b},p.parseKey=function(a){var b=a.match(j),c=b?b[2].trim():a.trim();this.arg=b?b[1].trim():null,this.inverse=m.test(c),this.inverse&&(c=c.slice(1));var d=c.match(n);this.nesting=d?d[0].length:!1,this.root="$"===c.charAt(0),this.nesting?c=c.replace(n,""):this.root&&(c=c.slice(1)),this.key=c},c.exports={parse:function(a,b){var c=f.prefix;if(-1===a.indexOf(c))return null;a=a.slice(c.length+1);var e=o.test(a);e&&(a=a.slice(0,-7));var h=g[a],j=i.test(b);return h||f.warn("unknown directive: "+a),j||f.warn("invalid directive expression: "+b),h&&j?new d(a,b,e):null}}}),b.register("seed/src/text-parser.js",function(a,b,c){function d(a){return a.replace(g,"\\$&")}var e,f=b("./config"),g=/[-.*+?^${}()|[\]\/\\]/g;c.exports={parse:function(a){var b=a.nodeValue;if(!e.test(b))return null;for(var c,d,f=[];;){if(c=b.match(e),!c)break;d=c.index,d>0&&f.push(b.slice(0,d)),f.push({key:c[1]}),b=b.slice(d+c[0].length)}return b.length&&f.push(b),f},buildRegex:function(){var a=d(f.interpolateTags.open),b=d(f.interpolateTags.close);e=new RegExp(a+"(.+?)"+b)}}}),b.register("seed/src/deps-parser.js",function(a,b,c){function d(a){j.on("get",function(b){a.deps.push(b)}),g(a),a.value.get({scope:f(a),el:k}),j.off("get")}function e(a){var b,c=a.deps.length;for(i.log("\n─ "+a.key);c--;)b=a.deps[c],b.deps.length?a.deps.splice(c,1):(i.log(" └─"+b.key),b.subs.push(a))}function f(a){var b={},c=a.contextDeps;if(!c)return b;for(var d,e,f,g,h=a.contextDeps.length;h--;)for(e=b,g=c[h].split("."),d=0;d<g.length;)f=g[d],e[f]||(e[f]=n),e=e[f],d++;return b}function g(a){var b=a.value.get,c=b.toString(),d=c.match(l);if(!d)return null;var e=new RegExp(d[1]+m,"g"),f=c.match(e),g=d[1].length+7;return f?(a.contextDeps=f.map(function(a){return a.slice(g)}),a.seed._contextBindings.push(a),void 0):null}var h=b("emitter"),i=b("./config"),j=new h,k=document.createElement("div"),l=/^function\s*?\((.+)\)/,m="\\.scope\\.[\\.A-Za-z0-9_$]+",n=function(){};c.exports={observer:j,parse:function(a){i.log("\nparsing dependencies..."),j.isObserving=!0,a.forEach(d),a.forEach(e),j.isObserving=!1,i.log("\ndone.")}}}),b.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={trim:function(a){return a?a.toString().trim():""},capitalize:function(a){return a?(a=a.toString(),a.charAt(0).toUpperCase()+a.slice(1)):""},uppercase:function(a){return a?a.toString().toUpperCase():""},lowercase:function(a){return a?a.toString().toLowerCase():""},currency:function(a,b){if(!a)return"";var c=b&&b[0]||"$",d=a%3,e="."+a.toFixed(2).slice(-2),f=Math.floor(a).toString();return c+f.slice(0,d)+f.slice(d).replace(/(\d{3})(?=\d)/g,"$1,")+e},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)}}}}}),b.register("seed/src/directives/index.js",function(a,b,c){function d(a){return"-"===a.charAt(0)&&(a=a.slice(1)),a.replace(e,function(a,b){return b.toUpperCase()})}c.exports={on:b("./on"),each:b("./each"),attr:function(a){this.el.setAttribute(this.arg,a)},text:function(a){this.el.textContent="string"==typeof a||"number"==typeof a?a:""},html:function(a){this.el.innerHTML="string"==typeof a||"number"==typeof a?a:""},show:function(a){this.el.style.display=a?"":"none"},visible:function(a){this.el.style.visibility=a?"":"hidden"},focus:function(a){var b=this.el;setTimeout(function(){b[a?"focus":"blur"]()},0)},"class":function(a){this.arg?this.el.classList[a?"add":"remove"](this.arg):(this.lastVal&&this.el.classList.remove(this.lastVal),this.el.classList.add(a),this.lastVal=a)},value:{bind:function(){if(!this.oneway){var a=this.el,b=this;this.change=function(){b.seed.scope[b.key]=a.value},a.addEventListener("change",this.change)}},update:function(a){this.el.value=a?a:""},unbind:function(){this.oneway||this.el.removeEventListener("change",this.change)}},checked:{bind:function(){if(!this.oneway){var a=this.el,b=this;this.change=function(){b.seed.scope[b.key]=a.checked},a.addEventListener("change",this.change)}},update:function(a){this.el.checked=!!a},unbind:function(){this.oneway||this.el.removeEventListener("change",this.change)}},"if":{bind:function(){this.parent=this.el.parentNode,this.ref=document.createComment("sd-if-"+this.key);var a=this.el.nextSibling;a?this.parent.insertBefore(this.ref,a):this.parent.appendChild(this.ref)},update:function(a){a?this.el.parentNode||this.parent.insertBefore(this.el,this.ref):this.el.parentNode&&this.parent.removeChild(this.el)}},style:{bind:function(){this.arg=d(this.arg)},update:function(a){this.el.style[this.arg]=a}}};var e=/-(.)/g}),b.register("seed/src/directives/each.js",function(a,b,c){var d=b("../config"),e={push:function(a){var b=this;a.args.forEach(function(a,c){b.buildItem(b.ref,a,b.collection.length+c)})},pop:function(a){a.result.$destroy()},unshift:function(a){var b=this;a.args.forEach(function(c,d){var e=b.collection.length>a.args.length?b.collection[a.args.length].$el:b.ref;b.buildItem(e,c,d)}),b.updateIndexes()},shift:function(a){a.result.$destroy();var b=this;b.updateIndexes()},splice:function(a){var b=this,c=a.args[0],d=a.args[1],e=a.args.length-2;a.result.forEach(function(a){a.$destroy()}),e>0&&a.args.slice(2).forEach(function(a,f){var g=c-d+e+1,h=b.collection[g]?b.collection[g].$el:b.ref;b.buildItem(h,c+f)}),d!==e&&b.updateIndexes()},sort:function(){var a=this;a.collection.forEach(function(b,c){b.$index=c,a.container.insertBefore(b.$el,a.ref)})}};e.reverse=e.sort,c.exports={bind:function(){this.el.removeAttribute(d.prefix+"-each");var a=this.container=this.el.parentNode;this.ref=document.createComment("sd-each-"+this.arg),a.insertBefore(this.ref,this.el),a.removeChild(this.el)},update:function(a){if(this.unbind(!0),Array.isArray(a)){this.collection=a,this.container.sd_dHandlers={};var b=this;a.on("mutate",function(a){e[a.method].call(b,a)}),a.forEach(function(a,c){b.buildItem(b.ref,a,c)})}},buildItem:function(a,c,d){var e=this.el.cloneNode(!0);this.container.insertBefore(e,a);var f=b("../seed"),g=new f(e,{each:!0,eachPrefix:this.arg+".",parentSeed:this.seed,index:d,data:c,delegator:this.container});this.collection[d]=g.scope},updateIndexes:function(){this.collection.forEach(function(a,b){a.$index=b})},unbind:function(a){if(this.collection&&this.collection.length){var b=a?"_destroy":"_unbind";this.collection.forEach(function(a){a.$seed[b]()}),this.collection=null}var c=this.container,d=c.sd_dHandlers;for(var e in d)c.removeEventListener(d[e].event,d[e]);delete c.sd_dHandlers}}}),b.register("seed/src/directives/on.js",function(a,b,c){function d(a,b,c){return a[c]?a:a===b?!1:d(a.parentNode,b,c)}c.exports={expectFunction:!0,bind:function(){this.seed.each&&(this.el[this.expression]=!0,this.el.sd_scope=this.seed.scope)},update:function(a){if(this.unbind(),a){var b=this.seed,c=this.arg;if(b.each&&"blur"!==c&&"blur"!==c){var e=b.delegator,f=this.expression,g=e.sd_dHandlers[f];if(g)return;g=e.sd_dHandlers[f]=function(c){var g=d(c.target,e,f);g&&(c.el=g,c.scope=g.sd_scope,a.call(b.scope,c))},g.event=c,e.addEventListener(c,g)}else this.handler=function(c){c.el=c.currentTarget,c.scope=b.scope,a.call(b.scope,c)},this.el.addEventListener(c,this.handler)}},unbind:function(){this.el.removeEventListener(this.arg,this.handler)}}}),b.alias("component-emitter/index.js","seed/deps/emitter/index.js"),b.alias("component-emitter/index.js","emitter/index.js"),b.alias("component-indexof/index.js","component-emitter/deps/indexof/index.js"),b.alias("seed/src/main.js","seed/index.js"),window.Seed=window.Seed||b("seed"),Seed.version="0.1.3"}();