@@ -13,10 +13,13 @@ var extendFlat = require('../../lib/extend').extendFlat;
13
13
14
14
// pure functions, don't alter but passes on `gd` and parts of `trace` without deep copying
15
15
module . exports = function calc ( gd , trace ) {
16
+ var headerValues = trace . header . values . map ( function ( c ) {
17
+ return Array . isArray ( c ) ? c : [ c ] ;
18
+ } ) ;
16
19
var domain = trace . domain ;
17
20
var groupWidth = Math . floor ( gd . _fullLayout . _size . w * ( domain . x [ 1 ] - domain . x [ 0 ] ) ) ;
18
21
var groupHeight = Math . floor ( gd . _fullLayout . _size . h * ( domain . y [ 1 ] - domain . y [ 0 ] ) ) ;
19
- var headerRowHeights = trace . header . values [ 0 ] . map ( function ( ) { return trace . header . height ; } ) ;
22
+ var headerRowHeights = headerValues [ 0 ] . map ( function ( ) { return trace . header . height ; } ) ;
20
23
var rowHeights = trace . cells . values [ 0 ] . map ( function ( ) { return trace . cells . height ; } ) ;
21
24
var headerHeight = headerRowHeights . reduce ( function ( a , b ) { return a + b ; } , 0 ) ;
22
25
var scrollHeight = groupHeight - headerHeight ;
@@ -27,7 +30,7 @@ module.exports = function calc(gd, trace) {
27
30
var rowBlocks = makeRowBlock ( anchorToRowBlock , headerRowBlocks ) ;
28
31
var uniqueKeys = { } ;
29
32
var columnOrder = trace . _fullInput . columnorder ;
30
- var columnWidths = trace . header . values . map ( function ( d , i ) {
33
+ var columnWidths = headerValues . map ( function ( d , i ) {
31
34
return Array . isArray ( trace . columnwidth ) ?
32
35
trace . columnwidth [ Math . min ( i , trace . columnwidth . length - 1 ) ] :
33
36
isFinite ( trace . columnwidth ) && trace . columnwidth !== null ? trace . columnwidth : 1 ;
@@ -50,12 +53,12 @@ module.exports = function calc(gd, trace) {
50
53
headerRowBlocks : headerRowBlocks ,
51
54
scrollY : 0 , // will be mutated on scroll
52
55
cells : trace . cells ,
53
- headerCells : trace . header ,
54
- gdColumns : trace . header . values . map ( function ( d ) { return d [ 0 ] ; } ) ,
55
- gdColumnsOriginalOrder : trace . header . values . map ( function ( d ) { return d [ 0 ] ; } ) ,
56
+ headerCells : extendFlat ( { } , trace . header , { values : headerValues } ) ,
57
+ gdColumns : headerValues . map ( function ( d ) { return d [ 0 ] ; } ) ,
58
+ gdColumnsOriginalOrder : headerValues . map ( function ( d ) { return d [ 0 ] ; } ) ,
56
59
prevPages : [ 0 , 0 ] ,
57
60
scrollbarState : { scrollbarScrollInProgress : false } ,
58
- columns : trace . header . values . map ( function ( label , i ) {
61
+ columns : headerValues . map ( function ( label , i ) {
59
62
var foundKey = uniqueKeys [ label ] ;
60
63
uniqueKeys [ label ] = ( foundKey || 0 ) + 1 ;
61
64
var key = label + '__' + uniqueKeys [ label ] ;
0 commit comments