]>
Commit | Line | Data |
---|---|---|
e0d98711 | 1 | /** |
1d300911 | 2 | * @license MIT |
e0d98711 DI |
3 | */ |
4 | ||
824a9c6d PK |
5 | export interface IBrowser { |
6 | isNode: boolean; | |
7 | userAgent: string; | |
8 | platform: string; | |
9 | isFirefox: boolean; | |
10 | isMSIE: boolean; | |
11 | isMac: boolean; | |
12 | isIpad: boolean; | |
13 | isIphone: boolean; | |
14 | isMSWindows: boolean; | |
15 | } | |
16 | ||
e0d98711 | 17 | export interface ITerminal { |
30fcdd6c | 18 | element: HTMLElement; |
e0d98711 | 19 | rowContainer: HTMLElement; |
824a9c6d | 20 | textarea: HTMLTextAreaElement; |
92068f36 | 21 | ybase: number; |
e0d98711 | 22 | ydisp: number; |
92068f36 | 23 | lines: ICircularList<string>; |
e0d98711 | 24 | rows: number; |
92068f36 | 25 | cols: number; |
824a9c6d | 26 | browser: IBrowser; |
92068f36 DI |
27 | writeBuffer: string[]; |
28 | children: HTMLElement[]; | |
29 | cursorHidden: boolean; | |
30 | cursorState: number; | |
31 | x: number; | |
32 | y: number; | |
33 | defAttr: number; | |
e0d98711 | 34 | |
30fcdd6c DI |
35 | /** |
36 | * Emit the 'data' event and populate the given data. | |
37 | * @param data The data to populate in the event. | |
38 | */ | |
39 | handler(data: string); | |
e0d98711 DI |
40 | on(event: string, callback: () => void); |
41 | scrollDisp(disp: number, suppressScrollEvent: boolean); | |
824a9c6d | 42 | cancel(ev: Event, force?: boolean); |
92068f36 DI |
43 | log(text: string): void; |
44 | emit(event: string, data: any); | |
45 | } | |
46 | ||
1306431e DI |
47 | export interface ICharMeasure { |
48 | width: number; | |
49 | height: number; | |
50 | measure(): void; | |
51 | } | |
52 | ||
92068f36 DI |
53 | interface ICircularList<T> { |
54 | length: number; | |
55 | maxLength: number; | |
56 | ||
57 | forEach(callbackfn: (value: T, index: number, array: T[]) => void): void; | |
58 | get(index: number): T; | |
59 | set(index: number, value: T): void; | |
60 | push(value: T): void; | |
61 | pop(): T; | |
62 | splice(start: number, deleteCount: number, ...items: T[]): void; | |
63 | trimStart(count: number): void; | |
64 | shiftElements(start: number, count: number, offset: number): void; | |
e0d98711 | 65 | } |
04b1ebf1 DI |
66 | |
67 | /** | |
68 | * Handles actions generated by the parser. | |
69 | */ | |
70 | export interface IInputHandler { | |
fa3484cd DI |
71 | addChar(char: string, code: number): void; |
72 | ||
f9a286a8 DI |
73 | /** C0 BEL */ bell(): void; |
74 | /** C0 LF */ lineFeed(): void; | |
75 | /** C0 CR */ carriageReturn(): void; | |
76 | /** C0 BS */ backspace(): void; | |
77 | /** C0 HT */ tab(): void; | |
78 | /** C0 SO */ shiftOut(): void; | |
79 | /** C0 SI */ shiftIn(): void; | |
9b662080 | 80 | |
f4846aa1 DI |
81 | /** CSI @ */ insertChars(params?: number[]): void; |
82 | /** CSI A */ cursorUp(params?: number[]): void; | |
83 | /** CSI B */ cursorDown(params?: number[]): void; | |
84 | /** CSI C */ cursorForward(params?: number[]): void; | |
85 | /** CSI D */ cursorBackward(params?: number[]): void; | |
86 | /** CSI E */ cursorNextLine(params?: number[]): void; | |
87 | /** CSI F */ cursorPrecedingLine(params?: number[]): void; | |
88 | /** CSI G */ cursorCharAbsolute(params?: number[]): void; | |
89 | /** CSI H */ cursorPosition(params?: number[]): void; | |
90 | /** CSI I */ cursorForwardTab(params?: number[]): void; | |
91 | /** CSI J */ eraseInDisplay(params?: number[]): void; | |
92 | /** CSI K */ eraseInLine(params?: number[]): void; | |
93 | /** CSI L */ insertLines(params?: number[]): void; | |
94 | /** CSI M */ deleteLines(params?: number[]): void; | |
95 | /** CSI P */ deleteChars(params?: number[]): void; | |
96 | /** CSI S */ scrollUp(params?: number[]): void; | |
97 | /** CSI T */ scrollDown(params?: number[]): void; | |
98 | /** CSI X */ eraseChars(params?: number[]): void; | |
99 | /** CSI Z */ cursorBackwardTab(params?: number[]): void; | |
100 | /** CSI ` */ charPosAbsolute(params?: number[]): void; | |
101 | /** CSI a */ HPositionRelative(params?: number[]): void; | |
102 | /** CSI b */ repeatPrecedingCharacter(params?: number[]): void; | |
103 | /** CSI c */ sendDeviceAttributes(params?: number[]): void; | |
104 | /** CSI d */ linePosAbsolute(params?: number[]): void; | |
105 | /** CSI e */ VPositionRelative(params?: number[]): void; | |
106 | /** CSI f */ HVPosition(params?: number[]): void; | |
107 | /** CSI g */ tabClear(params?: number[]): void; | |
108 | /** CSI h */ setMode(params?: number[]): void; | |
109 | /** CSI l */ resetMode(params?: number[]): void; | |
110 | /** CSI m */ charAttributes(params?: number[]): void; | |
111 | /** CSI n */ deviceStatus(params?: number[]): void; | |
112 | /** CSI p */ softReset(params?: number[]): void; | |
0bd469f5 | 113 | /** CSI q */ setCursorStyle(params?: number[]): void; |
f4846aa1 DI |
114 | /** CSI r */ setScrollRegion(params?: number[]): void; |
115 | /** CSI s */ saveCursor(params?: number[]): void; | |
116 | /** CSI u */ restoreCursor(params?: number[]): void; | |
04b1ebf1 | 117 | } |