Skip to content

Commit 2914181

Browse files
RangeSelector: fix minVisible/maxVisible setting to 0 (T1269725) (#28613)
Co-authored-by: ksercs <[email protected]>
1 parent 9c27014 commit 2914181

File tree

2 files changed

+79
-44
lines changed

2 files changed

+79
-44
lines changed

packages/devextreme/js/viz/range_selector/series_data_source.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,8 @@ SeriesDataSource.prototype = {
218218
}
219219

220220
if(isNumeric(rangeVisibleSizeY)) {
221-
valRange.maxVisible = valRange.maxVisible ? valRange.maxVisible + rangeVisibleSizeY * maxIndent : undefined;
222-
valRange.minVisible = valRange.minVisible ? valRange.minVisible - rangeVisibleSizeY * minIndent : undefined;
221+
valRange.maxVisible = isDefined(valRange.maxVisible) ? valRange.maxVisible + rangeVisibleSizeY * maxIndent : undefined;
222+
valRange.minVisible = isDefined(valRange.minVisible) ? valRange.minVisible - rangeVisibleSizeY * minIndent : undefined;
223223
}
224224
valRange.invert = valueAxis.inverted;
225225
}

packages/devextreme/testing/tests/DevExpress.viz.rangeSelector/seriesDataSource.tests.js

Lines changed: 77 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ QUnit.test('one series', function(assert) {
7878
argumentAxis: this.argumentAxis
7979
});
8080
const series = seriesDataSource.getSeries();
81-
// assert
81+
8282
assert.equal(series.length, 1);
8383
assert.equal(series[0].type, 'area');
8484
const points = series[0].getPoints();
@@ -156,7 +156,7 @@ QUnit.test('datetime in chart valueAxis', function(assert) {
156156

157157
// act
158158
const range = seriesDataSource.getBoundRange();
159-
// assert
159+
160160
assert.strictEqual(range.val.min.toUTCString(), (new Date(1980, 5, 11)).toUTCString());
161161
assert.strictEqual(range.val.max.toUTCString(), (new Date(1980, 6, 20)).toUTCString());
162162
});
@@ -188,7 +188,6 @@ QUnit.test('seriesDateSource with categories', function(assert) {
188188
categories: ['a1', 'a2', 'a3']
189189
});
190190

191-
// assert
192191
assert.deepEqual(seriesDataSource._series[0].argumentAxisType, 'discrete');
193192
assert.deepEqual(seriesDataSource._series[1].argumentAxisType, 'discrete');
194193
});
@@ -234,7 +233,7 @@ QUnit.test('several series', function(assert) {
234233
argumentAxis: this.argumentAxis
235234
});
236235
const series = seriesDataSource.getSeries();
237-
// assert
236+
238237
assert.equal(series.length, 2);
239238
let points = series[0].getPoints();
240239
assert.equal(series[0].type, 'area');
@@ -268,7 +267,7 @@ QUnit.test('several series. Set valueType', function(assert) {
268267
argumentAxis: this.argumentAxis
269268
});
270269
const series = seriesDataSource.getSeries();
271-
// assert
270+
272271
assert.equal(series.length, 2);
273272
assert.equal(series[0].valueType, 'numeric');
274273
assert.equal(series[1].valueType, 'numeric');
@@ -303,7 +302,7 @@ QUnit.test('series theme', function(assert) {
303302
});
304303

305304
const series = seriesDataSource.getSeries();
306-
// assert
305+
307306
assert.equal(series.length, 2);
308307
assert.equal(series[0].type, 'area');
309308
assert.equal(series[1].type, 'line');
@@ -342,7 +341,7 @@ QUnit.test('Pass series count to themeManager', function(assert) {
342341
});
343342

344343
const series = seriesDataSource.getSeries();
345-
// assert
344+
346345
assert.equal(series.length, 3);
347346
assert.equal(series[0].getColor(), 'green');
348347
assert.equal(series[1].getColor(), 'red');
@@ -370,7 +369,7 @@ QUnit.test('getBoundRange with topIndent, bottomIndent', function(assert) {
370369
argumentAxis: this.argumentAxis
371370
});
372371
const boundRange = seriesDataSource.getBoundRange();
373-
// assert
372+
374373
assert.equal(boundRange.val.min, -20);
375374
assert.equal(boundRange.val.max, 240);
376375
assert.equal(boundRange.val.minVisible, undefined);
@@ -397,7 +396,7 @@ QUnit.test('getBoundRange with topIndent>1, bottomIndent<0', function(assert) {
397396
argumentAxis: this.argumentAxis
398397
});
399398
const boundRange = seriesDataSource.getBoundRange();
400-
// assert
399+
401400
assert.equal(boundRange.val.min, 0);
402401
assert.equal(boundRange.val.max, 200);
403402
assert.equal(boundRange.val.minVisible, undefined);
@@ -418,7 +417,7 @@ QUnit.test('getBoundRange if no series', function(assert) {
418417
incidentOccurred: noop
419418
});
420419
const boundRange = seriesDataSource.getBoundRange();
421-
// assert
420+
422421
assert.strictEqual(boundRange.val.min, undefined);
423422
assert.strictEqual(boundRange.val.max, undefined);
424423
});
@@ -446,7 +445,7 @@ QUnit.test('getBoundRange with topIndent, bottomIndent, valueAxis min', function
446445
argumentAxis: this.argumentAxis
447446
});
448447
const boundRange = seriesDataSource.getBoundRange();
449-
// assert
448+
450449
assert.strictEqual(boundRange.val.min, -20);
451450
assert.strictEqual(boundRange.val.max, 240);
452451
assert.strictEqual(boundRange.val.minVisible, 90);
@@ -474,7 +473,7 @@ QUnit.test('getBoundRange with topIndent, bottomIndent, valueAxis max', function
474473
argumentAxis: this.argumentAxis
475474
});
476475
const boundRange = seriesDataSource.getBoundRange();
477-
// assert
476+
478477
assert.strictEqual(boundRange.val.min, -20);
479478
assert.strictEqual(boundRange.val.max, 240);
480479
assert.strictEqual(boundRange.val.minVisible, undefined);
@@ -504,7 +503,7 @@ QUnit.test('getBoundRange with valueAxis min/max', function(assert) {
504503
argumentAxis: this.argumentAxis
505504
});
506505
const boundRange = seriesDataSource.getBoundRange();
507-
// assert
506+
508507
assert.strictEqual(boundRange.val.min, -20);
509508
assert.strictEqual(boundRange.val.max, 240);
510509
assert.strictEqual(boundRange.val.minVisible, 12);
@@ -530,7 +529,7 @@ QUnit.test('getBoundRange valueAxis inverted', function(assert) {
530529
argumentAxis: this.argumentAxis
531530
});
532531
const boundRange = seriesDataSource.getBoundRange();
533-
// assert
532+
534533
assert.ok(boundRange.val.invert);
535534
assert.equal(boundRange.val.min, -20);
536535
assert.equal(boundRange.val.max, 200);
@@ -559,7 +558,7 @@ QUnit.test('getBoundRange with topIndent, bottomIndent, valueAxis inverted', fun
559558
argumentAxis: this.argumentAxis
560559
});
561560
const boundRange = seriesDataSource.getBoundRange();
562-
// assert
561+
563562
assert.ok(boundRange.val.invert);
564563
assert.equal(boundRange.val.min, -40);
565564
assert.equal(boundRange.val.max, 220);
@@ -585,7 +584,7 @@ QUnit.test('several series getBoundRange', function(assert) {
585584
argumentAxis: this.argumentAxis
586585
});
587586
const boundRange = seriesDataSource.getBoundRange();
588-
// assert
587+
589588
assert.equal(boundRange.arg.min, 1);
590589
assert.equal(boundRange.arg.max, 9);
591590
assert.equal(boundRange.val.min, 2);
@@ -605,7 +604,7 @@ QUnit.test('getBoundRange for simple dataSource', function(assert) {
605604
argumentAxis: this.argumentAxis
606605
});
607606
const boundRange = seriesDataSource.getBoundRange();
608-
// assert
607+
609608
assert.equal(boundRange.arg.min, 5);
610609
assert.equal(boundRange.arg.max, 100);
611610
});
@@ -626,7 +625,7 @@ QUnit.test('getBoundRange for objects dataSource default dataSourceField', funct
626625
argumentAxis: this.argumentAxis
627626
});
628627
const boundRange = seriesDataSource.getBoundRange();
629-
// assert
628+
630629
assert.equal(boundRange.arg.min, 10);
631630
assert.equal(boundRange.arg.max, 50);
632631
});
@@ -648,17 +647,48 @@ QUnit.test('getBoundRange for objects dataSource with dataSourceField', function
648647
argumentAxis: this.argumentAxis
649648
});
650649
const boundRange = seriesDataSource.getBoundRange();
651-
// assert
650+
652651
assert.equal(boundRange.arg.min, 3);
653652
assert.equal(boundRange.arg.max, 16);
654653
});
655654

655+
QUnit.test('valueAxis minVisible/maxVisible should be defined when min/max is set to 0 (T1269725)', function(assert) {
656+
const seriesDataSource = createSeriesDataSource({
657+
dataSource: [
658+
{ arg: 1, val: 3, arg1: 4, val1: 10 },
659+
{ arg: 3, val: 6, arg1: 7, val1: 5 },
660+
{ arg: 5, val: 12, arg1: 9, val1: 2 }
661+
],
662+
chart: {
663+
commonSeriesSettings: {
664+
type: 'area'
665+
},
666+
valueAxis: {
667+
min: 0,
668+
max: 0,
669+
},
670+
series: [{}, {
671+
valueField: 'val1',
672+
argumentField: 'arg1'
673+
}]
674+
},
675+
renderer: new vizMocks.Renderer(),
676+
argumentAxis: this.argumentAxis
677+
});
678+
const boundRange = seriesDataSource.getBoundRange();
679+
680+
assert.strictEqual(boundRange.val.minVisible, 0);
681+
assert.strictEqual(boundRange.val.maxVisible, 0);
682+
});
683+
656684
QUnit.test('several series getBoundRange with valueAxis min/max', function(assert) {
657685
// arrange, act
658686
const seriesDataSource = createSeriesDataSource({
659-
dataSource: [{ arg: 1, val: 3, arg1: 4, val1: 10 },
687+
dataSource: [
688+
{ arg: 1, val: 3, arg1: 4, val1: 10 },
660689
{ arg: 3, val: 6, arg1: 7, val1: 5 },
661-
{ arg: 5, val: 12, arg1: 9, val1: 2 }],
690+
{ arg: 5, val: 12, arg1: 9, val1: 2 }
691+
],
662692
chart: {
663693
commonSeriesSettings: {
664694
type: 'area'
@@ -676,7 +706,7 @@ QUnit.test('several series getBoundRange with valueAxis min/max', function(asser
676706
argumentAxis: this.argumentAxis
677707
});
678708
const boundRange = seriesDataSource.getBoundRange();
679-
// assert
709+
680710
assert.equal(boundRange.arg.min, 1);
681711
assert.equal(boundRange.arg.max, 9);
682712
assert.equal(boundRange.val.min, 0);
@@ -687,9 +717,11 @@ QUnit.test('several series getBoundRange with valueAxis min/max', function(asser
687717
QUnit.test('getBoundRange of Line series with equal values', function(assert) {
688718
// arrange, act
689719
const seriesDataSource = createSeriesDataSource({
690-
dataSource: [{ arg: 1, val: 10 },
720+
dataSource: [
721+
{ arg: 1, val: 10 },
691722
{ arg: 3, val: 10 },
692-
{ arg: 5, val: 10 }],
723+
{ arg: 5, val: 10 }
724+
],
693725
chart: {
694726
commonSeriesSettings: {
695727
type: 'line'
@@ -702,7 +734,7 @@ QUnit.test('getBoundRange of Line series with equal values', function(assert) {
702734
argumentAxis: this.argumentAxis
703735
});
704736
const boundRange = seriesDataSource.getBoundRange();
705-
// assert
737+
706738
assert.equal(boundRange.arg.min, 1);
707739
assert.equal(boundRange.arg.max, 5);
708740
assert.equal(boundRange.val.min, 10);
@@ -712,9 +744,11 @@ QUnit.test('getBoundRange of Line series with equal values', function(assert) {
712744
QUnit.test('getBoundRange valueAxis has logarithmic type', function(assert) {
713745
// arrange, act
714746
const seriesDataSource = createSeriesDataSource({
715-
dataSource: [{ arg: 1, val: 4 },
747+
dataSource: [
748+
{ arg: 1, val: 4 },
716749
{ arg: 3, val: 200 },
717-
{ arg: 5, val: 12 }],
750+
{ arg: 5, val: 12 }
751+
],
718752
chart: {
719753
commonSeriesSettings: {
720754
type: 'area'
@@ -730,17 +764,19 @@ QUnit.test('getBoundRange valueAxis has logarithmic type', function(assert) {
730764
valueAxis: this.valueAxis
731765
});
732766
const boundRange = seriesDataSource.getBoundRange();
733-
// assert
767+
734768
assert.equal(boundRange.val.axisType, 'logarithmic');
735769
assert.equal(boundRange.val.base, 2);
736770
});
737771

738772
// T602076
739773
QUnit.test('Logarithmic value axis. \'Type\' option should be passed to the series', function(assert) {
740774
const seriesDataSource = createSeriesDataSource({
741-
dataSource: [{ arg: 1, val: 4 },
775+
dataSource: [
776+
{ arg: 1, val: 4 },
742777
{ arg: 3, val: 200 },
743-
{ arg: 5, val: 12 }],
778+
{ arg: 5, val: 12 }
779+
],
744780
chart: {
745781
commonSeriesSettings: {
746782
type: 'area'
@@ -820,7 +856,7 @@ QUnit.test('dataSource is null or is empty', function(assert) {
820856
renderer: new vizMocks.Renderer(),
821857
argumentAxis: this.argumentAxis
822858
});
823-
// assert
859+
824860
assert.ok(seriesDataSource.isEmpty());
825861

826862
// arrange, act
@@ -837,7 +873,7 @@ QUnit.test('dataSource is null or is empty', function(assert) {
837873
},
838874
incidentOccurred: noop
839875
});
840-
// assert
876+
841877
assert.ok(seriesDataSource.isEmpty());
842878
});
843879

@@ -862,7 +898,7 @@ QUnit.test('with dataSourceField', function(assert) {
862898
renderer: new vizMocks.Renderer(),
863899
argumentAxis: this.argumentAxis
864900
});
865-
// assert
901+
866902
assert.equal(seriesDataSource._series[0].getOptions().argumentField, 'X1');
867903
assert.equal(seriesDataSource._series[1].getOptions().argumentField, 'x');
868904
});
@@ -879,7 +915,7 @@ QUnit.test('No chart, dataSourceField, arguments as string, valueType = datetime
879915
renderer: new vizMocks.Renderer(),
880916
argumentAxis: this.argumentAxis
881917
});
882-
// assert
918+
883919
assert.equal(seriesDataSource._series[0].valueType, 'datetime');
884920
assert.equal(seriesDataSource._series[0].argumentType, 'datetime');
885921
});
@@ -908,7 +944,6 @@ QUnit.test('argumentField in commonSeriesSettings', function(assert) {
908944
argumentAxis: this.argumentAxis
909945
});
910946

911-
// assert
912947
assert.equal(seriesDataSource._series[0].getOptions().argumentField, 'X1');
913948
assert.equal(seriesDataSource._series[1].getOptions().argumentField, 'x');
914949
});
@@ -933,7 +968,7 @@ QUnit.test('without dataSourceField, (valueField from commonSeriesSettings)', fu
933968
renderer: new vizMocks.Renderer(),
934969
argumentAxis: this.argumentAxis
935970
});
936-
// assert
971+
937972
assert.equal(seriesDataSource._series[0].getOptions().argumentField, 'X1');
938973
assert.equal(seriesDataSource._series[1].getOptions().argumentField, 'x');
939974
});
@@ -968,7 +1003,7 @@ QUnit.test('seriesTemplate', function(assert) {
9681003
renderer: new vizMocks.Renderer(),
9691004
argumentAxis: this.argumentAxis
9701005
});
971-
// assert
1006+
9721007
const series = seriesDataSource.getSeries();
9731008

9741009
assert.equal(series.length, 2, 'series length should be correct');
@@ -998,7 +1033,7 @@ QUnit.test('seriesTemplate, incorrect nameField', function(assert) {
9981033
renderer: new vizMocks.Renderer(),
9991034
argumentAxis: this.argumentAxis
10001035
});
1001-
// assert
1036+
10021037
const series = seriesDataSource.getSeries();
10031038

10041039
assert.ok(!series.length);
@@ -1427,7 +1462,7 @@ QUnit.test('Return max size', function(assert) {
14271462
});
14281463
// act
14291464
const marginOptions = seriesDataSource.getMarginOptions({ width: 100, height: 100 });
1430-
// assert
1465+
14311466
assert.deepEqual(marginOptions, {
14321467
size: 38,
14331468
checkInterval: undefined,
@@ -1457,7 +1492,7 @@ QUnit.test('If there is bar series return checkInterval option', function(assert
14571492
});
14581493
// act
14591494
const marginOptions = seriesDataSource.getMarginOptions({ width: 100, height: 100 });
1460-
// assert
1495+
14611496
assert.deepEqual(marginOptions, {
14621497
size: 20,
14631498
checkInterval: true,
@@ -1487,7 +1522,7 @@ QUnit.test('Calculate size for bubble - height < width', function(assert) {
14871522
});
14881523
// act
14891524
const marginOptions = seriesDataSource.getMarginOptions({ width: 100, height: 50 });
1490-
// assert
1525+
14911526
assert.deepEqual(marginOptions, {
14921527
size: 10,
14931528
checkInterval: undefined,
@@ -1517,7 +1552,7 @@ QUnit.test('Calculate size for bubble - height > width', function(assert) {
15171552
});
15181553
// act
15191554
const marginOptions = seriesDataSource.getMarginOptions({ width: 100, height: 150 });
1520-
// assert
1555+
15211556
assert.deepEqual(marginOptions, {
15221557
size: 20,
15231558
checkInterval: undefined,

0 commit comments

Comments
 (0)