Skip to content

Commit bcaa904

Browse files
committed
add a function to handle range defaults
1 parent 915a52b commit bcaa904

File tree

2 files changed

+44
-33
lines changed

2 files changed

+44
-33
lines changed

src/plots/cartesian/axis_defaults.js

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ var handleTickLabelDefaults = require('./tick_label_defaults');
1515
var handlePrefixSuffixDefaults = require('./prefix_suffix_defaults');
1616
var handleCategoryOrderDefaults = require('./category_order_defaults');
1717
var handleLineGridDefaults = require('./line_grid_defaults');
18-
var handleAutorangeOptionsDefaults = require('./autorange_options_defaults');
18+
var handleRangeDefaults = require('./range_defaults');
1919
var setConvert = require('./set_convert');
2020

2121
var DAY_OF_WEEK = require('./constants').WEEKDAY_PATTERN;
@@ -92,38 +92,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
9292

9393
setConvert(containerOut, layoutOut);
9494

95-
coerce('minallowed');
96-
coerce('maxallowed');
97-
var range = coerce('range');
98-
var autorangeDflt = containerOut.getAutorangeDflt(range, options);
99-
var autorange = coerce('autorange', autorangeDflt);
100-
101-
var shouldAutorange;
102-
103-
// validate range and set autorange true for invalid partial ranges
104-
if(range && (
105-
(range[0] === null && range[1] === null) ||
106-
((range[0] === null || range[1] === null) && (autorange === 'reversed' || autorange === true)) ||
107-
(range[0] !== null && (autorange === 'min' || autorange === 'max reversed')) ||
108-
(range[1] !== null && (autorange === 'max' || autorange === 'min reversed'))
109-
)) {
110-
range = undefined;
111-
delete containerOut.range;
112-
containerOut.autorange = true;
113-
shouldAutorange = true;
114-
}
115-
116-
if(!shouldAutorange) {
117-
autorangeDflt = containerOut.getAutorangeDflt(range, options);
118-
autorange = coerce('autorange', autorangeDflt);
119-
}
120-
121-
if(autorange) {
122-
handleAutorangeOptionsDefaults(coerce, autorange, range);
123-
if(axType === 'linear' || axType === '-') coerce('rangemode');
124-
}
125-
126-
containerOut.cleanRange();
95+
handleRangeDefaults(containerIn, containerOut, coerce, options);
12796

12897
handleCategoryOrderDefaults(containerIn, containerOut, coerce, options);
12998

src/plots/cartesian/range_defaults.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
'use strict';
2+
3+
var handleAutorangeOptionsDefaults = require('./autorange_options_defaults');
4+
5+
module.exports = function handleRangeDefaults(containerIn, containerOut, coerce, options) {
6+
var axTemplate = containerOut._template || {};
7+
var axType = containerOut.type || axTemplate.type || '-';
8+
9+
coerce('minallowed');
10+
coerce('maxallowed');
11+
12+
var range = coerce('range');
13+
var autorangeDflt = containerOut.getAutorangeDflt(range, options);
14+
var autorange = coerce('autorange', autorangeDflt);
15+
16+
var shouldAutorange;
17+
18+
// validate range and set autorange true for invalid partial ranges
19+
if(range && (
20+
(range[0] === null && range[1] === null) ||
21+
((range[0] === null || range[1] === null) && (autorange === 'reversed' || autorange === true)) ||
22+
(range[0] !== null && (autorange === 'min' || autorange === 'max reversed')) ||
23+
(range[1] !== null && (autorange === 'max' || autorange === 'min reversed'))
24+
)) {
25+
range = undefined;
26+
delete containerOut.range;
27+
containerOut.autorange = true;
28+
shouldAutorange = true;
29+
}
30+
31+
if(!shouldAutorange) {
32+
autorangeDflt = containerOut.getAutorangeDflt(range, options);
33+
autorange = coerce('autorange', autorangeDflt);
34+
}
35+
36+
if(autorange) {
37+
handleAutorangeOptionsDefaults(coerce, autorange, range);
38+
if(axType === 'linear' || axType === '-') coerce('rangemode');
39+
}
40+
41+
containerOut.cleanRange();
42+
};

0 commit comments

Comments
 (0)