@@ -13,10 +13,13 @@ var extendFlat = require('../../lib/extend').extendFlat;
1313
1414// pure functions, don't alter but passes on `gd` and parts of `trace` without deep copying
1515module . exports = function calc ( gd , trace ) {
16+ var headerValues = trace . header . values . map ( function ( c ) {
17+ return Array . isArray ( c ) ? c : [ c ] ;
18+ } ) ;
1619 var domain = trace . domain ;
1720 var groupWidth = Math . floor ( gd . _fullLayout . _size . w * ( domain . x [ 1 ] - domain . x [ 0 ] ) ) ;
1821 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 ; } ) ;
2023 var rowHeights = trace . cells . values [ 0 ] . map ( function ( ) { return trace . cells . height ; } ) ;
2124 var headerHeight = headerRowHeights . reduce ( function ( a , b ) { return a + b ; } , 0 ) ;
2225 var scrollHeight = groupHeight - headerHeight ;
@@ -27,7 +30,7 @@ module.exports = function calc(gd, trace) {
2730 var rowBlocks = makeRowBlock ( anchorToRowBlock , headerRowBlocks ) ;
2831 var uniqueKeys = { } ;
2932 var columnOrder = trace . _fullInput . columnorder ;
30- var columnWidths = trace . header . values . map ( function ( d , i ) {
33+ var columnWidths = headerValues . map ( function ( d , i ) {
3134 return Array . isArray ( trace . columnwidth ) ?
3235 trace . columnwidth [ Math . min ( i , trace . columnwidth . length - 1 ) ] :
3336 isFinite ( trace . columnwidth ) && trace . columnwidth !== null ? trace . columnwidth : 1 ;
@@ -50,12 +53,12 @@ module.exports = function calc(gd, trace) {
5053 headerRowBlocks : headerRowBlocks ,
5154 scrollY : 0 , // will be mutated on scroll
5255 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 ] ; } ) ,
5659 prevPages : [ 0 , 0 ] ,
5760 scrollbarState : { scrollbarScrollInProgress : false } ,
58- columns : trace . header . values . map ( function ( label , i ) {
61+ columns : headerValues . map ( function ( label , i ) {
5962 var foundKey = uniqueKeys [ label ] ;
6063 uniqueKeys [ label ] = ( foundKey || 0 ) + 1 ;
6164 var key = label + '__' + uniqueKeys [ label ] ;
0 commit comments