forked from plotly/plotly.js
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathget_scale.js
More file actions
38 lines (30 loc) · 854 Bytes
/
Copy pathget_scale.js
File metadata and controls
38 lines (30 loc) · 854 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
* Copyright 2012-2016, Plotly, Inc.
* All rights reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
'use strict';
var scales = require('./scales');
var defaultScale = require('./default_scale');
var isValidScaleArray = require('./is_valid_scale_array');
module.exports = function getScale(scl, dflt) {
if(!dflt) dflt = defaultScale;
if(!scl) return dflt;
function parseScale() {
try {
scl = scales[scl] || JSON.parse(scl);
}
catch(e) {
scl = dflt;
}
}
if(typeof scl === 'string') {
parseScale();
// occasionally scl is double-JSON encoded...
if(typeof scl === 'string') parseScale();
}
if(!isValidScaleArray(scl)) return dflt;
return scl;
};