163 lines
4.1 KiB
JavaScript
163 lines
4.1 KiB
JavaScript
//>>built
|
|
define("dijit/_MenuBase",["./popup","dojo/window","./_Widget","./_KeyNavContainer","./_TemplatedMixin","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/lang","dojo/_base/array"],function(pm,_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){
|
|
return _5("dijit._MenuBase",[_2,_4,_3],{parentMenu:null,popupDelay:500,onExecute:function(){
|
|
},onCancel:function(){
|
|
},_moveToPopup:function(_b){
|
|
if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){
|
|
this.focusedChild._onClick(_b);
|
|
}else{
|
|
var _c=this._getTopMenu();
|
|
if(_c&&_c._isMenuBar){
|
|
_c.focusNext();
|
|
}
|
|
}
|
|
},_onPopupHover:function(){
|
|
if(this.currentPopup&&this.currentPopup._pendingClose_timer){
|
|
var _d=this.currentPopup.parentMenu;
|
|
if(_d.focusedChild){
|
|
_d.focusedChild._setSelected(false);
|
|
}
|
|
_d.focusedChild=this.currentPopup.from_item;
|
|
_d.focusedChild._setSelected(true);
|
|
this._stopPendingCloseTimer(this.currentPopup);
|
|
}
|
|
},onItemHover:function(_e){
|
|
if(this.isActive){
|
|
this.focusChild(_e);
|
|
if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){
|
|
this.hover_timer=setTimeout(_9.hitch(this,"_openPopup"),this.popupDelay);
|
|
}
|
|
}
|
|
if(this.focusedChild){
|
|
this.focusChild(_e);
|
|
}
|
|
this._hoveredChild=_e;
|
|
},_onChildBlur:function(_f){
|
|
this._stopPopupTimer();
|
|
_f._setSelected(false);
|
|
var _10=_f.popup;
|
|
if(_10){
|
|
this._stopPendingCloseTimer(_10);
|
|
_10._pendingClose_timer=setTimeout(function(){
|
|
_10._pendingClose_timer=null;
|
|
if(_10.parentMenu){
|
|
_10.parentMenu.currentPopup=null;
|
|
}
|
|
pm.close(_10);
|
|
},this.popupDelay);
|
|
}
|
|
},onItemUnhover:function(_11){
|
|
if(this.isActive){
|
|
this._stopPopupTimer();
|
|
}
|
|
if(this._hoveredChild==_11){
|
|
this._hoveredChild=null;
|
|
}
|
|
},_stopPopupTimer:function(){
|
|
if(this.hover_timer){
|
|
clearTimeout(this.hover_timer);
|
|
this.hover_timer=null;
|
|
}
|
|
},_stopPendingCloseTimer:function(_12){
|
|
if(_12._pendingClose_timer){
|
|
clearTimeout(_12._pendingClose_timer);
|
|
_12._pendingClose_timer=null;
|
|
}
|
|
},_stopFocusTimer:function(){
|
|
if(this._focus_timer){
|
|
clearTimeout(this._focus_timer);
|
|
this._focus_timer=null;
|
|
}
|
|
},_getTopMenu:function(){
|
|
for(var top=this;top.parentMenu;top=top.parentMenu){
|
|
}
|
|
return top;
|
|
},onItemClick:function(_13,evt){
|
|
if(typeof this.isShowingNow=="undefined"){
|
|
this._markActive();
|
|
}
|
|
this.focusChild(_13);
|
|
if(_13.disabled){
|
|
return false;
|
|
}
|
|
if(_13.popup){
|
|
this._openPopup();
|
|
}else{
|
|
this.onExecute();
|
|
_13.onClick(evt);
|
|
}
|
|
},_openPopup:function(){
|
|
this._stopPopupTimer();
|
|
var _14=this.focusedChild;
|
|
if(!_14){
|
|
return;
|
|
}
|
|
var _15=_14.popup;
|
|
if(_15.isShowingNow){
|
|
return;
|
|
}
|
|
if(this.currentPopup){
|
|
this._stopPendingCloseTimer(this.currentPopup);
|
|
pm.close(this.currentPopup);
|
|
}
|
|
_15.parentMenu=this;
|
|
_15.from_item=_14;
|
|
var _16=this;
|
|
pm.open({parent:this,popup:_15,around:_14.domNode,orient:this._orient||["after","before"],onCancel:function(){
|
|
_16.focusChild(_14);
|
|
_16._cleanUp();
|
|
_14._setSelected(true);
|
|
_16.focusedChild=_14;
|
|
},onExecute:_9.hitch(this,"_cleanUp")});
|
|
this.currentPopup=_15;
|
|
_15.connect(_15.domNode,"onmouseenter",_9.hitch(_16,"_onPopupHover"));
|
|
if(_15.focus){
|
|
_15._focus_timer=setTimeout(_9.hitch(_15,function(){
|
|
this._focus_timer=null;
|
|
this.focus();
|
|
}),0);
|
|
}
|
|
},_markActive:function(){
|
|
this.isActive=true;
|
|
_8.replace(this.domNode,"dijitMenuActive","dijitMenuPassive");
|
|
},onOpen:function(){
|
|
this.isShowingNow=true;
|
|
this._markActive();
|
|
},_markInactive:function(){
|
|
this.isActive=false;
|
|
_8.replace(this.domNode,"dijitMenuPassive","dijitMenuActive");
|
|
},onClose:function(){
|
|
this._stopFocusTimer();
|
|
this._markInactive();
|
|
this.isShowingNow=false;
|
|
this.parentMenu=null;
|
|
},_closeChild:function(){
|
|
this._stopPopupTimer();
|
|
if(this.currentPopup){
|
|
if(_a.indexOf(this._focusManager.activeStack,this.id)>=0){
|
|
_7.set(this.focusedChild.focusNode,"tabIndex",this.tabIndex);
|
|
this.focusedChild.focusNode.focus();
|
|
}
|
|
pm.close(this.currentPopup);
|
|
this.currentPopup=null;
|
|
}
|
|
if(this.focusedChild){
|
|
this.focusedChild._setSelected(false);
|
|
this.focusedChild._onUnhover();
|
|
this.focusedChild=null;
|
|
}
|
|
},_onItemFocus:function(_17){
|
|
if(this._hoveredChild&&this._hoveredChild!=_17){
|
|
this._hoveredChild._onUnhover();
|
|
}
|
|
},_onBlur:function(){
|
|
this._cleanUp();
|
|
this.inherited(arguments);
|
|
},_cleanUp:function(){
|
|
this._closeChild();
|
|
if(typeof this.isShowingNow=="undefined"){
|
|
this._markInactive();
|
|
}
|
|
}});
|
|
});
|