define("dijit/form/_ComboBoxMenu", [ "dojo/_base/declare", // declare "dojo/dom-class", // domClass.add domClass.remove "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, domStyle, keys, _WidgetBase, _TemplatedMixin, _ComboBoxMenuMixin, _ListMouseMixin){ // module: // dijit/form/_ComboBoxMenu 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: "
", baseClass: "dijitComboBoxMenu", postCreate: function(){ this.inherited(arguments); if(!this.isLeftToRight()){ domClass.add(this.previousButton, "dijitMenuItemRtl"); domClass.add(this.nextButton, "dijitMenuItemRtl"); } }, _createMenuItem: function(){ // note: not using domConstruct.create() because need to specify document var item = this.ownerDocument.createElement("div"); item.className = "dijitReset dijitMenuItem" +(this.isLeftToRight() ? "" : " dijitMenuItemRtl"); item.setAttribute("role", "option"); return item; }, 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