//>>built define("dojox/dtl/tag/loop",["dojo/_base/lang","dojo/_base/array","dojo/_base/json","../_base","dojox/string/tokenize"],function(_1,_2,_3,dd,_4){ _1.getObject("dojox.dtl.tag.loop",true); var _5=dd.tag.loop; _5.CycleNode=_1.extend(function(_6,_7,_8,_9){ this.cyclevars=_6; this.name=_7; this.contents=_8; this.shared=_9||{counter:-1,map:{}}; },{render:function(_a,_b){ if(_a.forloop&&!_a.forloop.counter0){ this.shared.counter=-1; } ++this.shared.counter; var _c=this.cyclevars[this.shared.counter%this.cyclevars.length]; var _d=this.shared.map; if(!_d[_c]){ _d[_c]=new dd._Filter(_c); } _c=_d[_c].resolve(_a,_b); if(this.name){ _a[this.name]=_c; } this.contents.set(_c); return this.contents.render(_a,_b); },unrender:function(_e,_f){ return this.contents.unrender(_e,_f); },clone:function(_10){ return new this.constructor(this.cyclevars,this.name,this.contents.clone(_10),this.shared); }}); _5.IfChangedNode=_1.extend(function(_11,_12,_13){ this.nodes=_11; this._vars=_12; this.shared=_13||{last:null,counter:0}; this.vars=_2.map(_12,function(_14){ return new dojox.dtl._Filter(_14); }); },{render:function(_15,_16){ if(_15.forloop){ if(_15.forloop.counter<=this.shared.counter){ this.shared.last=null; } this.shared.counter=_15.forloop.counter; } var _17; if(this.vars.length){ _17=_3.toJson(_2.map(this.vars,function(_18){ return _18.resolve(_15); })); }else{ _17=this.nodes.dummyRender(_15,_16); } if(_17!=this.shared.last){ var _19=(this.shared.last===null); this.shared.last=_17; _15=_15.push(); _15.ifchanged={firstloop:_19}; _16=this.nodes.render(_15,_16); _15=_15.pop(); }else{ _16=this.nodes.unrender(_15,_16); } return _16; },unrender:function(_1a,_1b){ return this.nodes.unrender(_1a,_1b); },clone:function(_1c){ return new this.constructor(this.nodes.clone(_1c),this._vars,this.shared); }}); _5.RegroupNode=_1.extend(function(_1d,key,_1e){ this._expression=_1d; this.expression=new dd._Filter(_1d); this.key=key; this.alias=_1e; },{_push:function(_1f,_20,_21){ if(_21.length){ _1f.push({grouper:_20,list:_21}); } },render:function(_22,_23){ _22[this.alias]=[]; var _24=this.expression.resolve(_22); if(_24){ var _25=null; var _26=[]; for(var i=0;i<_24.length;i++){ var id=_24[i][this.key]; if(_25!==id){ this._push(_22[this.alias],_25,_26); _25=id; _26=[_24[i]]; }else{ _26.push(_24[i]); } } this._push(_22[this.alias],_25,_26); } return _23; },unrender:function(_27,_28){ return _28; },clone:function(_29,_2a){ return this; }}); _1.mixin(_5,{cycle:function(_2b,_2c){ var _2d=_2c.split_contents(); if(_2d.length<2){ throw new Error("'cycle' tag requires at least two arguments"); } if(_2d[1].indexOf(",")!=-1){ var _2e=_2d[1].split(","); _2d=[_2d[0]]; for(var i=0;i<_2e.length;i++){ _2d.push("\""+_2e[i]+"\""); } } if(_2d.length==2){ var _2f=_2d[_2d.length-1]; if(!_2b._namedCycleNodes){ throw new Error("No named cycles in template: '"+_2f+"' is not defined"); } if(!_2b._namedCycleNodes[_2f]){ throw new Error("Named cycle '"+_2f+"' does not exist"); } return _2b._namedCycleNodes[_2f]; } if(_2d.length>4&&_2d[_2d.length-2]=="as"){ var _2f=_2d[_2d.length-1]; var _30=new _5.CycleNode(_2d.slice(1,_2d.length-2),_2f,_2b.create_text_node()); if(!_2b._namedCycleNodes){ _2b._namedCycleNodes={}; } _2b._namedCycleNodes[_2f]=_30; }else{ _30=new _5.CycleNode(_2d.slice(1),null,_2b.create_text_node()); } return _30; },ifchanged:function(_31,_32){ var _33=_32.contents.split(); var _34=_31.parse(["endifchanged"]); _31.delete_first_token(); return new _5.IfChangedNode(_34,_33.slice(1)); },regroup:function(_35,_36){ var _37=_4(_36.contents,/(\s+)/g,function(_38){ return _38; }); if(_37.length<11||_37[_37.length-3]!="as"||_37[_37.length-7]!="by"){ throw new Error("Expected the format: regroup list by key as newList"); } var _39=_37.slice(2,-8).join(""); var key=_37[_37.length-5]; var _3a=_37[_37.length-1]; return new _5.RegroupNode(_39,key,_3a); }}); return dojox.dtl.tag.loop; });