UNPKG

1.54 kBJavaScriptView Raw
1var eventGroupByType,
2 initialisers,
3 modern,
4 ancient,
5 modifiers,
6 getModifiersList;
7
8
9
10modifiers = [
11 [ 'ctrlKey', 'Control' ],
12 [ 'shiftKey', 'Shift' ],
13 [ 'altKey', 'Alt' ],
14 [ 'metaKey', 'Meta' ]
15];
16
17getModifiersList = function ( params ) {
18 var list = [], i, modifier;
19
20 i = modifiers.length;
21 while ( i-- ) {
22 modifier = modifiers[i];
23 if ( params[ modifier[0] ] ) {
24 list[ list.length ] = modifier[1];
25 }
26 }
27
28 return list.join( ' ' );
29};
30
31
32// unpack event groups
33(function () {
34 var group, types, i, initMethod;
35
36 eventGroupByType = {};
37
38 for ( group in eventTypesByGroup ) {
39 if ( eventTypesByGroup.hasOwnProperty( group ) ) {
40 types = eventTypesByGroup[ group ].split( ' ' );
41
42 i = types.length;
43 while ( i-- ) {
44 eventGroupByType[ types[i] ] = group;
45 }
46 }
47 }
48
49 for ( initMethod in initialiserParams ) {
50 if ( initialiserParams.hasOwnProperty( initMethod ) ) {
51 initialiserParams[ initMethod ] = initialiserParams[ initMethod ].split( ' ' );
52 }
53 }
54}());
55
56
57
58try {
59 // event initialisersByGroup
60 new MouseEvent( 'click' );
61 modern = true;
62}
63
64catch ( err ) {
65 if ( !document.createEvent ) {
66 if ( document.createEventObject ) {
67 ancient = true;
68 } else {
69 throw new Error( 'Events cannot be created in this browser' );
70 }
71 }
72}
73
74if ( modern ) {
75 useModern();
76}
77
78else if ( !ancient ) {
79 useLegacy();
80}
81
82else {
83 useAncient();
84}
85
86
87simulant.params = function ( type ) {
88 var group;
89
90 group = eventGroupByType[ type ];
91 return initialiserParams[ initialisersByGroup[ group ][1] ].split( ' ' );
92};
93