//>>built define("dijit/_editor/plugins/EnterKeyHandling",["dojo/_base/declare","dojo/dom-construct","dojo/_base/event","dojo/keys","dojo/_base/lang","dojo/_base/sniff","dojo/_base/window","dojo/window","../_Plugin","../RichText","../range","../selection"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){ return _1("dijit._editor.plugins.EnterKeyHandling",_9,{blockNodeForEnter:"BR",constructor:function(_d){ if(_d){ if("blockNodeForEnter" in _d){ _d.blockNodeForEnter=_d.blockNodeForEnter.toUpperCase(); } _5.mixin(this,_d); } },setEditor:function(_e){ if(this.editor===_e){ return; } this.editor=_e; if(this.blockNodeForEnter=="BR"){ this.editor.customUndo=true; _e.onLoadDeferred.addCallback(_5.hitch(this,function(d){ this.connect(_e.document,"onkeypress",function(e){ if(e.charOrCode==_4.ENTER){ var ne=_5.mixin({},e); ne.shiftKey=true; if(!this.handleEnterKey(ne)){ _3.stop(e); } } }); return d; })); }else{ if(this.blockNodeForEnter){ var h=_5.hitch(this,this.handleEnterKey); _e.addKeyHandler(13,0,0,h); _e.addKeyHandler(13,0,1,h); this.connect(this.editor,"onKeyPressed","onKeyPressed"); } } },onKeyPressed:function(){ if(this._checkListLater){ if(_7.withGlobal(this.editor.window,"isCollapsed",dijit)){ var _f=_7.withGlobal(this.editor.window,"getAncestorElement",_10,["LI"]); if(!_f){ _a.prototype.execCommand.call(this.editor,"formatblock",this.blockNodeForEnter); var _11=_7.withGlobal(this.editor.window,"getAncestorElement",_10,[this.blockNodeForEnter]); if(_11){ _11.innerHTML=this.bogusHtmlContent; if(_6("ie")){ var r=this.editor.document.selection.createRange(); r.move("character",-1); r.select(); } }else{ console.error("onKeyPressed: Cannot find the new block node"); } }else{ if(_6("mozilla")){ if(_f.parentNode.parentNode.nodeName=="LI"){ _f=_f.parentNode.parentNode; } } var fc=_f.firstChild; if(fc&&fc.nodeType==1&&(fc.nodeName=="UL"||fc.nodeName=="OL")){ _f.insertBefore(fc.ownerDocument.createTextNode(" "),fc); var _12=_b.create(this.editor.window); _12.setStart(_f.firstChild,0); var _10=_b.getSelection(this.editor.window,true); _10.removeAllRanges(); _10.addRange(_12); } } } this._checkListLater=false; } if(this._pressedEnterInBlock){ if(this._pressedEnterInBlock.previousSibling){ this.removeTrailingBr(this._pressedEnterInBlock.previousSibling); } delete this._pressedEnterInBlock; } },bogusHtmlContent:" ",blockNodes:/^(?:P|H1|H2|H3|H4|H5|H6|LI)$/,handleEnterKey:function(e){ var _13,_14,_15,_16,_17,_18,doc=this.editor.document,br,rs,txt; if(e.shiftKey){ var _19=_7.withGlobal(this.editor.window,"getParentElement",_c); var _1a=_b.getAncestor(_19,this.blockNodes); if(_1a){ if(_1a.tagName=="LI"){ return true; } _13=_b.getSelection(this.editor.window); _14=_13.getRangeAt(0); if(!_14.collapsed){ _14.deleteContents(); _13=_b.getSelection(this.editor.window); _14=_13.getRangeAt(0); } if(_b.atBeginningOfContainer(_1a,_14.startContainer,_14.startOffset)){ br=doc.createElement("br"); _15=_b.create(this.editor.window); _1a.insertBefore(br,_1a.firstChild); _15.setStartAfter(br); _13.removeAllRanges(); _13.addRange(_15); }else{ if(_b.atEndOfContainer(_1a,_14.startContainer,_14.startOffset)){ _15=_b.create(this.editor.window); br=doc.createElement("br"); _1a.appendChild(br); _1a.appendChild(doc.createTextNode(" ")); _15.setStart(_1a.lastChild,0); _13.removeAllRanges(); _13.addRange(_15); }else{ rs=_14.startContainer; if(rs&&rs.nodeType==3){ txt=rs.nodeValue; _7.withGlobal(this.editor.window,function(){ _16=doc.createTextNode(txt.substring(0,_14.startOffset)); _17=doc.createTextNode(txt.substring(_14.startOffset)); _18=doc.createElement("br"); if(_17.nodeValue==""&&_6("webkit")){ _17=doc.createTextNode(" "); } _2.place(_16,rs,"after"); _2.place(_18,_16,"after"); _2.place(_17,_18,"after"); _2.destroy(rs); _15=_b.create(); _15.setStart(_17,0); _13.removeAllRanges(); _13.addRange(_15); }); return false; } return true; } } }else{ _13=_b.getSelection(this.editor.window); if(_13.rangeCount){ _14=_13.getRangeAt(0); if(_14&&_14.startContainer){ if(!_14.collapsed){ _14.deleteContents(); _13=_b.getSelection(this.editor.window); _14=_13.getRangeAt(0); } rs=_14.startContainer; if(rs&&rs.nodeType==3){ _7.withGlobal(this.editor.window,_5.hitch(this,function(){ var _1b=false; var _1c=_14.startOffset; if(rs.length<_1c){ ret=this._adjustNodeAndOffset(rs,_1c); rs=ret.node; _1c=ret.offset; } txt=rs.nodeValue; _16=doc.createTextNode(txt.substring(0,_1c)); _17=doc.createTextNode(txt.substring(_1c)); _18=doc.createElement("br"); if(!_17.length){ _17=doc.createTextNode(" "); _1b=true; } if(_16.length){ _2.place(_16,rs,"after"); }else{ _16=rs; } _2.place(_18,_16,"after"); _2.place(_17,_18,"after"); _2.destroy(rs); _15=_b.create(); _15.setStart(_17,0); _15.setEnd(_17,_17.length); _13.removeAllRanges(); _13.addRange(_15); if(_1b&&!_6("webkit")){ _c.remove(); }else{ _c.collapse(true); } })); }else{ var _1d; if(_14.startOffset>=0){ _1d=rs.childNodes[_14.startOffset]; } _7.withGlobal(this.editor.window,_5.hitch(this,function(){ var _1e=doc.createElement("br"); var _1f=doc.createTextNode(" "); if(!_1d){ rs.appendChild(_1e); rs.appendChild(_1f); }else{ _2.place(_1e,_1d,"before"); _2.place(_1f,_1e,"after"); } _15=_b.create(_7.global); _15.setStart(_1f,0); _15.setEnd(_1f,_1f.length); _13.removeAllRanges(); _13.addRange(_15); _c.collapse(true); })); } } }else{ _a.prototype.execCommand.call(this.editor,"inserthtml","
"); } } return false; } var _20=true; _13=_b.getSelection(this.editor.window); _14=_13.getRangeAt(0); if(!_14.collapsed){ _14.deleteContents(); _13=_b.getSelection(this.editor.window); _14=_13.getRangeAt(0); } var _21=_b.getBlockAncestor(_14.endContainer,null,this.editor.editNode); var _22=_21.blockNode; if((this._checkListLater=(_22&&(_22.nodeName=="LI"||_22.parentNode.nodeName=="LI")))){ if(_6("mozilla")){ this._pressedEnterInBlock=_22; } if(/^(\s| | |\xA0|]*\bclass=['"]Apple-style-span['"][^>]*>(\s| | |\xA0)<\/span>)?(
)?$/.test(_22.innerHTML)){ _22.innerHTML=""; if(_6("webkit")){ _15=_b.create(this.editor.window); _15.setStart(_22,0); _13.removeAllRanges(); _13.addRange(_15); } this._checkListLater=false; } return true; } if(!_21.blockNode||_21.blockNode===this.editor.editNode){ try{ _a.prototype.execCommand.call(this.editor,"formatblock",this.blockNodeForEnter); } catch(e2){ } _21={blockNode:_7.withGlobal(this.editor.window,"getAncestorElement",_c,[this.blockNodeForEnter]),blockContainer:this.editor.editNode}; if(_21.blockNode){ if(_21.blockNode!=this.editor.editNode&&(!(_21.blockNode.textContent||_21.blockNode.innerHTML).replace(/^\s+|\s+$/g,"").length)){ this.removeTrailingBr(_21.blockNode); return false; } }else{ _21.blockNode=this.editor.editNode; } _13=_b.getSelection(this.editor.window); _14=_13.getRangeAt(0); } var _23=doc.createElement(this.blockNodeForEnter); _23.innerHTML=this.bogusHtmlContent; this.removeTrailingBr(_21.blockNode); var _24=_14.endOffset; var _25=_14.endContainer; if(_25.length<_24){ var ret=this._adjustNodeAndOffset(_25,_24); _25=ret.node; _24=ret.offset; } if(_b.atEndOfContainer(_21.blockNode,_25,_24)){ if(_21.blockNode===_21.blockContainer){ _21.blockNode.appendChild(_23); }else{ _2.place(_23,_21.blockNode,"after"); } _20=false; _15=_b.create(this.editor.window); _15.setStart(_23,0); _13.removeAllRanges(); _13.addRange(_15); if(this.editor.height){ _8.scrollIntoView(_23); } }else{ if(_b.atBeginningOfContainer(_21.blockNode,_14.startContainer,_14.startOffset)){ _2.place(_23,_21.blockNode,_21.blockNode===_21.blockContainer?"first":"before"); if(_23.nextSibling&&this.editor.height){ _15=_b.create(this.editor.window); _15.setStart(_23.nextSibling,0); _13.removeAllRanges(); _13.addRange(_15); _8.scrollIntoView(_23.nextSibling); } _20=false; }else{ if(_21.blockNode===_21.blockContainer){ _21.blockNode.appendChild(_23); }else{ _2.place(_23,_21.blockNode,"after"); } _20=false; if(_21.blockNode.style){ if(_23.style){ if(_21.blockNode.style.cssText){ _23.style.cssText=_21.blockNode.style.cssText; } } } rs=_14.startContainer; var _26; if(rs&&rs.nodeType==3){ var _27,_28; _24=_14.endOffset; if(rs.length<_24){ ret=this._adjustNodeAndOffset(rs,_24); rs=ret.node; _24=ret.offset; } txt=rs.nodeValue; _16=doc.createTextNode(txt.substring(0,_24)); _17=doc.createTextNode(txt.substring(_24,txt.length)); _2.place(_16,rs,"before"); _2.place(_17,rs,"after"); _2.destroy(rs); var _29=_16.parentNode; while(_29!==_21.blockNode){ var tg=_29.tagName; var _2a=doc.createElement(tg); if(_29.style){ if(_2a.style){ if(_29.style.cssText){ _2a.style.cssText=_29.style.cssText; } } } if(_29.tagName==="FONT"){ if(_29.color){ _2a.color=_29.color; } if(_29.face){ _2a.face=_29.face; } if(_29.size){ _2a.size=_29.size; } } _27=_17; while(_27){ _28=_27.nextSibling; _2a.appendChild(_27); _27=_28; } _2.place(_2a,_29,"after"); _16=_29; _17=_2a; _29=_29.parentNode; } _27=_17; if(_27.nodeType==1||(_27.nodeType==3&&_27.nodeValue)){ _23.innerHTML=""; } _26=_27; while(_27){ _28=_27.nextSibling; _23.appendChild(_27); _27=_28; } } _15=_b.create(this.editor.window); var _2b; var _2c=_26; if(this.blockNodeForEnter!=="BR"){ while(_2c){ _2b=_2c; _28=_2c.firstChild; _2c=_28; } if(_2b&&_2b.parentNode){ _23=_2b.parentNode; _15.setStart(_23,0); _13.removeAllRanges(); _13.addRange(_15); if(this.editor.height){ _8.scrollIntoView(_23); } if(_6("mozilla")){ this._pressedEnterInBlock=_21.blockNode; } }else{ _20=true; } }else{ _15.setStart(_23,0); _13.removeAllRanges(); _13.addRange(_15); if(this.editor.height){ _8.scrollIntoView(_23); } if(_6("mozilla")){ this._pressedEnterInBlock=_21.blockNode; } } } } return _20; },_adjustNodeAndOffset:function(_2d,_2e){ while(_2d.length<_2e&&_2d.nextSibling&&_2d.nextSibling.nodeType==3){ _2e=_2e-_2d.length; _2d=_2d.nextSibling; } return {"node":_2d,"offset":_2e}; },removeTrailingBr:function(_2f){ var _30=/P|DIV|LI/i.test(_2f.tagName)?_2f:_c.getParentOfType(_2f,["P","DIV","LI"]); if(!_30){ return; } if(_30.lastChild){ if((_30.childNodes.length>1&&_30.lastChild.nodeType==3&&/^[\s\xAD]*$/.test(_30.lastChild.nodeValue))||_30.lastChild.tagName=="BR"){ _2.destroy(_30.lastChild); } } if(!_30.childNodes.length){ _30.innerHTML=this.bogusHtmlContent; } }}); });