//>>built define("dijit/_editor/range",["dojo/_base/array","dojo/_base/declare","dojo/_base/lang","dojo/_base/window","../main"],function(_1,_2,_3,_4,_5){ _5.range={}; _5.range.getIndex=function(_6,_7){ var _8=[],_9=[]; var _a=_6; var _b,n; while(_6!=_7){ var i=0; _b=_6.parentNode; while((n=_b.childNodes[i++])){ if(n===_6){ --i; break; } } _8.unshift(i); _9.unshift(i-_b.childNodes.length); _6=_b; } if(_8.length>0&&_a.nodeType==3){ n=_a.previousSibling; while(n&&n.nodeType==3){ _8[_8.length-1]--; n=n.previousSibling; } n=_a.nextSibling; while(n&&n.nodeType==3){ _9[_9.length-1]++; n=n.nextSibling; } } return {o:_8,r:_9}; }; _5.range.getNode=function(_c,_d){ if(!_3.isArray(_c)||_c.length==0){ return _d; } var _e=_d; _1.every(_c,function(i){ if(i>=0&&i<_e.childNodes.length){ _e=_e.childNodes[i]; }else{ _e=null; return false; } return true; }); return _e; }; _5.range.getCommonAncestor=function(n1,n2,_f){ _f=_f||n1.ownerDocument.body; var _10=function(n){ var as=[]; while(n){ as.unshift(n); if(n!==_f){ n=n.parentNode; }else{ break; } } return as; }; var _11=_10(n1); var _12=_10(n2); var m=Math.min(_11.length,_12.length); var com=_11[0]; for(var i=1;i0){ _1.every(_3d.childNodes,function(_41,i){ var _42; if(_41.nodeType!=3){ _3b.moveToElementText(_41); if(_3b.compareEndPoints(_3c,_3a)>0){ if(_40&&_40.nodeType==3){ _3e=_40; _42=true; }else{ _3e=_3d; _3f=i; return false; } }else{ if(i==_3d.childNodes.length-1){ _3e=_3d; _3f=_3d.childNodes.length; return false; } } }else{ if(i==_3d.childNodes.length-1){ _3e=_41; _42=true; } } if(_42&&_3e){ var _43=_5.range.adjacentNoneTextNode(_3e)[0]; if(_43){ _3e=_43.nextSibling; }else{ _3e=_3d.firstChild; } var _44=_5.range.adjacentNoneTextNode(_3e); _43=_44[0]; var _45=_44[1]; if(_43){ _3b.moveToElementText(_43); _3b.collapse(false); }else{ _3b.moveToElementText(_3d); } _3b.setEndPoint(_3c,_3a); _3f=_3b.text.length-_45; return false; } _40=_41; return true; }); }else{ _3e=_3d; _3f=0; } if(!end&&_3e.nodeType==1&&_3f==_3e.childNodes.length){ var _46=_3e.nextSibling; if(_46&&_46.nodeType==3){ _3e=_46; _3f=0; } } return [_3e,_3f]; },setEndPoint:function(_47,_48,_49){ var _4a=_47.duplicate(),_4b,len; if(_48.nodeType!=3){ if(_49>0){ _4b=_48.childNodes[_49-1]; if(_4b){ if(_4b.nodeType==3){ _48=_4b; _49=_4b.length; }else{ if(_4b.nextSibling&&_4b.nextSibling.nodeType==3){ _48=_4b.nextSibling; _49=0; }else{ _4a.moveToElementText(_4b.nextSibling?_4b:_48); var _4c=_4b.parentNode; var _4d=_4c.insertBefore(_4b.ownerDocument.createTextNode(" "),_4b.nextSibling); _4a.collapse(false); _4c.removeChild(_4d); } } } }else{ _4a.moveToElementText(_48); _4a.collapse(true); } } if(_48.nodeType==3){ var _4e=_5.range.adjacentNoneTextNode(_48); var _4f=_4e[0]; len=_4e[1]; if(_4f){ _4a.moveToElementText(_4f); _4a.collapse(false); if(_4f.contentEditable!="inherit"){ len++; } }else{ _4a.moveToElementText(_48.parentNode); _4a.collapse(true); _4a.move("character",1); _4a.move("character",-1); } _49+=len; if(_49>0){ if(_4a.move("character",_49)!=_49){ console.error("Error when moving!"); } } } return _4a; },decomposeTextRange:function(_50){ var _51=_5.range.ie.getEndPoint(_50); var _52=_51[0],_53=_51[1]; var _54=_51[0],_55=_51[1]; if(_50.htmlText.length){ if(_50.htmlText==_50.text){ _55=_53+_50.text.length; }else{ _51=_5.range.ie.getEndPoint(_50,true); _54=_51[0],_55=_51[1]; } } return [_52,_53,_54,_55]; },setRange:function(_56,_57,_58,_59,_5a,_5b){ var _5c=_5.range.ie.setEndPoint(_56,_57,_58); _56.setEndPoint("StartToStart",_5c); if(!_5b){ var end=_5.range.ie.setEndPoint(_56,_59,_5a); } _56.setEndPoint("EndToEnd",end||_5c); return _56; }}; _2("dijit.range.W3CRange",null,{constructor:function(){ if(arguments.length>0){ this.setStart(arguments[0][0],arguments[0][1]); this.setEnd(arguments[0][2],arguments[0][3]); }else{ this.commonAncestorContainer=null; this.startContainer=null; this.startOffset=0; this.endContainer=null; this.endOffset=0; this.collapsed=true; } },_updateInternal:function(){ if(this.startContainer!==this.endContainer){ this.commonAncestorContainer=_5.range.getCommonAncestor(this.startContainer,this.endContainer); }else{ this.commonAncestorContainer=this.startContainer; } this.collapsed=(this.startContainer===this.endContainer)&&(this.startOffset==this.endOffset); },setStart:function(_5d,_5e){ _5e=parseInt(_5e); if(this.startContainer===_5d&&this.startOffset==_5e){ return; } delete this._cachedBookmark; this.startContainer=_5d; this.startOffset=_5e; if(!this.endContainer){ this.setEnd(_5d,_5e); }else{ this._updateInternal(); } },setEnd:function(_5f,_60){ _60=parseInt(_60); if(this.endContainer===_5f&&this.endOffset==_60){ return; } delete this._cachedBookmark; this.endContainer=_5f; this.endOffset=_60; if(!this.startContainer){ this.setStart(_5f,_60); }else{ this._updateInternal(); } },setStartAfter:function(_61,_62){ this._setPoint("setStart",_61,_62,1); },setStartBefore:function(_63,_64){ this._setPoint("setStart",_63,_64,0); },setEndAfter:function(_65,_66){ this._setPoint("setEnd",_65,_66,1); },setEndBefore:function(_67,_68){ this._setPoint("setEnd",_67,_68,0); },_setPoint:function(_69,_6a,_6b,ext){ var _6c=_5.range.getIndex(_6a,_6a.parentNode).o; this[_69](_6a.parentNode,_6c.pop()+ext); },_getIERange:function(){ var r=(this._body||this.endContainer.ownerDocument.body).createTextRange(); _5.range.ie.setRange(r,this.startContainer,this.startOffset,this.endContainer,this.endOffset,this.collapsed); return r; },getBookmark:function(){ this._getIERange(); return this._cachedBookmark; },_select:function(){ var r=this._getIERange(); r.select(); },deleteContents:function(){ var s=this.startContainer,r=this._getIERange(); if(s.nodeType===3&&!this.startOffset){ this.setStartBefore(s); } r.pasteHTML(""); this.endContainer=this.startContainer; this.endOffset=this.startOffset; this.collapsed=true; },cloneRange:function(){ var r=new _5.range.W3CRange([this.startContainer,this.startOffset,this.endContainer,this.endOffset]); r._body=this._body; return r; },detach:function(){ this._body=null; this.commonAncestorContainer=null; this.startContainer=null; this.startOffset=0; this.endContainer=null; this.endOffset=0; this.collapsed=true; }}); } return _5.range; });