a-template
Advanced tools
Comparing version 0.1.2 to 0.1.3
@@ -8,3 +8,3 @@ /** | ||
* author: steelydylan | ||
* version: 0.1.2 | ||
* version: 0.1.3 | ||
* | ||
@@ -25,2 +25,2 @@ * morphdom: | ||
$.__detect=detect})(Zepto);(function($){var $$=$.zepto.qsa,handlers={},_zid=1,specialEvents={},hover={mouseenter:"mouseover",mouseleave:"mouseout"};specialEvents.click=specialEvents.mousedown=specialEvents.mouseup=specialEvents.mousemove="MouseEvents";function zid(element){return element._zid||(element._zid=_zid++)}function findHandlers(element,event,fn,selector){event=parse(event);if(event.ns)var matcher=matcherFor(event.ns);return(handlers[zid(element)]||[]).filter(function(handler){return handler&&(!event.e||handler.e==event.e)&&(!event.ns||matcher.test(handler.ns))&&(!fn||zid(handler.fn)===zid(fn))&&(!selector||handler.sel==selector)})}function parse(event){var parts=(""+event).split(".");return{e:parts[0],ns:parts.slice(1).sort().join(" ")}}function matcherFor(ns){return new RegExp("(?:^| )"+ns.replace(" "," .* ?")+"(?: |$)")}function eachEvent(events,fn,iterator){if($.type(events)!="string")$.each(events,iterator);else events.split(/\s/).forEach(function(type){iterator(type,fn)})}function eventCapture(handler,captureSetting){return handler.del&&(handler.e=="focus"||handler.e=="blur")||!!captureSetting}function realEvent(type){return hover[type]||type}function add(element,events,fn,selector,getDelegate,capture){var id=zid(element),set=handlers[id]||(handlers[id]=[]);eachEvent(events,fn,function(event,fn){var handler=parse(event);handler.fn=fn;handler.sel=selector;if(handler.e in hover)fn=function(e){var related=e.relatedTarget;if(!related||related!==this&&!$.contains(this,related))return handler.fn.apply(this,arguments)};handler.del=getDelegate&&getDelegate(fn,event);var callback=handler.del||fn;handler.proxy=function(e){var result=callback.apply(element,[e].concat(e.data));if(result===false)e.preventDefault(),e.stopPropagation();return result};handler.i=set.length;set.push(handler);element.addEventListener(realEvent(handler.e),handler.proxy,eventCapture(handler,capture))})}function remove(element,events,fn,selector,capture){var id=zid(element);eachEvent(events||"",fn,function(event,fn){findHandlers(element,event,fn,selector).forEach(function(handler){delete handlers[id][handler.i];element.removeEventListener(realEvent(handler.e),handler.proxy,eventCapture(handler,capture))})})}$.event={add:add,remove:remove};$.proxy=function(fn,context){if($.isFunction(fn)){var proxyFn=function(){return fn.apply(context,arguments)};proxyFn._zid=zid(fn);return proxyFn}else if(typeof context=="string"){return $.proxy(fn[context],fn)}else{throw new TypeError("expected function")}};$.fn.bind=function(event,callback){return this.each(function(){add(this,event,callback)})};$.fn.unbind=function(event,callback){return this.each(function(){remove(this,event,callback)})};$.fn.one=function(event,callback){return this.each(function(i,element){add(this,event,callback,null,function(fn,type){return function(){var result=fn.apply(element,arguments);remove(element,type,fn);return result}})})};var returnTrue=function(){return true},returnFalse=function(){return false},ignoreProperties=/^([A-Z]|layer[XY]$)/,eventMethods={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};function createProxy(event){var key,proxy={originalEvent:event};for(key in event)if(!ignoreProperties.test(key)&&event[key]!==undefined)proxy[key]=event[key];$.each(eventMethods,function(name,predicate){proxy[name]=function(){this[predicate]=returnTrue;return event[name].apply(event,arguments)};proxy[predicate]=returnFalse});return proxy}function fix(event){if(!("defaultPrevented"in event)){event.defaultPrevented=false;var prevent=event.preventDefault;event.preventDefault=function(){this.defaultPrevented=true;prevent.call(this)}}}$.fn.delegate=function(selector,event,callback){return this.each(function(i,element){add(element,event,callback,selector,function(fn){return function(e){var evt,match=$(e.target).closest(selector,element).get(0);if(match){evt=$.extend(createProxy(e),{currentTarget:match,liveFired:element});return fn.apply(match,[evt].concat([].slice.call(arguments,1)))}}})})};$.fn.undelegate=function(selector,event,callback){return this.each(function(){remove(this,event,callback,selector)})};$.fn.live=function(event,callback){$(document.body).delegate(this.selector,event,callback);return this};$.fn.die=function(event,callback){$(document.body).undelegate(this.selector,event,callback);return this};$.fn.on=function(event,selector,callback){return!selector||$.isFunction(selector)?this.bind(event,selector||callback):this.delegate(selector,event,callback)};$.fn.off=function(event,selector,callback){return!selector||$.isFunction(selector)?this.unbind(event,selector||callback):this.undelegate(selector,event,callback)};$.fn.trigger=function(event,data){if(typeof event=="string"||$.isPlainObject(event))event=$.Event(event);fix(event);event.data=data;return this.each(function(){if("dispatchEvent"in this)this.dispatchEvent(event)})};$.fn.triggerHandler=function(event,data){var e,result;this.each(function(i,element){e=createProxy(typeof event=="string"?$.Event(event):event);e.data=data;e.target=element;$.each(findHandlers(element,event.type||event),function(i,handler){result=handler.proxy(e);if(e.isImmediatePropagationStopped())return false})});return result};("focusin focusout load resize scroll unload click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select keydown keypress keyup error").split(" ").forEach(function(event){$.fn[event]=function(callback){return callback?this.bind(event,callback):this.trigger(event)}});["focus","blur"].forEach(function(name){$.fn[name]=function(callback){if(callback)this.bind(name,callback);else this.each(function(){try{this[name]()}catch(e){}});return this}});$.Event=function(type,props){if(typeof type!="string")props=type,type=props.type;var event=document.createEvent(specialEvents[type]||"Events"),bubbles=true;if(props)for(var name in props)name=="bubbles"?bubbles=!!props[name]:event[name]=props[name];event.initEvent(type,bubbles,true,null,null,null,null,null,null,null,null,null,null,null,null);event.isDefaultPrevented=function(){return this.defaultPrevented};return event}})(Zepto);(function($){var jsonpID=0,document=window.document,key,name,rscript=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,scriptTypeRE=/^(?:text|application)\/javascript/i,xmlTypeRE=/^(?:text|application)\/xml/i,jsonType="application/json",htmlType="text/html",blankRE=/^\s*$/;function triggerAndReturn(context,eventName,data){var event=$.Event(eventName);$(context).trigger(event,data);return!event.defaultPrevented}function triggerGlobal(settings,context,eventName,data){if(settings.global)return triggerAndReturn(context||document,eventName,data)}$.active=0;function ajaxStart(settings){if(settings.global&&$.active++===0)triggerGlobal(settings,null,"ajaxStart")}function ajaxStop(settings){if(settings.global&&!--$.active)triggerGlobal(settings,null,"ajaxStop")}function ajaxBeforeSend(xhr,settings){var context=settings.context;if(settings.beforeSend.call(context,xhr,settings)===false||triggerGlobal(settings,context,"ajaxBeforeSend",[xhr,settings])===false)return false;triggerGlobal(settings,context,"ajaxSend",[xhr,settings])}function ajaxSuccess(data,xhr,settings){var context=settings.context,status="success";settings.success.call(context,data,status,xhr);triggerGlobal(settings,context,"ajaxSuccess",[xhr,settings,data]);ajaxComplete(status,xhr,settings)}function ajaxError(error,type,xhr,settings){var context=settings.context;settings.error.call(context,xhr,type,error);triggerGlobal(settings,context,"ajaxError",[xhr,settings,error]);ajaxComplete(type,xhr,settings)}function ajaxComplete(status,xhr,settings){var context=settings.context;settings.complete.call(context,xhr,status);triggerGlobal(settings,context,"ajaxComplete",[xhr,settings]);ajaxStop(settings)}function empty(){}$.ajaxJSONP=function(options){if(!("type"in options))return $.ajax(options);var callbackName="jsonp"+ ++jsonpID,script=document.createElement("script"),cleanup=function(){clearTimeout(abortTimeout);$(script).remove();delete window[callbackName]},abort=function(type){cleanup();if(!type||type=="timeout")window[callbackName]=empty;ajaxError(null,type||"abort",xhr,options)},xhr={abort:abort},abortTimeout;if(ajaxBeforeSend(xhr,options)===false){abort("abort");return false}window[callbackName]=function(data){cleanup();ajaxSuccess(data,xhr,options)};script.onerror=function(){abort("error")};script.src=options.url.replace(/=\?/,"="+callbackName);$("head").append(script);if(options.timeout>0)abortTimeout=setTimeout(function(){abort("timeout")},options.timeout);return xhr};$.ajaxSettings={type:"GET",beforeSend:empty,success:empty,error:empty,complete:empty,context:null,global:true,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript",json:jsonType,xml:"application/xml, text/xml",html:htmlType,text:"text/plain"},crossDomain:false,timeout:0,processData:true,cache:true};function mimeToDataType(mime){if(mime)mime=mime.split(";",2)[0];return mime&&(mime==htmlType?"html":mime==jsonType?"json":scriptTypeRE.test(mime)?"script":xmlTypeRE.test(mime)&&"xml")||"text"}function appendQuery(url,query){return(url+"&"+query).replace(/[&?]{1,2}/,"?")}function serializeData(options){if(options.processData&&options.data&&$.type(options.data)!="string")options.data=$.param(options.data,options.traditional);if(options.data&&(!options.type||options.type.toUpperCase()=="GET"))options.url=appendQuery(options.url,options.data)}$.ajax=function(options){var settings=$.extend({},options||{});for(key in $.ajaxSettings)if(settings[key]===undefined)settings[key]=$.ajaxSettings[key];ajaxStart(settings);if(!settings.crossDomain)settings.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(settings.url)&&RegExp.$2!=window.location.host;if(!settings.url)settings.url=window.location.toString();serializeData(settings);if(settings.cache===false)settings.url=appendQuery(settings.url,"_="+Date.now());var dataType=settings.dataType,hasPlaceholder=/=\?/.test(settings.url);if(dataType=="jsonp"||hasPlaceholder){if(!hasPlaceholder)settings.url=appendQuery(settings.url,"callback=?");return $.ajaxJSONP(settings)}var mime=settings.accepts[dataType],baseHeaders={},protocol=/^([\w-]+:)\/\//.test(settings.url)?RegExp.$1:window.location.protocol,xhr=settings.xhr(),abortTimeout;if(!settings.crossDomain)baseHeaders["X-Requested-With"]="XMLHttpRequest";if(mime){baseHeaders["Accept"]=mime;if(mime.indexOf(",")>-1)mime=mime.split(",",2)[0];xhr.overrideMimeType&&xhr.overrideMimeType(mime)}if(settings.contentType||settings.contentType!==false&&settings.data&&settings.type.toUpperCase()!="GET")baseHeaders["Content-Type"]=settings.contentType||"application/x-www-form-urlencoded";settings.headers=$.extend(baseHeaders,settings.headers||{});xhr.onreadystatechange=function(){if(xhr.readyState==4){xhr.onreadystatechange=empty;clearTimeout(abortTimeout);var result,error=false;if(xhr.status>=200&&xhr.status<300||xhr.status==304||xhr.status==0&&protocol=="file:"){dataType=dataType||mimeToDataType(xhr.getResponseHeader("content-type"));result=xhr.responseText;try{if(dataType=="script")(1,eval)(result);else if(dataType=="xml")result=xhr.responseXML;else if(dataType=="json")result=blankRE.test(result)?null:$.parseJSON(result)}catch(e){error=e}if(error)ajaxError(error,"parsererror",xhr,settings);else ajaxSuccess(result,xhr,settings)}else{ajaxError(null,xhr.status?"error":"abort",xhr,settings)}}};var async="async"in settings?settings.async:true;xhr.open(settings.type,settings.url,async);for(name in settings.headers)xhr.setRequestHeader(name,settings.headers[name]);if(ajaxBeforeSend(xhr,settings)===false){xhr.abort();return false}if(settings.timeout>0)abortTimeout=setTimeout(function(){xhr.onreadystatechange=empty;xhr.abort();ajaxError(null,"timeout",xhr,settings)},settings.timeout);xhr.send(settings.data?settings.data:null);return xhr};function parseArguments(url,data,success,dataType){var hasData=!$.isFunction(data);return{url:url,data:hasData?data:undefined,success:!hasData?data:$.isFunction(success)?success:undefined,dataType:hasData?dataType||success:success}}$.get=function(url,data,success,dataType){return $.ajax(parseArguments.apply(null,arguments))};$.post=function(url,data,success,dataType){var options=parseArguments.apply(null,arguments);options.type="POST";return $.ajax(options)};$.getJSON=function(url,data,success){var options=parseArguments.apply(null,arguments);options.dataType="json";return $.ajax(options)};$.fn.load=function(url,data,success){if(!this.length)return this;var self=this,parts=url.split(/\s/),selector,options=parseArguments(url,data,success),callback=options.success;if(parts.length>1)options.url=parts[0],selector=parts[1];options.success=function(response){self.html(selector?$("<div>").html(response.replace(rscript,"")).find(selector):response);callback&&callback.apply(self,arguments)};$.ajax(options);return this};var escape=encodeURIComponent;function serialize(params,obj,traditional,scope){var type,array=$.isArray(obj);$.each(obj,function(key,value){type=$.type(value);if(scope)key=traditional?scope:scope+"["+(array?"":key)+"]";if(!scope&&array)params.add(value.name,value.value);else if(type=="array"||!traditional&&type=="object")serialize(params,value,traditional,key);else params.add(key,value)})}$.param=function(obj,traditional){var params=[];params.add=function(k,v){this.push(escape(k)+"="+escape(v))};serialize(params,obj,traditional);return params.join("&").replace(/%20/g,"+")}})(Zepto);(function($){$.fn.serializeArray=function(){var result=[],el;$(Array.prototype.slice.call(this.get(0).elements)).each(function(){el=$(this);var type=el.attr("type");if(this.nodeName.toLowerCase()!="fieldset"&&!this.disabled&&type!="submit"&&type!="reset"&&type!="button"&&(type!="radio"&&type!="checkbox"||this.checked))result.push({name:el.attr("name"),value:el.val()})});return result};$.fn.serialize=function(){var result=[];this.serializeArray().forEach(function(elm){result.push(encodeURIComponent(elm.name)+"="+encodeURIComponent(elm.value))});return result.join("&")};$.fn.submit=function(callback){if(callback)this.bind("submit",callback);else if(this.length){var event=$.Event("submit");this.eq(0).trigger(event);if(!event.defaultPrevented)this.get(0).submit()}return this}})(Zepto);(function($,undefined){var prefix="",eventPrefix,endEventName,endAnimationName,vendors={Webkit:"webkit",Moz:"",O:"o",ms:"MS"},document=window.document,testEl=document.createElement("div"),supportedTransforms=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,transform,transitionProperty,transitionDuration,transitionTiming,animationName,animationDuration,animationTiming,cssReset={};function dasherize(str){return downcase(str.replace(/([a-z])([A-Z])/,"$1-$2"))}function downcase(str){return str.toLowerCase()}function normalizeEvent(name){return eventPrefix?eventPrefix+name:downcase(name)}$.each(vendors,function(vendor,event){if(testEl.style[vendor+"TransitionProperty"]!==undefined){prefix="-"+downcase(vendor)+"-";eventPrefix=event;return false}});transform=prefix+"transform";cssReset[transitionProperty=prefix+"transition-property"]=cssReset[transitionDuration=prefix+"transition-duration"]=cssReset[transitionTiming=prefix+"transition-timing-function"]=cssReset[animationName=prefix+"animation-name"]=cssReset[animationDuration=prefix+"animation-duration"]=cssReset[animationTiming=prefix+"animation-timing-function"]="";$.fx={off:eventPrefix===undefined&&testEl.style.transitionProperty===undefined,speeds:{_default:400,fast:200,slow:600},cssPrefix:prefix,transitionEnd:normalizeEvent("TransitionEnd"),animationEnd:normalizeEvent("AnimationEnd")};$.fn.animate=function(properties,duration,ease,callback){if($.isPlainObject(duration))ease=duration.easing,callback=duration.complete,duration=duration.duration;if(duration)duration=(typeof duration=="number"?duration:$.fx.speeds[duration]||$.fx.speeds._default)/1e3;return this.anim(properties,duration,ease,callback)};$.fn.anim=function(properties,duration,ease,callback){var key,cssValues={},cssProperties,transforms="",that=this,wrappedCallback,endEvent=$.fx.transitionEnd;if(duration===undefined)duration=.4;if($.fx.off)duration=0;if(typeof properties=="string"){cssValues[animationName]=properties;cssValues[animationDuration]=duration+"s";cssValues[animationTiming]=ease||"linear";endEvent=$.fx.animationEnd}else{cssProperties=[];for(key in properties)if(supportedTransforms.test(key))transforms+=key+"("+properties[key]+") ";else cssValues[key]=properties[key],cssProperties.push(dasherize(key));if(transforms)cssValues[transform]=transforms,cssProperties.push(transform);if(duration>0&&typeof properties==="object"){cssValues[transitionProperty]=cssProperties.join(", ");cssValues[transitionDuration]=duration+"s";cssValues[transitionTiming]=ease||"linear"}}wrappedCallback=function(event){if(typeof event!=="undefined"){if(event.target!==event.currentTarget)return;$(event.target).unbind(endEvent,wrappedCallback)}$(this).css(cssReset);callback&&callback.call(this)};if(duration>0)this.bind(endEvent,wrappedCallback);this.size()&&this.get(0).clientLeft;this.css(cssValues);if(duration<=0)setTimeout(function(){that.each(function(){wrappedCallback.call(this)})},0);return this};testEl=null})(Zepto)},{}],3:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var $=require("zepto-browserify").$;var morphdom=require("morphdom");var objs=[];var eventType="input paste copy click change keydown keyup contextmenu mouseup mousedown mousemove touchstart touchend touchmove compositionstart compositionend";var dataAction=eventType.replace(/([a-z]+)/g,"[data-action-$1],")+"[data-action]";var getObjectById=function getObjectById(id){for(var i=0,n=objs.length;i<n;i++){var obj=objs[i];var templates=obj.templates;for(var t=0,m=templates.length;t<m;t++){if(templates[t]==id){return obj}}}return null};if(typeof jQuery!=="undefined"){$=jQuery}if(!Array.prototype.find){Array.prototype.find=function(predicate){if(this===null){throw new TypeError("Array.prototype.find called on null or undefined")}if(typeof predicate!=="function"){throw new TypeError("predicate must be a function")}var list=Object(this);var length=list.length>>>0;var thisArg=arguments[1];var value=void 0;for(var i=0;i<length;i++){value=list[i];if(predicate.call(thisArg,value,i,list)){return value}}return undefined}}if(typeof document!=="undefined"){$(document).on("input change click","[data-bind]",function(e){var data=$(this).attr("data-bind");var val=$(this).val();var attr=$(this).attr("href");if(attr){val=attr.replace("#","")}var id=$(this).parents("[data-id]").attr("data-id");if(id){var obj=getObjectById(id);if($(e.target).attr("type")=="radio"){if($(this).is(":checked")){obj.updateDataByString(data,val)}else{obj.updateDataByString(data,"")}}else if($(e.target).attr("type")=="checkbox"){(function(){var arr=[];$('[data-bind="'+data+'"]').each(function(){if($(this).is(":checked")){arr.push($(this).val())}});obj.updateDataByString(data,arr)})()}else{obj.updateDataByString(data,val)}}});$(document).on(eventType,dataAction,function(e){if(e.type=="click"&&$(e.target).is("select")){return}if(e.type=="input"&&$(e.target).attr("type")=="button"){return}var events=eventType.split(" ");var $self=$(this);var action="action";events.forEach(function(event){if($self.attr("data-action-"+event)){if(e.type===event){action+="-"+event}}});var string=$self.attr("data-"+action);if(!string){return}var method=string.replace(/\(.*?\);?/,"");var parameter=string.replace(/(.*?)\((.*?)\);?/,"$2");var pts=parameter.split(",");var id=$self.parents("[data-id]").attr("data-id");if(id){var obj=getObjectById(id);obj.e=e;if(obj.method&&obj.method[method]){obj.method[method].apply(obj,pts)}else if(obj[method]){obj[method].apply(obj,pts)}}})}var aTemplate=function(){function aTemplate(opt){_classCallCheck(this,aTemplate);this.atemplate=[];objs.push(this);for(var i in opt){this[i]=opt[i]}if(!this.data){this.data={}}if(!this.templates){this.templates=[]}var templates=this.templates;for(var _i=0,n=this.templates.length;_i<n;_i++){var template=this.templates[_i];this.atemplate.push({id:template,html:$("#"+template).html()})}this.setId()}_createClass(aTemplate,[{key:"addTemplate",value:function addTemplate(id,html){this.atemplate.push({id:id,html:html});this.templates.push(id)}},{key:"loadHtml",value:function loadHtml(){var templates=this.templates;var promises=[];templates.forEach(function(template){var d=new $.Deferred;promises.push(d);var src=$("#"+template).attr("src");$.ajax({url:src,type:"GET",dataType:"text"}).success(function(data){$("#"+template).html(data);d.resolve()})});return $.when.apply($,promises)}},{key:"getData",value:function getData(){return JSON.parse(JSON.stringify(this.data))}},{key:"saveData",value:function saveData(key){var data=JSON.stringify(this.data);localStorage.setItem(key,data)}},{key:"setData",value:function setData(val){for(var i in val){if(typeof val[i]!=="function"){this.data[i]=val[i]}}}},{key:"loadData",value:function loadData(key){var data=JSON.parse(localStorage.getItem(key));if(data){for(var i in data){if(typeof data[i]!=="function"){this.data[i]=data[i]}}}}},{key:"getRand",value:function getRand(a,b){return~~(Math.random()*(b-a+1))+a}},{key:"getRandText",value:function getRandText(limit){var ret="";var strings="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";var length=strings.length;for(var i=0;i<limit;i++){ret+=strings.charAt(Math.floor(this.getRand(0,length)))}return ret}},{key:"setId",value:function setId(){var text=void 0;var ids=aTemplate.ids;var flag=false;while(1){text=this.getRandText(10);for(var i=0,n=aTemplate.ids;i<n;i++){if(aTemplate.ids[i]===text){flag=true}}if(flag===false){break}}this.data.aTemplate_id=text}},{key:"getDataFromObj",value:function getDataFromObj(s,o){s=s.replace(/\[([a-zA-Z0-9._-]+)\]/g,".$1");s=s.replace(/^\./,"");var a=s.split(".");while(a.length){var n=a.shift();if(n in o){o=o[n]}else{return}}return o}},{key:"getDataByString",value:function getDataByString(s){var o=this.data;return this.getDataFromObj(s,o)}},{key:"updateDataByString",value:function updateDataByString(path,newValue){var object=this.data;var stack=path.split(".");while(stack.length>1){object=object[stack.shift()]}object[stack.shift()]=newValue}},{key:"removeDataByString",value:function removeDataByString(path){var object=this.data;var stack=path.split(".");while(stack.length>1){object=object[stack.shift()]}var shift=stack.shift();if(shift.match(/^\d+$/)){object.splice(Number(shift),1)}else{delete object[shift]}}},{key:"resolveBlock",value:function resolveBlock(html,item,i){var that=this;var touchs=html.match(/<!-- BEGIN ([a-zA-Z0-9._-]+):touch#([a-zA-Z0-9._-]+) -->/g);var touchnots=html.match(/<!-- BEGIN ([a-zA-Z0-9._-]+):touchnot#([a-zA-Z0-9._-]+) -->/g);var exists=html.match(/<!-- BEGIN ([a-zA-Z0-9._-]+):exist -->/g);var empties=html.match(/<!-- BEGIN ([a-zA-Z0-9._-]+):empty -->/g);if(touchs){for(var k=0,n=touchs.length;k<n;k++){var start=touchs[k];start=start.replace(/([a-zA-Z0-9._-]+):touch#([a-zA-Z0-9._-]+)/,"($1):touch#($2)");var end=start.replace(/BEGIN/,"END");var reg=new RegExp(start+"(([\\n\\r\\t]|.)*?)"+end,"g");html=html.replace(reg,function(m,key2,val,next){var itemkey=typeof item[key2]==="function"?item[key2].apply(that):that.getDataFromObj(key2,item);if(itemkey==val){return next}else{return""}})}}if(touchnots){for(var _k=0,_n=touchnots.length;_k<_n;_k++){var _start=touchnots[_k];_start=_start.replace(/([a-zA-Z0-9._-]+):touchnot#([a-zA-Z0-9._-]+)/,"($1):touchnot#($2)");var _end=_start.replace(/BEGIN/,"END");var _reg=new RegExp(_start+"(([\\n\\r\\t]|.)*?)"+_end,"g");html=html.replace(_reg,function(m,key2,val,next){var itemkey=typeof item[key2]==="function"?item[key2].apply(that):that.getDataFromObj(key2,item);if(itemkey!=val){return next}else{return""}})}}if(exists){for(var _k2=0,_n2=exists.length;_k2<_n2;_k2++){var _start2=exists[_k2];_start2=_start2.replace(/([a-zA-Z0-9._-]+):exist/,"($1):exist");var _end2=_start2.replace(/BEGIN/,"END");var _reg2=new RegExp(_start2+"(([\\n\\r\\t]|.)*?)"+_end2,"g");html=html.replace(_reg2,function(m,key2,next){var itemkey=typeof item[key2]==="function"?item[key2].apply(that):that.getDataFromObj(key2,item);if(itemkey){return next}else{return""}})}}if(empties){for(var _k3=0,_n3=empties.length;_k3<_n3;_k3++){var _start3=empties[_k3];_start3=_start3.replace(/([a-zA-Z0-9._-]+):empty/,"($1):empty");var _end3=_start3.replace(/BEGIN/,"END");var empty=new RegExp(_start3+"(([\\n\\r\\t]|.)*?)"+_end3,"g");html=html.replace(empty,function(m,key2,next){var itemkey=typeof item[key2]==="function"?item[key2].apply(that):that.getDataFromObj(key2,item);if(!itemkey){return next}else{return""}})}}html=html.replace(/{([a-zA-Z0-9._-]+)}(\[([a-zA-Z0-9._-]+)\])*/g,function(n,key3,key4,converter){var data=void 0;if(key3=="i"){data=i}else{if(item[key3]){if(typeof item[key3]==="function"){data=item[key3].apply(that)}else{data=item[key3]}}else{if(converter&&that.convert&&that.convert[converter]){return that.convert[converter].call(that,"")}else{return""}}}if(converter&&that.convert&&that.convert[converter]){return that.convert[converter].call(that,data)}else{return data}});return html}},{key:"resolveAbsBlock",value:function resolveAbsBlock(html){var that=this;html=html.replace(/{(.*?)}/g,function(n,key3){var data=that.getDataByString(key3);if(typeof data!=="undefined"){if(typeof data==="function"){return data.apply(that)}else{return data}}else{return n}});return html}},{key:"resolveInclude",value:function resolveInclude(html){var include=/<!-- #include id="(.*?)" -->/g;html=html.replace(include,function(m,key){return $("#"+key).html()});return html}},{key:"resolveWith",value:function resolveWith(html){var width=/<!-- BEGIN ([a-zA-Z0-9._-]+):with -->(([\n\r\t]|.)*?)<!-- END ([a-zA-Z0-9._-]+):with -->/g;html=html.replace(width,function(m,key,val){m=m.replace(/data\-bind=['"](.*?)['"]/g,"data-bind='"+key+".$1'");return m});return html}},{key:"resolveLoop",value:function resolveLoop(html){var loop=/<!-- BEGIN (.+?):loop -->(([\n\r\t]|.)*?)<!-- END (.+?):loop -->/g;var that=this;html=html.replace(loop,function(m,key,val){var keyItem=that.getDataByString(key);var keys=[];if(typeof keyItem==="function"){keys=keyItem.apply(that)}else{keys=keyItem}var ret="";if(keys instanceof Array){for(var i=0,n=keys.length;i<n;i++){ret+=that.resolveBlock(val,keys[i],i)}}ret=ret.replace(/\\([^\\])/g,"$1");return ret});return html}},{key:"removeData",value:function removeData(arr){var data=this.data;for(var i in data){for(var t=0,n=arr.length;t<n;t++){if(i===arr[t]){delete data[i]}}}return this}},{key:"hasLoop",value:function hasLoop(txt){var loop=/<!-- BEGIN (.+?):loop -->(([\n\r\t]|.)*?)<!-- END (.+?):loop -->/g;if(txt.match(loop)){return true}else{return false}}},{key:"getHtml",value:function getHtml(selector,row){var template=this.atemplate.find(function(item){return item.id===selector});var html="";if(template&&template.html){html=template.html}if(row){html=selector}if(!html){return""}var data=this.data;html=this.resolveInclude(html);html=this.resolveWith(html);while(this.hasLoop(html)){html=this.resolveLoop(html)}html=this.resolveBlock(html,data);html=html.replace(/\\([^\\])/g,"$1");html=this.resolveAbsBlock(html);return html.replace(/^([\t ])*\n/gm,"")}},{key:"update",value:function update(txt,part){var html=this.getHtml();var templates=this.templates;var renderWay=txt||"html";if(this.beforeUpdated){this.beforeUpdated()}for(var i=0,n=templates.length;i<n;i++){var tem=templates[i];var selector="#"+tem;var _html=this.getHtml(tem);var $target=$("[data-id='"+tem+"']");if(!part||part==tem){if($target.length==0){var $newitem=$("<div data-id='"+tem+"'></div>");$newitem[renderWay](_html);$(selector).after($newitem)}else{if(renderWay==="text"){$target.text(_html)}else{morphdom($target.get(0),"<div data-id='"+tem+"'>"+_html+"</div>")}}if(part){break}}}this.updateBindingData(part);if(this.onUpdated){this.onUpdated(part)}return this}},{key:"updateBindingData",value:function updateBindingData(part){var that=this;var templates=that.templates;for(var i=0,n=templates.length;i<n;i++){var temp=templates[i];if(!part||part==temp){var $template=$("[data-id='"+temp+"']");$template.find("[data-bind]").each(function(){var data=that.getDataByString($(this).attr("data-bind"));if($(this).attr("type")=="checkbox"||$(this).attr("type")=="radio"){if(data==$(this).val()){$(this).prop("checked",true)}}else{$(this).val(data)}});if(part){break}}}return this}},{key:"copyToClipBoard",value:function copyToClipBoard(){var copyArea=$("<textarea/>");$("body").append(copyArea);copyArea.text(this.getHtml());copyArea.select();document.execCommand("copy");copyArea.remove();return this}},{key:"applyMethod",value:function applyMethod(method){var args=[].splice.call(arguments,0);args.shift();return this.method[method].apply(this,args)}},{key:"getComputedProp",value:function getComputedProp(prop){return this.data[prop].apply(this)}},{key:"remove",value:function remove(path){var object=this.data;var stack=path.split(".");while(stack.length>1){object=object[stack.shift()]}var shift=stack.shift();if(shift.match(/^\d+$/)){object.splice(Number(shift),1)}else{delete object[shift]}return this}}]);return aTemplate}();module.exports=aTemplate},{morphdom:1,"zepto-browserify":2}]},{},[3])(3)}); | ||
$.__detect=detect})(Zepto);(function($){var $$=$.zepto.qsa,handlers={},_zid=1,specialEvents={},hover={mouseenter:"mouseover",mouseleave:"mouseout"};specialEvents.click=specialEvents.mousedown=specialEvents.mouseup=specialEvents.mousemove="MouseEvents";function zid(element){return element._zid||(element._zid=_zid++)}function findHandlers(element,event,fn,selector){event=parse(event);if(event.ns)var matcher=matcherFor(event.ns);return(handlers[zid(element)]||[]).filter(function(handler){return handler&&(!event.e||handler.e==event.e)&&(!event.ns||matcher.test(handler.ns))&&(!fn||zid(handler.fn)===zid(fn))&&(!selector||handler.sel==selector)})}function parse(event){var parts=(""+event).split(".");return{e:parts[0],ns:parts.slice(1).sort().join(" ")}}function matcherFor(ns){return new RegExp("(?:^| )"+ns.replace(" "," .* ?")+"(?: |$)")}function eachEvent(events,fn,iterator){if($.type(events)!="string")$.each(events,iterator);else events.split(/\s/).forEach(function(type){iterator(type,fn)})}function eventCapture(handler,captureSetting){return handler.del&&(handler.e=="focus"||handler.e=="blur")||!!captureSetting}function realEvent(type){return hover[type]||type}function add(element,events,fn,selector,getDelegate,capture){var id=zid(element),set=handlers[id]||(handlers[id]=[]);eachEvent(events,fn,function(event,fn){var handler=parse(event);handler.fn=fn;handler.sel=selector;if(handler.e in hover)fn=function(e){var related=e.relatedTarget;if(!related||related!==this&&!$.contains(this,related))return handler.fn.apply(this,arguments)};handler.del=getDelegate&&getDelegate(fn,event);var callback=handler.del||fn;handler.proxy=function(e){var result=callback.apply(element,[e].concat(e.data));if(result===false)e.preventDefault(),e.stopPropagation();return result};handler.i=set.length;set.push(handler);element.addEventListener(realEvent(handler.e),handler.proxy,eventCapture(handler,capture))})}function remove(element,events,fn,selector,capture){var id=zid(element);eachEvent(events||"",fn,function(event,fn){findHandlers(element,event,fn,selector).forEach(function(handler){delete handlers[id][handler.i];element.removeEventListener(realEvent(handler.e),handler.proxy,eventCapture(handler,capture))})})}$.event={add:add,remove:remove};$.proxy=function(fn,context){if($.isFunction(fn)){var proxyFn=function(){return fn.apply(context,arguments)};proxyFn._zid=zid(fn);return proxyFn}else if(typeof context=="string"){return $.proxy(fn[context],fn)}else{throw new TypeError("expected function")}};$.fn.bind=function(event,callback){return this.each(function(){add(this,event,callback)})};$.fn.unbind=function(event,callback){return this.each(function(){remove(this,event,callback)})};$.fn.one=function(event,callback){return this.each(function(i,element){add(this,event,callback,null,function(fn,type){return function(){var result=fn.apply(element,arguments);remove(element,type,fn);return result}})})};var returnTrue=function(){return true},returnFalse=function(){return false},ignoreProperties=/^([A-Z]|layer[XY]$)/,eventMethods={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};function createProxy(event){var key,proxy={originalEvent:event};for(key in event)if(!ignoreProperties.test(key)&&event[key]!==undefined)proxy[key]=event[key];$.each(eventMethods,function(name,predicate){proxy[name]=function(){this[predicate]=returnTrue;return event[name].apply(event,arguments)};proxy[predicate]=returnFalse});return proxy}function fix(event){if(!("defaultPrevented"in event)){event.defaultPrevented=false;var prevent=event.preventDefault;event.preventDefault=function(){this.defaultPrevented=true;prevent.call(this)}}}$.fn.delegate=function(selector,event,callback){return this.each(function(i,element){add(element,event,callback,selector,function(fn){return function(e){var evt,match=$(e.target).closest(selector,element).get(0);if(match){evt=$.extend(createProxy(e),{currentTarget:match,liveFired:element});return fn.apply(match,[evt].concat([].slice.call(arguments,1)))}}})})};$.fn.undelegate=function(selector,event,callback){return this.each(function(){remove(this,event,callback,selector)})};$.fn.live=function(event,callback){$(document.body).delegate(this.selector,event,callback);return this};$.fn.die=function(event,callback){$(document.body).undelegate(this.selector,event,callback);return this};$.fn.on=function(event,selector,callback){return!selector||$.isFunction(selector)?this.bind(event,selector||callback):this.delegate(selector,event,callback)};$.fn.off=function(event,selector,callback){return!selector||$.isFunction(selector)?this.unbind(event,selector||callback):this.undelegate(selector,event,callback)};$.fn.trigger=function(event,data){if(typeof event=="string"||$.isPlainObject(event))event=$.Event(event);fix(event);event.data=data;return this.each(function(){if("dispatchEvent"in this)this.dispatchEvent(event)})};$.fn.triggerHandler=function(event,data){var e,result;this.each(function(i,element){e=createProxy(typeof event=="string"?$.Event(event):event);e.data=data;e.target=element;$.each(findHandlers(element,event.type||event),function(i,handler){result=handler.proxy(e);if(e.isImmediatePropagationStopped())return false})});return result};("focusin focusout load resize scroll unload click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select keydown keypress keyup error").split(" ").forEach(function(event){$.fn[event]=function(callback){return callback?this.bind(event,callback):this.trigger(event)}});["focus","blur"].forEach(function(name){$.fn[name]=function(callback){if(callback)this.bind(name,callback);else this.each(function(){try{this[name]()}catch(e){}});return this}});$.Event=function(type,props){if(typeof type!="string")props=type,type=props.type;var event=document.createEvent(specialEvents[type]||"Events"),bubbles=true;if(props)for(var name in props)name=="bubbles"?bubbles=!!props[name]:event[name]=props[name];event.initEvent(type,bubbles,true,null,null,null,null,null,null,null,null,null,null,null,null);event.isDefaultPrevented=function(){return this.defaultPrevented};return event}})(Zepto);(function($){var jsonpID=0,document=window.document,key,name,rscript=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,scriptTypeRE=/^(?:text|application)\/javascript/i,xmlTypeRE=/^(?:text|application)\/xml/i,jsonType="application/json",htmlType="text/html",blankRE=/^\s*$/;function triggerAndReturn(context,eventName,data){var event=$.Event(eventName);$(context).trigger(event,data);return!event.defaultPrevented}function triggerGlobal(settings,context,eventName,data){if(settings.global)return triggerAndReturn(context||document,eventName,data)}$.active=0;function ajaxStart(settings){if(settings.global&&$.active++===0)triggerGlobal(settings,null,"ajaxStart")}function ajaxStop(settings){if(settings.global&&!--$.active)triggerGlobal(settings,null,"ajaxStop")}function ajaxBeforeSend(xhr,settings){var context=settings.context;if(settings.beforeSend.call(context,xhr,settings)===false||triggerGlobal(settings,context,"ajaxBeforeSend",[xhr,settings])===false)return false;triggerGlobal(settings,context,"ajaxSend",[xhr,settings])}function ajaxSuccess(data,xhr,settings){var context=settings.context,status="success";settings.success.call(context,data,status,xhr);triggerGlobal(settings,context,"ajaxSuccess",[xhr,settings,data]);ajaxComplete(status,xhr,settings)}function ajaxError(error,type,xhr,settings){var context=settings.context;settings.error.call(context,xhr,type,error);triggerGlobal(settings,context,"ajaxError",[xhr,settings,error]);ajaxComplete(type,xhr,settings)}function ajaxComplete(status,xhr,settings){var context=settings.context;settings.complete.call(context,xhr,status);triggerGlobal(settings,context,"ajaxComplete",[xhr,settings]);ajaxStop(settings)}function empty(){}$.ajaxJSONP=function(options){if(!("type"in options))return $.ajax(options);var callbackName="jsonp"+ ++jsonpID,script=document.createElement("script"),cleanup=function(){clearTimeout(abortTimeout);$(script).remove();delete window[callbackName]},abort=function(type){cleanup();if(!type||type=="timeout")window[callbackName]=empty;ajaxError(null,type||"abort",xhr,options)},xhr={abort:abort},abortTimeout;if(ajaxBeforeSend(xhr,options)===false){abort("abort");return false}window[callbackName]=function(data){cleanup();ajaxSuccess(data,xhr,options)};script.onerror=function(){abort("error")};script.src=options.url.replace(/=\?/,"="+callbackName);$("head").append(script);if(options.timeout>0)abortTimeout=setTimeout(function(){abort("timeout")},options.timeout);return xhr};$.ajaxSettings={type:"GET",beforeSend:empty,success:empty,error:empty,complete:empty,context:null,global:true,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript",json:jsonType,xml:"application/xml, text/xml",html:htmlType,text:"text/plain"},crossDomain:false,timeout:0,processData:true,cache:true};function mimeToDataType(mime){if(mime)mime=mime.split(";",2)[0];return mime&&(mime==htmlType?"html":mime==jsonType?"json":scriptTypeRE.test(mime)?"script":xmlTypeRE.test(mime)&&"xml")||"text"}function appendQuery(url,query){return(url+"&"+query).replace(/[&?]{1,2}/,"?")}function serializeData(options){if(options.processData&&options.data&&$.type(options.data)!="string")options.data=$.param(options.data,options.traditional);if(options.data&&(!options.type||options.type.toUpperCase()=="GET"))options.url=appendQuery(options.url,options.data)}$.ajax=function(options){var settings=$.extend({},options||{});for(key in $.ajaxSettings)if(settings[key]===undefined)settings[key]=$.ajaxSettings[key];ajaxStart(settings);if(!settings.crossDomain)settings.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(settings.url)&&RegExp.$2!=window.location.host;if(!settings.url)settings.url=window.location.toString();serializeData(settings);if(settings.cache===false)settings.url=appendQuery(settings.url,"_="+Date.now());var dataType=settings.dataType,hasPlaceholder=/=\?/.test(settings.url);if(dataType=="jsonp"||hasPlaceholder){if(!hasPlaceholder)settings.url=appendQuery(settings.url,"callback=?");return $.ajaxJSONP(settings)}var mime=settings.accepts[dataType],baseHeaders={},protocol=/^([\w-]+:)\/\//.test(settings.url)?RegExp.$1:window.location.protocol,xhr=settings.xhr(),abortTimeout;if(!settings.crossDomain)baseHeaders["X-Requested-With"]="XMLHttpRequest";if(mime){baseHeaders["Accept"]=mime;if(mime.indexOf(",")>-1)mime=mime.split(",",2)[0];xhr.overrideMimeType&&xhr.overrideMimeType(mime)}if(settings.contentType||settings.contentType!==false&&settings.data&&settings.type.toUpperCase()!="GET")baseHeaders["Content-Type"]=settings.contentType||"application/x-www-form-urlencoded";settings.headers=$.extend(baseHeaders,settings.headers||{});xhr.onreadystatechange=function(){if(xhr.readyState==4){xhr.onreadystatechange=empty;clearTimeout(abortTimeout);var result,error=false;if(xhr.status>=200&&xhr.status<300||xhr.status==304||xhr.status==0&&protocol=="file:"){dataType=dataType||mimeToDataType(xhr.getResponseHeader("content-type"));result=xhr.responseText;try{if(dataType=="script")(1,eval)(result);else if(dataType=="xml")result=xhr.responseXML;else if(dataType=="json")result=blankRE.test(result)?null:$.parseJSON(result)}catch(e){error=e}if(error)ajaxError(error,"parsererror",xhr,settings);else ajaxSuccess(result,xhr,settings)}else{ajaxError(null,xhr.status?"error":"abort",xhr,settings)}}};var async="async"in settings?settings.async:true;xhr.open(settings.type,settings.url,async);for(name in settings.headers)xhr.setRequestHeader(name,settings.headers[name]);if(ajaxBeforeSend(xhr,settings)===false){xhr.abort();return false}if(settings.timeout>0)abortTimeout=setTimeout(function(){xhr.onreadystatechange=empty;xhr.abort();ajaxError(null,"timeout",xhr,settings)},settings.timeout);xhr.send(settings.data?settings.data:null);return xhr};function parseArguments(url,data,success,dataType){var hasData=!$.isFunction(data);return{url:url,data:hasData?data:undefined,success:!hasData?data:$.isFunction(success)?success:undefined,dataType:hasData?dataType||success:success}}$.get=function(url,data,success,dataType){return $.ajax(parseArguments.apply(null,arguments))};$.post=function(url,data,success,dataType){var options=parseArguments.apply(null,arguments);options.type="POST";return $.ajax(options)};$.getJSON=function(url,data,success){var options=parseArguments.apply(null,arguments);options.dataType="json";return $.ajax(options)};$.fn.load=function(url,data,success){if(!this.length)return this;var self=this,parts=url.split(/\s/),selector,options=parseArguments(url,data,success),callback=options.success;if(parts.length>1)options.url=parts[0],selector=parts[1];options.success=function(response){self.html(selector?$("<div>").html(response.replace(rscript,"")).find(selector):response);callback&&callback.apply(self,arguments)};$.ajax(options);return this};var escape=encodeURIComponent;function serialize(params,obj,traditional,scope){var type,array=$.isArray(obj);$.each(obj,function(key,value){type=$.type(value);if(scope)key=traditional?scope:scope+"["+(array?"":key)+"]";if(!scope&&array)params.add(value.name,value.value);else if(type=="array"||!traditional&&type=="object")serialize(params,value,traditional,key);else params.add(key,value)})}$.param=function(obj,traditional){var params=[];params.add=function(k,v){this.push(escape(k)+"="+escape(v))};serialize(params,obj,traditional);return params.join("&").replace(/%20/g,"+")}})(Zepto);(function($){$.fn.serializeArray=function(){var result=[],el;$(Array.prototype.slice.call(this.get(0).elements)).each(function(){el=$(this);var type=el.attr("type");if(this.nodeName.toLowerCase()!="fieldset"&&!this.disabled&&type!="submit"&&type!="reset"&&type!="button"&&(type!="radio"&&type!="checkbox"||this.checked))result.push({name:el.attr("name"),value:el.val()})});return result};$.fn.serialize=function(){var result=[];this.serializeArray().forEach(function(elm){result.push(encodeURIComponent(elm.name)+"="+encodeURIComponent(elm.value))});return result.join("&")};$.fn.submit=function(callback){if(callback)this.bind("submit",callback);else if(this.length){var event=$.Event("submit");this.eq(0).trigger(event);if(!event.defaultPrevented)this.get(0).submit()}return this}})(Zepto);(function($,undefined){var prefix="",eventPrefix,endEventName,endAnimationName,vendors={Webkit:"webkit",Moz:"",O:"o",ms:"MS"},document=window.document,testEl=document.createElement("div"),supportedTransforms=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,transform,transitionProperty,transitionDuration,transitionTiming,animationName,animationDuration,animationTiming,cssReset={};function dasherize(str){return downcase(str.replace(/([a-z])([A-Z])/,"$1-$2"))}function downcase(str){return str.toLowerCase()}function normalizeEvent(name){return eventPrefix?eventPrefix+name:downcase(name)}$.each(vendors,function(vendor,event){if(testEl.style[vendor+"TransitionProperty"]!==undefined){prefix="-"+downcase(vendor)+"-";eventPrefix=event;return false}});transform=prefix+"transform";cssReset[transitionProperty=prefix+"transition-property"]=cssReset[transitionDuration=prefix+"transition-duration"]=cssReset[transitionTiming=prefix+"transition-timing-function"]=cssReset[animationName=prefix+"animation-name"]=cssReset[animationDuration=prefix+"animation-duration"]=cssReset[animationTiming=prefix+"animation-timing-function"]="";$.fx={off:eventPrefix===undefined&&testEl.style.transitionProperty===undefined,speeds:{_default:400,fast:200,slow:600},cssPrefix:prefix,transitionEnd:normalizeEvent("TransitionEnd"),animationEnd:normalizeEvent("AnimationEnd")};$.fn.animate=function(properties,duration,ease,callback){if($.isPlainObject(duration))ease=duration.easing,callback=duration.complete,duration=duration.duration;if(duration)duration=(typeof duration=="number"?duration:$.fx.speeds[duration]||$.fx.speeds._default)/1e3;return this.anim(properties,duration,ease,callback)};$.fn.anim=function(properties,duration,ease,callback){var key,cssValues={},cssProperties,transforms="",that=this,wrappedCallback,endEvent=$.fx.transitionEnd;if(duration===undefined)duration=.4;if($.fx.off)duration=0;if(typeof properties=="string"){cssValues[animationName]=properties;cssValues[animationDuration]=duration+"s";cssValues[animationTiming]=ease||"linear";endEvent=$.fx.animationEnd}else{cssProperties=[];for(key in properties)if(supportedTransforms.test(key))transforms+=key+"("+properties[key]+") ";else cssValues[key]=properties[key],cssProperties.push(dasherize(key));if(transforms)cssValues[transform]=transforms,cssProperties.push(transform);if(duration>0&&typeof properties==="object"){cssValues[transitionProperty]=cssProperties.join(", ");cssValues[transitionDuration]=duration+"s";cssValues[transitionTiming]=ease||"linear"}}wrappedCallback=function(event){if(typeof event!=="undefined"){if(event.target!==event.currentTarget)return;$(event.target).unbind(endEvent,wrappedCallback)}$(this).css(cssReset);callback&&callback.call(this)};if(duration>0)this.bind(endEvent,wrappedCallback);this.size()&&this.get(0).clientLeft;this.css(cssValues);if(duration<=0)setTimeout(function(){that.each(function(){wrappedCallback.call(this)})},0);return this};testEl=null})(Zepto)},{}],3:[function(require,module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}var $=require("zepto-browserify").$;var morphdom=require("morphdom");var objs=[];var eventType="input paste copy click change keydown keyup contextmenu mouseup mousedown mousemove touchstart touchend touchmove compositionstart compositionend";var dataAction=eventType.replace(/([a-z]+)/g,"[data-action-$1],")+"[data-action]";var getObjectById=function getObjectById(id){for(var i=0,n=objs.length;i<n;i++){var obj=objs[i];var templates=obj.templates;for(var t=0,m=templates.length;t<m;t++){if(templates[t]==id){return obj}}}return null};if(typeof jQuery!=="undefined"){$=jQuery}if(!Array.prototype.find){Array.prototype.find=function(predicate){if(this===null){throw new TypeError("Array.prototype.find called on null or undefined")}if(typeof predicate!=="function"){throw new TypeError("predicate must be a function")}var list=Object(this);var length=list.length>>>0;var thisArg=arguments[1];var value=void 0;for(var i=0;i<length;i++){value=list[i];if(predicate.call(thisArg,value,i,list)){return value}}return undefined}}if(typeof document!=="undefined"){$(document).on("input change click","[data-bind]",function(e){var data=$(this).attr("data-bind");var val=$(this).val();var attr=$(this).attr("href");if(attr){val=attr.replace("#","")}var id=$(this).parents("[data-id]").attr("data-id");if(id){var obj=getObjectById(id);if($(e.target).attr("type")=="radio"){if($(this).is(":checked")){obj.updateDataByString(data,val)}else{obj.updateDataByString(data,"")}}else if($(e.target).attr("type")=="checkbox"){(function(){var arr=[];$('[data-bind="'+data+'"]').each(function(){if($(this).is(":checked")){arr.push($(this).val())}});obj.updateDataByString(data,arr)})()}else{obj.updateDataByString(data,val)}}});$(document).on(eventType,dataAction,function(e){if(e.type=="click"&&$(e.target).is("select")){return}if(e.type=="input"&&$(e.target).attr("type")=="button"){return}var events=eventType.split(" ");var $self=$(this);var action="action";events.forEach(function(event){if($self.attr("data-action-"+event)){if(e.type===event){action+="-"+event}}});var string=$self.attr("data-"+action);if(!string){return}var method=string.replace(/\(.*?\);?/,"");var parameter=string.replace(/(.*?)\((.*?)\);?/,"$2");var pts=parameter.split(",");var id=$self.parents("[data-id]").attr("data-id");if(id){var obj=getObjectById(id);obj.e=e;if(obj.method&&obj.method[method]){obj.method[method].apply(obj,pts)}else if(obj[method]){obj[method].apply(obj,pts)}}})}var aTemplate=function(){function aTemplate(opt){_classCallCheck(this,aTemplate);this.atemplate=[];objs.push(this);for(var i in opt){this[i]=opt[i]}if(!this.data){this.data={}}if(!this.templates){this.templates=[]}var templates=this.templates;for(var _i=0,n=this.templates.length;_i<n;_i++){var template=this.templates[_i];this.atemplate.push({id:template,html:$("#"+template).html()})}this.setId()}_createClass(aTemplate,[{key:"addTemplate",value:function addTemplate(id,html){this.atemplate.push({id:id,html:html});this.templates.push(id)}},{key:"loadHtml",value:function loadHtml(){var templates=this.templates;var promises=[];templates.forEach(function(template){var d=new $.Deferred;promises.push(d);var src=$("#"+template).attr("src");$.ajax({url:src,type:"GET",dataType:"text"}).success(function(data){$("#"+template).html(data);d.resolve()})});return $.when.apply($,promises)}},{key:"getData",value:function getData(){return JSON.parse(JSON.stringify(this.data))}},{key:"saveData",value:function saveData(key){var data=JSON.stringify(this.data);localStorage.setItem(key,data)}},{key:"setData",value:function setData(val){for(var i in val){if(typeof val[i]!=="function"){this.data[i]=val[i]}}}},{key:"loadData",value:function loadData(key){var data=JSON.parse(localStorage.getItem(key));if(data){for(var i in data){if(typeof data[i]!=="function"){this.data[i]=data[i]}}}}},{key:"getRand",value:function getRand(a,b){return~~(Math.random()*(b-a+1))+a}},{key:"getRandText",value:function getRandText(limit){var ret="";var strings="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";var length=strings.length;for(var i=0;i<limit;i++){ret+=strings.charAt(Math.floor(this.getRand(0,length)))}return ret}},{key:"setId",value:function setId(){var text=void 0;var ids=aTemplate.ids;var flag=false;while(1){text=this.getRandText(10);for(var i=0,n=aTemplate.ids;i<n;i++){if(aTemplate.ids[i]===text){flag=true}}if(flag===false){break}}this.data.aTemplate_id=text}},{key:"getDataFromObj",value:function getDataFromObj(s,o){s=s.replace(/\[([a-zA-Z0-9._-]+)\]/g,".$1");s=s.replace(/^\./,"");var a=s.split(".");while(a.length){var n=a.shift();if(n in o){o=o[n]}else{return}}return o}},{key:"getDataByString",value:function getDataByString(s){var o=this.data;return this.getDataFromObj(s,o)}},{key:"updateDataByString",value:function updateDataByString(path,newValue){var object=this.data;var stack=path.split(".");while(stack.length>1){object=object[stack.shift()]}object[stack.shift()]=newValue}},{key:"removeDataByString",value:function removeDataByString(path){var object=this.data;var stack=path.split(".");while(stack.length>1){object=object[stack.shift()]}var shift=stack.shift();if(shift.match(/^\d+$/)){object.splice(Number(shift),1)}else{delete object[shift]}}},{key:"resolveBlock",value:function resolveBlock(html,item,i){var that=this;var touchs=html.match(/<!-- BEGIN ([a-zA-Z0-9._-]+):touch#([a-zA-Z0-9._-]+) -->/g);var touchnots=html.match(/<!-- BEGIN ([a-zA-Z0-9._-]+):touchnot#([a-zA-Z0-9._-]+) -->/g);var exists=html.match(/<!-- BEGIN ([a-zA-Z0-9._-]+):exist -->/g);var empties=html.match(/<!-- BEGIN ([a-zA-Z0-9._-]+):empty -->/g);if(touchs){for(var k=0,n=touchs.length;k<n;k++){var start=touchs[k];start=start.replace(/([a-zA-Z0-9._-]+):touch#([a-zA-Z0-9._-]+)/,"($1):touch#($2)");var end=start.replace(/BEGIN/,"END");var reg=new RegExp(start+"(([\\n\\r\\t]|.)*?)"+end,"g");html=html.replace(reg,function(m,key2,val,next){var itemkey=typeof item[key2]==="function"?item[key2].apply(that):that.getDataFromObj(key2,item);if(itemkey===val){return next}else{return""}})}}if(touchnots){for(var _k=0,_n=touchnots.length;_k<_n;_k++){var _start=touchnots[_k];_start=_start.replace(/([a-zA-Z0-9._-]+):touchnot#([a-zA-Z0-9._-]+)/,"($1):touchnot#($2)");var _end=_start.replace(/BEGIN/,"END");var _reg=new RegExp(_start+"(([\\n\\r\\t]|.)*?)"+_end,"g");html=html.replace(_reg,function(m,key2,val,next){var itemkey=typeof item[key2]==="function"?item[key2].apply(that):that.getDataFromObj(key2,item);if(itemkey!==val){return next}else{return""}})}}if(exists){for(var _k2=0,_n2=exists.length;_k2<_n2;_k2++){var _start2=exists[_k2];_start2=_start2.replace(/([a-zA-Z0-9._-]+):exist/,"($1):exist");var _end2=_start2.replace(/BEGIN/,"END");var _reg2=new RegExp(_start2+"(([\\n\\r\\t]|.)*?)"+_end2,"g");html=html.replace(_reg2,function(m,key2,next){var itemkey=typeof item[key2]==="function"?item[key2].apply(that):that.getDataFromObj(key2,item);if(itemkey||itemkey===0){return next}else{return""}})}}if(empties){for(var _k3=0,_n3=empties.length;_k3<_n3;_k3++){var _start3=empties[_k3];_start3=_start3.replace(/([a-zA-Z0-9._-]+):empty/,"($1):empty");var _end3=_start3.replace(/BEGIN/,"END");var empty=new RegExp(_start3+"(([\\n\\r\\t]|.)*?)"+_end3,"g");html=html.replace(empty,function(m,key2,next){var itemkey=typeof item[key2]==="function"?item[key2].apply(that):that.getDataFromObj(key2,item);if(!itemkey&&itemkey!==0){return next}else{return""}})}}html=html.replace(/{([a-zA-Z0-9._-]+)}(\[([a-zA-Z0-9._-]+)\])*/g,function(n,key3,key4,converter){var data=void 0;if(key3=="i"){data=i}else{if(item[key3]||item[key3]===0){if(typeof item[key3]==="function"){data=item[key3].apply(that)}else{data=item[key3]}}else{if(converter&&that.convert&&that.convert[converter]){return that.convert[converter].call(that,"")}else{return""}}}if(converter&&that.convert&&that.convert[converter]){return that.convert[converter].call(that,data)}else{return data}});return html}},{key:"resolveAbsBlock",value:function resolveAbsBlock(html){var that=this;html=html.replace(/{(.*?)}/g,function(n,key3){var data=that.getDataByString(key3);if(typeof data!=="undefined"){if(typeof data==="function"){return data.apply(that)}else{return data}}else{return n}});return html}},{key:"resolveInclude",value:function resolveInclude(html){var include=/<!-- #include id="(.*?)" -->/g;html=html.replace(include,function(m,key){return $("#"+key).html()});return html}},{key:"resolveWith",value:function resolveWith(html){var width=/<!-- BEGIN ([a-zA-Z0-9._-]+):with -->(([\n\r\t]|.)*?)<!-- END ([a-zA-Z0-9._-]+):with -->/g;html=html.replace(width,function(m,key,val){m=m.replace(/data\-bind=['"](.*?)['"]/g,"data-bind='"+key+".$1'");return m});return html}},{key:"resolveLoop",value:function resolveLoop(html){var loop=/<!-- BEGIN (.+?):loop -->(([\n\r\t]|.)*?)<!-- END (.+?):loop -->/g;var that=this;html=html.replace(loop,function(m,key,val){var keyItem=that.getDataByString(key);var keys=[];if(typeof keyItem==="function"){keys=keyItem.apply(that)}else{keys=keyItem}var ret="";if(keys instanceof Array){for(var i=0,n=keys.length;i<n;i++){ret+=that.resolveBlock(val,keys[i],i)}}ret=ret.replace(/\\([^\\])/g,"$1");return ret});return html}},{key:"removeData",value:function removeData(arr){var data=this.data;for(var i in data){for(var t=0,n=arr.length;t<n;t++){if(i===arr[t]){delete data[i]}}}return this}},{key:"hasLoop",value:function hasLoop(txt){var loop=/<!-- BEGIN (.+?):loop -->(([\n\r\t]|.)*?)<!-- END (.+?):loop -->/g;if(txt.match(loop)){return true}else{return false}}},{key:"getHtml",value:function getHtml(selector,row){var template=this.atemplate.find(function(item){return item.id===selector});var html="";if(template&&template.html){html=template.html}if(row){html=selector}if(!html){return""}var data=this.data;html=this.resolveInclude(html);html=this.resolveWith(html);while(this.hasLoop(html)){html=this.resolveLoop(html)}html=this.resolveBlock(html,data);html=html.replace(/\\([^\\])/g,"$1");html=this.resolveAbsBlock(html);return html.replace(/^([\t ])*\n/gm,"")}},{key:"update",value:function update(txt,part){var html=this.getHtml();var templates=this.templates;var renderWay=txt||"html";if(this.beforeUpdated){this.beforeUpdated()}for(var i=0,n=templates.length;i<n;i++){var tem=templates[i];var selector="#"+tem;var _html=this.getHtml(tem);var $target=$("[data-id='"+tem+"']");if(!part||part==tem){if($target.length==0){var $newitem=$("<div data-id='"+tem+"'></div>");$newitem[renderWay](_html);$(selector).after($newitem)}else{if(renderWay==="text"){$target.text(_html)}else{morphdom($target.get(0),"<div data-id='"+tem+"'>"+_html+"</div>")}}if(part){break}}}this.updateBindingData(part);if(this.onUpdated){this.onUpdated(part)}return this}},{key:"updateBindingData",value:function updateBindingData(part){var that=this;var templates=that.templates;for(var i=0,n=templates.length;i<n;i++){var temp=templates[i];if(!part||part==temp){var $template=$("[data-id='"+temp+"']");$template.find("[data-bind]").each(function(){var data=that.getDataByString($(this).attr("data-bind"));if($(this).attr("type")=="checkbox"||$(this).attr("type")=="radio"){if(data==$(this).val()){$(this).prop("checked",true)}}else{$(this).val(data)}});if(part){break}}}return this}},{key:"copyToClipBoard",value:function copyToClipBoard(){var copyArea=$("<textarea/>");$("body").append(copyArea);copyArea.text(this.getHtml());copyArea.select();document.execCommand("copy");copyArea.remove();return this}},{key:"applyMethod",value:function applyMethod(method){var args=[].splice.call(arguments,0);args.shift();return this.method[method].apply(this,args)}},{key:"getComputedProp",value:function getComputedProp(prop){return this.data[prop].apply(this)}},{key:"remove",value:function remove(path){var object=this.data;var stack=path.split(".");while(stack.length>1){object=object[stack.shift()]}var shift=stack.shift();if(shift.match(/^\d+$/)){object.splice(Number(shift),1)}else{delete object[shift]}return this}}]);return aTemplate}();module.exports=aTemplate},{morphdom:1,"zepto-browserify":2}]},{},[3])(3)}); |
10
index.js
@@ -304,3 +304,3 @@ "use strict"; | ||
var itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2, item); | ||
if (itemkey == val) { | ||
if (itemkey === val) { | ||
return next; | ||
@@ -322,3 +322,3 @@ } else { | ||
var itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2, item); | ||
if (itemkey != val) { | ||
if (itemkey !== val) { | ||
return next; | ||
@@ -340,3 +340,3 @@ } else { | ||
var itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2, item); | ||
if (itemkey) { | ||
if (itemkey || itemkey === 0) { | ||
return next; | ||
@@ -358,3 +358,3 @@ } else { | ||
var itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2, item); | ||
if (!itemkey) { | ||
if (!itemkey && itemkey !== 0) { | ||
return next; | ||
@@ -373,3 +373,3 @@ } else { | ||
} else { | ||
if (item[key3]) { | ||
if (item[key3] || item[key3] === 0) { | ||
if (typeof item[key3] === "function") { | ||
@@ -376,0 +376,0 @@ data = item[key3].apply(that); |
{ | ||
"name": "a-template", | ||
"version": "0.1.2", | ||
"version": "0.1.3", | ||
"author": "steelydylan", | ||
@@ -20,4 +20,2 @@ "description": "Simple Template Engine", | ||
"browserify": "^13.1.1", | ||
"licensify": "^3.1.2", | ||
"uglifyjs": "^2.4.10", | ||
"eslint": "^3.13.0", | ||
@@ -27,2 +25,4 @@ "eslint-config-airbnb": "^13.0.0", | ||
"eslint-plugin-import": "^2.2.0", | ||
"licensify": "^3.1.2", | ||
"uglifyjs": "^2.4.10", | ||
"watch": "^1.0.1", | ||
@@ -29,0 +29,0 @@ "watchify": "^3.7.0" |
@@ -36,3 +36,3 @@ let $ = require("zepto-browserify").$; | ||
let value; | ||
for (let i = 0; i < length; i++) { | ||
@@ -138,3 +138,3 @@ value = list[i]; | ||
} | ||
addTemplate(id,html) { | ||
@@ -144,3 +144,3 @@ this.atemplate.push({id:id,html:html}) | ||
} | ||
loadHtml() { | ||
@@ -164,7 +164,7 @@ let templates = this.templates; | ||
} | ||
getData () { | ||
return JSON.parse(JSON.stringify(this.data)); | ||
} | ||
saveData (key) { | ||
@@ -174,3 +174,3 @@ let data = JSON.stringify(this.data); | ||
} | ||
setData (val) { | ||
@@ -183,3 +183,3 @@ for (let i in val) { | ||
} | ||
loadData (key) { | ||
@@ -195,7 +195,7 @@ let data = JSON.parse(localStorage.getItem(key)); | ||
} | ||
getRand (a, b) { | ||
return ~~(Math.random() * (b - a + 1)) + a; | ||
} | ||
getRandText (limit) { | ||
@@ -210,3 +210,3 @@ let ret = ""; | ||
} | ||
setId () { | ||
@@ -229,3 +229,3 @@ let text; | ||
} | ||
getDataFromObj(s,o){ | ||
@@ -245,3 +245,3 @@ s = s.replace(/\[([a-zA-Z0-9._-]+)\]/g, '.$1'); // convert indexes to properties | ||
} | ||
getDataByString(s){ | ||
@@ -251,3 +251,3 @@ let o = this.data; | ||
} | ||
updateDataByString (path, newValue) { | ||
@@ -261,3 +261,3 @@ let object = this.data; | ||
} | ||
removeDataByString (path) { | ||
@@ -276,3 +276,3 @@ let object = this.data; | ||
} | ||
resolveBlock(html,item,i){ | ||
@@ -293,3 +293,3 @@ let that = this; | ||
let itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2,item); | ||
if(itemkey == val){ | ||
if(itemkey === val){ | ||
return next; | ||
@@ -311,3 +311,3 @@ }else{ | ||
let itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2,item); | ||
if(itemkey != val){ | ||
if(itemkey !== val){ | ||
return next; | ||
@@ -329,3 +329,3 @@ }else{ | ||
let itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2,item); | ||
if(itemkey){ | ||
if(itemkey || itemkey === 0){ | ||
return next; | ||
@@ -347,3 +347,3 @@ }else{ | ||
let itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2,item); | ||
if(!itemkey){ | ||
if(!itemkey && itemkey !== 0){ | ||
return next; | ||
@@ -362,3 +362,3 @@ }else{ | ||
}else{ | ||
if(item[key3]){ | ||
if(item[key3] || item[key3] === 0){ | ||
if (typeof item[key3] === "function"){ | ||
@@ -402,3 +402,3 @@ data = item[key3].apply(that); | ||
} | ||
resolveInclude(html){ | ||
@@ -411,3 +411,3 @@ let include = /<!-- #include id="(.*?)" -->/g; | ||
} | ||
resolveWith(html){ | ||
@@ -421,3 +421,3 @@ let width = /<!-- BEGIN ([a-zA-Z0-9._-]+):with -->(([\n\r\t]|.)*?)<!-- END ([a-zA-Z0-9._-]+):with -->/g; | ||
} | ||
resolveLoop(html){ | ||
@@ -447,3 +447,3 @@ let loop = /<!-- BEGIN (.+?):loop -->(([\n\r\t]|.)*?)<!-- END (.+?):loop -->/g; | ||
} | ||
removeData(arr){ | ||
@@ -460,3 +460,3 @@ let data = this.data; | ||
} | ||
hasLoop(txt){ | ||
@@ -470,3 +470,3 @@ let loop = /<!-- BEGIN (.+?):loop -->(([\n\r\t]|.)*?)<!-- END (.+?):loop -->/g; | ||
} | ||
getHtml(selector,row){ | ||
@@ -502,3 +502,3 @@ let template = this.atemplate.find((item) => item.id === selector); | ||
} | ||
update(txt,part){ | ||
@@ -539,3 +539,3 @@ let html = this.getHtml(); | ||
} | ||
updateBindingData(part){ | ||
@@ -565,3 +565,3 @@ let that = this; | ||
} | ||
copyToClipBoard () { | ||
@@ -576,3 +576,3 @@ let copyArea = $("<textarea/>"); | ||
} | ||
applyMethod (method) { | ||
@@ -583,7 +583,7 @@ let args = [].splice.call(arguments, 0); | ||
} | ||
getComputedProp (prop) { | ||
return this.data[prop].apply(this); | ||
} | ||
remove (path) { | ||
@@ -590,0 +590,0 @@ let object = this.data; |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
308931
16