//>>built define("dijit/_editor/plugins/FullScreen",["dojo/aspect","dojo/_base/declare","dojo/dom-class","dojo/dom-geometry","dojo/dom-style","dojo/_base/event","dojo/i18n","dojo/keys","dojo/_base/lang","dojo/on","dojo/sniff","dojo/_base/window","dojo/window","../../focus","../_Plugin","../../form/ToggleButton","../../registry","dojo/i18n!../nls/commands"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,on,_a,_b,_c,_d,_e,_f,_10){ var _11=_2("dijit._editor.plugins.FullScreen",_e,{zIndex:500,_origState:null,_origiFrameState:null,_resizeHandle:null,isFullscreen:false,toggle:function(){ this.button.set("checked",!this.button.get("checked")); },_initButton:function(){ var _12=_7.getLocalization("dijit._editor","commands"),_13=this.editor; this.button=new _f({label:_12["fullScreen"],ownerDocument:_13.ownerDocument,dir:_13.dir,lang:_13.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"FullScreen",tabIndex:"-1",onChange:_9.hitch(this,"_setFullScreen")}); },setEditor:function(_14){ this.editor=_14; this._initButton(); this.editor.addKeyHandler(_8.F11,true,true,_9.hitch(this,function(e){ this.toggle(); _6.stop(e); setTimeout(_9.hitch(this,function(){ this.editor.focus(); }),250); return true; })); this.connect(this.editor.domNode,"onkeydown","_containFocus"); },_containFocus:function(e){ if(this.isFullscreen){ var ed=this.editor; if(!ed.isTabIndent&&ed._fullscreen_oldOnKeyDown&&e.keyCode===_8.TAB){ var f=_d.curNode; var avn=this._getAltViewNode(); if(f==ed.iframe||(avn&&f===avn)){ setTimeout(_9.hitch(this,function(){ ed.toolbar.focus(); }),10); }else{ if(avn&&_5.get(ed.iframe,"display")==="none"){ setTimeout(_9.hitch(this,function(){ _d.focus(avn); }),10); }else{ setTimeout(_9.hitch(this,function(){ ed.focus(); }),10); } } _6.stop(e); }else{ if(ed._fullscreen_oldOnKeyDown){ ed._fullscreen_oldOnKeyDown(e); } } } },_resizeEditor:function(){ var vp=_c.getBox(this.editor.ownerDocument); _4.setMarginBox(this.editor.domNode,{w:vp.w,h:vp.h}); var _15=this.editor.getHeaderHeight(); var _16=this.editor.getFooterHeight(); var _17=_4.getPadBorderExtents(this.editor.domNode); var _18=_4.getPadBorderExtents(this.editor.iframe.parentNode); var _19=_4.getMarginExtents(this.editor.iframe.parentNode); var _1a=vp.h-(_15+_17.h+_16); _4.setMarginBox(this.editor.iframe.parentNode,{h:_1a,w:vp.w}); _4.setMarginBox(this.editor.iframe,{h:_1a-(_18.h+_19.h)}); },_getAltViewNode:function(){ },_setFullScreen:function(_1b){ var ed=this.editor; var _1c=ed.ownerDocumentBody; var _1d=ed.domNode.parentNode; var vp=_c.getBox(ed.ownerDocument); this.isFullscreen=_1b; if(_1b){ while(_1d&&_1d!==_1c){ _3.add(_1d,"dijitForceStatic"); _1d=_1d.parentNode; } this._editorResizeHolder=this.editor.resize; ed.resize=function(){ }; ed._fullscreen_oldOnKeyDown=ed.onKeyDown; ed.onKeyDown=_9.hitch(this,this._containFocus); this._origState={}; this._origiFrameState={}; var _1e=ed.domNode,_1f=_1e&&_1e.style||{}; this._origState={width:_1f.width||"",height:_1f.height||"",top:_5.get(_1e,"top")||"",left:_5.get(_1e,"left")||"",position:_5.get(_1e,"position")||"static",marginBox:_4.getMarginBox(ed.domNode)}; var _20=ed.iframe,_21=_20&&_20.style||{}; var bc=_5.get(ed.iframe,"backgroundColor"); this._origiFrameState={backgroundColor:bc||"transparent",width:_21.width||"auto",height:_21.height||"auto",zIndex:_21.zIndex||""}; _5.set(ed.domNode,{position:"absolute",top:"0px",left:"0px",zIndex:this.zIndex,width:vp.w+"px",height:vp.h+"px"}); _5.set(ed.iframe,{height:"100%",width:"100%",zIndex:this.zIndex,backgroundColor:bc!=="transparent"&&bc!=="rgba(0, 0, 0, 0)"?bc:"white"}); _5.set(ed.iframe.parentNode,{height:"95%",width:"100%"}); if(_1c.style&&_1c.style.overflow){ this._oldOverflow=_5.get(_1c,"overflow"); }else{ this._oldOverflow=""; } if(_a("ie")&&!_a("quirks")){ if(_1c.parentNode&&_1c.parentNode.style&&_1c.parentNode.style.overflow){ this._oldBodyParentOverflow=_1c.parentNode.style.overflow; }else{ try{ this._oldBodyParentOverflow=_5.get(_1c.parentNode,"overflow"); } catch(e){ this._oldBodyParentOverflow="scroll"; } } _5.set(_1c.parentNode,"overflow","hidden"); } _5.set(_1c,"overflow","hidden"); var _22=function(){ var vp=_c.getBox(ed.ownerDocument); if("_prevW" in this&&"_prevH" in this){ if(vp.w===this._prevW&&vp.h===this._prevH){ return; } }else{ this._prevW=vp.w; this._prevH=vp.h; } if(this._resizer){ clearTimeout(this._resizer); delete this._resizer; } this._resizer=setTimeout(_9.hitch(this,function(){ delete this._resizer; this._resizeEditor(); }),10); }; this._resizeHandle=on(window,"resize",_9.hitch(this,_22)); this._resizeHandle2=_1.after(ed,"onResize",_9.hitch(this,function(){ if(this._resizer){ clearTimeout(this._resizer); delete this._resizer; } this._resizer=setTimeout(_9.hitch(this,function(){ delete this._resizer; this._resizeEditor(); }),10); })); this._resizeEditor(); var dn=this.editor.toolbar.domNode; setTimeout(function(){ _c.scrollIntoView(dn); },250); }else{ if(this._resizeHandle){ this._resizeHandle.remove(); this._resizeHandle=null; } if(this._resizeHandle2){ this._resizeHandle2.remove(); this._resizeHandle2=null; } if(this._rst){ clearTimeout(this._rst); this._rst=null; } while(_1d&&_1d!==_1c){ _3.remove(_1d,"dijitForceStatic"); _1d=_1d.parentNode; } if(this._editorResizeHolder){ this.editor.resize=this._editorResizeHolder; } if(!this._origState&&!this._origiFrameState){ return; } if(ed._fullscreen_oldOnKeyDown){ ed.onKeyDown=ed._fullscreen_oldOnKeyDown; delete ed._fullscreen_oldOnKeyDown; } var _23=this; setTimeout(function(){ var mb=_23._origState.marginBox; var oh=_23._origState.height; if(_a("ie")&&!_a("quirks")){ _1c.parentNode.style.overflow=_23._oldBodyParentOverflow; delete _23._oldBodyParentOverflow; } _5.set(_1c,"overflow",_23._oldOverflow); delete _23._oldOverflow; _5.set(ed.domNode,_23._origState); _5.set(ed.iframe.parentNode,{height:"",width:""}); _5.set(ed.iframe,_23._origiFrameState); delete _23._origState; delete _23._origiFrameState; var _24=_10.getEnclosingWidget(ed.domNode.parentNode); if(_24&&_24.resize){ _24.resize(); }else{ if(!oh||oh.indexOf("%")<0){ setTimeout(_9.hitch(this,function(){ ed.resize({h:mb.h}); }),0); } } _c.scrollIntoView(_23.editor.toolbar.domNode); },100); } },updateState:function(){ this.button.set("disabled",this.get("disabled")); },destroy:function(){ if(this._resizeHandle){ this._resizeHandle.remove(); this._resizeHandle=null; } if(this._resizeHandle2){ this._resizeHandle2.remove(); this._resizeHandle2=null; } if(this._resizer){ clearTimeout(this._resizer); this._resizer=null; } this.inherited(arguments); }}); _e.registry["fullScreen"]=_e.registry["fullscreen"]=function(_25){ return new _11({zIndex:("zIndex" in _25)?_25.zIndex:500}); }; return _11; });