src/cm/media/js/lib/yui/yui3.0.0/build/event/event-focus.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
Code licensed under the BSD License:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
http://developer.yahoo.net/yui/license.txt
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
version: 3.0.0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
build: 1549
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
YUI.add('event-focus', function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
 * Adds focus and blur event listener support.  These events normally
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
 * do not bubble, so this adds support for that so these events
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
 * can be used in event delegation scenarios.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
 * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
 * @module event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
 * @submodule event-focus
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
(function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
var UA = Y.UA,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
	Event = Y.Event,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
	plugins = Y.Env.evt.plugins,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
	ie = UA.ie,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
	bUseMutation = (UA.opera || UA.webkit),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
	eventNames = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
		focus: (ie ? 'focusin' : (bUseMutation ? 'DOMFocusIn' : 'focus')),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
		blur: (ie ? 'focusout' : (bUseMutation ? 'DOMFocusOut' : 'blur'))
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
	},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
	//	Only need to use capture phase for Gecko since it doesn't support 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
	//	focusin, focusout, DOMFocusIn, or DOMFocusOut
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
    CAPTURE_CONFIG = { capture: (UA.gecko ? true : false) },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
	attach = function (args, config) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
	    var a = Y.Array(args, 0, true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
		a[0] = eventNames[a[0]];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
	    return Event._attach(a, config);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
	},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
	
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
	eventAdapter = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
		on: function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
			return attach(arguments, CAPTURE_CONFIG);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
		}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
	};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
Event._attachFocus = attach;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
Event._attachBlur = attach;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
 * Adds a DOM focus listener.  Uses the focusin event in IE, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
 * DOMFocusIn for Opera and Webkit, and the capture phase for Gecko so that
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
 * the event propagates in a way that enables event delegation.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
 * @for YUI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
 * @event focus
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
 * @param type {string} 'focus'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
 * @param fn {function} the callback function to execute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
 * @param o {string|HTMLElement|collection} the element(s) to bind
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
 * @param context optional context object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
 * @param args 0..n additional arguments to provide to the listener.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
 * @return {EventHandle} the detach handle
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
plugins.focus = eventAdapter;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
 * Adds a DOM blur listener.  Uses the focusout event in IE, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
 * DOMFocusOut for Opera and Webkit, and the capture phase for Gecko so that
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
 * the event propagates in a way that enables event delegation.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
 * @for YUI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
 * @event blur
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
 * @param type {string} 'blur'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
 * @param fn {function} the callback function to execute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
 * @param o {string|HTMLElement|collection} the element(s) to bind
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
 * @param context optional context object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
 * @param args 0..n additional arguments to provide to the listener.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
 * @return {EventHandle} the detach handle
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
plugins.blur = eventAdapter;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
})();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
}, '3.0.0' ,{requires:['node-base']});