Skip to content

Commit 5902656

Browse files
committed
handle typed arrays in table
1 parent 14fed21 commit 5902656

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

src/traces/table/data_preparation_helper.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
var c = require('./constants');
44
var extendFlat = require('../../lib/extend').extendFlat;
55
var isNumeric = require('fast-isnumeric');
6+
var isArrayOrTypedArray = require('../../lib/array').isArrayOrTypedArray;
67

78
// pure functions, don't alter but passes on `gd` and parts of `trace` without deep copying
89
module.exports = function calc(gd, trace) {
@@ -35,9 +36,13 @@ module.exports = function calc(gd, trace) {
3536
var headerRowBlocks = makeRowBlock(anchorToHeaderRowBlock, []);
3637
var rowBlocks = makeRowBlock(anchorToRowBlock, headerRowBlocks);
3738
var uniqueKeys = {};
38-
var columnOrder = trace._fullInput.columnorder.concat(slicer(cellsValues.map(function(d, i) {return i;})));
39+
40+
var columnOrder = trace._fullInput.columnorder;
41+
if(isArrayOrTypedArray(columnOrder)) columnOrder = Array.from(columnOrder);
42+
columnOrder = columnOrder.concat(slicer(cellsValues.map(function(d, i) {return i;})));
43+
3944
var columnWidths = headerValues.map(function(d, i) {
40-
var value = Array.isArray(trace.columnwidth) ?
45+
var value = isArrayOrTypedArray(trace.columnwidth) ?
4146
trace.columnwidth[Math.min(i, trace.columnwidth.length - 1)] :
4247
trace.columnwidth;
4348
return isNumeric(value) ? Number(value) : 1;
@@ -95,7 +100,7 @@ module.exports = function calc(gd, trace) {
95100
};
96101

97102
function arrayMax(maybeArray) {
98-
if(Array.isArray(maybeArray)) {
103+
if(isArrayOrTypedArray(maybeArray)) {
99104
var max = 0;
100105
for(var i = 0; i < maybeArray.length; i++) {
101106
max = Math.max(max, arrayMax(maybeArray[i]));
@@ -115,7 +120,7 @@ function squareStringMatrix(matrixIn) {
115120
var maxLen = 0;
116121
var i;
117122
for(i = 0; i < matrix.length; i++) {
118-
if(!Array.isArray(matrix[i])) matrix[i] = [matrix[i]];
123+
if(!isArrayOrTypedArray(matrix[i])) matrix[i] = [matrix[i]];
119124
minLen = Math.min(minLen, matrix[i].length);
120125
maxLen = Math.max(maxLen, matrix[i].length);
121126
}

src/traces/table/plot.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -600,9 +600,9 @@ function columnMoved(gd, calcdata, indices) {
600600
}
601601

602602
function gridPick(spec, col, row) {
603-
if(Array.isArray(spec)) {
603+
if(Lib.isArrayOrTypedArray(spec)) {
604604
var column = spec[Math.min(col, spec.length - 1)];
605-
if(Array.isArray(column)) {
605+
if(Lib.isArrayOrTypedArray(column)) {
606606
return column[Math.min(row, column.length - 1)];
607607
} else {
608608
return column;

0 commit comments

Comments
 (0)