@@ -160,7 +160,7 @@ module.exports = function calc(gd, trace) {
160
160
161
161
// Array of DimensionModel objects
162
162
var dimensionModels = trace . dimensions . filter ( visible ) . map ( function ( di , i ) {
163
- return createDimensionModel ( i , di . _index , di . displayindex , di . label , totalCount ) ;
163
+ return createDimensionModel ( i , di . _index , di . _displayindex , di . label , totalCount ) ;
164
164
} ) ;
165
165
166
166
@@ -456,16 +456,23 @@ function getUniqueInfo(values, uniqueValues) {
456
456
457
457
/**
458
458
* Validate the requested display order for the dimensions.
459
- * If the display order is a permutation of 0 through dimensions.length - 1 then leave it alone. Otherwise, repalce
460
- * the display order with the dimension order
459
+ * If the display order is a permutation of 0 through dimensions.length - 1, link to _displayindex
460
+ * Otherwise, replace the display order with the dimension order
461
461
* @param {Object } trace
462
462
*/
463
463
function validateDimensionDisplayInds ( trace ) {
464
- var displayInds = trace . dimensions . filter ( visible ) . map ( function ( dim ) { return dim . displayindex ; } ) ;
465
- if ( ! isRangePermutation ( displayInds ) ) {
466
- trace . dimensions . filter ( visible ) . forEach ( function ( dim , i ) {
467
- dim . displayindex = i ;
468
- } ) ;
464
+ var visibleDims = Lib . filterVisible ( trace . dimensions ) ;
465
+ var displayInds = visibleDims . map ( function ( d ) { return d . displayindex ; } ) ;
466
+ var i ;
467
+
468
+ if ( isRangePermutation ( displayInds ) ) {
469
+ for ( i = 0 ; i < visibleDims . length ; i ++ ) {
470
+ visibleDims [ i ] . _displayindex = visibleDims [ i ] . displayindex ;
471
+ }
472
+ } else {
473
+ for ( i = 0 ; i < visibleDims . length ; i ++ ) {
474
+ visibleDims [ i ] . _displayindex = i ;
475
+ }
469
476
}
470
477
}
471
478
0 commit comments