//>>built define("dojox/data/KeyValueStore",["dojo/_base/declare","dojo/_base/lang","dojo/_base/xhr","dojo/_base/window","dojo/data/util/simpleFetch","dojo/data/util/filter"],function(_1,_2,_3,_4,_5,_6){ var _7=_1("dojox.data.KeyValueStore",null,{constructor:function(_8){ if(_8.url){ this.url=_8.url; } this._keyValueString=_8.data; this._keyValueVar=_8.dataVar; this._keyAttribute="key"; this._valueAttribute="value"; this._storeProp="_keyValueStore"; this._features={"dojo.data.api.Read":true,"dojo.data.api.Identity":true}; this._loadInProgress=false; this._queuedFetches=[]; if(_8&&"urlPreventCache" in _8){ this.urlPreventCache=_8.urlPreventCache?true:false; } },url:"",data:"",urlPreventCache:false,_assertIsItem:function(_9){ if(!this.isItem(_9)){ throw new Error("dojox.data.KeyValueStore: a function was passed an item argument that was not an item"); } },_assertIsAttribute:function(_a,_b){ if(!_2.isString(_b)){ throw new Error("dojox.data.KeyValueStore: a function was passed an attribute argument that was not an attribute object nor an attribute name string"); } },getValue:function(_c,_d,_e){ this._assertIsItem(_c); this._assertIsAttribute(_c,_d); var _f; if(_d==this._keyAttribute){ _f=_c[this._keyAttribute]; }else{ _f=_c[this._valueAttribute]; } if(_f===undefined){ _f=_e; } return _f; },getValues:function(_10,_11){ var _12=this.getValue(_10,_11); return (_12?[_12]:[]); },getAttributes:function(_13){ return [this._keyAttribute,this._valueAttribute,_13[this._keyAttribute]]; },hasAttribute:function(_14,_15){ this._assertIsItem(_14); this._assertIsAttribute(_14,_15); return (_15==this._keyAttribute||_15==this._valueAttribute||_15==_14[this._keyAttribute]); },containsValue:function(_16,_17,_18){ var _19=undefined; if(typeof _18==="string"){ _19=_6.patternToRegExp(_18,false); } return this._containsValue(_16,_17,_18,_19); },_containsValue:function(_1a,_1b,_1c,_1d){ var _1e=this.getValues(_1a,_1b); for(var i=0;i<_1e.length;++i){ var _1f=_1e[i]; if(typeof _1f==="string"&&_1d){ return (_1f.match(_1d)!==null); }else{ if(_1c===_1f){ return true; } } } return false; },isItem:function(_20){ if(_20&&_20[this._storeProp]===this){ return true; } return false; },isItemLoaded:function(_21){ return this.isItem(_21); },loadItem:function(_22){ },getFeatures:function(){ return this._features; },close:function(_23){ },getLabel:function(_24){ return _24[this._keyAttribute]; },getLabelAttributes:function(_25){ return [this._keyAttribute]; },_fetchItems:function(_26,_27,_28){ var _29=this; var _2a=function(_2b,_2c){ var _2d=null; if(_2b.query){ _2d=[]; var _2e=_2b.queryOptions?_2b.queryOptions.ignoreCase:false; var _2f={}; for(var key in _2b.query){ var _30=_2b.query[key]; if(typeof _30==="string"){ _2f[key]=_6.patternToRegExp(_30,_2e); } } for(var i=0;i<_2c.length;++i){ var _31=true; var _32=_2c[i]; for(var key in _2b.query){ var _30=_2b.query[key]; if(!_29._containsValue(_32,key,_30,_2f[key])){ _31=false; } } if(_31){ _2d.push(_32); } } }else{ if(_2b.identity){ _2d=[]; var _33; for(var key in _2c){ _33=_2c[key]; if(_33[_29._keyAttribute]==_2b.identity){ _2d.push(_33); break; } } }else{ if(_2c.length>0){ _2d=_2c.slice(0,_2c.length); } } } _27(_2d,_2b); }; if(this._loadFinished){ _2a(_26,this._arrayOfAllItems); }else{ if(this.url!==""){ if(this._loadInProgress){ this._queuedFetches.push({args:_26,filter:_2a}); }else{ this._loadInProgress=true; var _34={url:_29.url,handleAs:"json-comment-filtered",preventCache:this.urlPreventCache}; var _35=_3.get(_34); _35.addCallback(function(_36){ _29._processData(_36); _2a(_26,_29._arrayOfAllItems); _29._handleQueuedFetches(); }); _35.addErrback(function(_37){ _29._loadInProgress=false; throw _37; }); } }else{ if(this._keyValueString){ this._processData(eval(this._keyValueString)); this._keyValueString=null; _2a(_26,this._arrayOfAllItems); }else{ if(this._keyValueVar){ this._processData(this._keyValueVar); this._keyValueVar=null; _2a(_26,this._arrayOfAllItems); }else{ throw new Error("dojox.data.KeyValueStore: No source data was provided as either URL, String, or Javascript variable data input."); } } } } },_handleQueuedFetches:function(){ if(this._queuedFetches.length>0){ for(var i=0;i