Skip to content

Commit a60a382

Browse files
committed
keep track of initial order - to handle chrome unstable sort in old versions
1 parent 3cee835 commit a60a382

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

src/components/legend/get_legend_data.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ module.exports = function getLegendData(calcdata, opts) {
1111
var lgroupi = 0;
1212
var maxNameLength = 0;
1313
var i, j;
14-
14+
var initID = 0;
1515
function addOneItem(legendGroup, legendItem) {
16+
legendItem._initID = initID++;
17+
1618
// each '' legend group is treated as a separate group
1719
if(legendGroup === '' || !helpers.isGrouped(opts)) {
1820
// TODO: check this against fullData legendgroups?
@@ -78,6 +80,7 @@ module.exports = function getLegendData(calcdata, opts) {
7880
var B = b[0].trace;
7981
var delta = A.legendrank - B.legendrank;
8082
if(!delta) delta = A.index - B.index;
83+
if(!delta) delta = a[0]._initID - b[0]._initID;
8184

8285
return dir * delta;
8386
};

test/jasmine/tests/legend_test.js

+12-12
Original file line numberDiff line numberDiff line change
@@ -283,22 +283,22 @@ describe('legend getLegendData', function() {
283283

284284
expected = [
285285
[
286-
[{trace: {
286+
[{_initID: 0, trace: {
287287
type: 'scatter',
288288
visible: true,
289289
legendgroup: 'group',
290290
showlegend: true
291291

292292
}}],
293-
[{trace: {
293+
[{_initID: 2, trace: {
294294
type: 'scatter',
295295
visible: true,
296296
legendgroup: 'group',
297297
showlegend: true
298298
}}]
299299
],
300300
[
301-
[{trace: {
301+
[{_initID: 1, trace: {
302302
type: 'bar',
303303
visible: 'legendonly',
304304
legendgroup: '',
@@ -341,20 +341,20 @@ describe('legend getLegendData', function() {
341341

342342
expected = [
343343
[
344-
[{trace: {
344+
[{_initID: 0, trace: {
345345
type: 'scatter',
346346
visible: true,
347347
legendgroup: '',
348348
showlegend: true
349349

350350
}}],
351-
[{trace: {
351+
[{_initID: 1, trace: {
352352
type: 'bar',
353353
visible: 'legendonly',
354354
legendgroup: '',
355355
showlegend: true
356356
}}],
357-
[{trace: {
357+
[{_initID: 2, trace: {
358358
type: 'scatter',
359359
visible: true,
360360
legendgroup: '',
@@ -427,20 +427,20 @@ describe('legend getLegendData', function() {
427427

428428
expected = [
429429
[
430-
[{trace: {
430+
[{_initID: 2, trace: {
431431
type: 'box',
432432
visible: true,
433433
legendgroup: '',
434434
showlegend: true
435435

436436
}}],
437-
[{trace: {
437+
[{_initID: 1, trace: {
438438
type: 'bar',
439439
visible: 'legendonly',
440440
legendgroup: '',
441441
showlegend: true
442442
}}],
443-
[{trace: {
443+
[{_initID: 0, trace: {
444444
type: 'scatter',
445445
visible: true,
446446
legendgroup: '',
@@ -483,22 +483,22 @@ describe('legend getLegendData', function() {
483483

484484
expected = [
485485
[
486-
[{trace: {
486+
[{_initID: 2, trace: {
487487
type: 'box',
488488
visible: true,
489489
legendgroup: 'group',
490490
showlegend: true
491491

492492
}}],
493-
[{trace: {
493+
[{_initID: 0, trace: {
494494
type: 'scatter',
495495
visible: true,
496496
legendgroup: 'group',
497497
showlegend: true
498498
}}]
499499
],
500500
[
501-
[{trace: {
501+
[{_initID: 1, trace: {
502502
type: 'bar',
503503
visible: 'legendonly',
504504
legendgroup: '',

0 commit comments

Comments
 (0)