mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-15 14:15:56 +00:00
update dojo to 1.7.3
This commit is contained in:
138
lib/dijit/form/_ComboBoxMenu.js.uncompressed.js
Normal file
138
lib/dijit/form/_ComboBoxMenu.js.uncompressed.js
Normal file
@@ -0,0 +1,138 @@
|
||||
define("dijit/form/_ComboBoxMenu", [
|
||||
"dojo/_base/declare", // declare
|
||||
"dojo/dom-class", // domClass.add domClass.remove
|
||||
"dojo/dom-construct", // domConstruct.create
|
||||
"dojo/dom-style", // domStyle.get
|
||||
"dojo/keys", // keys.DOWN_ARROW keys.PAGE_DOWN keys.PAGE_UP keys.UP_ARROW
|
||||
"../_WidgetBase",
|
||||
"../_TemplatedMixin",
|
||||
"./_ComboBoxMenuMixin",
|
||||
"./_ListMouseMixin"
|
||||
], function(declare, domClass, domConstruct, domStyle, keys,
|
||||
_WidgetBase, _TemplatedMixin, _ComboBoxMenuMixin, _ListMouseMixin){
|
||||
|
||||
/*=====
|
||||
var _WidgetBase = dijit._WidgetBase;
|
||||
var _TemplatedMixin = dijit._TemplatedMixin;
|
||||
var _ComboBoxMenuMixin = dijit.form._ComboBoxMenuMixin;
|
||||
var _ListMouseMixin = dijit.form._ListMouseMixin;
|
||||
=====*/
|
||||
|
||||
// module:
|
||||
// dijit/form/_ComboBoxMenu
|
||||
// summary:
|
||||
// Focus-less menu for internal use in `dijit.form.ComboBox`
|
||||
|
||||
return declare("dijit.form._ComboBoxMenu",[_WidgetBase, _TemplatedMixin, _ListMouseMixin, _ComboBoxMenuMixin], {
|
||||
// summary:
|
||||
// Focus-less menu for internal use in `dijit.form.ComboBox`
|
||||
// Abstract methods that must be defined externally:
|
||||
// onChange: item was explicitly chosen (mousedown somewhere on the menu and mouseup somewhere on the menu)
|
||||
// onPage: next(1) or previous(-1) button pressed
|
||||
// tags:
|
||||
// private
|
||||
|
||||
templateString: "<div class='dijitReset dijitMenu' data-dojo-attach-point='containerNode' style='overflow: auto; overflow-x: hidden;'>"
|
||||
+"<div class='dijitMenuItem dijitMenuPreviousButton' data-dojo-attach-point='previousButton' role='option'></div>"
|
||||
+"<div class='dijitMenuItem dijitMenuNextButton' data-dojo-attach-point='nextButton' role='option'></div>"
|
||||
+"</div>",
|
||||
|
||||
baseClass: "dijitComboBoxMenu",
|
||||
|
||||
postCreate: function(){
|
||||
this.inherited(arguments);
|
||||
if(!this.isLeftToRight()){
|
||||
domClass.add(this.previousButton, "dijitMenuItemRtl");
|
||||
domClass.add(this.nextButton, "dijitMenuItemRtl");
|
||||
}
|
||||
},
|
||||
|
||||
_createMenuItem: function(){
|
||||
return domConstruct.create("div", {
|
||||
"class": "dijitReset dijitMenuItem" +(this.isLeftToRight() ? "" : " dijitMenuItemRtl"),
|
||||
role: "option"
|
||||
});
|
||||
},
|
||||
|
||||
onHover: function(/*DomNode*/ node){
|
||||
// summary:
|
||||
// Add hover CSS
|
||||
domClass.add(node, "dijitMenuItemHover");
|
||||
},
|
||||
|
||||
onUnhover: function(/*DomNode*/ node){
|
||||
// summary:
|
||||
// Remove hover CSS
|
||||
domClass.remove(node, "dijitMenuItemHover");
|
||||
},
|
||||
|
||||
onSelect: function(/*DomNode*/ node){
|
||||
// summary:
|
||||
// Add selected CSS
|
||||
domClass.add(node, "dijitMenuItemSelected");
|
||||
},
|
||||
|
||||
onDeselect: function(/*DomNode*/ node){
|
||||
// summary:
|
||||
// Remove selected CSS
|
||||
domClass.remove(node, "dijitMenuItemSelected");
|
||||
},
|
||||
|
||||
_page: function(/*Boolean*/ up){
|
||||
// summary:
|
||||
// Handles page-up and page-down keypresses
|
||||
|
||||
var scrollamount = 0;
|
||||
var oldscroll = this.domNode.scrollTop;
|
||||
var height = domStyle.get(this.domNode, "height");
|
||||
// if no item is highlighted, highlight the first option
|
||||
if(!this.getHighlightedOption()){
|
||||
this.selectNextNode();
|
||||
}
|
||||
while(scrollamount<height){
|
||||
var highlighted_option = this.getHighlightedOption();
|
||||
if(up){
|
||||
// stop at option 1
|
||||
if(!highlighted_option.previousSibling ||
|
||||
highlighted_option.previousSibling.style.display == "none"){
|
||||
break;
|
||||
}
|
||||
this.selectPreviousNode();
|
||||
}else{
|
||||
// stop at last option
|
||||
if(!highlighted_option.nextSibling ||
|
||||
highlighted_option.nextSibling.style.display == "none"){
|
||||
break;
|
||||
}
|
||||
this.selectNextNode();
|
||||
}
|
||||
// going backwards
|
||||
var newscroll = this.domNode.scrollTop;
|
||||
scrollamount += (newscroll-oldscroll)*(up ? -1:1);
|
||||
oldscroll = newscroll;
|
||||
}
|
||||
},
|
||||
|
||||
handleKey: function(evt){
|
||||
// summary:
|
||||
// Handle keystroke event forwarded from ComboBox, returning false if it's
|
||||
// a keystroke I recognize and process, true otherwise.
|
||||
switch(evt.charOrCode){
|
||||
case keys.DOWN_ARROW:
|
||||
this.selectNextNode();
|
||||
return false;
|
||||
case keys.PAGE_DOWN:
|
||||
this._page(false);
|
||||
return false;
|
||||
case keys.UP_ARROW:
|
||||
this.selectPreviousNode();
|
||||
return false;
|
||||
case keys.PAGE_UP:
|
||||
this._page(true);
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user