@teaui/core 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/.dist/Buffer.d.ts +21 -0
  2. package/.dist/Buffer.js +140 -0
  3. package/.dist/Buffer.js.map +1 -0
  4. package/.dist/Color.d.ts +7 -0
  5. package/.dist/Color.js +39 -0
  6. package/.dist/Color.js.map +1 -0
  7. package/.dist/Container.d.ts +21 -0
  8. package/.dist/Container.js +138 -0
  9. package/.dist/Container.js.map +1 -0
  10. package/.dist/Screen.d.ts +54 -0
  11. package/.dist/Screen.js +278 -0
  12. package/.dist/Screen.js.map +1 -0
  13. package/.dist/Style.d.ts +46 -0
  14. package/.dist/Style.js +433 -0
  15. package/.dist/Style.js.map +1 -0
  16. package/.dist/System.d.ts +13 -0
  17. package/.dist/System.js +26 -0
  18. package/.dist/System.js.map +1 -0
  19. package/.dist/Theme.d.ts +56 -0
  20. package/.dist/Theme.js +157 -0
  21. package/.dist/Theme.js.map +1 -0
  22. package/.dist/UI.d.ts +2 -0
  23. package/.dist/UI.js +28 -0
  24. package/.dist/UI.js.map +1 -0
  25. package/.dist/View.d.ts +99 -0
  26. package/.dist/View.js +374 -0
  27. package/.dist/View.js.map +1 -0
  28. package/.dist/Viewport.d.ts +89 -0
  29. package/.dist/Viewport.js +295 -0
  30. package/.dist/Viewport.js.map +1 -0
  31. package/.dist/ansi.d.ts +31 -0
  32. package/.dist/ansi.js +139 -0
  33. package/.dist/ansi.js.map +1 -0
  34. package/.dist/components/Accordion.d.ts +47 -0
  35. package/.dist/components/Accordion.js +294 -0
  36. package/.dist/components/Accordion.js.map +1 -0
  37. package/.dist/components/Box.d.ts +67 -0
  38. package/.dist/components/Box.js +211 -0
  39. package/.dist/components/Box.js.map +1 -0
  40. package/.dist/components/Button.d.ts +28 -0
  41. package/.dist/components/Button.js +118 -0
  42. package/.dist/components/Button.js.map +1 -0
  43. package/.dist/components/Checkbox.d.ts +31 -0
  44. package/.dist/components/Checkbox.js +106 -0
  45. package/.dist/components/Checkbox.js.map +1 -0
  46. package/.dist/components/Collapsible.d.ts +32 -0
  47. package/.dist/components/Collapsible.js +109 -0
  48. package/.dist/components/Collapsible.js.map +1 -0
  49. package/.dist/components/CollapsibleText.d.ts +21 -0
  50. package/.dist/components/CollapsibleText.js +113 -0
  51. package/.dist/components/CollapsibleText.js.map +1 -0
  52. package/.dist/components/Digits.d.ts +20 -0
  53. package/.dist/components/Digits.js +843 -0
  54. package/.dist/components/Digits.js.map +1 -0
  55. package/.dist/components/Drawer.d.ts +44 -0
  56. package/.dist/components/Drawer.js +473 -0
  57. package/.dist/components/Drawer.js.map +1 -0
  58. package/.dist/components/Dropdown.d.ts +61 -0
  59. package/.dist/components/Dropdown.js +367 -0
  60. package/.dist/components/Dropdown.js.map +1 -0
  61. package/.dist/components/Header.d.ts +25 -0
  62. package/.dist/components/Header.js +106 -0
  63. package/.dist/components/Header.js.map +1 -0
  64. package/.dist/components/HotKey.d.ts +14 -0
  65. package/.dist/components/HotKey.js +31 -0
  66. package/.dist/components/HotKey.js.map +1 -0
  67. package/.dist/components/Input.d.ts +45 -0
  68. package/.dist/components/Input.js +1109 -0
  69. package/.dist/components/Input.js.map +1 -0
  70. package/.dist/components/Log.d.ts +16 -0
  71. package/.dist/components/Log.js +122 -0
  72. package/.dist/components/Log.js.map +1 -0
  73. package/.dist/components/Progress.d.ts +21 -0
  74. package/.dist/components/Progress.js +200 -0
  75. package/.dist/components/Progress.js.map +1 -0
  76. package/.dist/components/Scrollable.d.ts +50 -0
  77. package/.dist/components/Scrollable.js +226 -0
  78. package/.dist/components/Scrollable.js.map +1 -0
  79. package/.dist/components/ScrollableList.d.ts +70 -0
  80. package/.dist/components/ScrollableList.js +354 -0
  81. package/.dist/components/ScrollableList.js.map +1 -0
  82. package/.dist/components/Separator.d.ts +21 -0
  83. package/.dist/components/Separator.js +67 -0
  84. package/.dist/components/Separator.js.map +1 -0
  85. package/.dist/components/Slider.d.ts +60 -0
  86. package/.dist/components/Slider.js +341 -0
  87. package/.dist/components/Slider.js.map +1 -0
  88. package/.dist/components/Space.d.ts +19 -0
  89. package/.dist/components/Space.js +45 -0
  90. package/.dist/components/Space.js.map +1 -0
  91. package/.dist/components/Spinner.d.ts +16 -0
  92. package/.dist/components/Spinner.js +48 -0
  93. package/.dist/components/Spinner.js.map +1 -0
  94. package/.dist/components/Stack.d.ts +33 -0
  95. package/.dist/components/Stack.js +285 -0
  96. package/.dist/components/Stack.js.map +1 -0
  97. package/.dist/components/Tabs.d.ts +52 -0
  98. package/.dist/components/Tabs.js +312 -0
  99. package/.dist/components/Tabs.js.map +1 -0
  100. package/.dist/components/Text.d.ts +35 -0
  101. package/.dist/components/Text.js +242 -0
  102. package/.dist/components/Text.js.map +1 -0
  103. package/.dist/components/ToggleGroup.d.ts +26 -0
  104. package/.dist/components/ToggleGroup.js +279 -0
  105. package/.dist/components/ToggleGroup.js.map +1 -0
  106. package/.dist/components/Tree.d.ts +21 -0
  107. package/.dist/components/Tree.js +233 -0
  108. package/.dist/components/Tree.js.map +1 -0
  109. package/.dist/components/Window.d.ts +6 -0
  110. package/.dist/components/Window.js +17 -0
  111. package/.dist/components/Window.js.map +1 -0
  112. package/.dist/components/fonts.d.ts +2 -0
  113. package/.dist/components/fonts.js +39 -0
  114. package/.dist/components/fonts.js.map +1 -0
  115. package/.dist/components/index.d.ts +27 -0
  116. package/.dist/components/index.js +48 -0
  117. package/.dist/components/index.js.map +1 -0
  118. package/.dist/components/types.d.ts +6 -0
  119. package/.dist/components/types.js +20 -0
  120. package/.dist/components/types.js.map +1 -0
  121. package/.dist/components/utility/TrackMouse.d.ts +16 -0
  122. package/.dist/components/utility/TrackMouse.js +53 -0
  123. package/.dist/components/utility/TrackMouse.js.map +1 -0
  124. package/.dist/components/utility/index.d.ts +1 -0
  125. package/.dist/components/utility/index.js +6 -0
  126. package/.dist/components/utility/index.js.map +1 -0
  127. package/.dist/events/index.d.ts +12 -0
  128. package/.dist/events/index.js +20 -0
  129. package/.dist/events/index.js.map +1 -0
  130. package/.dist/events/key.d.ts +15 -0
  131. package/.dist/events/key.js +105 -0
  132. package/.dist/events/key.js.map +1 -0
  133. package/.dist/events/mouse.d.ts +65 -0
  134. package/.dist/events/mouse.js +68 -0
  135. package/.dist/events/mouse.js.map +1 -0
  136. package/.dist/events/window.d.ts +6 -0
  137. package/.dist/events/window.js +3 -0
  138. package/.dist/events/window.js.map +1 -0
  139. package/.dist/geometry.d.ts +178 -0
  140. package/.dist/geometry.js +315 -0
  141. package/.dist/geometry.js.map +1 -0
  142. package/.dist/iTerm2.d.ts +20 -0
  143. package/.dist/iTerm2.js +60 -0
  144. package/.dist/iTerm2.js.map +1 -0
  145. package/.dist/index.d.ts +18 -0
  146. package/.dist/index.js +37 -0
  147. package/.dist/index.js.map +1 -0
  148. package/.dist/inspect.d.ts +2 -0
  149. package/.dist/inspect.js +118 -0
  150. package/.dist/inspect.js.map +1 -0
  151. package/.dist/log.d.ts +12 -0
  152. package/.dist/log.js +56 -0
  153. package/.dist/log.js.map +1 -0
  154. package/.dist/managers/FocusManager.d.ts +28 -0
  155. package/.dist/managers/FocusManager.js +143 -0
  156. package/.dist/managers/FocusManager.js.map +1 -0
  157. package/.dist/managers/ModalManager.d.ts +10 -0
  158. package/.dist/managers/ModalManager.js +67 -0
  159. package/.dist/managers/ModalManager.js.map +1 -0
  160. package/.dist/managers/MouseManager.d.ts +21 -0
  161. package/.dist/managers/MouseManager.js +313 -0
  162. package/.dist/managers/MouseManager.js.map +1 -0
  163. package/.dist/managers/TickManager.d.ts +11 -0
  164. package/.dist/managers/TickManager.js +63 -0
  165. package/.dist/managers/TickManager.js.map +1 -0
  166. package/.dist/sys/alias.d.ts +470 -0
  167. package/.dist/sys/alias.js +487 -0
  168. package/.dist/sys/alias.js.map +1 -0
  169. package/.dist/sys/colors.d.ts +10 -0
  170. package/.dist/sys/colors.js +285 -0
  171. package/.dist/sys/colors.js.map +1 -0
  172. package/.dist/sys/gpmclient.d.ts +11 -0
  173. package/.dist/sys/gpmclient.js +193 -0
  174. package/.dist/sys/gpmclient.js.map +1 -0
  175. package/.dist/sys/index.d.ts +4 -0
  176. package/.dist/sys/index.js +41 -0
  177. package/.dist/sys/index.js.map +1 -0
  178. package/.dist/sys/keys.d.ts +4 -0
  179. package/.dist/sys/keys.js +531 -0
  180. package/.dist/sys/keys.js.map +1 -0
  181. package/.dist/sys/program.d.ts +356 -0
  182. package/.dist/sys/program.js +3739 -0
  183. package/.dist/sys/program.js.map +1 -0
  184. package/.dist/sys/tput.d.ts +297 -0
  185. package/.dist/sys/tput.js +2708 -0
  186. package/.dist/sys/tput.js.map +1 -0
  187. package/.dist/sys/unicode.d.ts +11 -0
  188. package/.dist/sys/unicode.js +619 -0
  189. package/.dist/sys/unicode.js.map +1 -0
  190. package/.dist/sys/usr/linux +0 -0
  191. package/.dist/sys/usr/windows-ansi +0 -0
  192. package/.dist/sys/usr/xterm +0 -0
  193. package/.dist/sys/usr/xterm-256color +0 -0
  194. package/.dist/sys/usr/xterm.termcap +243 -0
  195. package/.dist/sys/usr/xterm.terminfo +1977 -0
  196. package/.dist/terminal.d.ts +7 -0
  197. package/.dist/terminal.js +3 -0
  198. package/.dist/terminal.js.map +1 -0
  199. package/.dist/util.d.ts +22 -0
  200. package/.dist/util.js +79 -0
  201. package/.dist/util.js.map +1 -0
  202. package/LICENSE +24 -0
  203. package/package.json +49 -0
@@ -0,0 +1,531 @@
1
+ "use strict";
2
+ /**
3
+ * keys.js - emit key presses
4
+ * Copyright (c) 2010-2015, Joyent, Inc. and other contributors (MIT License)
5
+ * https://github.com/chjj/blessed
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || function (mod) {
24
+ if (mod && mod.__esModule) return mod;
25
+ var result = {};
26
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
27
+ __setModuleDefault(result, mod);
28
+ return result;
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.emitKeypressEvents = emitKeypressEvents;
32
+ // Originally taken from the node.js tree:
33
+ //
34
+ // Copyright Joyent, Inc. and other Node contributors. All rights reserved.
35
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
36
+ // of this software and associated documentation files (the "Software"), to
37
+ // deal in the Software without restriction, including without limitation the
38
+ // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
39
+ // sell copies of the Software, and to permit persons to whom the Software is
40
+ // furnished to do so, subject to the following conditions:
41
+ // The above copyright notice and this permission notice shall be included in
42
+ // all copies or substantial portions of the Software.
43
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
44
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
45
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
46
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
47
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
48
+ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
49
+ // IN THE SOFTWARE.
50
+ const node_events_1 = require("node:events");
51
+ const node_string_decoder_1 = require("node:string_decoder");
52
+ const unicode = __importStar(require("./unicode"));
53
+ // NOTE: node <=v0.8.x has no EventEmitter.listenerCount
54
+ function listenerCount(stream, event) {
55
+ return node_events_1.EventEmitter.listenerCount
56
+ ? node_events_1.EventEmitter.listenerCount(stream, event)
57
+ : stream.listeners(event).length;
58
+ }
59
+ /**
60
+ * accepts a readable Stream instance and makes it emit "keypress" events
61
+ */
62
+ function emitKeypressEvents(stream) {
63
+ if (stream._keypressDecoder)
64
+ return;
65
+ stream._keypressDecoder = new node_string_decoder_1.StringDecoder('utf8');
66
+ function onData(b) {
67
+ if (listenerCount(stream, 'keypress') > 0) {
68
+ var r = stream._keypressDecoder.write(b);
69
+ if (r)
70
+ emitKeys(stream, r);
71
+ }
72
+ else {
73
+ // Nobody's watching anyway
74
+ stream.removeListener('data', onData);
75
+ stream.on('newListener', onNewListener);
76
+ }
77
+ }
78
+ function onNewListener(event) {
79
+ if (event === 'keypress') {
80
+ stream.on('data', onData);
81
+ stream.removeListener('newListener', onNewListener);
82
+ }
83
+ }
84
+ if (listenerCount(stream, 'keypress') > 0) {
85
+ stream.on('data', onData);
86
+ }
87
+ else {
88
+ stream.on('newListener', onNewListener);
89
+ }
90
+ }
91
+ /*
92
+ Some patterns seen in terminal key escape codes, derived from combos seen
93
+ at http://www.midnight-commander.org/browser/lib/tty/key.c
94
+
95
+ ESC letter
96
+ ESC [ letter
97
+ ESC [ modifier letter
98
+ ESC [ 1 ; modifier letter
99
+ ESC [ num char
100
+ ESC [ num ; modifier char
101
+ ESC O letter
102
+ ESC O modifier letter
103
+ ESC O 1 ; modifier letter
104
+ ESC N letter
105
+ ESC [ [ num ; modifier char
106
+ ESC [ [ 1 ; modifier letter
107
+ ESC ESC [ num char
108
+ ESC ESC O letter
109
+
110
+ - char is usually ~ but $ and ^ also happen with rxvt
111
+ - modifier is 1 +
112
+ (shift * 1) +
113
+ (left_alt * 2) +
114
+ (ctrl * 4) +
115
+ (right_alt * 8)
116
+ - two leading ESCs apparently mean the same as one leading ESC
117
+ */
118
+ // Regexes used for ansi escape code splitting
119
+ var metaKeyCodeReAnywhere = /(?:\x1b)([a-zA-Z0-9])/;
120
+ var metaKeyCodeRe = new RegExp('^' + metaKeyCodeReAnywhere.source + '$');
121
+ var functionKeyCodeReAnywhere = new RegExp('(?:\x1b+)(O|N|\\[|\\[\\[)(?:' +
122
+ [
123
+ '(\\d+)(?:;(\\d+))?([~^$])',
124
+ '(?:M([@ #!a`])(.)(.))', // mouse
125
+ '(?:1;)?(\\d+)?([a-zA-Z])',
126
+ ].join('|') +
127
+ ')');
128
+ var functionKeyCodeRe = new RegExp('^' + functionKeyCodeReAnywhere.source);
129
+ var escapeCodeReAnywhere = new RegExp([
130
+ functionKeyCodeReAnywhere.source,
131
+ metaKeyCodeReAnywhere.source,
132
+ /\x1b./.source,
133
+ ].join('|'));
134
+ function emitKeys(stream, s) {
135
+ if (Buffer.isBuffer(s)) {
136
+ if (s[0] > 127 && s[1] === undefined) {
137
+ s[0] -= 128;
138
+ s = '\x1b' + s.toString(stream.encoding || 'utf-8');
139
+ }
140
+ else {
141
+ s = s.toString(stream.encoding || 'utf-8');
142
+ }
143
+ }
144
+ if (isMouse(s))
145
+ return;
146
+ var buffer = [];
147
+ var match;
148
+ while ((match = escapeCodeReAnywhere.exec(s))) {
149
+ buffer = buffer.concat(s.slice(0, match.index).split(''));
150
+ buffer.push(match[0]);
151
+ s = s.slice(match.index + match[0].length);
152
+ }
153
+ buffer = buffer.concat(s.split(''));
154
+ buffer.forEach(function (s) {
155
+ var ch, key = {
156
+ char: s,
157
+ name: undefined,
158
+ ctrl: false,
159
+ meta: false,
160
+ shift: false,
161
+ }, parts;
162
+ if (s === '\r') {
163
+ key.name = 'enter';
164
+ }
165
+ else if (s === '\n') {
166
+ key.name = 'return';
167
+ }
168
+ else if (s === '\t') {
169
+ key.name = 'tab';
170
+ }
171
+ else if (s === '\b' ||
172
+ s === '\x7f' ||
173
+ s === '\x1b\x7f' ||
174
+ s === '\x1b\b') {
175
+ key.name = 'backspace';
176
+ key.meta = s.charAt(0) === '\x1b';
177
+ }
178
+ else if (s === '\x1b' || s === '\x1b\x1b') {
179
+ key.name = 'escape';
180
+ key.meta = s.length === 2;
181
+ }
182
+ else if (s === ' ' || s === '\x1b ') {
183
+ key.name = 'space';
184
+ key.meta = s.length === 2;
185
+ }
186
+ else if (s.length === 1 && s <= '\x1a') {
187
+ // ctrl+letter
188
+ key.name = String.fromCharCode(s.charCodeAt(0) + 'a'.charCodeAt(0) - 1);
189
+ key.ctrl = true;
190
+ }
191
+ else if (s.length === 1 && s >= 'a' && s <= 'z') {
192
+ // lowercase letter
193
+ key.name = s;
194
+ }
195
+ else if (s.length === 1 && s >= 'A' && s <= 'Z') {
196
+ // shift+letter
197
+ key.name = s.toLowerCase();
198
+ key.shift = true;
199
+ }
200
+ else if ((parts = metaKeyCodeRe.exec(s))) {
201
+ // meta+character key
202
+ key.name = parts[1].toLowerCase();
203
+ key.meta = true;
204
+ key.shift = /^[A-Z]$/.test(parts[1]);
205
+ }
206
+ else if ((parts = functionKeyCodeRe.exec(s))) {
207
+ // ansi escape sequence
208
+ // reassemble the key code leaving out leading \x1b's,
209
+ // the modifier key bitflag and any meaningless "1;" sequence
210
+ var code = (parts[1] || '') +
211
+ (parts[2] || '') +
212
+ (parts[4] || '') +
213
+ (parts[9] || ''), modifier = (parts[3] || parts[8] || 1) - 1;
214
+ // Parse the key modifier
215
+ key.ctrl = !!(modifier & 4);
216
+ key.meta = !!(modifier & 10);
217
+ key.shift = !!(modifier & 1);
218
+ key.code = code;
219
+ // Parse the key itself
220
+ switch (code) {
221
+ /* xterm/gnome ESC O letter */
222
+ case 'OP':
223
+ key.name = 'f1';
224
+ break;
225
+ case 'OQ':
226
+ key.name = 'f2';
227
+ break;
228
+ case 'OR':
229
+ key.name = 'f3';
230
+ break;
231
+ case 'OS':
232
+ key.name = 'f4';
233
+ break;
234
+ /* xterm/rxvt ESC [ number ~ */
235
+ case '[11~':
236
+ key.name = 'f1';
237
+ break;
238
+ case '[12~':
239
+ key.name = 'f2';
240
+ break;
241
+ case '[13~':
242
+ key.name = 'f3';
243
+ break;
244
+ case '[14~':
245
+ key.name = 'f4';
246
+ break;
247
+ /* from Cygwin and used in libuv */
248
+ case '[[A':
249
+ key.name = 'f1';
250
+ break;
251
+ case '[[B':
252
+ key.name = 'f2';
253
+ break;
254
+ case '[[C':
255
+ key.name = 'f3';
256
+ break;
257
+ case '[[D':
258
+ key.name = 'f4';
259
+ break;
260
+ case '[[E':
261
+ key.name = 'f5';
262
+ break;
263
+ /* common */
264
+ case '[15~':
265
+ key.name = 'f5';
266
+ break;
267
+ case '[17~':
268
+ key.name = 'f6';
269
+ break;
270
+ case '[18~':
271
+ key.name = 'f7';
272
+ break;
273
+ case '[19~':
274
+ key.name = 'f8';
275
+ break;
276
+ case '[20~':
277
+ key.name = 'f9';
278
+ break;
279
+ case '[21~':
280
+ key.name = 'f10';
281
+ break;
282
+ case '[23~':
283
+ key.name = 'f11';
284
+ break;
285
+ case '[24~':
286
+ key.name = 'f12';
287
+ break;
288
+ /* xterm ESC [ letter */
289
+ case '[A':
290
+ key.name = 'up';
291
+ break;
292
+ case '[B':
293
+ key.name = 'down';
294
+ break;
295
+ case '[C':
296
+ key.name = 'right';
297
+ break;
298
+ case '[D':
299
+ key.name = 'left';
300
+ break;
301
+ case '[E':
302
+ key.name = 'clear';
303
+ break;
304
+ case '[F':
305
+ key.name = 'end';
306
+ break;
307
+ case '[H':
308
+ key.name = 'home';
309
+ break;
310
+ /* xterm/gnome ESC O letter */
311
+ case 'OA':
312
+ key.name = 'up';
313
+ break;
314
+ case 'OB':
315
+ key.name = 'down';
316
+ break;
317
+ case 'OC':
318
+ key.name = 'right';
319
+ break;
320
+ case 'OD':
321
+ key.name = 'left';
322
+ break;
323
+ case 'OE':
324
+ key.name = 'clear';
325
+ break;
326
+ case 'OF':
327
+ key.name = 'end';
328
+ break;
329
+ case 'OH':
330
+ key.name = 'home';
331
+ break;
332
+ /* xterm/rxvt ESC [ number ~ */
333
+ case '[1~':
334
+ key.name = 'home';
335
+ break;
336
+ case '[2~':
337
+ key.name = 'insert';
338
+ break;
339
+ case '[3~':
340
+ key.name = 'delete';
341
+ break;
342
+ case '[4~':
343
+ key.name = 'end';
344
+ break;
345
+ case '[5~':
346
+ key.name = 'pageup';
347
+ break;
348
+ case '[6~':
349
+ key.name = 'pagedown';
350
+ break;
351
+ /* putty */
352
+ case '[[5~':
353
+ key.name = 'pageup';
354
+ break;
355
+ case '[[6~':
356
+ key.name = 'pagedown';
357
+ break;
358
+ /* rxvt */
359
+ case '[7~':
360
+ key.name = 'home';
361
+ break;
362
+ case '[8~':
363
+ key.name = 'end';
364
+ break;
365
+ /* rxvt keys with modifiers */
366
+ case '[a':
367
+ key.name = 'up';
368
+ key.shift = true;
369
+ break;
370
+ case '[b':
371
+ key.name = 'down';
372
+ key.shift = true;
373
+ break;
374
+ case '[c':
375
+ key.name = 'right';
376
+ key.shift = true;
377
+ break;
378
+ case '[d':
379
+ key.name = 'left';
380
+ key.shift = true;
381
+ break;
382
+ case '[e':
383
+ key.name = 'clear';
384
+ key.shift = true;
385
+ break;
386
+ case '[2$':
387
+ key.name = 'insert';
388
+ key.shift = true;
389
+ break;
390
+ case '[3$':
391
+ key.name = 'delete';
392
+ key.shift = true;
393
+ break;
394
+ case '[5$':
395
+ key.name = 'pageup';
396
+ key.shift = true;
397
+ break;
398
+ case '[6$':
399
+ key.name = 'pagedown';
400
+ key.shift = true;
401
+ break;
402
+ case '[7$':
403
+ key.name = 'home';
404
+ key.shift = true;
405
+ break;
406
+ case '[8$':
407
+ key.name = 'end';
408
+ key.shift = true;
409
+ break;
410
+ case 'Oa':
411
+ key.name = 'up';
412
+ key.ctrl = true;
413
+ break;
414
+ case 'Ob':
415
+ key.name = 'down';
416
+ key.ctrl = true;
417
+ break;
418
+ case 'Oc':
419
+ key.name = 'right';
420
+ key.ctrl = true;
421
+ break;
422
+ case 'Od':
423
+ key.name = 'left';
424
+ key.ctrl = true;
425
+ break;
426
+ case 'Oe':
427
+ key.name = 'clear';
428
+ key.ctrl = true;
429
+ break;
430
+ case '[2^':
431
+ key.name = 'insert';
432
+ key.ctrl = true;
433
+ break;
434
+ case '[3^':
435
+ key.name = 'delete';
436
+ key.ctrl = true;
437
+ break;
438
+ case '[5^':
439
+ key.name = 'pageup';
440
+ key.ctrl = true;
441
+ break;
442
+ case '[6^':
443
+ key.name = 'pagedown';
444
+ key.ctrl = true;
445
+ break;
446
+ case '[7^':
447
+ key.name = 'home';
448
+ key.ctrl = true;
449
+ break;
450
+ case '[8^':
451
+ key.name = 'end';
452
+ key.ctrl = true;
453
+ break;
454
+ /* misc. */
455
+ case '[Z':
456
+ key.name = 'tab';
457
+ key.shift = true;
458
+ break;
459
+ default:
460
+ key.name = 'undefined';
461
+ break;
462
+ }
463
+ }
464
+ // Don't emit a key if no name was found
465
+ // We use this to match unicode/emoji characters
466
+ if (key.name === undefined) {
467
+ key = undefined;
468
+ }
469
+ if (s.length === 1) {
470
+ ch = s;
471
+ }
472
+ if (key || ch) {
473
+ throttleUnicode(key, ch, (key, ch) => {
474
+ stream.emit('keypress', ch, key);
475
+ });
476
+ }
477
+ });
478
+ }
479
+ let buffer = '';
480
+ let timer = null;
481
+ /**
482
+ * Unicode characters come in quickly, but not at the same time, and are not
483
+ * associated with a 'key' event. In this case, subsequent 'ch' characters are
484
+ * concatenated and split into unicode characters before sending to the program.
485
+ */
486
+ function throttleUnicode(key, ch, fn) {
487
+ if (timer) {
488
+ clearTimeout(timer);
489
+ }
490
+ if (key) {
491
+ // if a 'key' event comes in, clear the buffer (which only includes 'key-less'
492
+ // events) before sending the new event.
493
+ const chars = unicode.printableChars(buffer);
494
+ chars.forEach(ch => fn({
495
+ char: ch,
496
+ name: ch,
497
+ ctrl: false,
498
+ meta: false,
499
+ shift: false,
500
+ }, ch));
501
+ fn(key, ch);
502
+ buffer = '';
503
+ return;
504
+ }
505
+ buffer += ch;
506
+ // if no 'key' event, buffer the 'ch' until no more characters arrive
507
+ // the buffer is split before sending, even though it will usually only
508
+ // include one character
509
+ timer = setTimeout(() => {
510
+ const chars = unicode.printableChars(buffer);
511
+ chars.forEach(ch => fn({
512
+ char: ch,
513
+ name: ch,
514
+ ctrl: false,
515
+ meta: false,
516
+ shift: false,
517
+ }, ch));
518
+ buffer = '';
519
+ timer = null;
520
+ }, 0);
521
+ }
522
+ function isMouse(s) {
523
+ return (/\x1b\[M/.test(s) ||
524
+ /\x1b\[M([\x00\u0020-\uffff]{3})/.test(s) ||
525
+ /\x1b\[(\d+;\d+;\d+)M/.test(s) ||
526
+ /\x1b\[<(\d+;\d+;\d+)([mM])/.test(s) ||
527
+ /\x1b\[<(\d+;\d+;\d+;\d+)&w/.test(s) ||
528
+ /\x1b\[24([0135])~\[(\d+),(\d+)\]\r/.test(s) ||
529
+ /\x1b\[(O|I)/.test(s));
530
+ }
531
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../lib/sys/keys.js"],"names":[],"mappings":"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"}