snakeskin
Advanced tools
Comparing version 2.3.15 to 2.3.16
@@ -7,3 +7,3 @@ #!/usr/bin/env node | ||
Program | ||
.version('2.3.15') | ||
.version('2.3.16') | ||
.option('-s, --source [src]', 'source file') | ||
@@ -10,0 +10,0 @@ .option('-o, --output [src]', 'output file') |
@@ -113,2 +113,7 @@ /** | ||
// Хак для {void ...} как {?...} | ||
if (commandType === 'void' && command.charAt(0) === '?') { | ||
command = command.substring(1); | ||
} | ||
// Обработка команд | ||
@@ -115,0 +120,0 @@ var fnRes = Snakeskin.Directions[commandType]( |
@@ -6,3 +6,3 @@ /*! | ||
var Snakeskin = { | ||
VERSION: '2.3.15', | ||
VERSION: '2.3.16', | ||
@@ -9,0 +9,0 @@ Directions: {}, |
@@ -10,4 +10,4 @@ /** | ||
if (!dirObj.parentTplName && !dirObj.protoStart) { | ||
dirObj.save(dirObj.prepareOutput(command + ';')); | ||
dirObj.save(dirObj.prepareOutput(command) + ';'); | ||
} | ||
}; |
{ | ||
"name": "snakeskin", | ||
"version": "2.3.15", | ||
"version": "2.3.16", | ||
"description": "Snakeskin — компилятор блочных шаблонов c поддержкой наследования.\r Независим от среды исполнения, для работы нужен лишь интерпретатор JavaScript.", | ||
@@ -5,0 +5,0 @@ "main": "snakeskin.js", |
@@ -6,3 +6,3 @@ /*! | ||
var Snakeskin = { | ||
VERSION: '2.3.15', | ||
VERSION: '2.3.16', | ||
@@ -9,0 +9,0 @@ Directions: {}, |
@@ -1,2 +0,2 @@ | ||
var Snakeskin={VERSION:"2.3.15",Directions:{},Filters:{},BEM:{},Vars:{},write:{},cache:{}}; | ||
var Snakeskin={VERSION:"2.3.16",Directions:{},Filters:{},BEM:{},Vars:{},write:{},cache:{}}; | ||
(function(g){function h(a){return k[a]}function l(a){return m[a]}Snakeskin.forEach=function(a,c,e){var b=-1,d;if(Array.isArray(a))for(d=a.length;++b<d;)if(e){if(!1===c.call(e,a[b],b,0===b,b===d-1,d))break}else{if(!1===c(a[b],b,0===b,b===d-1,d))break}else{var b=0,f;for(f in a)a.hasOwnProperty(f)&&b++;d=b;b=-1;for(f in a)if(a.hasOwnProperty(f))if(b++,e){if(!1===c.call(e,a[f],f,b,0===b,b===d-1,d))break}else if(!1===c(a[f],f,b,0===b,b===d-1,d))break}};var k={"&":"&","<":"<",">":">",'"':""", | ||
@@ -3,0 +3,0 @@ "'":"'","/":"/"},n=/[&<>"'\/]/g;Snakeskin.Filters.html=function(a){return(a+"").replace(n,h)};Snakeskin.Filters.undef=function(a){return"undefined"!==typeof a?a:""};var m={"&":"&","<":"<",">":">",""":'"',"'":"'","/":"/"},p=/&|<|>|"|'|//g;Snakeskin.Filters.uhtml=function(a){return(a+"").replace(p,l)};var q=/<\/?[^>]+>/g;Snakeskin.Filters.stripTags=function(a){return(a+"").replace(q,"")};var r=/%5B/g,s=/%5D/g;Snakeskin.Filters.uri=function(a){return encodeURI(a+ |
@@ -1,2 +0,2 @@ | ||
var Snakeskin={VERSION:"2.3.15",Directions:{},Filters:{},BEM:{},Vars:{},write:{},cache:{}}; | ||
var Snakeskin={VERSION:"2.3.16",Directions:{},Filters:{},BEM:{},Vars:{},write:{},cache:{}}; | ||
(function(G){function M(b){return N[b]}function O(b){return P[b]}function n(b,c,a){var e=this.prototype,d;for(d in e)e.hasOwnProperty(d)&&e[d].init&&(this[d]=e[d].init());this.canWrite=!0;this.i=-1;this.openBlockI=0;this.posCache={};this.sysPosCache={};this.quotContent=[];var f=this.cDataContent=[];this.source=String(b).replace(/{cdata}([\s\S]*?){(?:\/cdata|end cdata)}/gm,function(a,b){f.push(b);return"__SNAKESKIN_CDATA__"+(f.length-1)}).trim();this.res=(a?"":"/* This code is generated automatically, don't alter it. */")+ | ||
@@ -15,32 +15,32 @@ (c?"var Snakeskin = global.Snakeskin;exports.liveInit = function (path) { Snakeskin = require(path);exec();return this;};function exec() {":"")}Array.isArray||(Array.isArray=function(b){return"[object Array]"===Object.prototype.toString.call(b)});String.prototype.trim||(String.prototype.trim=function(){for(var b=this.replace(/^\s\s*/,""),c=b.length;/\s/.test(b.charAt(--c)););return b.substring(0,c+1)});Snakeskin.forEach=function(b,c,a){var e=-1,d;if(Array.isArray(b))for(d=b.length;++e<d;)if(a){if(!1=== | ||
(c=b[a].innerHTML?c+(a+": (class: "+(b[a].className||"undefined")+", id: "+(b[a].id||"undefined")+"), "):c+(a+": "+b[a]+", "));return c.replace(/, $/,"")};n.prototype.error=function(b){b=Error(b);b.name="Snakeskin Error";return b};Snakeskin.compile=function(b,c,a,e,d){a=a||{};b.innerHTML&&(a.node=b);var f=new n(b.innerHTML||b,c,e);f.sysPosCache["with"]=d;var h;b=0;var l;d="";for(var g=!1,k,m,s=!0,q=!1;++f.i<f.source.length;){var z=f.source,p=z.charAt(f.i),L=z.charAt(f.i+1);if(h||f.tplName||!/\s/.test(p)){if(!m){if(h){if("\\"=== | ||
p||g)g=!g}else g=!1;if(!g)if("/"===p)if("/"===L&&"/"===z.charAt(f.i+2))k="///";else if("*"===L)k="/*",f.i++;else{if("*"===z.charAt(f.i-1)){k=!1;continue}}else/[\n\v\r]/.test(p)&&"///"===k&&(k=!1);if(k)continue;if("{"===p)if(h)b++;else{h=!0;continue}else if(!("}"!==p||b&&b--)){h=!1;z=d.length;d=f.replaceDangerBlocks(d).trim();p=d.replace(/^\//,"end ").replace(/^\?/,"void ").replace(/^{([\s\S]*)}$/m,function(a,b){return"data "+b}).split(" ")[0];p=Snakeskin.Directions[p]?p:"const";!1===Snakeskin.Directions[p]("const"!== | ||
p?d.replace(RegExp("^"+p+"\\s+","m"),""):d,z,f,{commonJS:c,dryRun:e,info:a})&&(l=h=!1);d="";continue}}h?(l&&!f.protoStart&&(f.save("';"),l=!1),"/"!==d&&(m||(K[p]?s=!0:/[^\s\/]/.test(p)&&(s=!1)),D[p]&&("/"===p?s:1)&&!m?m=p:m&&("\\"===p||q)?q=!q:D[p]&&(m===p&&!q)&&(m=!1)),d+=p):f.protoStart||(l||(f.save("__SNAKESKIN_RESULT__ += '"),l=!0),f.parentTplName||f.save(f.defEscape(p)))}}if(0!==f.openBlockI)throw f.error("Missing closing or opening tag in the template, "+f.genErrorAdvInfo(a)+'")!');f.res=f.pasteDangerBlocks(f.res).replace(/[\t\v\r\n]/gm, | ||
"").replace(/__SNAKESKIN_CDATA__(\d+)/g,function(a,b){return f.cDataContent[b].replace(/\n/gm,"\\n").replace(/\r/gm,"\\r").replace(/\v/gm,"\\v").replace(/'/gm,"'")}).replace(/__SNAKESKIN_RESULT__ \+= '';/g,"");f.res+=e?"":"/* Snakeskin templating system. Generated at: "+(new Date).toString()+". */";f.res+=c?"}":"";if(e)return f.res;G?c?eval(f.res):global.eval(f.res):window.eval(f.res);return f.res};var X={"break":!0,"case":!0,"catch":!0,"continue":!0,"delete":!0,"do":!0,"else":!0,"false":!0,finnaly:!0, | ||
"for":!0,"function":!0,"if":!0,"in":!0,"instanceof":!0,"new":!0,"null":!0,"return":!0,"switch":!0,"this":!0,"throw":!0,"true":!0,"try":!0,"typeof":!0,"var":!0,"void":!0,"while":!0,"with":!0,"class":!0,let:!0,"const":!0,"debugger":!0,"interface":!0},Y={"var":!0,let:!0,"const":!0};n.prototype.replaceTplVars=function(b){b=this.pasteDangerBlocks(b);for(var c=0,a,e=!1,d,f,h=!0,l=!1,g="",k=0;k<b.length;k++){var m=b.charAt(k),s=b.charAt(k+1);if(c||"$"!==m||"{"!==s){if(c||(g+=m.replace(/\\/gm,"\\\\").replace(/('|")/gm, | ||
"\\$1")),c){if("\\"===m||e)e=!e;if(!e)if("/"===m)if("/"===s&&"/"===b.charAt(k+2))d="///";else if("*"===s)d="/*",k++;else{if("*"===b.charAt(k-1)){d=!1;continue}}else/[\n\v\r]/.test(m)&&"///"===d&&(d=!1);d||(f||(K[m]?h=!0:/[^\s\/]/.test(m)&&(h=!1)),D[m]&&("/"===m?h:1)&&!f?f=m:f&&("\\"===m||l)?l=!l:D[m]&&(f===m&&!l)&&(f=!1),f||("{"===m?c++:"}"===m&&c--),c?a+=m:(e=!1,g+="' + "+this.prepareOutput(this.replaceDangerBlocks(a))+" + '"))}}else c++,a="",k++}return g};n.prototype.isPrevSyOL=function(b,c){for(var a= | ||
c;a--;){var e=b.charAt(a);if(/\S/.test(e))return"{"===e}return!1};n.prototype.isNextSyOL=function(b,c){for(var a=c;a<b.length;a++){var e=b.charAt(a);if(/\S/.test(e))return":"===e||"="===e&&"="!==b.charAt(a+1)&&"="!==b.charAt(a-1)}return!1};n.prototype.getWord=function(b,c){for(var a="",e,d=0,f,h=null,l=c,g=0;l<b.length;l++,g++){var k=b.charAt(l);if("this["===a||"this."===a){a="this";break}if(d||/[@#$+\-\w\[\]().]/.test(k)){null!==h&&(1<d||1===d&&")"!==k&&"]"!==k)&&(h+=k);if("("===k||"["===k)null=== | ||
h&&(f=g+1,h=""),d++;else if(")"===k||"]"===k)if(d)d--,d||"]"!==k||(e=e?e+("["+this.prepareOutput(h,!0,!0)+"]"):a.substring(0,f)+this.prepareOutput(h,!0,!0)+a.substring(g)+"]",h=null);else break;a+=k}else break}return{word:a,finalWord:e?e:h?a.substring(0,f)+this.prepareOutput(h,!0)+a.substring(g-1):a}};n.prototype.prepareOutput=function(b,c,a,e){var d=0,f=0,h=[],l,g=[],k=[],m=b,s=0,q=!e;e=0;for(var z=this.hasPos("with"),p=this.getPos("with"),n=0,u=0,A=!1,y=!1,t=0;t<b.length;t++){var r=b.charAt(t), | ||
B=b.charAt(t+1),v=b.charAt(t+2),x;if(!x){"("===r&&(l?f++:(h.unshift([t+n]),d++));if(q&&!e&&/[@#$a-z_]/i.test(r)){q=this.getWord(b,t);x=q.word;var q=q.finalWord,v=n+s,C=!X[x]&&!/^__SNAKESKIN_QUOT__\d+/.test(x)&&!this.isPrevSyOL(b,t)&&!this.isNextSyOL(b,t+x.length),E=/([$\w]*)(.*)/;if("@"===r)C&&z?(r=q.substring("@"===B?2:1),E=E.exec(r),"@"===B&&(r="Snakeskin.Vars['"+E[1]+"']"+E[2])):(E=E.exec(q.substring("@"===B?2:1)),r="Snakeskin.Vars['"+E[1]+"']"+E[2]);else if(B=q.replace(/#(?:\d+|)/,""),C&&z){var w= | ||
null;"#"===r&&(w=(w=/#(\d+)/.exec(q))?w[1]:1,w++);p.push({scope:B});var D=w=w?p.length-w:w,r=p.reduce(function(a,b,d,c){w=w?w-1:w;a="undefined"===typeof a.scope?a:a.scope;return null===w||0<w?a+"."+b.scope:d===c.length-1?(0<D?a+".":"")+b.scope:a});p.pop()}else r=B;Y[q]?e=2:!C||c&&!a||(r="Snakeskin.Filters.undef("+r+")");n+=r.length-x.length;q=!1;l?(g[g.length-1]+=r,k[g.length-1]+=x,u+=r.length-x.length):m=m.substring(0,t+v)+r+m.substring(t+x.length+v);t+=x.length-2;x=1;continue}else/[^@#$\w\[\].]/.test(r)&& | ||
(q=!0,0<e&&e--);if(!l){if(")"===r)if("|"===B&&/[!$a-z_]/i.test(v))y=!0;else{d&&d--;h.shift();continue}}else if(")"!==r||f)")"===r&&f&&f--,g[g.length-1]+=r,k[g.length-1]+=r}x&&x--;"|"===B&&/[!$a-z_]/i.test(v)?(q=!1,l||(d?h[0].push(t+1):h.push([0,t+1])),g.push(v),k.push(v),f=0,l=!0,t+=2):l&&(")"===r&&!f||t===b.length-1)&&(l=h[0],r=n-u+s,B=d?m.substring(l[0]+s,l[1]+r):m.substring(0,l[1]+r),g=g.reduce(function(a,b){"!html"!==b?a.push(b):d||(A=!0);return a},[]),g=g.reduce(function(a,b){var c=b.split(" "), | ||
e=c.slice(1).join("").trim();return"Snakeskin.Filters['"+c.shift()+"']"+(y||!d?"(":"")+a+(e?","+e:"")+(y||!d?")":"")},B),k=k.join().length+1,m=d?m.substring(0,l[0]+s)+g+m.substring(l[1]+r+k):g,s+=g.length-B.length-k+n-u,u=n=0,h.pop(),g=[],k=[],l=!1,d&&(d--,y=!1))}return(A||c?"":"Snakeskin.Filters.html(")+m+(A||c?"":")")};Snakeskin.Directions.end=function(b,c,a,e){a.openBlockI--;var d=arguments,f=a.openBlockI+1,h;0===a.openBlockI?Snakeskin.Directions.templateEnd.apply(Snakeskin,arguments):a.isNotSysPos(f)&& | ||
(Snakeskin.forEach(a.posCache,function(b,c){return(b=a.getLastPos(c))&&("undefined"!==typeof b.i&&b.i===f||b===f)?(h=!0,Snakeskin.Directions[c+"End"].apply(Snakeskin,d),!1):!0}),h||(a.parentTplName||a.protoStart)||a.save("};"));Snakeskin.forEach(a.sysPosCache,function(b,c){return(b=a.getLastPos(c))&&("undefined"!==typeof b.i&&b.i===f||b===f)?(Snakeskin.Directions[c+"End"].apply(Snakeskin,d),!1):!0})};n.prototype.startI=0;n.prototype.openBlockI=0;n.prototype.tplName=null;n.prototype.parentTplName= | ||
null;Snakeskin.Directions.template=function(b,c,a,e){a.startI=a.i+1;c=/([\s\S]*?)\(/m.exec(b)[1];var d=a.pasteDangerBlocks(c);a.tplName=d;if(0!==a.openBlockI)throw a.error("Missing closing or opening tag in the template (command: {"+b+'}, template: "'+d+", "+a.genErrorAdvInfo(e.info)+'")!');a.openBlockI++;if(!e.dryRun){var f;/\s+extends\s+/m.test(b)&&(f=a.pasteDangerBlocks(/\s+extends\s+([\s\S]*)/m.exec(b)[1]),a.parentTplName=f);A[d]={};u[d]={};H[d]=0;y[d]={};I[d]=0;C[d]={};J[d]=f;var h=/\(([\s\S]*?)\)/m.exec(b)[1]; | ||
a.save("/* Snakeskin template: "+d+"; "+h.replace(/=([\s\S]*?)(?:,|$)/gm,"")+" */");if(/\.|\[/m.test(c)||e.commonJS){var l="";c.replace(/\[/gm,".").replace(/]/gm,"").split(".").reduce(function(b,c,d,f){a.save("if (typeof "+(e.commonJS?"exports.":"")+b+" === 'undefined') { "+(e.commonJS?"exports.":1===d?G?"var ":"window.":"")+b+" = {}; }");if("__SNAKESKIN_QUOT__"===c.substring(0,18))return b+"["+c+"]";d===f.length-1&&(l=c);return b+"."+c});a.save((e.commonJS?"exports.":"")+c+"= function "+l+"(")}else a.save((G? | ||
"":"window."+c+" = ")+"function "+c+"(");h=h.split(",");v[d]=v[f]?v[f].concat(h):h;v[f]&&Snakeskin.forEach(v[f],function(a){var b=a.split("=");b[0]=b[0].trim();b[1]=b[1]&&b[1].trim();Snakeskin.forEach(h,function(c,d){var e=c.split("=");e[0]=e[0].trim();e[1]=e[1]&&e[1].trim();b[0]===e[0]&&"undefined"===typeof e[1]&&(h[d]=a)})});var g="";Snakeskin.forEach(h,function(b,c){var e=b.split("=");e[0]=e[0].trim();a.save(e[0]);1<e.length&&(v[f]&&!g&&Snakeskin.forEach(v[f],function(a){var b=a.split("="),c;b[0]= | ||
b[0].trim();b[1]=b[1]&&b[1].trim();Snakeskin.forEach(h,function(a){a=a.split("=");a[0]=a[0].trim();a[1]=a[1]&&a[1].trim();return a[0]===b[0]?(c=!0,!1):!0});c||"undefined"===typeof b[1]||(g+="var "+b[0]+" = "+b[1]+";",C[d][b[0]]=a)}),e[1]=e[1].trim(),g+=e[0]+" = typeof "+e[0]+" !== 'undefined' && "+e[0]+" !== null ? "+e[0]+" : "+e[1]+";");C[d][e[0]]=b;c!==h.length-1&&a.save(",")});a.save(") { "+g+"var __SNAKESKIN_RESULT__ = '';");a.save("var TPL_NAME = '"+a.defEscape(a.pasteDangerBlocks(c))+"';var PARENT_TPL_NAME;"); | ||
f&&a.save("PARENT_TPL_NAME = '"+a.defEscape(a.pasteDangerBlocks(f))+"';")}};Snakeskin.Directions.templateEnd=function(b,c,a,e){var d=a.tplName;if(a.backHashI)throw a.error('Proto "'+a.lastBack+'" is not defined (command: {'+b+'}, template: "'+d+", "+a.genErrorAdvInfo(e.info)+'")!');if(!e.dryRun){b=a.source;var f=a.i,h=a.startI;F[d]=b.substring(h,f-c-1);var l=a.parentTplName;if(l)return a.source=b.substring(0,h)+a.getExtStr(d,e.info)+b.substring(f-c-1),A[d]={},u[d]={},H[d]=0,y[d]={},I[d]=0,C[d]={}, | ||
a.i=h-1,a.openBlockI++,!1===Snakeskin.write[l]&&(a.res=a.res.replace(RegExp("/\\* Snakeskin template: "+l.replace(/([.\[\]^$])/gm,"\\$1")+";[\\s\\S]*?/\\* Snakeskin template\\. \\*/","m"),"")),a.parentTplName=null,!1;a.save("return __SNAKESKIN_RESULT__; };if (typeof Snakeskin !== 'undefined') {Snakeskin.cache['"+a.defEscape(a.pasteDangerBlocks(d))+"'] = "+(e.commonJS?"exports.":"")+d+";}/* Snakeskin template. */");a.canWrite=!0;a.tplName=null}};Snakeskin.Directions.call=function(b,c,a){a.parentTplName|| | ||
a.protoStart||a.save("__SNAKESKIN_RESULT__ += "+b+";")};Snakeskin.Directions["void"]=function(b,c,a){a.parentTplName||a.protoStart||a.save(a.prepareOutput(b+";"))};n.prototype.varCache={init:function(){return{}}};Snakeskin.Directions["var"]=function(b,c,a,e){c=a.tplName;var d=b.split("=")[0].trim();if(y[c][d]||C[c][d])throw a.error('Variable "'+d+'" is already defined as constant (command: {var '+b+'}, template: "'+c+", "+a.genErrorAdvInfo(e.info)+'")!');a.varCache[d]=!0;a.parentTplName||a.protoStart|| | ||
a.save(a.prepareOutput("var "+b+";",!0))};Snakeskin.Directions.block=function(b,c,a,e){c=a.tplName;var d=a.parentTplName;if(!e.dryRun&&(d&&!a.hasPos("block")&&!a.hasPos("proto")||!d)){if(A[c][b])throw a.error('Block "'+b+'" is already defined (command: {block '+b+'}, template: "'+c+", "+a.genErrorAdvInfo(e.info)+'")!');A[c][b]={from:a.i-a.startI+1}}a.pushPos("block",{name:b,i:++a.openBlockI},!0)};Snakeskin.Directions.blockEnd=function(b,c,a,e){b=a.popPos("block");e.dryRun||(!a.parentTplName||a.hasPos("block")|| | ||
a.hasPos("proto"))&&a.parentTplName||(A[a.tplName][b.name].to=a.i-a.startI-c-1)};n.prototype.protoStart=!1;Snakeskin.Directions.proto=function(b,c,a,e){c=a.tplName;var d=a.parentTplName;if(!e.dryRun&&(d&&!a.hasPos("block")&&!a.hasPos("proto")||!d)){if(u[c][b])throw a.error('Proto "'+b+'" is already defined (command: {proto'+b+'}, template: "'+c+", "+a.genErrorAdvInfo(e.info)+'")!');u[c][b]={from:a.i-a.startI+1}}a.pushPos("proto",{name:b,i:++a.openBlockI,startI:a.i+1},!0);d||(a.protoStart=!0)};Snakeskin.Directions.protoEnd= | ||
function(b,c,a,e){var d=a.tplName;b=a.parentTplName;var f=a.i,h=a.backHash,l=a.popPos("proto");e.dryRun||(!b||a.hasPos("block")||a.hasPos("proto"))&&b||(u[d][l.name].to=f-a.startI-c-1,H[d]=f-a.startI+1);b||(u[d][l.name].body=Snakeskin.compile("{template "+d+"()}"+a.source.substring(l.startI,f-c-1)+"{end}",null,null,!0,a.getPos("with")));h[l.name]&&!h[l.name].protoStart&&(Snakeskin.forEach(h[l.name],function(b){a.replace(a.res.substring(0,b)+u[d][l.name].body+a.res.substring(b))}),delete h[l.name], | ||
a.backHashI--);a.hasPos("proto")||(a.protoStart=!1)};n.prototype.backHash={init:function(){return{}}};n.prototype.backHashI=0;n.prototype.lastBack=null;Snakeskin.Directions.apply=function(b,c,a){a.parentTplName||a.hasPos("proto")||(u[a.tplName][b]?a.save(u[a.tplName][b].body):(a.backHash[b]||(a.backHash[b]=[],a.backHash[b].protoStart=a.protoStart,a.lastBack=b,a.backHashI++),a.backHash[b].push(a.res.length)))};Snakeskin.Directions.forEach=function(b,c,a){a.pushPos("forEach",++a.openBlockI);a.parentTplName|| | ||
a.protoStart||(b=b.split("=>"),c=a.prepareOutput(b[0],!0),a.save(c+" && Snakeskin.forEach("+c+", function ("+(b[1]||"")+") {"))};Snakeskin.Directions.forEachEnd=function(b,c,a){a.popPos("forEach");a.parentTplName||a.protoStart||a.save("}, this);")};Snakeskin.Directions["for"]=function(b,c,a){a.pushPos("for",++a.openBlockI);a.parentTplName||a.protoStart||a.save("for ("+a.prepareOutput(b,!0)+") {")};Snakeskin.Directions.forEnd=function(b,c,a){a.popPos("for");a.parentTplName||a.protoStart||a.save("}")}; | ||
Snakeskin.Directions["while"]=function(b,c,a){a.pushPos("while",++a.openBlockI);a.parentTplName||a.protoStart||a.save("while ("+a.prepareOutput(b,!0)+") {")};Snakeskin.Directions.whileEnd=function(b,c,a){a.popPos("while");a.parentTplName||a.protoStart||a.save("}")};Snakeskin.Directions.repeat=function(b,c,a){a.pushPos("repeat",++a.openBlockI);a.parentTplName||a.protoStart||a.save("do {")};Snakeskin.Directions.repeatEnd=function(b,c,a){a.popPos("repeat");a.parentTplName||a.protoStart||a.save("} while ("+ | ||
a.prepareOutput(b,!0)+");")};Snakeskin.Directions.until=Snakeskin.Directions.end;Snakeskin.Directions["if"]=function(b,c,a){a.openBlockI++;a.parentTplName||a.protoStart||a.save("if ("+a.prepareOutput(b,!0)+") {")};Snakeskin.Directions.elseIf=function(b,c,a){a.parentTplName||a.protoStart||a.save("} else if ("+a.prepareOutput(b,!0)+") {")};Snakeskin.Directions["else"]=function(b,c,a){a.parentTplName||a.protoStart||a.save("} else {")};Snakeskin.Directions["with"]=function(b,c,a){a.pushPos("with",{scope:b, | ||
i:++a.openBlockI},!0)};Snakeskin.Directions.withEnd=function(b,c,a){a.popPos("with")};Snakeskin.Directions["const"]=function(b,c,a,e){var d=a.tplName,f=a.parentTplName,h=a.protoStart,l=a.i,g=a.startI;if(f||h||!/^console\./.test(b))if(/^[@#$a-z_][$\w\[\].'"\s]*[^=]=[^=]/im.test(b)){var k=b.split("=")[0].trim(),m=k.charAt(0);if(d){if(!(e.dryRun||a.varCache[k]||"#"===m||"@"===m||(!f||a.hasPos("block")||a.hasPos("proto"))&&f)){if(y[d][k]||C[d][k])throw a.error('Constant "'+k+'" is already defined (command: {'+ | ||
b+'}, template: "'+d+", "+a.genErrorAdvInfo(e.info)+'")!');if(W[k])throw a.error("Can't declare constant \""+k+'", try another name (command: {'+b+'}, template: "'+d+", "+a.genErrorAdvInfo(e.info)+'")!');if(a.hasPos("forEach"))throw a.error('Constant "'+k+"\" can't be defined in a loop (command: {"+b+'}, template: "'+d+", "+a.genErrorAdvInfo(e.info)+'")!');y[d][k]={from:l-g-c,to:l-g};I[d]=l-g+1}f||h||(a.varCache[k]||"#"===m||"@"===m?a.save(a.prepareOutput(b+";",!0)):a.save(a.prepareOutput((/[.\[]/m.test(k)? | ||
"":"var ")+b+";",!0)))}else a.save("if (typeof Snakeskin !== 'undefined') { Snakeskin.Vars."+a.prepareOutput(b,!0,null,!0)+"; }")}else f||(h||!d)||a.save("__SNAKESKIN_RESULT__ += "+a.prepareOutput(b)+";");else a.save(b+";")};Snakeskin.Directions.cut=function(b,c,a){b=a.pasteDangerBlocks(b);Snakeskin.write[b]||(Snakeskin.write[b]=!1)};Snakeskin.Directions.save=function(b,c,a){Snakeskin.write[a.pasteDangerBlocks(b)]=!0};Snakeskin.Directions.setBEM=function(b,c,a){b=b.match(/([\s\S]*?),\s+([\s\S]*)/m); | ||
Snakeskin.BEM[b[1]]=(new Function("return {"+a.pasteDangerBlocks(b[2])+"}"))()};Snakeskin.Directions.bem=function(b,c,a){a.pushPos("bem",{i:++a.openBlockI,tag:/^\(/.test(b)?/\(([\s\S]*?)\)/m.exec(b)[1]:null});c=a.getLastPos("bem");b=c.tag?b.replace(/^[\s\S]*?\)([\s\S]*)/m,"$1"):b;b=b.trim().split(",");var e=b[0];c.original=Snakeskin.BEM[e]&&Snakeskin.BEM[e].tag;a.parentTplName||a.protoStart||(b[0]+="'",b=b.join(","),a.save("__SNAKESKIN_RESULT__ += '<"+(c.tag||c.original||"div")+' class="i-block" data-params="{name: \\\''+ | ||
a.replaceTplVars(b)+"}\">';"))};Snakeskin.Directions.bemEnd=function(b,c,a){b=a.popPos("bem");a.parentTplName||a.protoStart||a.save("__SNAKESKIN_RESULT__ += '</"+(b.tag||b.original||"div")+">';")};Snakeskin.Directions.data=function(b,c,a){a.parentTplName||a.protoStart||a.save("__SNAKESKIN_RESULT__ += '"+a.replaceTplVars(b)+"';")};G&&(module.exports=Snakeskin)})("undefined"===typeof window); | ||
p||g)g=!g}else g=!1;if(!g)if("/"===p)if("/"===L&&"/"===z.charAt(f.i+2))k="///";else if("*"===L)k="/*",f.i++;else{if("*"===z.charAt(f.i-1)){k=!1;continue}}else/[\n\v\r]/.test(p)&&"///"===k&&(k=!1);if(k)continue;if("{"===p)if(h)b++;else{h=!0;continue}else if(!("}"!==p||b&&b--)){h=!1;z=d.length;d=f.replaceDangerBlocks(d).trim();p=d.replace(/^\//,"end ").replace(/^\?/,"void ").replace(/^{([\s\S]*)}$/m,function(a,b){return"data "+b}).split(" ")[0];p=Snakeskin.Directions[p]?p:"const";"void"===p&&"?"=== | ||
d.charAt(0)&&(d=d.substring(1));!1===Snakeskin.Directions[p]("const"!==p?d.replace(RegExp("^"+p+"\\s+","m"),""):d,z,f,{commonJS:c,dryRun:e,info:a})&&(l=h=!1);d="";continue}}h?(l&&!f.protoStart&&(f.save("';"),l=!1),"/"!==d&&(m||(K[p]?s=!0:/[^\s\/]/.test(p)&&(s=!1)),D[p]&&("/"===p?s:1)&&!m?m=p:m&&("\\"===p||q)?q=!q:D[p]&&(m===p&&!q)&&(m=!1)),d+=p):f.protoStart||(l||(f.save("__SNAKESKIN_RESULT__ += '"),l=!0),f.parentTplName||f.save(f.defEscape(p)))}}if(0!==f.openBlockI)throw f.error("Missing closing or opening tag in the template, "+ | ||
f.genErrorAdvInfo(a)+'")!');f.res=f.pasteDangerBlocks(f.res).replace(/[\t\v\r\n]/gm,"").replace(/__SNAKESKIN_CDATA__(\d+)/g,function(a,b){return f.cDataContent[b].replace(/\n/gm,"\\n").replace(/\r/gm,"\\r").replace(/\v/gm,"\\v").replace(/'/gm,"'")}).replace(/__SNAKESKIN_RESULT__ \+= '';/g,"");f.res+=e?"":"/* Snakeskin templating system. Generated at: "+(new Date).toString()+". */";f.res+=c?"}":"";if(e)return f.res;G?c?eval(f.res):global.eval(f.res):window.eval(f.res);return f.res};var X={"break":!0, | ||
"case":!0,"catch":!0,"continue":!0,"delete":!0,"do":!0,"else":!0,"false":!0,finnaly:!0,"for":!0,"function":!0,"if":!0,"in":!0,"instanceof":!0,"new":!0,"null":!0,"return":!0,"switch":!0,"this":!0,"throw":!0,"true":!0,"try":!0,"typeof":!0,"var":!0,"void":!0,"while":!0,"with":!0,"class":!0,let:!0,"const":!0,"debugger":!0,"interface":!0},Y={"var":!0,let:!0,"const":!0};n.prototype.replaceTplVars=function(b){b=this.pasteDangerBlocks(b);for(var c=0,a,e=!1,d,f,h=!0,l=!1,g="",k=0;k<b.length;k++){var m=b.charAt(k), | ||
s=b.charAt(k+1);if(c||"$"!==m||"{"!==s){if(c||(g+=m.replace(/\\/gm,"\\\\").replace(/('|")/gm,"\\$1")),c){if("\\"===m||e)e=!e;if(!e)if("/"===m)if("/"===s&&"/"===b.charAt(k+2))d="///";else if("*"===s)d="/*",k++;else{if("*"===b.charAt(k-1)){d=!1;continue}}else/[\n\v\r]/.test(m)&&"///"===d&&(d=!1);d||(f||(K[m]?h=!0:/[^\s\/]/.test(m)&&(h=!1)),D[m]&&("/"===m?h:1)&&!f?f=m:f&&("\\"===m||l)?l=!l:D[m]&&(f===m&&!l)&&(f=!1),f||("{"===m?c++:"}"===m&&c--),c?a+=m:(e=!1,g+="' + "+this.prepareOutput(this.replaceDangerBlocks(a))+ | ||
" + '"))}}else c++,a="",k++}return g};n.prototype.isPrevSyOL=function(b,c){for(var a=c;a--;){var e=b.charAt(a);if(/\S/.test(e))return"{"===e}return!1};n.prototype.isNextSyOL=function(b,c){for(var a=c;a<b.length;a++){var e=b.charAt(a);if(/\S/.test(e))return":"===e||"="===e&&"="!==b.charAt(a+1)&&"="!==b.charAt(a-1)}return!1};n.prototype.getWord=function(b,c){for(var a="",e,d=0,f,h=null,l=c,g=0;l<b.length;l++,g++){var k=b.charAt(l);if("this["===a||"this."===a){a="this";break}if(d||/[@#$+\-\w\[\]().]/.test(k)){null!== | ||
h&&(1<d||1===d&&")"!==k&&"]"!==k)&&(h+=k);if("("===k||"["===k)null===h&&(f=g+1,h=""),d++;else if(")"===k||"]"===k)if(d)d--,d||"]"!==k||(e=e?e+("["+this.prepareOutput(h,!0,!0)+"]"):a.substring(0,f)+this.prepareOutput(h,!0,!0)+a.substring(g)+"]",h=null);else break;a+=k}else break}return{word:a,finalWord:e?e:h?a.substring(0,f)+this.prepareOutput(h,!0)+a.substring(g-1):a}};n.prototype.prepareOutput=function(b,c,a,e){var d=0,f=0,h=[],l,g=[],k=[],m=b,s=0,q=!e;e=0;for(var z=this.hasPos("with"),p=this.getPos("with"), | ||
n=0,u=0,A=!1,y=!1,t=0;t<b.length;t++){var r=b.charAt(t),B=b.charAt(t+1),v=b.charAt(t+2),x;if(!x){"("===r&&(l?f++:(h.unshift([t+n]),d++));if(q&&!e&&/[@#$a-z_]/i.test(r)){q=this.getWord(b,t);x=q.word;var q=q.finalWord,v=n+s,C=!X[x]&&!/^__SNAKESKIN_QUOT__\d+/.test(x)&&!this.isPrevSyOL(b,t)&&!this.isNextSyOL(b,t+x.length),E=/([$\w]*)(.*)/;if("@"===r)C&&z?(r=q.substring("@"===B?2:1),E=E.exec(r),"@"===B&&(r="Snakeskin.Vars['"+E[1]+"']"+E[2])):(E=E.exec(q.substring("@"===B?2:1)),r="Snakeskin.Vars['"+E[1]+ | ||
"']"+E[2]);else if(B=q.replace(/#(?:\d+|)/,""),C&&z){var w=null;"#"===r&&(w=(w=/#(\d+)/.exec(q))?w[1]:1,w++);p.push({scope:B});var D=w=w?p.length-w:w,r=p.reduce(function(a,b,d,c){w=w?w-1:w;a="undefined"===typeof a.scope?a:a.scope;return null===w||0<w?a+"."+b.scope:d===c.length-1?(0<D?a+".":"")+b.scope:a});p.pop()}else r=B;Y[q]?e=2:!C||c&&!a||(r="Snakeskin.Filters.undef("+r+")");n+=r.length-x.length;q=!1;l?(g[g.length-1]+=r,k[g.length-1]+=x,u+=r.length-x.length):m=m.substring(0,t+v)+r+m.substring(t+ | ||
x.length+v);t+=x.length-2;x=1;continue}else/[^@#$\w\[\].]/.test(r)&&(q=!0,0<e&&e--);if(!l){if(")"===r)if("|"===B&&/[!$a-z_]/i.test(v))y=!0;else{d&&d--;h.shift();continue}}else if(")"!==r||f)")"===r&&f&&f--,g[g.length-1]+=r,k[g.length-1]+=r}x&&x--;"|"===B&&/[!$a-z_]/i.test(v)?(q=!1,l||(d?h[0].push(t+1):h.push([0,t+1])),g.push(v),k.push(v),f=0,l=!0,t+=2):l&&(")"===r&&!f||t===b.length-1)&&(l=h[0],r=n-u+s,B=d?m.substring(l[0]+s,l[1]+r):m.substring(0,l[1]+r),g=g.reduce(function(a,b){"!html"!==b?a.push(b): | ||
d||(A=!0);return a},[]),g=g.reduce(function(a,b){var c=b.split(" "),e=c.slice(1).join("").trim();return"Snakeskin.Filters['"+c.shift()+"']"+(y||!d?"(":"")+a+(e?","+e:"")+(y||!d?")":"")},B),k=k.join().length+1,m=d?m.substring(0,l[0]+s)+g+m.substring(l[1]+r+k):g,s+=g.length-B.length-k+n-u,u=n=0,h.pop(),g=[],k=[],l=!1,d&&(d--,y=!1))}return(A||c?"":"Snakeskin.Filters.html(")+m+(A||c?"":")")};Snakeskin.Directions.end=function(b,c,a,e){a.openBlockI--;var d=arguments,f=a.openBlockI+1,h;0===a.openBlockI? | ||
Snakeskin.Directions.templateEnd.apply(Snakeskin,arguments):a.isNotSysPos(f)&&(Snakeskin.forEach(a.posCache,function(b,c){return(b=a.getLastPos(c))&&("undefined"!==typeof b.i&&b.i===f||b===f)?(h=!0,Snakeskin.Directions[c+"End"].apply(Snakeskin,d),!1):!0}),h||(a.parentTplName||a.protoStart)||a.save("};"));Snakeskin.forEach(a.sysPosCache,function(b,c){return(b=a.getLastPos(c))&&("undefined"!==typeof b.i&&b.i===f||b===f)?(Snakeskin.Directions[c+"End"].apply(Snakeskin,d),!1):!0})};n.prototype.startI= | ||
0;n.prototype.openBlockI=0;n.prototype.tplName=null;n.prototype.parentTplName=null;Snakeskin.Directions.template=function(b,c,a,e){a.startI=a.i+1;c=/([\s\S]*?)\(/m.exec(b)[1];var d=a.pasteDangerBlocks(c);a.tplName=d;if(0!==a.openBlockI)throw a.error("Missing closing or opening tag in the template (command: {"+b+'}, template: "'+d+", "+a.genErrorAdvInfo(e.info)+'")!');a.openBlockI++;if(!e.dryRun){var f;/\s+extends\s+/m.test(b)&&(f=a.pasteDangerBlocks(/\s+extends\s+([\s\S]*)/m.exec(b)[1]),a.parentTplName= | ||
f);A[d]={};u[d]={};H[d]=0;y[d]={};I[d]=0;C[d]={};J[d]=f;var h=/\(([\s\S]*?)\)/m.exec(b)[1];a.save("/* Snakeskin template: "+d+"; "+h.replace(/=([\s\S]*?)(?:,|$)/gm,"")+" */");if(/\.|\[/m.test(c)||e.commonJS){var l="";c.replace(/\[/gm,".").replace(/]/gm,"").split(".").reduce(function(b,c,d,f){a.save("if (typeof "+(e.commonJS?"exports.":"")+b+" === 'undefined') { "+(e.commonJS?"exports.":1===d?G?"var ":"window.":"")+b+" = {}; }");if("__SNAKESKIN_QUOT__"===c.substring(0,18))return b+"["+c+"]";d===f.length- | ||
1&&(l=c);return b+"."+c});a.save((e.commonJS?"exports.":"")+c+"= function "+l+"(")}else a.save((G?"":"window."+c+" = ")+"function "+c+"(");h=h.split(",");v[d]=v[f]?v[f].concat(h):h;v[f]&&Snakeskin.forEach(v[f],function(a){var b=a.split("=");b[0]=b[0].trim();b[1]=b[1]&&b[1].trim();Snakeskin.forEach(h,function(c,d){var e=c.split("=");e[0]=e[0].trim();e[1]=e[1]&&e[1].trim();b[0]===e[0]&&"undefined"===typeof e[1]&&(h[d]=a)})});var g="";Snakeskin.forEach(h,function(b,c){var e=b.split("=");e[0]=e[0].trim(); | ||
a.save(e[0]);1<e.length&&(v[f]&&!g&&Snakeskin.forEach(v[f],function(a){var b=a.split("="),c;b[0]=b[0].trim();b[1]=b[1]&&b[1].trim();Snakeskin.forEach(h,function(a){a=a.split("=");a[0]=a[0].trim();a[1]=a[1]&&a[1].trim();return a[0]===b[0]?(c=!0,!1):!0});c||"undefined"===typeof b[1]||(g+="var "+b[0]+" = "+b[1]+";",C[d][b[0]]=a)}),e[1]=e[1].trim(),g+=e[0]+" = typeof "+e[0]+" !== 'undefined' && "+e[0]+" !== null ? "+e[0]+" : "+e[1]+";");C[d][e[0]]=b;c!==h.length-1&&a.save(",")});a.save(") { "+g+"var __SNAKESKIN_RESULT__ = '';"); | ||
a.save("var TPL_NAME = '"+a.defEscape(a.pasteDangerBlocks(c))+"';var PARENT_TPL_NAME;");f&&a.save("PARENT_TPL_NAME = '"+a.defEscape(a.pasteDangerBlocks(f))+"';")}};Snakeskin.Directions.templateEnd=function(b,c,a,e){var d=a.tplName;if(a.backHashI)throw a.error('Proto "'+a.lastBack+'" is not defined (command: {'+b+'}, template: "'+d+", "+a.genErrorAdvInfo(e.info)+'")!');if(!e.dryRun){b=a.source;var f=a.i,h=a.startI;F[d]=b.substring(h,f-c-1);var l=a.parentTplName;if(l)return a.source=b.substring(0,h)+ | ||
a.getExtStr(d,e.info)+b.substring(f-c-1),A[d]={},u[d]={},H[d]=0,y[d]={},I[d]=0,C[d]={},a.i=h-1,a.openBlockI++,!1===Snakeskin.write[l]&&(a.res=a.res.replace(RegExp("/\\* Snakeskin template: "+l.replace(/([.\[\]^$])/gm,"\\$1")+";[\\s\\S]*?/\\* Snakeskin template\\. \\*/","m"),"")),a.parentTplName=null,!1;a.save("return __SNAKESKIN_RESULT__; };if (typeof Snakeskin !== 'undefined') {Snakeskin.cache['"+a.defEscape(a.pasteDangerBlocks(d))+"'] = "+(e.commonJS?"exports.":"")+d+";}/* Snakeskin template. */"); | ||
a.canWrite=!0;a.tplName=null}};Snakeskin.Directions.call=function(b,c,a){a.parentTplName||a.protoStart||a.save("__SNAKESKIN_RESULT__ += "+b+";")};Snakeskin.Directions["void"]=function(b,c,a){a.parentTplName||a.protoStart||a.save(a.prepareOutput(b)+";")};n.prototype.varCache={init:function(){return{}}};Snakeskin.Directions["var"]=function(b,c,a,e){c=a.tplName;var d=b.split("=")[0].trim();if(y[c][d]||C[c][d])throw a.error('Variable "'+d+'" is already defined as constant (command: {var '+b+'}, template: "'+ | ||
c+", "+a.genErrorAdvInfo(e.info)+'")!');a.varCache[d]=!0;a.parentTplName||a.protoStart||a.save(a.prepareOutput("var "+b+";",!0))};Snakeskin.Directions.block=function(b,c,a,e){c=a.tplName;var d=a.parentTplName;if(!e.dryRun&&(d&&!a.hasPos("block")&&!a.hasPos("proto")||!d)){if(A[c][b])throw a.error('Block "'+b+'" is already defined (command: {block '+b+'}, template: "'+c+", "+a.genErrorAdvInfo(e.info)+'")!');A[c][b]={from:a.i-a.startI+1}}a.pushPos("block",{name:b,i:++a.openBlockI},!0)};Snakeskin.Directions.blockEnd= | ||
function(b,c,a,e){b=a.popPos("block");e.dryRun||(!a.parentTplName||a.hasPos("block")||a.hasPos("proto"))&&a.parentTplName||(A[a.tplName][b.name].to=a.i-a.startI-c-1)};n.prototype.protoStart=!1;Snakeskin.Directions.proto=function(b,c,a,e){c=a.tplName;var d=a.parentTplName;if(!e.dryRun&&(d&&!a.hasPos("block")&&!a.hasPos("proto")||!d)){if(u[c][b])throw a.error('Proto "'+b+'" is already defined (command: {proto'+b+'}, template: "'+c+", "+a.genErrorAdvInfo(e.info)+'")!');u[c][b]={from:a.i-a.startI+1}}a.pushPos("proto", | ||
{name:b,i:++a.openBlockI,startI:a.i+1},!0);d||(a.protoStart=!0)};Snakeskin.Directions.protoEnd=function(b,c,a,e){var d=a.tplName;b=a.parentTplName;var f=a.i,h=a.backHash,l=a.popPos("proto");e.dryRun||(!b||a.hasPos("block")||a.hasPos("proto"))&&b||(u[d][l.name].to=f-a.startI-c-1,H[d]=f-a.startI+1);b||(u[d][l.name].body=Snakeskin.compile("{template "+d+"()}"+a.source.substring(l.startI,f-c-1)+"{end}",null,null,!0,a.getPos("with")));h[l.name]&&!h[l.name].protoStart&&(Snakeskin.forEach(h[l.name],function(b){a.replace(a.res.substring(0, | ||
b)+u[d][l.name].body+a.res.substring(b))}),delete h[l.name],a.backHashI--);a.hasPos("proto")||(a.protoStart=!1)};n.prototype.backHash={init:function(){return{}}};n.prototype.backHashI=0;n.prototype.lastBack=null;Snakeskin.Directions.apply=function(b,c,a){a.parentTplName||a.hasPos("proto")||(u[a.tplName][b]?a.save(u[a.tplName][b].body):(a.backHash[b]||(a.backHash[b]=[],a.backHash[b].protoStart=a.protoStart,a.lastBack=b,a.backHashI++),a.backHash[b].push(a.res.length)))};Snakeskin.Directions.forEach= | ||
function(b,c,a){a.pushPos("forEach",++a.openBlockI);a.parentTplName||a.protoStart||(b=b.split("=>"),c=a.prepareOutput(b[0],!0),a.save(c+" && Snakeskin.forEach("+c+", function ("+(b[1]||"")+") {"))};Snakeskin.Directions.forEachEnd=function(b,c,a){a.popPos("forEach");a.parentTplName||a.protoStart||a.save("}, this);")};Snakeskin.Directions["for"]=function(b,c,a){a.pushPos("for",++a.openBlockI);a.parentTplName||a.protoStart||a.save("for ("+a.prepareOutput(b,!0)+") {")};Snakeskin.Directions.forEnd=function(b, | ||
c,a){a.popPos("for");a.parentTplName||a.protoStart||a.save("}")};Snakeskin.Directions["while"]=function(b,c,a){a.pushPos("while",++a.openBlockI);a.parentTplName||a.protoStart||a.save("while ("+a.prepareOutput(b,!0)+") {")};Snakeskin.Directions.whileEnd=function(b,c,a){a.popPos("while");a.parentTplName||a.protoStart||a.save("}")};Snakeskin.Directions.repeat=function(b,c,a){a.pushPos("repeat",++a.openBlockI);a.parentTplName||a.protoStart||a.save("do {")};Snakeskin.Directions.repeatEnd=function(b,c, | ||
a){a.popPos("repeat");a.parentTplName||a.protoStart||a.save("} while ("+a.prepareOutput(b,!0)+");")};Snakeskin.Directions.until=Snakeskin.Directions.end;Snakeskin.Directions["if"]=function(b,c,a){a.openBlockI++;a.parentTplName||a.protoStart||a.save("if ("+a.prepareOutput(b,!0)+") {")};Snakeskin.Directions.elseIf=function(b,c,a){a.parentTplName||a.protoStart||a.save("} else if ("+a.prepareOutput(b,!0)+") {")};Snakeskin.Directions["else"]=function(b,c,a){a.parentTplName||a.protoStart||a.save("} else {")}; | ||
Snakeskin.Directions["with"]=function(b,c,a){a.pushPos("with",{scope:b,i:++a.openBlockI},!0)};Snakeskin.Directions.withEnd=function(b,c,a){a.popPos("with")};Snakeskin.Directions["const"]=function(b,c,a,e){var d=a.tplName,f=a.parentTplName,h=a.protoStart,l=a.i,g=a.startI;if(f||h||!/^console\./.test(b))if(/^[@#$a-z_][$\w\[\].'"\s]*[^=]=[^=]/im.test(b)){var k=b.split("=")[0].trim(),m=k.charAt(0);if(d){if(!(e.dryRun||a.varCache[k]||"#"===m||"@"===m||(!f||a.hasPos("block")||a.hasPos("proto"))&&f)){if(y[d][k]|| | ||
C[d][k])throw a.error('Constant "'+k+'" is already defined (command: {'+b+'}, template: "'+d+", "+a.genErrorAdvInfo(e.info)+'")!');if(W[k])throw a.error("Can't declare constant \""+k+'", try another name (command: {'+b+'}, template: "'+d+", "+a.genErrorAdvInfo(e.info)+'")!');if(a.hasPos("forEach"))throw a.error('Constant "'+k+"\" can't be defined in a loop (command: {"+b+'}, template: "'+d+", "+a.genErrorAdvInfo(e.info)+'")!');y[d][k]={from:l-g-c,to:l-g};I[d]=l-g+1}f||h||(a.varCache[k]||"#"===m|| | ||
"@"===m?a.save(a.prepareOutput(b+";",!0)):a.save(a.prepareOutput((/[.\[]/m.test(k)?"":"var ")+b+";",!0)))}else a.save("if (typeof Snakeskin !== 'undefined') { Snakeskin.Vars."+a.prepareOutput(b,!0,null,!0)+"; }")}else f||(h||!d)||a.save("__SNAKESKIN_RESULT__ += "+a.prepareOutput(b)+";");else a.save(b+";")};Snakeskin.Directions.cut=function(b,c,a){b=a.pasteDangerBlocks(b);Snakeskin.write[b]||(Snakeskin.write[b]=!1)};Snakeskin.Directions.save=function(b,c,a){Snakeskin.write[a.pasteDangerBlocks(b)]= | ||
!0};Snakeskin.Directions.setBEM=function(b,c,a){b=b.match(/([\s\S]*?),\s+([\s\S]*)/m);Snakeskin.BEM[b[1]]=(new Function("return {"+a.pasteDangerBlocks(b[2])+"}"))()};Snakeskin.Directions.bem=function(b,c,a){a.pushPos("bem",{i:++a.openBlockI,tag:/^\(/.test(b)?/\(([\s\S]*?)\)/m.exec(b)[1]:null});c=a.getLastPos("bem");b=c.tag?b.replace(/^[\s\S]*?\)([\s\S]*)/m,"$1"):b;b=b.trim().split(",");var e=b[0];c.original=Snakeskin.BEM[e]&&Snakeskin.BEM[e].tag;a.parentTplName||a.protoStart||(b[0]+="'",b=b.join(","), | ||
a.save("__SNAKESKIN_RESULT__ += '<"+(c.tag||c.original||"div")+' class="i-block" data-params="{name: \\\''+a.replaceTplVars(b)+"}\">';"))};Snakeskin.Directions.bemEnd=function(b,c,a){b=a.popPos("bem");a.parentTplName||a.protoStart||a.save("__SNAKESKIN_RESULT__ += '</"+(b.tag||b.original||"div")+">';")};Snakeskin.Directions.data=function(b,c,a){a.parentTplName||a.protoStart||a.save("__SNAKESKIN_RESULT__ += '"+a.replaceTplVars(b)+"';")};G&&(module.exports=Snakeskin)})("undefined"===typeof window); |
Sorry, the diff of this file is too big to display
6549153
5019