Skip to content

Commit 9cbbcbf

Browse files
committed
dont touch trace data - move handeling of typedarrays from calc to plot step
1 parent 48860c2 commit 9cbbcbf

File tree

3 files changed

+12
-13
lines changed

3 files changed

+12
-13
lines changed

src/traces/parcoords/calc.js

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,15 @@
88

99
'use strict';
1010

11+
var isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;
1112
var Colorscale = require('../../components/colorscale');
12-
var Lib = require('../../lib');
1313
var wrap = require('../../lib/gup').wrap;
1414

1515
module.exports = function calc(gd, trace) {
16-
for(var i = 0; i < trace.dimensions.length; i++) {
17-
trace.dimensions[i].values = convertTypedArray(trace.dimensions[i].values);
18-
}
19-
trace.line.color = convertTypedArray(trace.line.color);
20-
2116
var lineColor;
2217
var cscale;
2318

24-
if(Colorscale.hasColorscale(trace, 'line') && Array.isArray(trace.line.color)) { // TODO: should we support typed arrays here?
19+
if(Colorscale.hasColorscale(trace, 'line') && isArrayOrTypedArray(trace.line.color)) {
2520
lineColor = trace.line.color;
2621
cscale = Colorscale.extractOpts(trace.line).colorscale;
2722

@@ -45,7 +40,3 @@ function constHalf(len) {
4540
}
4641
return out;
4742
}
48-
49-
function convertTypedArray(a) {
50-
return Lib.isTypedArray(a) ? Array.prototype.slice.call(a) : a;
51-
}

src/traces/parcoords/parcoords.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ var c = require('./constants');
2626
var brush = require('./axisbrush');
2727
var lineLayerMaker = require('./lines');
2828

29+
function convertTypedArray(a) {
30+
return Lib.isTypedArray(a) ? Array.prototype.slice.call(a) : a;
31+
}
32+
2933
function visible(dimension) { return !('visible' in dimension) || dimension.visible; }
3034

3135
function dimensionExtent(dimension) {
@@ -136,7 +140,7 @@ function someFiltersActive(view) {
136140
function model(layout, d, i) {
137141
var cd0 = unwrap(d);
138142
var trace = cd0.trace;
139-
var lineColor = cd0.lineColor;
143+
var lineColor = convertTypedArray(cd0.lineColor);
140144
var line = trace.line;
141145
var cOpts = Colorscale.extractOpts(line);
142146
var cscale = cOpts.reversescale ? Colorscale.flipScale(cd0.cscale) : cd0.cscale;
@@ -270,6 +274,9 @@ function viewModel(state, callbacks, model) {
270274
}
271275
} else tickvals = undefined;
272276

277+
truncatedValues = convertTypedArray(truncatedValues);
278+
truncatedValues = convertTypedArray(truncatedValues);
279+
273280
return {
274281
key: key,
275282
label: dimension.label,

test/jasmine/tests/parcoords_test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ describe('parcoords initialization tests', function() {
322322
color: '#444'
323323
});
324324
});
325-
325+
/* TODO: write a new test for typed arrays
326326
it('\'dimensions.values\' and \'line.color\' should convert typed arrays to normal arrays', function() {
327327
var fullTrace = _calc(Lib.extendDeep({}, base, {
328328
dimensions: [{
@@ -346,6 +346,7 @@ describe('parcoords initialization tests', function() {
346346
expect(Array.isArray(fullTrace.dimensions[1].values) === true).toEqual(true);
347347
expect(Array.isArray(fullTrace.dimensions[2].values) === true).toEqual(true);
348348
});
349+
*/
349350
});
350351
});
351352

0 commit comments

Comments
 (0)