//>>built
define("dojox/dtl/contrib/data",["dojo/_base/kernel","dojo/_base/lang","../_base","dojo/_base/array"],function(_1,_2,dd,_3){_2.getObject("dojox.dtl.contrib.data",true);var _4=dd.contrib.data;var _5=true;_4._BoundItem=_2.extend(function(_6,_7){this.item=_6;this.store=_7;},{get:function(_8){var _9=this.store;var _a=this.item;if(_8=="getLabel"){return _9.getLabel(_a);}else{if(_8=="getAttributes"){return _9.getAttributes(_a);}else{if(_8=="getIdentity"){if(_9.getIdentity){return _9.getIdentity(_a);}return "Store has no identity API";}else{if(!_9.hasAttribute(_a,_8)){if(_8.slice(-1)=="s"){if(_5){_5=false;_1.deprecated("You no longer need an extra s to call getValues, it can be figured out automatically");}_8=_8.slice(0,-1);}if(!_9.hasAttribute(_a,_8)){return;}}var _b=_9.getValues(_a,_8);if(!_b){return;}if(!_2.isArray(_b)){return new _4._BoundItem(_b,_9);}_b=_3.map(_b,function(_c){if(_2.isObject(_c)&&_9.isItem(_c)){return new _4._BoundItem(_c,_9);}return _c;});_b.get=_4._get;return _b;}}}}});_4._BoundItem.prototype.get.safe=true;_4.BindDataNode=_2.extend(function(_d,_e,_f,_10){this.items=_d&&new dd._Filter(_d);this.query=_e&&new dd._Filter(_e);this.store=new dd._Filter(_f);this.alias=_10;},{render:function(_11,_12){var _13=this.items&&this.items.resolve(_11);var _14=this.query&&this.query.resolve(_11);var _15=this.store.resolve(_11);if(!_15||!_15.getFeatures){throw new Error("data_bind didn't receive a store");}if(_14){var _16=false;_15.fetch({query:_14,sync:true,scope:this,onComplete:function(it){_16=true;_13=it;}});if(!_16){throw new Error("The bind_data tag only works with a query if the store executed synchronously");}}var _17=[];if(_13){for(var i=0,_18;_18=_13[i];i++){_17.push(new _4._BoundItem(_18,_15));}}_11[this.alias]=_17;return _12;},unrender:function(_19,_1a){return _1a;},clone:function(){return this;}});_2.mixin(_4,{_get:function(key){if(this.length){return (this[0] instanceof _4._BoundItem)?this[0].get(key):this[0][key];}},bind_data:function(_1b,_1c){var _1d=_1c.contents.split();if(_1d[2]!="to"||_1d[4]!="as"||!_1d[5]){throw new Error("data_bind expects the format: 'data_bind items to store as varName'");}return new _4.BindDataNode(_1d[1],null,_1d[3],_1d[5]);},bind_query:function(_1e,_1f){var _20=_1f.contents.split();if(_20[2]!="to"||_20[4]!="as"||!_20[5]){throw new Error("data_bind expects the format: 'bind_query query to store as varName'");}return new _4.BindDataNode(null,_20[1],_20[3],_20[5]);}});_4._get.safe=true;dd.register.tags("dojox.dtl.contrib",{"data":["bind_data","bind_query"]});return dojox.dtl.contrib.data;});