Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

a-template

Package Overview
Dependencies
Maintainers
1
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

a-template - npm Package Compare versions

Comparing version 0.0.18 to 0.0.19

.editorconfig

2

build/a-template.min.js

@@ -19,2 +19,2 @@ /**

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)},{}],2:[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 objs=[];var eventType="input paste click change keydown 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(typeof document!=="undefined"){$(document).on("input change click","[data-bind]",function(e){var data=$(this).data("bind");var val=$(this).val();var attr=$(this).attr("href");if(attr){val=attr.replace("#","")}var id=$(this).parents("[data-id]").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.data("action-"+event)){if(e.type===event){action+="-"+event}}});var string=$self.data(action);if(!string){return}var method=string.replace(/\(.*?\);?/,"");var parameter=string.replace(/(.*?)\((.*?)\);?/,"$2");var pts=parameter.split(",");var id=$self.parents("[data-id]").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);objs.push(this);for(var i in opt){this[i]=opt[i]}if(!this.data){this.data={}}this.setId()}_createClass(aTemplate,[{key:"addTemplate",value:function addTemplate(template,id){$("body").append("<script type='text/template' id='"+id+"'>"+template+"</script>");if(!this.templates){this.templates=[]}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=$(selector);var 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(selector);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{$target[renderWay](_html)}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).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},{"zepto-browserify":1}]},{},[2])(2)});
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)},{}],2:[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 objs=[];var eventType="input paste 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(typeof document!=="undefined"){$(document).on("input change click","[data-bind]",function(e){var data=$(this).data("bind");var val=$(this).val();var attr=$(this).attr("href");if(attr){val=attr.replace("#","")}var id=$(this).parents("[data-id]").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"){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.data("action-"+event)){if(e.type===event){action+="-"+event}}});var string=$self.data(action);if(!string){return}var action=string.replace(/\(.*?\);?/,"");var parameter=string.replace(/(.*?)\((.*?)\);?/,"$2");var pts=parameter.split(",");var id=$self.parents("[data-id]").data("id");if(id){var obj=getObjectById(id);obj.e=e;if(obj.method&&obj.method[action]){obj.method[action].apply(obj,pts)}else if(obj[action]){obj[action].apply(obj,pts)}}})}var aTemplate=function(){function aTemplate(opt){_classCallCheck(this,aTemplate);objs.push(this);for(var i in opt){this[i]=opt[i]}if(!this.data){this.data={}}this.setId()}_createClass(aTemplate,[{key:"addTemplate",value:function addTemplate(template,id){$("body").append("<script type='text/template' id='"+id+"'>"+template+"</script>");if(!this.templates){this.templates=[]}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;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 k=0,n=exists.length;k<n;k++){var start=exists[k];start=start.replace(/([a-zA-Z0-9._-]+):exist/,"($1):exist");var end=start.replace(/BEGIN/,"END");var reg=new RegExp(start+"(([\\n\\r\\t]|.)*?)"+end,"g");html=html.replace(reg,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 k=0,n=empties.length;k<n;k++){var start=empties[k];start=start.replace(/([a-zA-Z0-9._-]+):empty/,"($1):empty");var end=start.replace(/BEGIN/,"END");var empty=new RegExp(start+"(([\\n\\r\\t]|.)*?)"+end,"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;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=$(selector);var 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(selector);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{$target[renderWay](html)}if(part){break}}}this.updateBindingData(part);if(this.onUpdated){this.onUpdated()}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).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},{"zepto-browserify":1}]},{},[2])(2)});

@@ -9,572 +9,570 @@ "use strict";

var objs = [];
var eventType = "input paste click change keydown contextmenu mouseup mousedown mousemove touchstart touchend touchmove compositionstart compositionend";
var eventType = "input paste 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;
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") {
// for IE
$ = jQuery;
// for IE
$ = jQuery;
}
if (typeof document !== "undefined") {
//data binding
$(document).on("input change click", "[data-bind]", function (e) {
var data = $(this).data("bind");
var val = $(this).val();
var attr = $(this).attr("href");
if (attr) {
val = attr.replace("#", "");
}
var id = $(this).parents("[data-id]").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);
}
}
});
//action
$(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.data("action-" + event)) {
if (e.type === event) {
action += "-" + event;
}
}
});
var string = $self.data(action);
if (!string) {
return;
}
var method = string.replace(/\(.*?\);?/, "");
var parameter = string.replace(/(.*?)\((.*?)\);?/, "$2");
var pts = parameter.split(","); //引き数
var id = $self.parents("[data-id]").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);
}
}
});
//data binding
$(document).on("input change click", "[data-bind]", function (e) {
var data = $(this).data("bind");
var val = $(this).val();
var attr = $(this).attr("href");
if (attr) {
val = attr.replace("#", "");
}
var id = $(this).parents("[data-id]").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") {
var arr = [];
$("[data-bind=\"" + data + "\"]").each(function () {
if ($(this).is(":checked")) {
arr.push($(this).val());
}
});
obj.updateDataByString(data, arr);
} else {
obj.updateDataByString(data, val);
}
}
});
//action
$(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.data("action-" + event)) {
if (e.type === event) {
action += "-" + event;
}
}
});
var string = $self.data(action);
if (!string) {
return;
}
var action = string.replace(/\(.*?\);?/, "");
var parameter = string.replace(/(.*?)\((.*?)\);?/, "$2");
var pts = parameter.split(","); //引き数
var id = $self.parents("[data-id]").data("id");
if (id) {
var obj = getObjectById(id);
obj.e = e;
if (obj.method && obj.method[action]) {
obj.method[action].apply(obj, pts);
} else if (obj[action]) {
obj[action].apply(obj, pts);
}
}
});
}
var aTemplate = function () {
function aTemplate(opt) {
_classCallCheck(this, aTemplate);
function aTemplate(opt) {
_classCallCheck(this, aTemplate);
objs.push(this);
for (var i in opt) {
this[i] = opt[i];
}
if (!this.data) {
this.data = {};
}
this.setId();
}
objs.push(this);
for (var i in opt) {
this[i] = opt[i];
}
if (!this.data) {
this.data = {};
}
this.setId();
}
_createClass(aTemplate, [{
key: "addTemplate",
value: function addTemplate(template, id) {
$("body").append("<script type='text/template' id='" + id + "'>" + template + "</script>");
if (!this.templates) {
this.templates = [];
}
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'); // convert indexes to properties
s = s.replace(/^\./, ''); // strip leading dot
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 "";
}
});
}
}
/*existブロックを解決*/
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 "";
}
});
}
}
/*emptyブロックを解決*/
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;
}
/*絶対パス形式の変数を解決*/
_createClass(aTemplate, [{
key: "addTemplate",
value: function addTemplate(template, id) {
$("body").append("<script type='text/template' id='" + id + "'>" + template + "</script>");
if (!this.templates) {
this.templates = [];
}
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;
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'); // convert indexes to properties
s = s.replace(/^\./, ''); // strip leading dot
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 "";
}
});
}
}
/*existブロックを解決*/
if (exists) {
for (var k = 0, n = exists.length; k < n; k++) {
var start = exists[k];
start = start.replace(/([a-zA-Z0-9._-]+):exist/, "($1):exist");
var end = start.replace(/BEGIN/, "END");
var reg = new RegExp(start + "(([\\n\\r\\t]|.)*?)" + end, "g");
html = html.replace(reg, function (m, key2, next) {
var itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2, item);
if (itemkey) {
return next;
} else {
return "";
}
});
}
}
/*emptyブロックを解決*/
if (empties) {
for (var k = 0, n = empties.length; k < n; k++) {
var start = empties[k];
start = start.replace(/([a-zA-Z0-9._-]+):empty/, "($1):empty");
var end = start.replace(/BEGIN/, "END");
var empty = new RegExp(start + "(([\\n\\r\\t]|.)*?)" + end, "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;
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 = $(selector);
var html = $template.html();
if (row) {
html = selector;
}
if (!html) {
return "";
}
var data = this.data;
/*インクルード解決*/
html = this.resolveInclude(html);
/*with解決*/
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(selector);
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 {
$target[renderWay](_html);
}
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).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;
}
}]);
}, {
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 = $(selector);
var html = $template.html();
if (row) {
html = selector;
}
if (!html) {
return "";
}
var data = this.data;
/*インクルード解決*/
html = this.resolveInclude(html);
/*with解決*/
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(selector);
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 {
$target[renderWay](html);
}
if (part) {
break;
}
}
}
this.updateBindingData(part);
if (this.onUpdated) {
this.onUpdated();
}
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).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;
return aTemplate;
}();
module.exports = aTemplate;
{
"name": "a-template",
"version": "0.0.18",
"version": "0.0.19",
"author": "steelydylan",

@@ -22,2 +22,6 @@ "description": "Simple Template Engine",

"uglifyjs": "^2.4.10",
"eslint": "^3.13.0",
"eslint-config-airbnb": "^13.0.0",
"eslint-config-airbnb-base": "^11.0.1",
"eslint-plugin-import": "^2.2.0",
"watch": "^1.0.1",

@@ -24,0 +28,0 @@ "watchify": "^3.7.0"

@@ -1,88 +0,88 @@

let $ = require("zepto-browserify").$;
const objs = [];
const eventType = "input paste click change keydown contextmenu mouseup mousedown mousemove touchstart touchend touchmove compositionstart compositionend";
const dataAction = eventType.replace(/([a-z]+)/g,"[data-action-$1],") + "[data-action]";
const getObjectById = (id) => {
for (let i = 0, n = objs.length; i < n; i++) {
let obj = objs[i];
let templates = obj.templates;
for (let t = 0, m = templates.length; t < m; t++) {
if (templates[t] == id) {
return obj;
}
}
}
return null;
var $ = require("zepto-browserify").$;
var objs = [];
var eventType = "input paste 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 = (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"){
// for IE
$ = jQuery;
if (typeof jQuery !== "undefined") {
// for IE
$ = jQuery;
}
if(typeof document !== "undefined"){
//data binding
$(document).on("input change click", "[data-bind]", function(e) {
let data = $(this).data("bind");
let val = $(this).val();
let attr = $(this).attr("href");
if (attr) {
val = attr.replace("#", "");
}
let id = $(this).parents("[data-id]").data("id");
if (id) {
let 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") {
let arr = [];
$("[data-bind=\"" + data + "\"]").each(function () {
if ($(this).is(":checked")) {
arr.push($(this).val());
}
});
obj.updateDataByString(data, arr);
} else {
obj.updateDataByString(data, val);
}
}
});
//action
$(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;
}
let events = eventType.split(" ");
let $self = $(this);
let action = "action";
events.forEach(function(event){
if ($self.data("action-"+event)) {
if(e.type === event){
action += "-"+event;
}
}
});
let string = $self.data(action);
if(!string){
return;
}
let method = string.replace(/\(.*?\);?/,"");
let parameter = string.replace(/(.*?)\((.*?)\);?/,"$2");
let pts = parameter.split(",");//引き数
let id = $self.parents("[data-id]").data("id");
if(id){
let 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);
}
}
});
//data binding
$(document).on("input change click", "[data-bind]", function(e) {
var data = $(this).data("bind");
var val = $(this).val();
var attr = $(this).attr("href");
if (attr) {
val = attr.replace("#", "");
}
var id = $(this).parents("[data-id]").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") {
var arr = [];
$("[data-bind=\"" + data + "\"]").each(function () {
if ($(this).is(":checked")) {
arr.push($(this).val());
}
});
obj.updateDataByString(data, arr);
} else {
obj.updateDataByString(data, val);
}
}
});
//action
$(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.data("action-"+event)) {
if(e.type === event){
action += "-"+event;
}
}
});
var string = $self.data(action);
if(!string){
return;
}
var action = string.replace(/\(.*?\);?/,"");
var parameter = string.replace(/(.*?)\((.*?)\);?/,"$2");
var pts = parameter.split(",");//引き数
var id = $self.parents("[data-id]").data("id");
if(id){
var obj = getObjectById(id);
obj.e = e;
if(obj.method && obj.method[action]){
obj.method[action].apply(obj,pts);
}else if(obj[action]){
obj[action].apply(obj,pts);
}
}
});
}

@@ -92,447 +92,447 @@

class aTemplate {
constructor(opt) {
objs.push(this);
for(let i in opt){
this[i] = opt[i];
}
if(!this.data){
this.data = {};
}
this.setId();
}
constructor(opt) {
objs.push(this);
for(var i in opt){
this[i] = opt[i];
}
if(!this.data){
this.data = {};
}
this.setId();
}
addTemplate(template,id) {
$("body").append("<script type='text/template' id='"+id+"'>"+template+"</script>");
if(!this.templates){
this.templates = [];
}
this.templates.push(id);
}
addTemplate(template,id) {
$("body").append("<script type='text/template' id='"+id+"'>"+template+"</script>");
if(!this.templates){
this.templates = [];
}
this.templates.push(id);
}
loadHtml() {
let templates = this.templates;
let promises = [];
templates.forEach((template) => {
let d = new $.Deferred();
promises.push(d);
let src = $("#" + template).attr("src");
$.ajax({
url: src,
type: 'GET',
dataType: 'text'
}).success(function(data) {
$("#" + template).html(data);
d.resolve();
});
});
return $.when.apply($, promises);
}
loadHtml() {
var templates = this.templates;
var promises = [];
templates.forEach((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);
}
getData () {
return JSON.parse(JSON.stringify(this.data));
}
getData () {
return JSON.parse(JSON.stringify(this.data));
}
saveData (key) {
let data = JSON.stringify(this.data);
localStorage.setItem(key, data);
}
saveData (key) {
var data = JSON.stringify(this.data);
localStorage.setItem(key, data);
}
setData (val) {
for (let i in val) {
if (typeof val[i] !== "function") {
this.data[i] = val[i];
}
}
}
setData (val) {
for (var i in val) {
if (typeof val[i] !== "function") {
this.data[i] = val[i];
}
}
}
loadData (key) {
let data = JSON.parse(localStorage.getItem(key));
if (data) {
for (let i in data) {
if (typeof data[i] !== "function") {
this.data[i] = data[i];
}
}
}
}
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];
}
}
}
}
getRand (a, b) {
return ~~(Math.random() * (b - a + 1)) + a;
}
getRand (a, b) {
return ~~(Math.random() * (b - a + 1)) + a;
}
getRandText (limit) {
let ret = "";
let strings = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
let length = strings.length;
for (let i = 0; i < limit; i++) {
ret += strings.charAt(Math.floor(this.getRand(0, length)));
}
return ret;
}
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;
}
setId () {
let text;
let ids = aTemplate.ids;
let flag = false;
while (1) {
text = this.getRandText(10);
for (let i = 0, n = aTemplate.ids; i < n; i++) {
if (aTemplate.ids[i] === text) {
flag = true;
}
}
if (flag === false) {
break;
}
}
this.data.aTemplate_id = text;
}
setId () {
var text;
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;
}
getDataFromObj(s,o){
s = s.replace(/\[([a-zA-Z0-9._-]+)\]/g, '.$1'); // convert indexes to properties
s = s.replace(/^\./, ''); // strip leading dot
let a = s.split('.');
while (a.length) {
let n = a.shift();
if (n in o) {
o = o[n];
} else {
return;
}
}
return o;
}
getDataFromObj(s,o){
s = s.replace(/\[([a-zA-Z0-9._-]+)\]/g, '.$1'); // convert indexes to properties
s = s.replace(/^\./, ''); // strip leading dot
var a = s.split('.');
while (a.length) {
var n = a.shift();
if (n in o) {
o = o[n];
} else {
return;
}
}
return o;
}
getDataByString(s){
let o = this.data;
return this.getDataFromObj(s,o);
}
getDataByString(s){
var o = this.data;
return this.getDataFromObj(s,o);
}
updateDataByString (path, newValue) {
let object = this.data;
let stack = path.split('.');
while (stack.length > 1) {
object = object[stack.shift()];
}
object[stack.shift()] = newValue;
}
updateDataByString (path, newValue) {
var object = this.data;
var stack = path.split('.');
while (stack.length > 1) {
object = object[stack.shift()];
}
object[stack.shift()] = newValue;
}
removeDataByString (path) {
let object = this.data;
let stack = path.split('.');
while (stack.length > 1) {
object = object[stack.shift()];
}
let shift = stack.shift();
if (shift.match(/^\d+$/)) {
object.splice(Number(shift), 1);
} else {
delete object[shift];
}
}
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];
}
}
resolveBlock(html,item,i){
let that = this;
let touchs = html.match(/<!-- BEGIN ([a-zA-Z0-9._-]+):touch#([a-zA-Z0-9._-]+) -->/g);
let touchnots = html.match(/<!-- BEGIN ([a-zA-Z0-9._-]+):touchnot#([a-zA-Z0-9._-]+) -->/g);
let exists = html.match(/<!-- BEGIN ([a-zA-Z0-9._-]+):exist -->/g);
let empties = html.match(/<!-- BEGIN ([a-zA-Z0-9._-]+):empty -->/g);
/*タッチブロック解決*/
if(touchs){
for(let k = 0,n = touchs.length; k < n; k++){
let start = touchs[k];
start = start.replace(/([a-zA-Z0-9._-]+):touch#([a-zA-Z0-9._-]+)/,"($1):touch#($2)");
let end = start.replace(/BEGIN/,"END");
let reg = new RegExp(start+"(([\\n\\r\\t]|.)*?)"+end,"g");
html = html.replace(reg,function(m,key2,val,next){
let itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2,item);
if(itemkey == val){
return next;
}else{
return "";
}
})
}
}
/*タッチノットブロック解決*/
if(touchnots){
for(let k = 0,n = touchnots.length; k < n; k++){
let start = touchnots[k];
start = start.replace(/([a-zA-Z0-9._-]+):touchnot#([a-zA-Z0-9._-]+)/,"($1):touchnot#($2)");
let end = start.replace(/BEGIN/,"END");
let reg = new RegExp(start+"(([\\n\\r\\t]|.)*?)"+end,"g");
html = html.replace(reg,function(m,key2,val,next){
let itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2,item);
if(itemkey != val){
return next;
}else{
return "";
}
});
}
}
/*existブロックを解決*/
if(exists){
for(let k = 0,n = exists.length; k < n; k++){
let start = exists[k];
start = start.replace(/([a-zA-Z0-9._-]+):exist/,"($1):exist");
let end = start.replace(/BEGIN/,"END");
let reg = new RegExp(start+"(([\\n\\r\\t]|.)*?)"+end,"g");
html = html.replace(reg,function(m,key2,next){
let itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2,item);
if(itemkey){
return next;
}else{
return "";
}
});
}
}
/*emptyブロックを解決*/
if(empties){
for(let k = 0,n = empties.length; k < n; k++){
let start = empties[k];
start = start.replace(/([a-zA-Z0-9._-]+):empty/,"($1):empty");
let end = start.replace(/BEGIN/,"END");
let empty = new RegExp(start+"(([\\n\\r\\t]|.)*?)"+end,"g");
html = html.replace(empty,function(m,key2,next){
let 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){
let data;
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;
}
/*絶対パス形式の変数を解決*/
resolveAbsBlock(html){
let that = this;
html = html.replace(/{(.*?)}/g,function(n,key3){
let data = that.getDataByString(key3);
if(typeof data !== "undefined"){
if (typeof data === "function"){
return data.apply(that);
}else{
return data;
}
}else{
return n;
}
});
return html;
}
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 "";
}
});
}
}
/*existブロックを解決*/
if(exists){
for(var k = 0,n = exists.length; k < n; k++){
var start = exists[k];
start = start.replace(/([a-zA-Z0-9._-]+):exist/,"($1):exist");
var end = start.replace(/BEGIN/,"END");
var reg = new RegExp(start+"(([\\n\\r\\t]|.)*?)"+end,"g");
html = html.replace(reg,function(m,key2,next){
var itemkey = typeof item[key2] === "function" ? item[key2].apply(that) : that.getDataFromObj(key2,item);
if(itemkey){
return next;
}else{
return "";
}
});
}
}
/*emptyブロックを解決*/
if(empties){
for(var k = 0,n = empties.length; k < n; k++){
var start = empties[k];
start = start.replace(/([a-zA-Z0-9._-]+):empty/,"($1):empty");
var end = start.replace(/BEGIN/,"END");
var empty = new RegExp(start+"(([\\n\\r\\t]|.)*?)"+end,"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;
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;
}
/*絶対パス形式の変数を解決*/
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;
}
resolveInclude(html){
let include = /<!-- #include id="(.*?)" -->/g;
html = html.replace(include,function(m,key){
return $("#"+key).html();
});
return html;
}
resolveInclude(html){
var include = /<!-- #include id="(.*?)" -->/g;
html = html.replace(include,function(m,key){
return $("#"+key).html();
});
return html;
}
resolveWith(html){
let 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;
}
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;
}
resolveLoop(html){
let loop = /<!-- BEGIN (.+?):loop -->(([\n\r\t]|.)*?)<!-- END (.+?):loop -->/g;
let that = this;
/*ループ文解決*/
html = html.replace(loop,function(m,key,val){
let keyItem = that.getDataByString(key);
let keys = [];
if(typeof keyItem === "function"){
keys = keyItem.apply(that);
}else{
keys = keyItem;
}
let ret = "";
if(keys instanceof Array){
for(let i = 0,n = keys.length; i < n; i++){
ret += that.resolveBlock(val,keys[i],i);
}
}
/*エスケープ削除*/
ret = ret.replace(/\\([^\\])/g,"$1");
return ret;
});
return html;
}
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;
}
removeData(arr){
let data = this.data;
for(let i in data){
for(let t = 0,n = arr.length; t < n; t++){
if(i === arr[t]){
delete data[i];
}
}
}
return this;
}
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;
}
hasLoop(txt){
let loop = /<!-- BEGIN (.+?):loop -->(([\n\r\t]|.)*?)<!-- END (.+?):loop -->/g;
if(txt.match(loop)){
return true;
}else{
return false;
}
}
hasLoop(txt){
var loop = /<!-- BEGIN (.+?):loop -->(([\n\r\t]|.)*?)<!-- END (.+?):loop -->/g;
if(txt.match(loop)){
return true;
}else{
return false;
}
}
getHtml(selector,row){
let $template = $(selector);
let html = $template.html();
if(row){
html = selector;
}
if(!html){
return "";
}
let data = this.data;
/*インクルード解決*/
html = this.resolveInclude(html);
/*with解決*/
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,"");
}
getHtml(selector,row){
var $template = $(selector);
var html = $template.html();
if(row){
html = selector;
}
if(!html){
return "";
}
var data = this.data;
/*インクルード解決*/
html = this.resolveInclude(html);
/*with解決*/
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,"");
}
update(txt,part){
let html = this.getHtml();
let templates = this.templates;
let renderWay = txt || "html";
if(this.beforeUpdated){
this.beforeUpdated();
}
for(let i = 0,n = templates.length; i < n; i++){
let tem = templates[i];
let selector = "#"+tem;
let html = this.getHtml(selector);
let $target = $("[data-id='"+tem+"']");
if(!part || part == tem){
if($target.length == 0){
let $newitem = $("<div data-id='"+tem+"'></div>");
$newitem[renderWay](html);
$(selector).after($newitem);
}else{
$target[renderWay](html);
}
if(part){
break;
}
}
}
this.updateBindingData(part);
if(this.onUpdated){
this.onUpdated(part);
}
return this;
}
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(selector);
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{
$target[renderWay](html);
}
if(part){
break;
}
}
}
this.updateBindingData(part);
if(this.onUpdated){
this.onUpdated();
}
return this;
}
updateBindingData(part){
let that = this;
let templates = that.templates;
for(let i = 0,n = templates.length; i < n; i++){
let temp = templates[i];
if(!part || part == temp){
let $template = $("[data-id='"+temp+"']");
$template.find("[data-bind]").each(function(){
let data = that.getDataByString($(this).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;
}
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).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;
}
copyToClipBoard () {
let copyArea = $("<textarea/>");
$("body").append(copyArea);
copyArea.text(this.getHtml());
copyArea.select();
document.execCommand("copy");
copyArea.remove();
return this;
}
copyToClipBoard () {
var copyArea = $("<textarea/>");
$("body").append(copyArea);
copyArea.text(this.getHtml());
copyArea.select();
document.execCommand("copy");
copyArea.remove();
return this;
}
applyMethod (method) {
let args = [].splice.call(arguments, 0);
args.shift();
return this.method[method].apply(this, args);
}
applyMethod (method) {
var args = [].splice.call(arguments, 0);
args.shift();
return this.method[method].apply(this, args);
}
getComputedProp (prop) {
return this.data[prop].apply(this);
}
getComputedProp (prop) {
return this.data[prop].apply(this);
}
remove (path) {
let object = this.data;
let stack = path.split('.');
while (stack.length > 1) {
object = object[stack.shift()];
}
let shift = stack.shift();
if (shift.match(/^\d+$/)) {
object.splice(Number(shift), 1);
} else {
delete object[shift];
}
return this;
}
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;
}
}
module.exports = aTemplate;

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc