1 | #!/usr/bin/env node
|
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 |
|
28 | "use strict" ;
|
29 |
|
30 |
|
31 |
|
32 | const termkit = require( '../../lib/termkit.js' ) ;
|
33 | const term = termkit.terminal ;
|
34 |
|
35 |
|
36 |
|
37 | term.clear() ;
|
38 |
|
39 |
|
40 | var document = term.createDocument() ;
|
41 |
|
42 | var text = new termkit.Text( {
|
43 | parent: document ,
|
44 | content: "Responsive terminal layout! Try resizing your terminal! ;)" ,
|
45 | attr: {
|
46 | color: 'brightMagenta' ,
|
47 | bold: true ,
|
48 | italic: true
|
49 | }
|
50 | } ) ;
|
51 |
|
52 | var layout = new termkit.Layout( {
|
53 | parent: document ,
|
54 | boxChars: 'double' ,
|
55 | layout: {
|
56 | id: 'main' ,
|
57 | y: 3 ,
|
58 | widthPercent: 60 ,
|
59 | heightPercent: 60 ,
|
60 | rows: [
|
61 | {
|
62 | id: '1st row' ,
|
63 | heightPercent: 75 ,
|
64 | columns: [
|
65 | { id: 'percent' , widthPercent: 100/3 } ,
|
66 | { id: 'auto' } ,
|
67 | { id: 'fixed' , width: 30 } ,
|
68 | ]
|
69 | } ,
|
70 | {
|
71 | id: '2nd row' ,
|
72 | columns: [
|
73 | { id: 'fixed2' , width: 20 } ,
|
74 | { id: 'auto2' } ,
|
75 | ]
|
76 | }
|
77 | ]
|
78 | }
|
79 | } ) ;
|
80 |
|
81 |
|
82 | term.hideCursor() ;
|
83 |
|
84 |
|
85 |
|
86 | new termkit.Text( {
|
87 | parent: document.elements.percent ,
|
88 | content: 'Percent sized box' ,
|
89 | attr: { color: 'red' }
|
90 | } ) ;
|
91 |
|
92 | new termkit.Text( {
|
93 | parent: document.elements.auto ,
|
94 | content: 'Auto sized box' ,
|
95 | attr: { color: 'green' , italic: true }
|
96 | } ) ;
|
97 |
|
98 | new termkit.Text( {
|
99 | parent: document.elements.auto2 ,
|
100 | content: 'Auto sized box' ,
|
101 | attr: { color: 'yellow' , italic: true }
|
102 | } ) ;
|
103 |
|
104 | new termkit.Text( {
|
105 | parent: document.elements.fixed ,
|
106 | content: 'Fixed size box' ,
|
107 | attr: { color: 'cyan' , bold: true }
|
108 | } ) ;
|
109 |
|
110 | new termkit.Text( {
|
111 | parent: document.elements.fixed2 ,
|
112 | content: 'Fixed size box' ,
|
113 | attr: { color: 'magenta' , bold: true }
|
114 | } ) ;
|
115 |
|
116 |
|
117 | term.on( 'key' , function( key ) {
|
118 | if ( key === 'CTRL_C' ) {
|
119 | term.grabInput( false ) ;
|
120 | term.hideCursor( false ) ;
|
121 | term.clear() ;
|
122 | process.exit() ;
|
123 | }
|
124 | } ) ;
|
125 |
|
126 |
|
127 |
|
128 |
|