diff --git a/dist/tinyDOM-Sideburns.js b/dist/tinyDOM-Sideburns.js index 5c7287a8f20cb89dcde4fd1180a321f04eb0156d..c0b8cda2612e6a95132079d96764aced8b617410 100644 --- a/dist/tinyDOM-Sideburns.js +++ b/dist/tinyDOM-Sideburns.js @@ -1 +1 @@ -(function(window,undefined){"use strict";var globalOptions={ignoreUndefined:!1,escape:"general",escapeSets:{xml:{"&":"&","<":"<",">":">",'"':""","'":"'"},general:{'"':'\\"',"'":"\\'"}}},deepMergeJson=function(obja,objb){var prop;for(prop in objb)objb.hasOwnProperty(prop)&&(obja[prop]="object"==typeof obja[prop]&&"object"==typeof objb[prop]?deepMergeJson(obja[prop],objb[prop]):objb[prop]);return obja},setDeepProperty=function(ident,value,obj,makepath){var list,recurse=function(propList,value,obj){var id;if(propList.length>1){if(id=list.shift(),!obj.hasOwnProperty(id)){if(!makepath)throw new Error("No internal property "+id+" at depth N - "+list.length);obj[id]={}}recurse(propList,value,obj[id])}else obj[propList[0]]=value};return list=ident.push||ident.map?ident:ident.split(".").map(function(e){return e.trim()}),recurse(list,value,obj),obj},getDeepProperty=function(ident,obj){var list,ret=null,recurse=function(propList,obj){var curident;if(propList.length>1){if(!obj.hasOwnProperty(propList[0]))throw curident=propList.reduce(function(a,b,i){return a+(i>0?".":"")+b}),new Error('Invalid proprty, missing expected data "'+curident+'" (IDENT: '+ident+") from data "+JSON.stringify(obj));recurse(propList,obj[list.shift()])}else{if(!obj.hasOwnProperty(propList[0]))throw new Error('Invalid proprty, missing expected data "'+propList[0]+'" (IDENT: '+ident+") from data "+JSON.stringify(obj));ret=obj[propList[0]]}};return list=ident.push||ident.map?ident:ident.split(".").map(function(e){return e.trim()}),recurse(list,obj),ret},getDeepPropertyOrUndef=function(ident,obj){var res;try{res=getDeepProperty(ident,obj)}catch(e){res=void 0}return res},safeDeepMergeJson=function(obja,objb){if("object"!=typeof obja)throw new TypeError("Cannot deep merge with an "+typeof obja+": [Param 1]");if("object"!=typeof objb)throw new TypeError("Cannot deep merge with an "+typeof objb+": [Param 2]");return deepMergeJson(deepMergeJson({},obja),objb)},escapeRegex=function(reg){return reg.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")},escapeData=function(datum,escapes){var prop;for(prop in escapes)escapes.hasOwnProperty(prop)&&(datum=String(datum).split(prop).join(escapes[prop]));return datum},captureTags=/(\[\[)(\#|\/)?\s*(?:([a-zA-Z]+[a-zA-Z0-9]*)\s*\:\s*([a-zA-Z]+[a-zA-Z0-9]*)|([\*\&\>\?]?)\s*((?:\!(?:\(([a-zA-Z]+[a-zA-Z0-9]*)\))?)?)\s*([a-zA-Z](?:[a-zA-Z0-9]*(?:\.(?=[a-zA-Z]))?)+))\s*(\]\])/,Node=function(type,val,content){return this.ident=type||"N_NULL",this.val=val||null,this.content=content||{},this},Token=function(ident,val,info){return this.ident=ident||"T_NULL",this.val=val||null,this.info=info||{},this},tokenise=function(src){var matcher,chunk,tok,tokens=[],i=0,match=null;for(matcher=function(){return null!==(match=captureTags.exec(chunk))};i<src.length;)if(chunk=src.substr(i),matcher()){if(match.index>0&&tokens.push(new Token("STRING",match.input.substr(0,match.index))),tok=new Token("T_NULL",null,{close:!1,escape:!1,escapeType:null}),"#"===match[2])tok.ident="T_DIRECTIVE",tok.val={key:match[3],value:match[4]};else{switch("/"===match[2]&&(tok.info.close=!0),match[5]){case"*":tok.ident="T_LOOP";break;case"&":tok.ident="T_BLOCK";break;case">":tok.ident="T_IMPORT";break;case"?":tok.ident="T_CONDITION";break;default:tok.ident="T_DATA"}"undefined"!=typeof match[6]&&"!"===match[6].charAt(0)&&(tok.info.escape=!0,"undefined"!=typeof match[7]&&(tok.info.escapeType=match[7])),tok.val=match[8]}tokens.push(tok),i+=match.index+match[0].length}else tokens.push(new Token("STRING",chunk)),i+=chunk.length;return tokens.push(new Token("EOD")),tokens},collapseParse=function(tokens){for(var tokenList,j,targetToken,targetNode,nodeName,i=0;i<tokens.length;)if(tokens[i].info&&tokens[i].info.close){for(tokenList=[],targetToken=tokens[i],j=i-1;tokens[j].ident!==targetToken.ident||tokens[j].val!==targetToken.val;)if(tokenList.push(tokens[j]),j-=1,0>j)throw new Error("Unmatched Closing Tag "+targetNode+" at index "+i);switch(targetToken.ident){case"T_LOOP":case"T_BLOCK":case"T_CONDITION":nodeName="N"+targetToken.ident.slice(1);break;default:throw new Error("Invalid block element "+targetToken.ident+" at index "+i)}targetNode=new Node(nodeName,targetToken.val,tokenList.slice().reverse()),tokens.splice(j,i-j+1,targetNode),i=0}else i+=1;return tokens},unwindNode=function(output,node,index,arr){var innerArr,dataArr,content,i,dataVal,datum,escapeType,ifresult,iff;switch(node.ident){case"STRING":return output+node.val;case"T_DIRECTIVE":return setDeepProperty(node.val.key,node.val.value,arr.opts,!0),output;case"T_DATA":return dataVal=node.val,arr.loopTag&&node.val===arr.loopTag.slice(0,-1)&&(dataVal=arr.loopTag+"."+arr.i.toString()),datum=getDeepProperty(dataVal,arr.data),node.info.escape&&(escapeType=node.info.escapeType?node.info.escapeType:arr.opts.escape,datum=escapeData(datum,arr.opts.escapeSets[escapeType])),output+datum;case"T_IMPORT":if(content=arr.includes[node.val],"undefined"!=typeof content&&null!==content)datum=content(arr.data,arr.opts);else{if(!arr.opts.ignoreUndefined)throw new Error("Cannot get include "+node.val);datum=""}return output+datum;case"N_LOOP":for(content="",innerArr=node.content,innerArr.data=arr.data,innerArr.loopTag=node.val,innerArr.includes=arr.includes,innerArr.opts=deepMergeJson({},arr.opts),dataArr=getDeepProperty(node.val,arr.data),i=0;i<dataArr.length;i+=1)innerArr.i=i,content+=innerArr.reduce(unwindNode,"");return output+content;case"N_BLOCK":return innerArr=node.content,innerArr.data=getDeepProperty(node.val,arr.data),innerArr.loopTag=null,innerArr.includes=arr.includes,innerArr.opts=deepMergeJson({},arr.opts),output+innerArr.reduce(unwindNode,"");case"N_CONDITION":return iff=getDeepPropertyOrUndef(node.val,arr.opts),iff?(innerArr=node.content,innerArr.data=arr.data,innerArr.loopTag=null,innerArr.includes=arr.includes,innerArr.opts=deepMergeJson({},arr.opts),ifresult=innerArr.reduce(unwindNode,"")):ifresult="",output+ifresult;default:return output}},render=function(src,data,options){var nodes=collapseParse(tokenise(src));return nodes.data=data,nodes.loopTag=null,nodes.i=null,nodes.includes=render.includes,nodes.opts=safeDeepMergeJson(globalOptions,options),nodes.reduce(unwindNode,"")};if(render.partial=function(src){return function(tokens,data,options){return tokens.data=data,tokens.loopTag=null,tokens.i=null,tokens.includes=render.includes,tokens.opts=safeDeepMergeJson(globalOptions,options),tokens.reduce(unwindNode,"")}.bind(null,collapseParse(tokenise(src)))},render.includes={},render.addInclude=function(name,template){this.includes[name]=template.split?render.partial(template):template},!window.mu)throw new Error("tinyDOM-Sideburns requires tinyDOM to be in use on the page");mu.templates={},mu.render=function(path,data,options){return mu.templates.hasOwnProperty(path)?mu.templates[path](data,options):render(path,data,options)},mu.fn.render=function(path,data,options){var rendered=mu.render(path,data,options),opts=options||{useHtml:!0};"undefined"==typeof opts.useHtml&&(opts.useHtml=!0),this.each(function(i,e){opts.useHtml?e.innerHTML=rendered:e.textContent=rendered})},mu.ready(function(){mu("[type='x-template/sideburns']").each(function(i,e){var name=e.getAttribute("data-name");mu.templates[name]=render.partial(e.textContent)})});})(window); +(function(window,undefined){"use strict";var globalOptions={ignoreUndefined:!1,escape:"general",escapeSets:{xml:{"&":"&","<":"<",">":">",'"':""","'":"'"},general:{'"':'\\"',"'":"\\'"}}},deepMergeJson=function(obja,objb){var prop;for(prop in objb)objb.hasOwnProperty(prop)&&(obja[prop]="object"==typeof obja[prop]&&"object"==typeof objb[prop]?deepMergeJson(obja[prop],objb[prop]):objb[prop]);return obja},setDeepProperty=function(ident,value,obj,makepath){var list,recurse=function(propList,value,obj){var id;if(propList.length>1){if(id=list.shift(),!obj.hasOwnProperty(id)){if(!makepath)throw new Error("No internal property "+id+" at depth N - "+list.length);obj[id]={}}recurse(propList,value,obj[id])}else obj[propList[0]]=value};return list=ident.push||ident.map?ident:ident.split(".").map(function(e){return e.trim()}),recurse(list,value,obj),obj},getDeepProperty=function(ident,obj){var list,ret=null,recurse=function(propList,obj){var curident;if(propList.length>1){if(!obj.hasOwnProperty(propList[0]))throw curident=propList.reduce(function(a,b,i){return a+(i>0?".":"")+b}),new Error('Invalid proprty, missing expected data "'+curident+'" (IDENT: '+ident+") from data "+JSON.stringify(obj));recurse(propList,obj[list.shift()])}else{if(!obj.hasOwnProperty(propList[0]))throw new Error('Invalid proprty, missing expected data "'+propList[0]+'" (IDENT: '+ident+") from data "+JSON.stringify(obj));ret=obj[propList[0]]}};return list=ident.push||ident.map?ident:ident.split(".").map(function(e){return e.trim()}),recurse(list,obj),ret},getDeepPropertyOrUndef=function(ident,obj){var res;try{res=getDeepProperty(ident,obj)}catch(e){res=void 0}return res},safeDeepMergeJson=function(obja,objb){if("object"!=typeof obja)throw new TypeError("Cannot deep merge with an "+typeof obja+": [Param 1]");if("object"!=typeof objb)throw new TypeError("Cannot deep merge with an "+typeof objb+": [Param 2]");return deepMergeJson(deepMergeJson({},obja),objb)},escapeRegex=function(reg){return reg.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")},escapeData=function(datum,escapes){var prop;for(prop in escapes)escapes.hasOwnProperty(prop)&&(datum=String(datum).split(prop).join(escapes[prop]));return datum},captureTags=/(\[\[)(\#|\/)?\s*(?:([a-zA-Z]+[a-zA-Z0-9]*)\s*\:\s*([a-zA-Z]+[a-zA-Z0-9]*)|([\*\&\>\?]?)\s*((?:\!(?:\(([a-zA-Z]+[a-zA-Z0-9]*)\))?)?)\s*([a-zA-Z](?:[a-zA-Z0-9]*(?:\.(?=[a-zA-Z]))?)+))\s*(\]\])/,Node=function(type,val,content){return this.ident=type||"N_NULL",this.val=val||null,this.content=content||{},this},Token=function(ident,val,info){return this.ident=ident||"T_NULL",this.val=val||null,this.info=info||{},this},tokenise=function(src){var matcher,chunk,tok,tokens=[],i=0,match=null;for(matcher=function(){return null!==(match=captureTags.exec(chunk))};i<src.length;)if(chunk=src.substr(i),matcher()){if(match.index>0&&tokens.push(new Token("STRING",match.input.substr(0,match.index))),tok=new Token("T_NULL",null,{close:!1,escape:!1,escapeType:null}),"#"===match[2])tok.ident="T_DIRECTIVE",tok.val={key:match[3],value:match[4]};else{switch("/"===match[2]&&(tok.info.close=!0),match[5]){case"*":tok.ident="T_LOOP";break;case"&":tok.ident="T_BLOCK";break;case">":tok.ident="T_IMPORT";break;case"?":tok.ident="T_CONDITION";break;default:tok.ident="T_DATA"}"undefined"!=typeof match[6]&&"!"===match[6].charAt(0)&&(tok.info.escape=!0,"undefined"!=typeof match[7]&&(tok.info.escapeType=match[7])),tok.val=match[8]}tokens.push(tok),i+=match.index+match[0].length}else tokens.push(new Token("STRING",chunk)),i+=chunk.length;return tokens.push(new Token("EOD")),tokens},collapseParse=function(tokens){for(var tokenList,j,targetToken,targetNode,nodeName,i=0;i<tokens.length;)if(tokens[i].info&&tokens[i].info.close){for(tokenList=[],targetToken=tokens[i],j=i-1;tokens[j].ident!==targetToken.ident||tokens[j].val!==targetToken.val;)if(tokenList.push(tokens[j]),j-=1,0>j)throw new Error("Unmatched Closing Tag "+targetNode+" at index "+i);switch(targetToken.ident){case"T_LOOP":case"T_BLOCK":case"T_CONDITION":nodeName="N"+targetToken.ident.slice(1);break;default:throw new Error("Invalid block element "+targetToken.ident+" at index "+i)}targetNode=new Node(nodeName,targetToken.val,tokenList.slice().reverse()),tokens.splice(j,i-j+1,targetNode),i=0}else i+=1;return tokens},unwindNode=function(output,node,index,arr){var innerArr,dataArr,content,i,dataVal,datum,escapeType,ifresult,iff;switch(node.ident){case"STRING":return output+node.val;case"T_DIRECTIVE":return setDeepProperty(node.val.key,node.val.value,arr.opts,!0),output;case"T_DATA":return dataVal=node.val,arr.loopTag&&node.val===arr.loopTag.slice(0,-1)&&(dataVal=arr.loopTag+"."+arr.i.toString()),datum=getDeepProperty(dataVal,arr.data),node.info.escape&&(escapeType=node.info.escapeType?node.info.escapeType:arr.opts.escape,datum=escapeData(datum,arr.opts.escapeSets[escapeType])),output+datum;case"T_IMPORT":if(content=arr.includes[node.val],"undefined"!=typeof content&&null!==content)datum=content(arr.data,arr.opts);else{if(!arr.opts.ignoreUndefined)throw new Error("Cannot get include "+node.val);datum=""}return output+datum;case"N_LOOP":for(content="",innerArr=node.content,innerArr.data=arr.data,innerArr.loopTag=node.val,innerArr.includes=arr.includes,innerArr.opts=deepMergeJson({},arr.opts),dataArr=getDeepProperty(node.val,arr.data),i=0;i<dataArr.length;i+=1)innerArr.i=i,content+=innerArr.reduce(unwindNode,"");return output+content;case"N_BLOCK":return innerArr=node.content,innerArr.data=getDeepProperty(node.val,arr.data),innerArr.loopTag=null,innerArr.includes=arr.includes,innerArr.opts=deepMergeJson({},arr.opts),output+innerArr.reduce(unwindNode,"");case"N_CONDITION":return iff=getDeepPropertyOrUndef(node.val,arr.opts),iff?(innerArr=node.content,innerArr.data=arr.data,innerArr.loopTag=null,innerArr.includes=arr.includes,innerArr.opts=deepMergeJson({},arr.opts),ifresult=innerArr.reduce(unwindNode,"")):ifresult="",output+ifresult;default:return output}},render=function(src,data,options){var nodes=collapseParse(tokenise(src));return nodes.data=data,nodes.loopTag=null,nodes.i=null,nodes.includes=render.includes,nodes.opts=safeDeepMergeJson(globalOptions,options),nodes.reduce(unwindNode,"")};if(render.partial=function(src){return function(tokens,data,options){return tokens.data=data,tokens.loopTag=null,tokens.i=null,tokens.includes=render.includes,tokens.opts=safeDeepMergeJson(globalOptions,options),tokens.reduce(unwindNode,"")}.bind(null,collapseParse(tokenise(src)))},render.includes={},render.addInclude=function(name,template){this.includes[name]=template.split?render.partial(template):template},!window.mu)throw new Error("tinyDOM-Sideburns requires tinyDOM to be in use on the page");mu.templates={},mu.render=function(path,data,options){return render.includes.hasOwnProperty(path)?render.includes[path](data,options):render(path,data,options)},mu.include=function(path,template){render.addInclude(path,template)},mu.partial=render.partial,mu.fn.render=function(path,data,options){var rendered=mu.render(path,data,options),opts=options||{useHtml:!0};"undefined"==typeof opts.useHtml&&(opts.useHtml=!0),this.each(function(i,e){opts.useHtml?e.innerHTML=rendered:e.textContent=rendered})},mu.ready(function(){mu("[type='x-template/sideburns']").each(function(i,e){var name=e.getAttribute("data-name");render.addInclude(name,e.textContent)})});})(window); diff --git a/dist/tinyDOM-Sideburns.min.js b/dist/tinyDOM-Sideburns.min.js index 877189060d7dad1be354ac27ae8bf2c875a3d40f..9bf7b219828cae9ee81d789127c1cd04fb32daf8 100644 --- a/dist/tinyDOM-Sideburns.min.js +++ b/dist/tinyDOM-Sideburns.min.js @@ -1,2 +1,2 @@ -(function(window,undefined){"use strict";var globalOptions={ignoreUndefined:!1,escape:"general",escapeSets:{xml:{"&":"&","<":"<",">":">",'"':""","'":"'"},general:{'"':'\\"',"'":"\\'"}}},deepMergeJson=function(e,n){var t;for(t in n)n.hasOwnProperty(t)&&(e[t]="object"==typeof e[t]&&"object"==typeof n[t]?deepMergeJson(e[t],n[t]):n[t]);return e},setDeepProperty=function(e,n,t,r){var a,o=function(e,n,t){var i;if(e.length>1){if(i=a.shift(),!t.hasOwnProperty(i)){if(!r)throw new Error("No internal property "+i+" at depth N - "+a.length);t[i]={}}o(e,n,t[i])}else t[e[0]]=n};return a=e.push||e.map?e:e.split(".").map(function(e){return e.trim()}),o(a,n,t),t},getDeepProperty=function(e,n){var t,r=null,a=function(n,o){var i;if(n.length>1){if(!o.hasOwnProperty(n[0]))throw i=n.reduce(function(e,n,t){return e+(t>0?".":"")+n}),new Error('Invalid proprty, missing expected data "'+i+'" (IDENT: '+e+") from data "+JSON.stringify(o));a(n,o[t.shift()])}else{if(!o.hasOwnProperty(n[0]))throw new Error('Invalid proprty, missing expected data "'+n[0]+'" (IDENT: '+e+") from data "+JSON.stringify(o));r=o[n[0]]}};return t=e.push||e.map?e:e.split(".").map(function(e){return e.trim()}),a(t,n),r},getDeepPropertyOrUndef=function(e,n){var t;try{t=getDeepProperty(e,n)}catch(r){t=void 0}return t},safeDeepMergeJson=function(e,n){if("object"!=typeof e)throw new TypeError("Cannot deep merge with an "+typeof e+": [Param 1]");if("object"!=typeof n)throw new TypeError("Cannot deep merge with an "+typeof n+": [Param 2]");return deepMergeJson(deepMergeJson({},e),n)},escapeRegex=function(e){return e.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")},escapeData=function(e,n){var t;for(t in n)n.hasOwnProperty(t)&&(e=String(e).split(t).join(n[t]));return e},captureTags=/(\[\[)(\#|\/)?\s*(?:([a-zA-Z]+[a-zA-Z0-9]*)\s*\:\s*([a-zA-Z]+[a-zA-Z0-9]*)|([\*\&\>\?]?)\s*((?:\!(?:\(([a-zA-Z]+[a-zA-Z0-9]*)\))?)?)\s*([a-zA-Z](?:[a-zA-Z0-9]*(?:\.(?=[a-zA-Z]))?)+))\s*(\]\])/,Node=function(e,n,t){return this.ident=e||"N_NULL",this.val=n||null,this.content=t||{},this},Token=function(e,n,t){return this.ident=e||"T_NULL",this.val=n||null,this.info=t||{},this},tokenise=function(e){var n,t,r,a=[],o=0,i=null;for(n=function(){return null!==(i=captureTags.exec(t))};o<e.length;)if(t=e.substr(o),n()){if(i.index>0&&a.push(new Token("STRING",i.input.substr(0,i.index))),r=new Token("T_NULL",null,{close:!1,escape:!1,escapeType:null}),"#"===i[2])r.ident="T_DIRECTIVE",r.val={key:i[3],value:i[4]};else{switch("/"===i[2]&&(r.info.close=!0),i[5]){case"*":r.ident="T_LOOP";break;case"&":r.ident="T_BLOCK";break;case">":r.ident="T_IMPORT";break;case"?":r.ident="T_CONDITION";break;default:r.ident="T_DATA"}"undefined"!=typeof i[6]&&"!"===i[6].charAt(0)&&(r.info.escape=!0,"undefined"!=typeof i[7]&&(r.info.escapeType=i[7])),r.val=i[8]}a.push(r),o+=i.index+i[0].length}else a.push(new Token("STRING",t)),o+=t.length;return a.push(new Token("EOD")),a},collapseParse=function(e){for(var n,t,r,a,o,i=0;i<e.length;)if(e[i].info&&e[i].info.close){for(n=[],r=e[i],t=i-1;e[t].ident!==r.ident||e[t].val!==r.val;)if(n.push(e[t]),t-=1,0>t)throw new Error("Unmatched Closing Tag "+a+" at index "+i);switch(r.ident){case"T_LOOP":case"T_BLOCK":case"T_CONDITION":o="N"+r.ident.slice(1);break;default:throw new Error("Invalid block element "+r.ident+" at index "+i)}a=new Node(o,r.val,n.slice().reverse()),e.splice(t,i-t+1,a),i=0}else i+=1;return e},unwindNode=function(e,n,t,r){var a,o,i,s,u,l,p,d,c;switch(n.ident){case"STRING":return e+n.val;case"T_DIRECTIVE":return setDeepProperty(n.val.key,n.val.value,r.opts,!0),e;case"T_DATA":return u=n.val,r.loopTag&&n.val===r.loopTag.slice(0,-1)&&(u=r.loopTag+"."+r.i.toString()),l=getDeepProperty(u,r.data),n.info.escape&&(p=n.info.escapeType?n.info.escapeType:r.opts.escape,l=escapeData(l,r.opts.escapeSets[p])),e+l;case"T_IMPORT":if(i=r.includes[n.val],"undefined"!=typeof i&&null!==i)l=i(r.data,r.opts);else{if(!r.opts.ignoreUndefined)throw new Error("Cannot get include "+n.val);l=""}return e+l;case"N_LOOP":for(i="",a=n.content,a.data=r.data,a.loopTag=n.val,a.includes=r.includes,a.opts=deepMergeJson({},r.opts),o=getDeepProperty(n.val,r.data),s=0;s<o.length;s+=1)a.i=s,i+=a.reduce(unwindNode,"");return e+i;case"N_BLOCK":return a=n.content,a.data=getDeepProperty(n.val,r.data),a.loopTag=null,a.includes=r.includes,a.opts=deepMergeJson({},r.opts),e+a.reduce(unwindNode,"");case"N_CONDITION":return c=getDeepPropertyOrUndef(n.val,r.opts),c?(a=n.content,a.data=r.data,a.loopTag=null,a.includes=r.includes,a.opts=deepMergeJson({},r.opts),d=a.reduce(unwindNode,"")):d="",e+d;default:return e}},render=function(e,n,t){var r=collapseParse(tokenise(e));return r.data=n,r.loopTag=null,r.i=null,r.includes=render.includes,r.opts=safeDeepMergeJson(globalOptions,t),r.reduce(unwindNode,"")};if(render.partial=function(e){return function(e,n,t){return e.data=n,e.loopTag=null,e.i=null,e.includes=render.includes,e.opts=safeDeepMergeJson(globalOptions,t),e.reduce(unwindNode,"")}.bind(null,collapseParse(tokenise(e)))},render.includes={},render.addInclude=function(e,n){this.includes[e]=n.split?render.partial(n):n},!window.mu)throw new Error("tinyDOM-Sideburns requires tinyDOM to be in use on the page");mu.templates={},mu.render=function(e,n,t){return mu.templates.hasOwnProperty(e)?mu.templates[e](n,t):render(e,n,t)},mu.fn.render=function(e,n,t){var r=mu.render(e,n,t),a=t||{useHtml:!0};"undefined"==typeof a.useHtml&&(a.useHtml=!0),this.each(function(e,n){a.useHtml?n.innerHTML=r:n.textContent=r})},mu.ready(function(){mu("[type='x-template/sideburns']").each(function(e,n){var t=n.getAttribute("data-name");mu.templates[t]=render.partial(n.textContent)})});})(window); +(function(window,undefined){"use strict";var globalOptions={ignoreUndefined:!1,escape:"general",escapeSets:{xml:{"&":"&","<":"<",">":">",'"':""","'":"'"},general:{'"':'\\"',"'":"\\'"}}},deepMergeJson=function(e,n){var t;for(t in n)n.hasOwnProperty(t)&&(e[t]="object"==typeof e[t]&&"object"==typeof n[t]?deepMergeJson(e[t],n[t]):n[t]);return e},setDeepProperty=function(e,n,t,r){var a,o=function(e,n,t){var i;if(e.length>1){if(i=a.shift(),!t.hasOwnProperty(i)){if(!r)throw new Error("No internal property "+i+" at depth N - "+a.length);t[i]={}}o(e,n,t[i])}else t[e[0]]=n};return a=e.push||e.map?e:e.split(".").map(function(e){return e.trim()}),o(a,n,t),t},getDeepProperty=function(e,n){var t,r=null,a=function(n,o){var i;if(n.length>1){if(!o.hasOwnProperty(n[0]))throw i=n.reduce(function(e,n,t){return e+(t>0?".":"")+n}),new Error('Invalid proprty, missing expected data "'+i+'" (IDENT: '+e+") from data "+JSON.stringify(o));a(n,o[t.shift()])}else{if(!o.hasOwnProperty(n[0]))throw new Error('Invalid proprty, missing expected data "'+n[0]+'" (IDENT: '+e+") from data "+JSON.stringify(o));r=o[n[0]]}};return t=e.push||e.map?e:e.split(".").map(function(e){return e.trim()}),a(t,n),r},getDeepPropertyOrUndef=function(e,n){var t;try{t=getDeepProperty(e,n)}catch(r){t=void 0}return t},safeDeepMergeJson=function(e,n){if("object"!=typeof e)throw new TypeError("Cannot deep merge with an "+typeof e+": [Param 1]");if("object"!=typeof n)throw new TypeError("Cannot deep merge with an "+typeof n+": [Param 2]");return deepMergeJson(deepMergeJson({},e),n)},escapeRegex=function(e){return e.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")},escapeData=function(e,n){var t;for(t in n)n.hasOwnProperty(t)&&(e=String(e).split(t).join(n[t]));return e},captureTags=/(\[\[)(\#|\/)?\s*(?:([a-zA-Z]+[a-zA-Z0-9]*)\s*\:\s*([a-zA-Z]+[a-zA-Z0-9]*)|([\*\&\>\?]?)\s*((?:\!(?:\(([a-zA-Z]+[a-zA-Z0-9]*)\))?)?)\s*([a-zA-Z](?:[a-zA-Z0-9]*(?:\.(?=[a-zA-Z]))?)+))\s*(\]\])/,Node=function(e,n,t){return this.ident=e||"N_NULL",this.val=n||null,this.content=t||{},this},Token=function(e,n,t){return this.ident=e||"T_NULL",this.val=n||null,this.info=t||{},this},tokenise=function(e){var n,t,r,a=[],o=0,i=null;for(n=function(){return null!==(i=captureTags.exec(t))};o<e.length;)if(t=e.substr(o),n()){if(i.index>0&&a.push(new Token("STRING",i.input.substr(0,i.index))),r=new Token("T_NULL",null,{close:!1,escape:!1,escapeType:null}),"#"===i[2])r.ident="T_DIRECTIVE",r.val={key:i[3],value:i[4]};else{switch("/"===i[2]&&(r.info.close=!0),i[5]){case"*":r.ident="T_LOOP";break;case"&":r.ident="T_BLOCK";break;case">":r.ident="T_IMPORT";break;case"?":r.ident="T_CONDITION";break;default:r.ident="T_DATA"}"undefined"!=typeof i[6]&&"!"===i[6].charAt(0)&&(r.info.escape=!0,"undefined"!=typeof i[7]&&(r.info.escapeType=i[7])),r.val=i[8]}a.push(r),o+=i.index+i[0].length}else a.push(new Token("STRING",t)),o+=t.length;return a.push(new Token("EOD")),a},collapseParse=function(e){for(var n,t,r,a,o,i=0;i<e.length;)if(e[i].info&&e[i].info.close){for(n=[],r=e[i],t=i-1;e[t].ident!==r.ident||e[t].val!==r.val;)if(n.push(e[t]),t-=1,0>t)throw new Error("Unmatched Closing Tag "+a+" at index "+i);switch(r.ident){case"T_LOOP":case"T_BLOCK":case"T_CONDITION":o="N"+r.ident.slice(1);break;default:throw new Error("Invalid block element "+r.ident+" at index "+i)}a=new Node(o,r.val,n.slice().reverse()),e.splice(t,i-t+1,a),i=0}else i+=1;return e},unwindNode=function(e,n,t,r){var a,o,i,s,u,l,p,d,c;switch(n.ident){case"STRING":return e+n.val;case"T_DIRECTIVE":return setDeepProperty(n.val.key,n.val.value,r.opts,!0),e;case"T_DATA":return u=n.val,r.loopTag&&n.val===r.loopTag.slice(0,-1)&&(u=r.loopTag+"."+r.i.toString()),l=getDeepProperty(u,r.data),n.info.escape&&(p=n.info.escapeType?n.info.escapeType:r.opts.escape,l=escapeData(l,r.opts.escapeSets[p])),e+l;case"T_IMPORT":if(i=r.includes[n.val],"undefined"!=typeof i&&null!==i)l=i(r.data,r.opts);else{if(!r.opts.ignoreUndefined)throw new Error("Cannot get include "+n.val);l=""}return e+l;case"N_LOOP":for(i="",a=n.content,a.data=r.data,a.loopTag=n.val,a.includes=r.includes,a.opts=deepMergeJson({},r.opts),o=getDeepProperty(n.val,r.data),s=0;s<o.length;s+=1)a.i=s,i+=a.reduce(unwindNode,"");return e+i;case"N_BLOCK":return a=n.content,a.data=getDeepProperty(n.val,r.data),a.loopTag=null,a.includes=r.includes,a.opts=deepMergeJson({},r.opts),e+a.reduce(unwindNode,"");case"N_CONDITION":return c=getDeepPropertyOrUndef(n.val,r.opts),c?(a=n.content,a.data=r.data,a.loopTag=null,a.includes=r.includes,a.opts=deepMergeJson({},r.opts),d=a.reduce(unwindNode,"")):d="",e+d;default:return e}},render=function(e,n,t){var r=collapseParse(tokenise(e));return r.data=n,r.loopTag=null,r.i=null,r.includes=render.includes,r.opts=safeDeepMergeJson(globalOptions,t),r.reduce(unwindNode,"")};if(render.partial=function(e){return function(e,n,t){return e.data=n,e.loopTag=null,e.i=null,e.includes=render.includes,e.opts=safeDeepMergeJson(globalOptions,t),e.reduce(unwindNode,"")}.bind(null,collapseParse(tokenise(e)))},render.includes={},render.addInclude=function(e,n){this.includes[e]=n.split?render.partial(n):n},!window.mu)throw new Error("tinyDOM-Sideburns requires tinyDOM to be in use on the page");mu.templates={},mu.render=function(e,n,t){return render.includes.hasOwnProperty(e)?render.includes[e](n,t):render(e,n,t)},mu.include=function(e,n){render.addInclude(e,n)},mu.partial=render.partial,mu.fn.render=function(e,n,t){var r=mu.render(e,n,t),a=t||{useHtml:!0};"undefined"==typeof a.useHtml&&(a.useHtml=!0),this.each(function(e,n){a.useHtml?n.innerHTML=r:n.textContent=r})},mu.ready(function(){mu("[type='x-template/sideburns']").each(function(e,n){var t=n.getAttribute("data-name");render.addInclude(t,n.textContent)})});})(window); //# sourceMappingURL=tinyDOM-Sideburns.min.js.map diff --git a/dist/tinyDOM-Sideburns.min.js.map b/dist/tinyDOM-Sideburns.min.js.map index f5060d77032c98c434a3ce229cb80ca9997e683d..b1cb738f6d56a0935ec2b244248d62e842a147dd 100644 --- a/dist/tinyDOM-Sideburns.min.js.map +++ b/dist/tinyDOM-Sideburns.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/sideburns.cut.js","src/tdsb.src.js"],"names":["globalOptions","ignoreUndefined","escape","escapeSets","xml","&","<",">","\"","'","general","deepMergeJson","obja","objb","prop","hasOwnProperty","setDeepProperty","ident","value","obj","makepath","list","recurse","propList","id","length","shift","Error","push","map","split","e","trim","getDeepProperty","ret","curident","reduce","a","b","i","JSON","stringify","getDeepPropertyOrUndef","res","undefined","safeDeepMergeJson","TypeError","escapeRegex","reg","replace","escapeData","datum","escapes","String","join","captureTags","Node","type","val","content","this","Token","info","tokenise","src","matcher","chunk","tok","tokens","match","exec","substr","index","input","close","escapeType","key","charAt","collapseParse","tokenList","j","targetToken","targetNode","nodeName","slice","reverse","splice","unwindNode","output","node","arr","innerArr","dataArr","dataVal","ifresult","iff","opts","loopTag","toString","data","includes","render","options","nodes","partial","bind","addInclude","name","template","window","mu","templates","path","fn","rendered","useHtml","each","innerHTML","textContent","ready","getAttribute"],"mappings":"AACA,YACA,IAAIA,gBACIC,iBAAiB,EACjBC,OAAQ,UACRC,YACIC,KACIC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAM,SACNC,IAAK,SAETC,SACIF,IAAM,MACNC,IAAM,SAIlBE,cAAgB,SAAUC,EAAMC,GAC5B,GAAIC,EACJ,KAAKA,IAAQD,GACLA,EAAKE,eAAeD,KAEhBF,EAAKE,GADmB,gBAAhBF,GAAKE,IAA+C,gBAAhBD,GAAKC,GACpCH,cAAcC,EAAKE,GAAOD,EAAKC,IAE/BD,EAAKC,GAI9B,OAAOF,IAEXI,gBAAkB,SAAUC,EAAOC,EAAOC,EAAKC,GAC3C,GAAIC,GACAC,EAAU,SAAUC,EAAUL,EAAOC,GACjC,GAAIK,EACJ,IAAID,EAASE,OAAS,EAAG,CAErB,GADAD,EAAKH,EAAKK,SACLP,EAAIJ,eAAeS,GAAK,CACzB,IAAIJ,EAGA,KAAM,IAAIO,OAAM,wBAA0BH,EAAK,iBAAoBH,EAAW,OAF9EF,GAAIK,MAKZF,EAAQC,EAAUL,EAAOC,EAAIK,QAE7BL,GAAII,EAAS,IAAML,EAW/B,OAJIG,GAHCJ,EAAMW,MAASX,EAAMY,IAGfZ,EAFAA,EAAMa,MAAM,KAAKD,IAAI,SAAUE,GAAI,MAAOA,GAAEC,SAKvDV,EAAQD,EAAMH,EAAOC,GACdA,GAEXc,gBAAkB,SAAUhB,EAAOE,GAC/B,GACIE,GADAa,EAAM,KAENZ,EAAU,SAAUC,EAAUJ,GAC1B,GAAIgB,EACJ,IAAIZ,EAASE,OAAS,EAAG,CACrB,IAAIN,EAAIJ,eAAeQ,EAAS,IAM5B,KAHAY,GAAWZ,EAASa,OAAO,SAAUC,EAAGC,EAAGC,GACvC,MAAOF,IAAKE,EAAI,EAAI,IAAM,IAAMD,IAE9B,GAAIX,OAAM,2CAA8CQ,EAAW,aAAgBlB,EAAQ,eAAiBuB,KAAKC,UAAUtB,GALjIG,GAAQC,EAAUJ,EAAIE,EAAKK,cAO5B,CACH,IAAIP,EAAIJ,eAAeQ,EAAS,IAG5B,KAAM,IAAII,OAAM,2CAA8CJ,EAAS,GAAK,aAAgBN,EAAQ,eAAiBuB,KAAKC,UAAUtB,GAFpIe,GAAMf,EAAII,EAAS,KAcnC,OAJIF,GAHCJ,EAAMW,MAASX,EAAMY,IAGfZ,EAFAA,EAAMa,MAAM,KAAKD,IAAI,SAAUE,GAAI,MAAOA,GAAEC,SAKvDV,EAAQD,EAAMF,GACPe,GAiBXQ,uBAAyB,SAAUzB,EAAOE,GACtC,GAAIwB,EACJ,KACIA,EAAMV,gBAAgBhB,EAAOE,GAC/B,MAAOY,GACLY,EAAMC,OAEV,MAAOD,IAkBXE,kBAAoB,SAAUjC,EAAMC,GAChC,GAAsB,gBAAX,GACP,KAAM,IAAIiC,WAAU,mCAAsC,GAAS,cAEvE,IAAsB,gBAAX,GACP,KAAM,IAAIA,WAAU,mCAAsC,GAAS,cAGvE,OAAOnC,eAAcA,iBAAkBC,GAAOC,IAElDkC,YAAc,SAAUC,GACpB,MAAOA,GAAIC,QAAQ,8BAA+B,SAEtDC,WAAa,SAAUC,EAAOC,GAC1B,GAAItC,EACJ,KAAKA,IAAQsC,GACLA,EAAQrC,eAAeD,KACvBqC,EAAQE,OAAOF,GAAOrB,MAAMhB,GAAMwC,KAAKF,EAAQtC,IAGvD,OAAOqC,IA0BXI,YAAc,kMAYdC,KAAO,SAAUC,EAAMC,EAAKC,GAIxB,MAHAC,MAAK3C,MAAQwC,GAAQ,SACrBG,KAAKF,IAAMA,GAAO,KAClBE,KAAKD,QAAUA,MACRC,MAYXC,MAAQ,SAAU5C,EAAOyC,EAAKI,GAI1B,MAHAF,MAAK3C,MAAQA,GAAS,SACtB2C,KAAKF,IAAMA,GAAO,KAClBE,KAAKE,KAAOA,MACLF,MAWXG,SAAW,SAAUC,GACjB,GAIIC,GACAC,EACAC,EANAC,KAEA7B,EAAI,EACJ8B,EAAQ,IAUZ,KAHAJ,EAAU,WACN,MAA8C,SAArCI,EAAQd,YAAYe,KAAKJ,KAE/B3B,EAAIyB,EAAIvC,QAEX,GADAyC,EAAQF,EAAIO,OAAOhC,GACf0B,IAAW,CAKX,GAJII,EAAMG,MAAQ,GACdJ,EAAOxC,KAAK,GAAIiC,OAAM,SAAUQ,EAAMI,MAAMF,OAAO,EAAGF,EAAMG,SAEhEL,EAAM,GAAIN,OAAM,SAAU,MAAOa,OAAO,EAAOxE,QAAQ,EAAOyE,WAAY,OACzD,MAAbN,EAAM,GACNF,EAAIlD,MAAQ,cACZkD,EAAIT,KACAkB,IAAKP,EAAM,GACXnD,MAAOmD,EAAM,QAEd,CAKH,OAJiB,MAAbA,EAAM,KACNF,EAAIL,KAAKY,OAAQ,GAGbL,EAAM,IACd,IAAK,IACDF,EAAIlD,MAAQ,QACZ,MACJ,KAAK,IACDkD,EAAIlD,MAAQ,SACZ,MACJ,KAAK,IACDkD,EAAIlD,MAAQ,UACZ,MACJ,KAAK,IACDkD,EAAIlD,MAAQ,aACZ,MACJ,SACIkD,EAAIlD,MAAQ,SAGU,mBAAdoD,GAAM,IAA8C,MAAvBA,EAAM,GAAGQ,OAAO,KACrDV,EAAIL,KAAK5D,QAAS,EACQ,mBAAdmE,GAAM,KACdF,EAAIL,KAAKa,WAAaN,EAAM,KAGpCF,EAAIT,IAAMW,EAAM,GAEpBD,EAAOxC,KAAKuC,GACZ5B,GAAK8B,EAAMG,MAAQH,EAAM,GAAG5C,WAE5B2C,GAAOxC,KAAK,GAAIiC,OAAM,SAAUK,IAChC3B,GAAK2B,EAAMzC,MAInB,OADA2C,GAAOxC,KAAK,GAAIiC,OAAM,QACfO,GAUXU,cAAgB,SAAUV,GAQtB,IAPA,GAAIW,GAEAC,EACAC,EACAC,EACAC,EAJA5C,EAAI,EAMDA,EAAI6B,EAAO3C,QACd,GAAI2C,EAAO7B,GAAGuB,MAAQM,EAAO7B,GAAGuB,KAAKY,MAAO,CAKxC,IAJAK,KACAE,EAAcb,EAAO7B,GACrByC,EAAIzC,EAAI,EAEC6B,EAAOY,GAAG/D,QAAUgE,EAAYhE,OAASmD,EAAOY,GAAGtB,MAAQuB,EAAYvB,KAG5E,GAFAqB,EAAUnD,KAAKwC,EAAOY,IACtBA,GAAK,EACG,EAAJA,EACA,KAAM,IAAIrD,OAAM,yBAA2BuD,EAAa,aAAe3C,EAI/E,QAAQ0C,EAAYhE,OACpB,IAAK,SACL,IAAK,UACL,IAAK,cACDkE,EAAW,IAAMF,EAAYhE,MAAMmE,MAAM,EACzC,MACJ,SACI,KAAM,IAAIzD,OAAM,yBAA2BsD,EAAYhE,MAAQ,aAAesB,GAGlF2C,EAAa,GAAI1B,MAAK2B,EAAUF,EAAYvB,IAAKqB,EAAUK,QAAQC,WAEnEjB,EAAOkB,OAAON,EAAIzC,EAAIyC,EAAK,EAAGE,GAC9B3C,EAAI,MAEJA,IAAK,CAGb,OAAO6B,IA8BXmB,WAAa,SAAUC,EAAQC,EAAMjB,EAAOkB,GACxC,GAAIC,GAAUC,EAASjC,EAASpB,EAAGsD,EAAS1C,EAAOwB,EAAYmB,EAAUC,CACzE,QAAQN,EAAKxE,OACb,IAAK,SACD,MAAOuE,GAASC,EAAK/B,GAEzB,KAAK,cAED,MADA1C,iBAAgByE,EAAK/B,IAAIkB,IAAKa,EAAK/B,IAAIxC,MAAOwE,EAAIM,MAAM,GACjDR,CAEX,KAAK,SAgBD,MAfAK,GAAUJ,EAAK/B,IACXgC,EAAIO,SACAR,EAAK/B,MAAQgC,EAAIO,QAAQb,MAAM,EAAG,MAClCS,EAAUH,EAAIO,QAAU,IAAOP,EAAK,EAAEQ,YAG9C/C,EAASlB,gBAAgB4D,EAASH,EAAIS,MAClCV,EAAK3B,KAAK5D,SAENyE,EADAc,EAAK3B,KAAKa,WACGc,EAAK3B,KAAKa,WAEVe,EAAIM,KAAK9F,OAE1BiD,EAAQD,WAAWC,EAAOuC,EAAIM,KAAK7F,WAAWwE,KAE3Ca,EAASrC,CAEpB,KAAK,WAED,GADAQ,EAAU+B,EAAIU,SAASX,EAAK/B,KACL,mBAAZC,IAAuC,OAAZA,EAClCR,EAAQQ,EAAQ+B,EAAIS,KAAMT,EAAIM,UAC3B,CACH,IAAIN,EAAIM,KAAK/F,gBAGT,KAAM,IAAI0B,OAAM,sBAAwB8D,EAAK/B,IAF7CP,GAAQ,GAKhB,MAAOqC,GAASrC,CACpB,KAAK,SAWD,IAVAQ,EAAU,GAEVgC,EAAWF,EAAK9B,QAChBgC,EAASQ,KAAOT,EAAIS,KACpBR,EAASM,QAAUR,EAAK/B,IACxBiC,EAASS,SAAWV,EAAIU,SACxBT,EAASK,KAAOrF,iBAAkB+E,EAAIM,MAEtCJ,EAAU3D,gBAAgBwD,EAAK/B,IAAKgC,EAAIS,MAEnC5D,EAAI,EAAGA,EAAIqD,EAAQnE,OAAQc,GAAK,EACjCoD,EAASpD,EAAIA,EACboB,GAAWgC,EAASvD,OAAOmD,WAAY,GAG3C,OAAOC,GAAS7B,CAEpB,KAAK,UAMD,MALAgC,GAAWF,EAAK9B,QAChBgC,EAASQ,KAAOlE,gBAAgBwD,EAAK/B,IAAKgC,EAAIS,MAC9CR,EAASM,QAAU,KACnBN,EAASS,SAAWV,EAAIU,SACxBT,EAASK,KAAOrF,iBAAkB+E,EAAIM,MAC/BR,EAASG,EAASvD,OAAOmD,WAAY,GAEhD,KAAK,cAcD,MAbAQ,GAAMrD,uBAAuB+C,EAAK/B,IAAKgC,EAAIM,MACvCD,GACAJ,EAAWF,EAAK9B,QAChBgC,EAASQ,KAAOT,EAAIS,KACpBR,EAASM,QAAU,KACnBN,EAASS,SAAWV,EAAIU,SACxBT,EAASK,KAAOrF,iBAAkB+E,EAAIM,MAEtCF,EAAWH,EAASvD,OAAOmD,WAAY,KAEvCO,EAAW,GAGRN,EAASM,CAEpB,SACI,MAAON,KAgBfa,OAAS,SAAUrC,EAAKmC,EAAMG,GAC1B,GAAIC,GAAQzB,cAAcf,SAASC,GAMnC,OALAuC,GAAMJ,KAAOA,EACbI,EAAMN,QAAU,KAChBM,EAAMhE,EAAI,KACVgE,EAAMH,SAAWC,OAAOD,SACxBG,EAAMP,KAAOnD,kBAAkB7C,cAAesG,GACvCC,EAAMnE,OAAOmD,WAAY,ICxdxC,IDmeAc,OAAOG,QAAU,SAAUxC,GACvB,MAAO,UAAUI,EAAQ+B,EAAMG,GAM3B,MALAlC,GAAO+B,KAAOA,EACd/B,EAAO6B,QAAU,KACjB7B,EAAO7B,EAAI,KACX6B,EAAOgC,SAAWC,OAAOD,SACzBhC,EAAO4B,KAAOnD,kBAAkB7C,cAAesG,GACxClC,EAAOhC,OAAOmD,WAAY,KACnCkB,KAAK,KAAM3B,cAAcf,SAASC,MAGxCqC,OAAOD,YACPC,OAAOK,WAAa,SAAUC,EAAMC,GAE5BhD,KAAKwC,SAASO,GADdC,EAAS9E,MACauE,OAAOG,QAAQI,GAEfA,ICnfzBC,OAAOC,GACR,KAAM,IAAInF,OAAM,8DAGpBmF,IAAGC,aAEHD,GAAGT,OAAS,SAAUW,EAAMb,EAAMG,GAC9B,MAAIQ,IAAGC,UAAUhG,eAAeiG,GACrBF,GAAGC,UAAUC,GAAMb,EAAMG,GAEzBD,OAAOW,EAAMb,EAAMG,IAKlCQ,GAAGG,GAAGZ,OAAS,SAAUW,EAAMb,EAAMG,GACjC,GAAIY,GAAWJ,GAAGT,OAAOW,EAAMb,EAAMG,GACjCN,EAAOM,IAAYa,SAAS,EACJ,oBAAjBnB,GAAKmB,UACZnB,EAAKmB,SAAU,GAGnBvD,KAAKwD,KAAK,SAAU7E,EAAGR,GACfiE,EAAKmB,QACLpF,EAAEsF,UAAYH,EAEdnF,EAAEuF,YAAcJ,KAK5BJ,GAAGS,MAAM,WACLT,GAAG,iCAAiCM,KAAK,SAAU7E,EAAGR,GAClD,GAAI4E,GAAO5E,EAAEyF,aAAa,YAC1BV,IAAGC,UAAUJ,GAAQN,OAAOG,QAAQzE,EAAEuF"} \ No newline at end of file +{"version":3,"sources":["src/sideburns.cut.js","src/tdsb.src.js"],"names":["globalOptions","ignoreUndefined","escape","escapeSets","xml","&","<",">","\"","'","general","deepMergeJson","obja","objb","prop","hasOwnProperty","setDeepProperty","ident","value","obj","makepath","list","recurse","propList","id","length","shift","Error","push","map","split","e","trim","getDeepProperty","ret","curident","reduce","a","b","i","JSON","stringify","getDeepPropertyOrUndef","res","undefined","safeDeepMergeJson","TypeError","escapeRegex","reg","replace","escapeData","datum","escapes","String","join","captureTags","Node","type","val","content","this","Token","info","tokenise","src","matcher","chunk","tok","tokens","match","exec","substr","index","input","close","escapeType","key","charAt","collapseParse","tokenList","j","targetToken","targetNode","nodeName","slice","reverse","splice","unwindNode","output","node","arr","innerArr","dataArr","dataVal","ifresult","iff","opts","loopTag","toString","data","includes","render","options","nodes","partial","bind","addInclude","name","template","window","mu","templates","path","include","fn","rendered","useHtml","each","innerHTML","textContent","ready","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/src/tdsb.src.js b/src/tdsb.src.js index 8c0c55d9e2248af3fd8e79db678ca47c7b16def5..6ba3adc709b5d2c193767eafdfa63398c5b6d16c 100644 --- a/src/tdsb.src.js +++ b/src/tdsb.src.js @@ -2,16 +2,19 @@ if (!window.mu) { throw new Error("tinyDOM-Sideburns requires tinyDOM to be in use on the page"); } -mu.templates = {}; - mu.render = function (path, data, options) { - if (mu.templates.hasOwnProperty(path)) { - return mu.templates[path](data, options); + if (render.includes.hasOwnProperty(path)) { + return render.includes[path](data, options); } else { return render(path, data, options); } }; +mu.include = function (path, template) { + render.addInclude(path, template); +}; + +mu.partial = render.partial; mu.fn.render = function (path, data, options) { var rendered = mu.render(path, data, options), @@ -32,6 +35,6 @@ mu.fn.render = function (path, data, options) { mu.ready(function () { mu("[type='x-template/sideburns']").each(function (i, e) { var name = e.getAttribute("data-name"); - mu.templates[name] = render.partial(e.textContent); + render.addInclude(name, e.textContent); }); });