text: //>>built
  define("dojox/mvc/_DataBindingMixin",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/array","dojo/_base/declare","dojo/Stateful","dijit/registry"],function(_1,_2,_3,_4,_5,_6){
  _1.deprecated("dojox.mvc._DataBindingMixin","Use dojox/mvc/at for data binding.");
  return _4("dojox.mvc._DataBindingMixin",null,{ref:null,isValid:function(){
  var _7=this.get("valid");
  return typeof _7!="undefined"?_7:this.get("binding")?this.get("binding").get("valid"):true;
  },_dbstartup:function(){
  if(this._databound){
  return;
  }
  this._unwatchArray(this._viewWatchHandles);
  this._viewWatchHandles=[this.watch("ref",function(_8,_9,_a){
  if(this._databound&&_9!==_a){
  this._setupBinding();
  }
  }),this.watch("value",function(_b,_c,_d){
  if(this._databound){
  var _e=this.get("binding");
  if(_e){
  if(!((_d&&_c)&&(_c.valueOf()===_d.valueOf()))){
  _e.set("value",_d);
  }
  }
  }
  })];
  this._beingBound=true;
  this._setupBinding();
  delete this._beingBound;
  this._databound=true;
  },_setupBinding:function(_f){
  if(!this.ref){
  return;
  }
  var ref=this.ref,pw,pb,_10;
  if(ref&&_2.isFunction(ref.toPlainObject)){
  _10=ref;
  }else{
  if(/^\s*expr\s*:\s*/.test(ref)){
  ref=ref.replace(/^\s*expr\s*:\s*/,"");
  _10=_2.getObject(ref);
  }else{
  if(/^\s*rel\s*:\s*/.test(ref)){
  ref=ref.replace(/^\s*rel\s*:\s*/,"");
  _f=_f||this._getParentBindingFromDOM();
  if(_f){
  _10=_2.getObject(""+ref,false,_f);
  }
  }else{
  if(/^\s*widget\s*:\s*/.test(ref)){
  ref=ref.replace(/^\s*widget\s*:\s*/,"");
  var _11=ref.split(".");
  if(_11.length==1){
  _10=_6.byId(ref).get("binding");
  }else{
  pb=_6.byId(_11.shift()).get("binding");
  _10=_2.getObject(_11.join("."),false,pb);
  }
  }else{
  _f=_f||this._getParentBindingFromDOM();
  if(_f){
  _10=_2.getObject(""+ref,false,_f);
  }else{
  try{
  var b=_2.getObject(""+ref)||{};
  if(_2.isFunction(b.set)&&_2.isFunction(b.watch)){
  _10=b;
  }
  }
  catch(err){
  if(ref.indexOf("${")==-1){
  console.warn("dojox/mvc/_DataBindingMixin: '"+this.domNode+"' widget with illegal ref not evaluating to a dojo/Stateful node: '"+ref+"'");
  }
  }
  }
  }
  }
  }
  }
  if(_10){
  if(_2.isFunction(_10.toPlainObject)){
  this.binding=_10;
  if(this[this._relTargetProp||"target"]!==_10){
  this.set(this._relTargetProp||"target",_10);
  }
  this._updateBinding("binding",null,_10);
  }else{
  console.warn("dojox/mvc/_DataBindingMixin: '"+this.domNode+"' widget with illegal ref not evaluating to a dojo/Stateful node: '"+ref+"'");
  }
  }
  },_isEqual:function(one,_12){
  return one===_12||isNaN(one)&&typeof one==="number"&&isNaN(_12)&&typeof _12==="number";
  },_updateBinding:function(_13,old,_14){
  this._unwatchArray(this._modelWatchHandles);
  var _15=this.get("binding");
  if(_15&&_2.isFunction(_15.watch)){
  var _16=this;
  this._modelWatchHandles=[_15.watch("value",function(_17,old,_18){
  if(_16._isEqual(old,_18)){
  return;
  }
  if(_16._isEqual(_16.get("value"),_18)){
  return;
  }
  _16.set("value",_18);
  }),_15.watch("valid",function(_19,old,_1a){
  _16._updateProperty(_19,old,_1a,true);
  if(_1a!==_16.get(_19)){
  if(_16.validate&&_2.isFunction(_16.validate)){
  _16.validate();
  }
  }
  }),_15.watch("required",function(_1b,old,_1c){
  _16._updateProperty(_1b,old,_1c,false,_1b,_1c);
  }),_15.watch("readOnly",function(_1d,old,_1e){
  _16._updateProperty(_1d,old,_1e,false,_1d,_1e);
  }),_15.watch("relevant",function(_1f,old,_20){
  _16._updateProperty(_1f,old,_20,false,"disabled",!_20);
  })];
  var val=_15.get("value");
  if(val!=null){
  this.set("value",val);
  }
  }
  this._updateChildBindings();
  },_updateProperty:function(_21,old,_22,_23,_24,_25){
  if(old===_22){
  return;
  }
  if(_22===null&&_23!==undefined){
  _22=_23;
  }
  if(_22!==this.get("binding").get(_21)){
  this.get("binding").set(_21,_22);
  }
  if(_24){
  this.set(_24,_25);
  }
  },_updateChildBindings:function(_26){
  var _27=this.get("binding")||_26;
  if(_27&&!this._beingBound){
  _3.forEach(_6.findWidgets(this.domNode),function(_28){
  if(_28.ref&&_28._setupBinding){
  _28._setupBinding(_27);
  }else{
  _28._updateChildBindings(_27);
  }
  });
  }
  },_getParentBindingFromDOM:function(){
  var pn=this.domNode.parentNode,pw,pb;
  while(pn){
  pw=_6.getEnclosingWidget(pn);
  if(pw){
  pb=pw.get("binding");
  if(pb&&_2.isFunction(pb.toPlainObject)){
  break;
  }
  }
  pn=pw?pw.domNode.parentNode:null;
  }
  return pb;
  },_unwatchArray:function(_29){
  _3.forEach(_29,function(h){
  h.unwatch();
  });
  }});
  });
  