1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 | "use strict" ;
|
28 |
|
29 |
|
30 |
|
31 | exports.specialKeys = {
|
32 | |
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 | ESCAPE: '\x1b' ,
|
42 | TAB: '\x09' ,
|
43 | ENTER: '\x0d' ,
|
44 |
|
45 | SHIFT_TAB: '\x1b[Z' ,
|
46 | ALT_TAB: '\x1b\x09' ,
|
47 | ALT_ENTER: '\x1b\x0d' ,
|
48 |
|
49 | UP: '\x1bOA' ,
|
50 | DOWN: '\x1bOB' ,
|
51 | RIGHT: '\x1bOC' ,
|
52 | LEFT: '\x1bOD' ,
|
53 |
|
54 | SHIFT_UP: '\x1b[1;2A' ,
|
55 | SHIFT_DOWN: '\x1b[1;2B' ,
|
56 | SHIFT_RIGHT: '\x1b[1;2C' ,
|
57 | SHIFT_LEFT: '\x1b[1;2D' ,
|
58 | ALT_UP: '\x1b[1;3A' ,
|
59 | ALT_DOWN: '\x1b[1;3B' ,
|
60 | ALT_RIGHT: '\x1b[1;3C' ,
|
61 | ALT_LEFT: '\x1b[1;3D' ,
|
62 | CTRL_UP: '\x1b[1;5A' ,
|
63 | CTRL_DOWN: '\x1b[1;5B' ,
|
64 | CTRL_RIGHT: '\x1b[1;5C' ,
|
65 | CTRL_LEFT: '\x1b[1;5D' ,
|
66 |
|
67 | BACKSPACE: '\x7f' ,
|
68 | INSERT: '\x1b[2~' ,
|
69 | DELETE: '\x1b[3~' ,
|
70 | HOME: '\x1b[1~' ,
|
71 | END: '\x1b[4~' ,
|
72 | PAGE_UP: '\x1b[5~' ,
|
73 | PAGE_DOWN: '\x1b[6~' ,
|
74 |
|
75 | CTRL_BACKSPACE: '\x08' ,
|
76 | CTRL_INSERT: '\x1b[2;5~' ,
|
77 | CTRL_DELETE: '\x1b[3;5~' ,
|
78 | CTRL_HOME: '\x1b[1;5~' ,
|
79 | CTRL_END: '\x1b[4;5~' ,
|
80 | CTRL_PAGE_UP: '\x1b[5;5~' ,
|
81 | CTRL_PAGE_DOWN: '\x1b[6;5~' ,
|
82 |
|
83 | SHIFT_INSERT: '\x1b[2;2~' ,
|
84 | SHIFT_DELETE: '\x1b[3;2~' ,
|
85 | SHIFT_HOME: '\x1b[1;2~' ,
|
86 | SHIFT_END: '\x1b[4;2~' ,
|
87 | SHIFT_PAGE_UP: '\x1b[5;2~' ,
|
88 | SHIFT_PAGE_DOWN: '\x1b[6;2~' ,
|
89 |
|
90 | ALT_BACKSPACE: '\x1b\x7f' ,
|
91 | ALT_INSERT: '\x1b[2;3~' ,
|
92 | ALT_DELETE: '\x1b[3;3~' ,
|
93 | ALT_HOME: '\x1b[1;3~' ,
|
94 | ALT_END: '\x1b[4;3~' ,
|
95 | ALT_PAGE_UP: '\x1b[5;3~' ,
|
96 | ALT_PAGE_DOWN: '\x1b[6;3~' ,
|
97 |
|
98 |
|
99 | |
100 |
|
101 |
|
102 |
|
103 |
|
104 |
|
105 |
|
106 |
|
107 |
|
108 |
|
109 |
|
110 |
|
111 |
|
112 |
|
113 |
|
114 |
|
115 |
|
116 |
|
117 |
|
118 |
|
119 | F1: '\x1bOP' ,
|
120 | F2: '\x1bOQ' ,
|
121 | F3: '\x1bOR' ,
|
122 | F4: '\x1bOS' ,
|
123 | F5: '\x1b[15~' ,
|
124 | F6: '\x1b[17~' ,
|
125 | F7: '\x1b[18~' ,
|
126 | F8: '\x1b[19~' ,
|
127 | F9: '\x1b[20~' ,
|
128 | F10: '\x1b[21~' ,
|
129 | F11: '\x1b[23~' ,
|
130 | F12: '\x1b[24~' ,
|
131 |
|
132 | SHIFT_F1: '\x1bO1;2P' ,
|
133 | SHIFT_F2: '\x1bO1;2Q' ,
|
134 | SHIFT_F3: '\x1bO1;2R' ,
|
135 | SHIFT_F4: '\x1bO1;2S' ,
|
136 | SHIFT_F5: '\x1b[15;2~' ,
|
137 | SHIFT_F6: '\x1b[17;2~' ,
|
138 | SHIFT_F7: '\x1b[18;2~' ,
|
139 | SHIFT_F8: '\x1b[19;2~' ,
|
140 | SHIFT_F9: '\x1b[20;2~' ,
|
141 | SHIFT_F10: '\x1b[21;2~' ,
|
142 | SHIFT_F11: '\x1b[23;2~' ,
|
143 | SHIFT_F12: '\x1b[24;2~' ,
|
144 |
|
145 | CTRL_F1: '\x1bO1;5P' ,
|
146 | CTRL_F2: '\x1bO1;5Q' ,
|
147 | CTRL_F3: '\x1bO1;5R' ,
|
148 | CTRL_F4: '\x1bO1;5S' ,
|
149 | CTRL_F5: '\x1b[15;5~' ,
|
150 | CTRL_F6: '\x1b[17;5~' ,
|
151 | CTRL_F7: '\x1b[18;5~' ,
|
152 | CTRL_F8: '\x1b[19;5~' ,
|
153 | CTRL_F9: '\x1b[20;5~' ,
|
154 | CTRL_F10: '\x1b[21;5~' ,
|
155 | CTRL_F11: '\x1b[23;5~' ,
|
156 | CTRL_F12: '\x1b[24;5~' ,
|
157 |
|
158 | CTRL_SHIFT_F1: '\x1bO1;6P' ,
|
159 | CTRL_SHIFT_F2: '\x1bO1;6Q' ,
|
160 | CTRL_SHIFT_F3: '\x1bO1;6R' ,
|
161 | CTRL_SHIFT_F4: '\x1bO1;6S' ,
|
162 | CTRL_SHIFT_F5: '\x1b[15;6~' ,
|
163 | CTRL_SHIFT_F6: '\x1b[17;6~' ,
|
164 | CTRL_SHIFT_F7: '\x1b[18;6~' ,
|
165 | CTRL_SHIFT_F8: '\x1b[19;6~' ,
|
166 | CTRL_SHIFT_F9: '\x1b[20;6~' ,
|
167 | CTRL_SHIFT_F10: '\x1b[21;6~' ,
|
168 | CTRL_SHIFT_F11: '\x1b[23;6~' ,
|
169 | CTRL_SHIFT_F12: '\x1b[24;6~' ,
|
170 |
|
171 | NUL: '\x00' ,
|
172 |
|
173 |
|
174 | ALT_SPACE: '\x1b ' ,
|
175 | CTRL_ALT_SPACE: '\x1b\x00'
|
176 | } ;
|
177 |
|
178 |
|
179 |
|
180 |
|
181 | for ( let i = 1 ; i <= 26 ; i ++ ) {
|
182 | exports.specialKeys[ 'CTRL_' + String.fromCharCode( 64 + i ) ] = String.fromCharCode( i ) ;
|
183 | exports.specialKeys[ 'ALT_' + String.fromCharCode( 64 + i ) ] = '\x1b' + String.fromCharCode( 96 + i ) ;
|
184 | exports.specialKeys[ 'CTRL_ALT_' + String.fromCharCode( 64 + i ) ] = '\x1b' + String.fromCharCode( i ) ;
|
185 | exports.specialKeys[ 'ALT_SHIFT_' + String.fromCharCode( 64 + i ) ] = '\x1b' + String.fromCharCode( 64 + i ) ;
|
186 | }
|
187 |
|
188 |
|
189 |
|
190 | exports.reports = {
|
191 | cursorLocation: '\x1b[%+1u;%-1uR' ,
|
192 | cursorLocationDecVariant: '\x1b[?%+1u;%-1uR' ,
|
193 | screenSize: '\x1b[8;%+1u;%-1ut' ,
|
194 | focusIn: '\x1b[I' ,
|
195 | focusOut: '\x1b[O' ,
|
196 | registerColor: '\x1b]4;%u;rgb:%x/%x/%x\x07'
|
197 | } ;
|
198 |
|