nnnjjj123
2020-11-17 1b2c1edb61190eeb19f465ff031eaa3b2a1b8dbc
1
2
3
4
5
6
7
8
9
10
//>>built
define(["dojo/_base/lang","../_base"],function(l,k){var g=l.getObject("tag.logic",!0,k);g.IfNode=l.extend(function(b,a,c,d){this.bools=b;this.trues=a;this.falses=c;this.type=d},{render:function(b,a){var c,d,e;if("or"==this.type){for(c=0;d=this.bools[c];c++)if(e=d[0],d=d[1],(d=d.resolve(b))&&!e||e&&!d)return this.falses&&(a=this.falses.unrender(b,a)),this.trues?this.trues.render(b,a,this):a;this.trues&&(a=this.trues.unrender(b,a));return this.falses?this.falses.render(b,a,this):a}for(c=0;d=this.bools[c];c++)if(e=
d[0],d=d[1],d=d.resolve(b),d==e)return this.trues&&(a=this.trues.unrender(b,a)),this.falses?this.falses.render(b,a,this):a;this.falses&&(a=this.falses.unrender(b,a));return this.trues?this.trues.render(b,a,this):a},unrender:function(b,a){a=this.trues?this.trues.unrender(b,a):a;return a=this.falses?this.falses.unrender(b,a):a},clone:function(b){var a=this.trues?this.trues.clone(b):null;b=this.falses?this.falses.clone(b):null;return new this.constructor(this.bools,a,b,this.type)}});g.IfEqualNode=l.extend(function(b,
a,c,d,e){this.var1=new k._Filter(b);this.var2=new k._Filter(a);this.trues=c;this.falses=d;this.negate=e},{render:function(b,a){var c=this.var1.resolve(b),d=this.var2.resolve(b),c="undefined"!=typeof c?c:"",d="undefined"!=typeof c?d:"";if(this.negate&&c!=d||!this.negate&&c==d)return this.falses&&(a=this.falses.unrender(b,a,this)),this.trues?this.trues.render(b,a,this):a;this.trues&&(a=this.trues.unrender(b,a,this));return this.falses?this.falses.render(b,a,this):a},unrender:function(b,a){return g.IfNode.prototype.unrender.call(this,
b,a)},clone:function(b){var a=this.trues?this.trues.clone(b):null;b=this.falses?this.falses.clone(b):null;return new this.constructor(this.var1.getExpression(),this.var2.getExpression(),a,b,this.negate)}});g.ForNode=l.extend(function(b,a,c,d){this.assign=b;this.loop=new k._Filter(a);this.reversed=c;this.nodelist=d;this.pool=[]},{render:function(b,a){var c,d,e,f=!1,h=this.assign;for(e=0;e<h.length;e++)if("undefined"!=typeof b[h[e]]){f=!0;b=b.push();break}!f&&b.forloop&&(f=!0,b=b.push());e=this.loop.resolve(b)||
[];var g=[];if(l.isObject(e)&&!l.isArrayLike(e))for(c in e)g.push([c,e[c]]);else g=e;for(c=g.length;c<this.pool.length;c++)this.pool[c].unrender(b,a,this);this.reversed&&(g=g.slice(0).reverse());var m=b.forloop={parentloop:b.get("forloop",{})};for(c=d=0;c<g.length;c++){var k=g[c];m.counter0=d;m.counter=d+1;m.revcounter0=g.length-d-1;m.revcounter=g.length-d;m.first=!d;m.last=d==g.length-1;if(l.isArrayLike(k))if(1<h.length){f||(f=!0,b=b.push());var n={};for(e=0;e<k.length&&e<h.length;e++)n[h[e]]=k[e];
l.mixin(b,n)}else b[h[0]]=k[1];else b[h[0]]=k;d+1>this.pool.length&&this.pool.push(this.nodelist.clone(a));a=this.pool[d++].render(b,a,this)}delete b.forloop;if(f)b=b.pop();else for(e=0;e<h.length;e++)delete b[h[e]];return a},unrender:function(b,a){for(var c=0,d;d=this.pool[c];c++)a=d.unrender(b,a);return a},clone:function(b){return new this.constructor(this.assign,this.loop.getExpression(),this.reversed,this.nodelist.clone(b))}});l.mixin(g,{if_:function(b,a){var c,d,e=[],f=a.contents.split();f.shift();
a=f.join(" ");f=a.split(" and ");if(1==f.length)d="or",f=a.split(" or ");else for(d="and",a=0;a<f.length;a++)if(-1!=f[a].indexOf(" or "))throw Error("'if' tags can't mix 'and' and 'or'");for(a=0;c=f[a];a++){var h=!1;0==c.indexOf("not ")&&(c=c.slice(4),h=!0);e.push([h,new k._Filter(c)])}f=b.parse(["else","endif"]);c=!1;a=b.next_token();"else"==a.contents&&(c=b.parse(["endif"]),b.next_token());return new g.IfNode(e,f,c,d)},_ifequal:function(b,a,c){var d=a.split_contents();if(3!=d.length)throw Error(d[0]+
" takes two arguments");var e="end"+d[0],f=b.parse(["else",e]),h=!1;a=b.next_token();"else"==a.contents&&(h=b.parse([e]),b.next_token());return new g.IfEqualNode(d[1],d[2],f,h,c)},ifequal:function(b,a){return g._ifequal(b,a)},ifnotequal:function(b,a){return g._ifequal(b,a,!0)},for_:function(b,a){var c=a.contents.split();if(4>c.length)throw Error("'for' statements should have at least four words: "+a.contents);var d="reversed"==c[c.length-1],e=d?-3:-2;if("in"!=c[c.length+e])throw Error("'for' tag received an invalid argument: "+
a.contents);for(var f=c.slice(1,e).join(" ").split(/ *, */),h=0;h<f.length;h++)if(!f[h]||-1!=f[h].indexOf(" "))throw Error("'for' tag received an invalid argument: "+a.contents);a=b.parse(["endfor"]);b.next_token();return new g.ForNode(f,c[c.length+e+1],d,a)}});return g});