| /* |
| Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. |
| Available via Academic Free License >= 2.1 OR the modified BSD license. |
| see: http://dojotoolkit.org/license for details |
| */ |
| |
| |
| if(!dojo._hasResource["dijit.form.Textarea"]){ |
| dojo._hasResource["dijit.form.Textarea"]=true; |
| dojo.provide("dijit.form.Textarea"); |
| dojo.require("dijit.form.SimpleTextarea"); |
| dojo.declare("dijit.form.Textarea",dijit.form.SimpleTextarea,{cols:"",_previousNewlines:0,_strictMode:(dojo.doc.compatMode!="BackCompat"),_getHeight:function(_1){ |
| var _2=_1.scrollHeight; |
| if(dojo.isIE){ |
| _2+=_1.offsetHeight-_1.clientHeight-((dojo.isIE<8&&this._strictMode)?dojo._getPadBorderExtents(_1).h:0); |
| }else{ |
| if(dojo.isMoz){ |
| _2+=_1.offsetHeight-_1.clientHeight; |
| }else{ |
| if(dojo.isWebKit&&!(dojo.isSafari<4)){ |
| _2+=dojo._getBorderExtents(_1).h; |
| }else{ |
| _2+=dojo._getPadBorderExtents(_1).h; |
| } |
| } |
| } |
| return _2; |
| },_estimateHeight:function(_3){ |
| _3.style.maxHeight=""; |
| _3.style.height="auto"; |
| _3.rows=(_3.value.match(/\n/g)||[]).length+1; |
| },_needsHelpShrinking:dojo.isMoz||dojo.isWebKit,_onInput:function(){ |
| this.inherited(arguments); |
| if(this._busyResizing){ |
| return; |
| } |
| this._busyResizing=true; |
| var _4=this.textbox; |
| if(_4.scrollHeight&&_4.offsetHeight&&_4.clientHeight){ |
| var _5=this._getHeight(_4)+"px"; |
| if(_4.style.height!=_5){ |
| _4.style.maxHeight=_4.style.height=_5; |
| } |
| if(this._needsHelpShrinking){ |
| if(this._setTimeoutHandle){ |
| clearTimeout(this._setTimeoutHandle); |
| } |
| this._setTimeoutHandle=setTimeout(dojo.hitch(this,"_shrink"),0); |
| } |
| }else{ |
| this._estimateHeight(_4); |
| } |
| this._busyResizing=false; |
| },_busyResizing:false,_shrink:function(){ |
| this._setTimeoutHandle=null; |
| if(this._needsHelpShrinking&&!this._busyResizing){ |
| this._busyResizing=true; |
| var _6=this.textbox; |
| var _7=false; |
| if(_6.value==""){ |
| _6.value=" "; |
| _7=true; |
| } |
| var _8=_6.scrollHeight; |
| if(!_8){ |
| this._estimateHeight(_6); |
| }else{ |
| var _9=_6.style.paddingBottom; |
| var _a=dojo._getPadExtents(_6); |
| _a=_a.h-_a.t; |
| _6.style.paddingBottom=_a+1+"px"; |
| var _b=this._getHeight(_6)-1+"px"; |
| if(_6.style.maxHeight!=_b){ |
| _6.style.paddingBottom=_a+_8+"px"; |
| _6.scrollTop=0; |
| _6.style.maxHeight=this._getHeight(_6)-_8+"px"; |
| } |
| _6.style.paddingBottom=_9; |
| } |
| if(_7){ |
| _6.value=""; |
| } |
| this._busyResizing=false; |
| } |
| },resize:function(){ |
| this._onInput(); |
| },_setValueAttr:function(){ |
| this.inherited(arguments); |
| this.resize(); |
| },postCreate:function(){ |
| this.inherited(arguments); |
| dojo.style(this.textbox,{overflowY:"hidden",overflowX:"auto",boxSizing:"border-box",MsBoxSizing:"border-box",WebkitBoxSizing:"border-box",MozBoxSizing:"border-box"}); |
| this.connect(this.textbox,"onscroll",this._onInput); |
| this.connect(this.textbox,"onresize",this._onInput); |
| this.connect(this.textbox,"onfocus",this._onInput); |
| setTimeout(dojo.hitch(this,"resize"),0); |
| }}); |
| } |