@@ -62,6 +62,73 @@ describe('@api Table ', function () {
62
62
63
63
expect ( table . toString ( ) ) . toEqual ( expected . join ( '\n' ) ) ;
64
64
} ) ;
65
+
66
+ it ( 'supports complex layouts' , ( ) => {
67
+ let table = new Table ( { style : { border : [ ] , head : [ ] } } ) ;
68
+ table . push (
69
+ [ { content : 'TOP' , colSpan : 9 , hAlign : 'center' } ] ,
70
+ [
71
+ { content : 'TL' , rowSpan : 4 , vAlign : 'center' } ,
72
+ { content : 'A1' , rowSpan : 3 } ,
73
+ 'B1' ,
74
+ 'C1' ,
75
+ { content : 'D1' , rowSpan : 3 , vAlign : 'center' } ,
76
+ 'E1' ,
77
+ 'F1' ,
78
+ { content : 'G1' , rowSpan : 3 } ,
79
+ { content : 'TR' , rowSpan : 4 , vAlign : 'center' } ,
80
+ ] ,
81
+ [ { rowSpan : 2 , content : 'B2' } , 'C2' , { rowSpan : 2 , colSpan : 2 , content : 'E2' } ] ,
82
+ [ 'C3' ] ,
83
+ [ { content : 'A2' , colSpan : 7 , hAlign : 'center' } ] ,
84
+ [ { content : 'CLEAR' , colSpan : 9 , hAlign : 'center' } ] ,
85
+ [
86
+ { content : 'BL' , rowSpan : 4 , vAlign : 'center' } ,
87
+ { content : 'A3' , colSpan : 7 , hAlign : 'center' } ,
88
+ { content : 'BR' , rowSpan : 4 , vAlign : 'center' } ,
89
+ ] ,
90
+ [
91
+ { content : 'A4' , colSpan : 3 , hAlign : 'center' } ,
92
+ { content : 'D2' , rowSpan : 2 , vAlign : 'center' } ,
93
+ { content : 'E3' , colSpan : 2 , hAlign : 'center' } ,
94
+ { content : 'G2' , rowSpan : 3 , vAlign : 'center' } ,
95
+ ] ,
96
+ [
97
+ { content : 'A5' , rowSpan : 2 , vAlign : 'center' } ,
98
+ { content : 'B3' , colSpan : 2 , hAlign : 'center' } ,
99
+ { content : 'E4' , rowSpan : 2 , vAlign : 'center' } ,
100
+ { content : 'F3' , rowSpan : 2 , vAlign : 'center' } ,
101
+ ] ,
102
+ [ 'B4' , { content : 'C4' , colSpan : 2 , hAlign : 'center' } ] ,
103
+ [ { content : 'BOTTOM' , colSpan : 9 , hAlign : 'center' } ]
104
+ ) ;
105
+ let expected = [
106
+ '┌────────────────────────────────────────────┐' ,
107
+ '│ TOP │' ,
108
+ '├────┬────┬────┬────┬────┬────┬────┬────┬────┤' ,
109
+ '│ │ A1 │ B1 │ C1 │ │ E1 │ F1 │ G1 │ │' ,
110
+ '│ │ ├────┼────┤ ├────┴────┤ │ │' ,
111
+ '│ │ │ B2 │ C2 │ D1 │ E2 │ │ │' ,
112
+ '│ TL │ │ ├────┤ │ │ │ TR │' ,
113
+ '│ │ │ │ C3 │ │ │ │ │' ,
114
+ '│ ├────┴────┴────┴────┴─────────┴────┤ │' ,
115
+ '│ │ A2 │ │' ,
116
+ '├────┴──────────────────────────────────┴────┤' ,
117
+ '│ CLEAR │' ,
118
+ '├────┬──────────────────────────────────┬────┤' ,
119
+ '│ │ A3 │ │' ,
120
+ '│ ├──────────────┬────┬─────────┬────┤ │' ,
121
+ '│ │ A4 │ │ E3 │ │ │' ,
122
+ '│ BL ├────┬─────────┤ D2 ├────┬────┤ │ BR │' ,
123
+ '│ │ │ B3 │ │ │ │ G2 │ │' ,
124
+ '│ │ A5 ├────┬────┴────┤ E4 │ F3 │ │ │' ,
125
+ '│ │ │ B4 │ C4 │ │ │ │ │' ,
126
+ '├────┴────┴────┴─────────┴────┴────┴────┴────┤' ,
127
+ '│ BOTTOM │' ,
128
+ '└────────────────────────────────────────────┘' ,
129
+ ] ;
130
+ expect ( table . toString ( ) ) . toEqual ( expected . join ( '\n' ) ) ;
131
+ } ) ;
65
132
} ) ;
66
133
67
134
/*
0 commit comments