]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - include/javascript/yui3/build/autocomplete/autocomplete-list-keys.js
Release 6.2.2
[Github/sugarcrm.git] / include / javascript / yui3 / build / autocomplete / autocomplete-list-keys.js
1 /*
2  Copyright (c) 2010, Yahoo! Inc. All rights reserved.
3  Code licensed under the BSD License:
4  http://developer.yahoo.com/yui/license.html
5  version: 3.3.0
6  build: 3167
7  */
8 YUI.add('autocomplete-list-keys',function(Y){var KEY_DOWN=40,KEY_ENTER=13,KEY_ESC=27,KEY_TAB=9,KEY_UP=38;function ListKeys(){Y.before(this._unbindKeys,this,'destructor');Y.before(this._bindKeys,this,'bindUI');this._initKeys();}
9 ListKeys.prototype={_initKeys:function(){var keys={},keysVisible={};this._keyEvents=[];keys[KEY_DOWN]=this._keyDown;keysVisible[KEY_ENTER]=this._keyEnter;keysVisible[KEY_ESC]=this._keyEsc;keysVisible[KEY_TAB]=this._keyTab;keysVisible[KEY_UP]=this._keyUp;this._keys=keys;this._keysVisible=keysVisible;},_bindKeys:function(){this._keyEvents.push(this._inputNode.on(Y.UA.gecko?'keypress':'keydown',this._onInputKey,this));},_unbindKeys:function(){while(this._keyEvents.length){this._keyEvents.pop().detach();}},_keyDown:function(){if(this.get('visible')){this._activateNextItem();}else{this.show();}},_keyEnter:function(){var item=this.get('activeItem');if(item){this.selectItem(item);}else{return false;}},_keyEsc:function(){this.hide();},_keyTab:function(){var item;if(this.get('tabSelect')){item=this.get('activeItem');if(item){this.selectItem(item);return true;}}
10 return false;},_keyUp:function(){this._activatePrevItem();},_onInputKey:function(e){var handler,keyCode=e.keyCode;this._lastInputKey=keyCode;if(this.get('results').length){handler=this._keys[keyCode];if(!handler&&this.get('visible')){handler=this._keysVisible[keyCode];}
11 if(handler){if(handler.call(this,e)!==false){e.preventDefault();}}}}};Y.Base.mix(Y.AutoCompleteList,[ListKeys]);},'3.3.0',{requires:['autocomplete-list','base-build']});