You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.6 KiB
61 lines
1.6 KiB
10 years ago
|
/**
|
||
|
* Copyright 2013-2015, Facebook, Inc.
|
||
|
* All rights reserved.
|
||
|
*
|
||
|
* This source code is licensed under the BSD-style license found in the
|
||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||
|
*
|
||
|
* @providesModule SyntheticUIEvent
|
||
|
* @typechecks static-only
|
||
|
*/
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
var SyntheticEvent = require("./SyntheticEvent");
|
||
|
|
||
|
var getEventTarget = require("./getEventTarget");
|
||
|
|
||
|
/**
|
||
|
* @interface UIEvent
|
||
|
* @see http://www.w3.org/TR/DOM-Level-3-Events/
|
||
|
*/
|
||
|
var UIEventInterface = {
|
||
|
view: function(event) {
|
||
|
if (event.view) {
|
||
|
return event.view;
|
||
|
}
|
||
|
|
||
|
var target = getEventTarget(event);
|
||
|
if (target != null && target.window === target) {
|
||
|
// target is a window object
|
||
|
return target;
|
||
|
}
|
||
|
|
||
|
var doc = target.ownerDocument;
|
||
|
// TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.
|
||
|
if (doc) {
|
||
|
return doc.defaultView || doc.parentWindow;
|
||
|
} else {
|
||
|
return window;
|
||
|
}
|
||
|
},
|
||
|
detail: function(event) {
|
||
|
return event.detail || 0;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* @param {object} dispatchConfig Configuration used to dispatch this event.
|
||
|
* @param {string} dispatchMarker Marker identifying the event target.
|
||
|
* @param {object} nativeEvent Native browser event.
|
||
|
* @extends {SyntheticEvent}
|
||
|
*/
|
||
|
function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent) {
|
||
|
SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);
|
||
|
}
|
||
|
|
||
|
SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);
|
||
|
|
||
|
module.exports = SyntheticUIEvent;
|