1 | 'use strict';
|
2 |
|
3 | var states = require('./lib/states');
|
4 |
|
5 | module.exports = Terminal;
|
6 |
|
7 | function Terminal(opts) {
|
8 | opts = opts || {};
|
9 | if (!(this instanceof Terminal)) return new Terminal(opts);
|
10 |
|
11 | this.cols = opts.cols || 500;
|
12 | this.rows = opts.rows || 500;
|
13 |
|
14 | this.ybase = 0;
|
15 | this.ydisp = 0;
|
16 | this.x = 0;
|
17 | this.y = 0;
|
18 | this.cursorState = 0;
|
19 | this.cursorHidden = false;
|
20 | this.convertEol = false;
|
21 | this.state = states.normal;
|
22 | this.queue = '';
|
23 | this.scrollTop = 0;
|
24 | this.scrollBottom = this.rows - 1;
|
25 |
|
26 |
|
27 | this.applicationKeypad = false;
|
28 | this.originMode = false;
|
29 | this.insertMode = false;
|
30 | this.wraparoundMode = false;
|
31 | this.normal = null;
|
32 |
|
33 |
|
34 | this.charset = null;
|
35 | this.gcharset = null;
|
36 | this.glevel = 0;
|
37 | this.charsets = [null];
|
38 |
|
39 |
|
40 | this.element;
|
41 | this.children;
|
42 | this.refreshStart;
|
43 | this.refreshEnd;
|
44 | this.savedX;
|
45 | this.savedY;
|
46 | this.savedCols;
|
47 |
|
48 |
|
49 | this.readable = true;
|
50 | this.writable = true;
|
51 |
|
52 | this.defAttr = (257 << 9) | 256;
|
53 | this.curAttr = this.defAttr;
|
54 |
|
55 | this.params = [];
|
56 | this.currentParam = 0;
|
57 | this.prefix = '';
|
58 | this.postfix = '';
|
59 |
|
60 | this.lines = [];
|
61 | var i = this.rows;
|
62 | while (i--) {
|
63 | this.lines.push(this.blankLine());
|
64 | }
|
65 |
|
66 | this.tabs;
|
67 | this.setupStops();
|
68 | }
|
69 |
|
70 | require('./lib/colors')(Terminal);
|
71 | require('./lib/options')(Terminal);
|
72 |
|
73 | require('./lib/open')(Terminal);
|
74 | require('./lib/destroy')(Terminal);
|
75 | require('./lib/refresh')(Terminal);
|
76 |
|
77 | require('./lib/write')(Terminal);
|
78 |
|
79 | require('./lib/setgLevel');
|
80 | require('./lib/setgCharset');
|
81 |
|
82 | require('./lib/debug')(Terminal);
|
83 |
|
84 | require('./lib/stops')(Terminal);
|
85 |
|
86 | require('./lib/erase')(Terminal);
|
87 | require('./lib/blankLine')(Terminal);
|
88 | require('./lib/range')(Terminal);
|
89 | require('./lib/util')(Terminal);
|
90 |
|
91 | require('./lib/esc/index.js')(Terminal);
|
92 | require('./lib/esc/reset.js')(Terminal);
|
93 | require('./lib/esc/tabSet.js')(Terminal);
|
94 |
|
95 | require('./lib/csi/charAttributes')(Terminal);
|
96 | require('./lib/csi/insert-delete')(Terminal);
|
97 | require('./lib/csi/position')(Terminal);
|
98 | require('./lib/csi/cursor')(Terminal);
|
99 | require('./lib/csi/repeatPrecedingCharacter')(Terminal);
|
100 | require('./lib/csi/tabClear')(Terminal);
|
101 | require('./lib/csi/softReset')(Terminal);
|
102 |
|
103 | require('./lib/charsets.js')(Terminal);
|