1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | 'use strict';
|
10 |
|
11 | var SyntheticUIEvent = require('./SyntheticUIEvent');
|
12 | var ViewportMetrics = require('./ViewportMetrics');
|
13 |
|
14 | var getEventModifierState = require('./getEventModifierState');
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 | var MouseEventInterface = {
|
21 | screenX: null,
|
22 | screenY: null,
|
23 | clientX: null,
|
24 | clientY: null,
|
25 | ctrlKey: null,
|
26 | shiftKey: null,
|
27 | altKey: null,
|
28 | metaKey: null,
|
29 | getModifierState: getEventModifierState,
|
30 | button: function (event) {
|
31 |
|
32 |
|
33 |
|
34 | var button = event.button;
|
35 | if ('which' in event) {
|
36 | return button;
|
37 | }
|
38 |
|
39 |
|
40 |
|
41 |
|
42 | return button === 2 ? 2 : button === 4 ? 1 : 0;
|
43 | },
|
44 | buttons: null,
|
45 | relatedTarget: function (event) {
|
46 | return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);
|
47 | },
|
48 |
|
49 | pageX: function (event) {
|
50 | return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;
|
51 | },
|
52 | pageY: function (event) {
|
53 | return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;
|
54 | }
|
55 | };
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 |
|
63 | function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
|
64 | return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
|
65 | }
|
66 |
|
67 | SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);
|
68 |
|
69 | module.exports = SyntheticMouseEvent; |
\ | No newline at end of file |