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