Skip to content

Commit 0c13592

Browse files
committed
change colorscaleCalc's signature, cleanup code
1 parent 2460fc3 commit 0c13592

File tree

28 files changed

+144
-51
lines changed

28 files changed

+144
-51
lines changed

Diff for: src/components/colorscale/calc.js

+7-5
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111

1212
var Lib = require('../../lib');
1313

14-
var scales = require('./scales');
1514
var flipScale = require('./flip_scale');
1615

1716

18-
module.exports = function calc(trace, vals, containerStr, cLetter) {
17+
module.exports = function calc(gd, trace, opts) {
18+
var vals = opts.vals;
19+
var containerStr = opts.containerStr;
20+
var cLetter = opts.cLetter;
1921
var container = trace;
2022
var inputContainer = trace._input;
2123
var fullInputContainer = trace._fullInput;
@@ -84,9 +86,9 @@ module.exports = function calc(trace, vals, containerStr, cLetter) {
8486
doUpdate(autoAttr, (auto !== false || (min === undefined && max === undefined)));
8587

8688
if(container.autocolorscale) {
87-
if(min * max < 0) scl = container.diverging || scales.RdBu;
88-
else if(min >= 0) scl = container.sequential || scales.Reds;
89-
else scl = container.sequentialminus || scales.Blues;
89+
if(min * max < 0) scl = gd._fullLayout.colorscale.diverging;
90+
else if(min >= 0) scl = gd._fullLayout.colorscale.sequential;
91+
else scl = gd._fullLayout.colorscale.sequentialminus;
9092

9193
// reversescale is handled at the containerOut level
9294
doUpdate('colorscale', scl, container.reversescale ? flipScale(scl) : scl);

Diff for: src/components/colorscale/defaults.js

+2-9
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ var colorbarDefaults = require('../colorbar/defaults');
1818
var isValidScale = require('./is_valid_scale');
1919
var flipScale = require('./flip_scale');
2020

21+
2122
module.exports = function colorScaleDefaults(traceIn, traceOut, layout, coerce, opts) {
2223
var prefix = opts.prefix,
2324
cLetter = opts.cLetter,
@@ -42,15 +43,7 @@ module.exports = function colorScaleDefaults(traceIn, traceOut, layout, coerce,
4243
var autoColorscaleDflt;
4344
if(sclIn !== undefined) autoColorscaleDflt = !isValidScale(sclIn);
4445
coerce(prefix + 'autocolorscale', autoColorscaleDflt);
45-
46-
var layoutColorscale = layout.colorscale || {};
47-
containerOut.diverging = layoutColorscale.diverging;
48-
containerOut.sequential = layoutColorscale.sequential;
49-
containerOut.sequentialminus = layoutColorscale.sequentialminus;
50-
var dfltScl = containerOut.diverging;
51-
var sclOut;
52-
if(dfltScl) sclOut = coerce(prefix + 'colorscale', dfltScl);
53-
else sclOut = coerce(prefix + 'colorscale');
46+
var sclOut = coerce(prefix + 'colorscale');
5447

5548
// reversescale is handled at the containerOut level
5649
var reverseScale = coerce(prefix + 'reversescale');

Diff for: src/components/colorscale/index.js

+6
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99

1010
'use strict';
1111

12+
exports.moduleType = 'component';
13+
14+
exports.name = 'colorscale';
15+
1216
exports.scales = require('./scales');
1317

1418
exports.defaultScale = require('./default_scale');
@@ -17,6 +21,8 @@ exports.attributes = require('./attributes');
1721

1822
exports.layoutAttributes = require('./layout_attributes');
1923

24+
exports.supplyLayoutDefaults = require('./layout_defaults');
25+
2026
exports.handleDefaults = require('./defaults');
2127

2228
exports.calc = require('./calc');

Diff for: src/components/colorscale/layout_attributes.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@
88

99
'use strict';
1010

11+
var scales = require('./scales');
12+
1113
var msg = 'Note that `autocolorscale` must be true for this attribute to work.';
1214
module.exports = {
1315
editType: 'calc',
1416
sequential: {
1517
valType: 'colorscale',
16-
dflt: 'Reds',
18+
dflt: scales.Reds,
1719
role: 'style',
1820
editType: 'calc',
1921
description: [
@@ -23,7 +25,7 @@ module.exports = {
2325
},
2426
sequentialminus: {
2527
valType: 'colorscale',
26-
dflt: 'Blues',
28+
dflt: scales.Blues,
2729
role: 'style',
2830
editType: 'calc',
2931
description: [
@@ -33,7 +35,7 @@ module.exports = {
3335
},
3436
diverging: {
3537
valType: 'colorscale',
36-
dflt: 'RdBu',
38+
dflt: scales.RdBu,
3739
role: 'style',
3840
editType: 'calc',
3941
description: [

Diff for: src/components/colorscale/layout_defaults.js

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/**
2+
* Copyright 2012-2018, Plotly, Inc.
3+
* All rights reserved.
4+
*
5+
* This source code is licensed under the MIT license found in the
6+
* LICENSE file in the root directory of this source tree.
7+
*/
8+
9+
10+
'use strict';
11+
12+
var Lib = require('../../lib');
13+
var colorscaleAttrs = require('./layout_attributes');
14+
var Template = require('../../plot_api/plot_template');
15+
16+
module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
17+
var colorscaleIn = layoutIn.colorscale;
18+
var colorscaleOut = Template.newContainer(layoutOut, 'colorscale');
19+
function coerce(attr, dflt) {
20+
return Lib.coerce(colorscaleIn, colorscaleOut, colorscaleAttrs, attr, dflt);
21+
}
22+
23+
coerce('sequential');
24+
coerce('sequentialminus');
25+
coerce('diverging');
26+
};

Diff for: src/core.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ register([
5353
require('./components/rangeslider'),
5454
require('./components/rangeselector'),
5555
require('./components/grid'),
56-
require('./components/errorbars')
56+
require('./components/errorbars'),
57+
require('./components/colorscale')
5758
]);
5859

5960
// locales en and en-US are required for default behavior

Diff for: src/plots/plots.js

-5
Original file line numberDiff line numberDiff line change
@@ -1362,11 +1362,6 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
13621362
coerce('hidesources');
13631363

13641364
coerce('colorway');
1365-
if(layoutIn.colorscale) {
1366-
if(layoutIn.colorscale.sequential) coerce('colorscale.sequential');
1367-
if(layoutIn.colorscale.sequentialminus) coerce('colorscale.sequentialminus');
1368-
if(layoutIn.colorscale.diverging) coerce('colorscale.diverging');
1369-
}
13701365

13711366
coerce('datarevision');
13721367

Diff for: src/traces/bar/calc.js

+10-2
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,18 @@ module.exports = function calc(gd, trace) {
4242

4343
// auto-z and autocolorscale if applicable
4444
if(hasColorscale(trace, 'marker')) {
45-
colorscaleCalc(trace, trace.marker.color, 'marker', 'c');
45+
colorscaleCalc(gd, trace, {
46+
vals: trace.marker.color,
47+
containerStr: 'marker',
48+
cLetter: 'c'
49+
});
4650
}
4751
if(hasColorscale(trace, 'marker.line')) {
48-
colorscaleCalc(trace, trace.marker.line.color, 'marker.line', 'c');
52+
colorscaleCalc(gd, trace, {
53+
vals: trace.marker.line.color,
54+
containerStr: 'marker.line',
55+
cLetter: 'c'
56+
});
4957
}
5058

5159
arraysToCalcdata(cd, trace);

Diff for: src/traces/barpolar/calc.js

+10-2
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,18 @@ function calc(gd, trace) {
5353
}
5454

5555
if(hasColorscale(trace, 'marker')) {
56-
colorscaleCalc(trace, trace.marker.color, 'marker', 'c');
56+
colorscaleCalc(gd, trace, {
57+
vals: trace.marker.color,
58+
containerStr: 'marker',
59+
cLetter: 'c'
60+
});
5761
}
5862
if(hasColorscale(trace, 'marker.line')) {
59-
colorscaleCalc(trace, trace.marker.line.color, 'marker.line', 'c');
63+
colorscaleCalc(gd, trace, {
64+
vals: trace.marker.line.color,
65+
containerStr: 'marker.line',
66+
cLetter: 'c'
67+
});
6068
}
6169

6270
arraysToCalcdata(cd, trace);

Diff for: src/traces/choropleth/calc.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@ module.exports = function calc(gd, trace) {
3030
}
3131

3232
arraysToCalcdata(calcTrace, trace);
33-
colorscaleCalc(trace, trace.z, '', 'z');
33+
colorscaleCalc(gd, trace, {
34+
vals: trace.z,
35+
containerStr: '',
36+
cLetter: 'z'
37+
});
3438
calcSelection(calcTrace, trace);
3539

3640
return calcTrace;

Diff for: src/traces/cone/calc.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,9 @@ module.exports = function calc(gd, trace) {
3434
trace._len = len;
3535
trace._normMax = normMax;
3636

37-
colorscaleCalc(trace, [normMin, normMax], '', 'c');
37+
colorscaleCalc(gd, trace, {
38+
vals: [normMin, normMax],
39+
containerStr: '',
40+
cLetter: 'c'
41+
});
3842
};

Diff for: src/traces/contourcarpet/calc.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,11 @@ function heatmappishCalc(gd, trace) {
101101

102102
if(trace.contours.type === 'levels' && trace.contours.coloring !== 'none') {
103103
// auto-z and autocolorscale if applicable
104-
colorscaleCalc(trace, z, '', 'z');
104+
colorscaleCalc(gd, trace, {
105+
vals: z,
106+
containerStr: '',
107+
cLetter: 'z'
108+
});
105109
}
106110

107111
return [cd0];

Diff for: src/traces/heatmap/calc.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,11 @@ module.exports = function calc(gd, trace) {
146146

147147
// auto-z and autocolorscale if applicable
148148
if(!isContour || trace.contours.type !== 'constraint') {
149-
colorscaleCalc(trace, z, '', 'z');
149+
colorscaleCalc(gd, trace, {
150+
vals: z,
151+
containerStr: '',
152+
cLetter: 'z'
153+
});
150154
}
151155

152156
if(isContour && trace.contours && trace.contours.coloring === 'heatmap') {

Diff for: src/traces/mesh3d/calc.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ var colorscaleCalc = require('../../components/colorscale/calc');
1212

1313
module.exports = function calc(gd, trace) {
1414
if(trace.intensity) {
15-
colorscaleCalc(trace, trace.intensity, '', 'c');
15+
colorscaleCalc(gd, trace, {
16+
vals: trace.intensity,
17+
containerStr: '',
18+
cLetter: 'c'
19+
});
1620
}
1721
};

Diff for: src/traces/parcats/calc.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,11 @@ module.exports = function calc(gd, trace) {
7373
// Process colorscale
7474
if(line) {
7575
if(hasColorscale(trace, 'line')) {
76-
colorscaleCalc(trace, trace.line.color, 'line', 'c');
76+
colorscaleCalc(gd, trace, {
77+
vals: trace.line.color,
78+
containerStr: 'line',
79+
cLetter: 'c'
80+
});
7781
}
7882
markerColorscale = Drawing.tryColorscale(line);
7983
} else {

Diff for: src/traces/parcoords/calc.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ module.exports = function calc(gd, trace) {
1919
var cscale = cs ? trace.line.colorscale : [[0, trace.line.color], [1, trace.line.color]];
2020

2121
if(hasColorscale(trace, 'line')) {
22-
calcColorscale(trace, color, 'line', 'c');
22+
calcColorscale(gd, trace, {
23+
vals: color,
24+
containerStr: 'line',
25+
cLetter: 'c'
26+
});
2327
}
2428

2529
return wrap({

Diff for: src/traces/scatter/calc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ function calc(gd, trace) {
8787
}
8888

8989
arraysToCalcdata(cd, trace);
90-
calcColorscale(trace);
90+
calcColorscale(gd, trace);
9191
calcSelection(cd, trace);
9292

9393
if(stackGroupOpts) {

Diff for: src/traces/scatter/colorscale_calc.js

+16-4
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,29 @@ var calcColorscale = require('../../components/colorscale/calc');
1515
var subTypes = require('./subtypes');
1616

1717

18-
module.exports = function calcMarkerColorscale(trace) {
18+
module.exports = function calcMarkerColorscale(gd, trace) {
1919
if(subTypes.hasLines(trace) && hasColorscale(trace, 'line')) {
20-
calcColorscale(trace, trace.line.color, 'line', 'c');
20+
calcColorscale(gd, trace, {
21+
vals: trace.line.color,
22+
containerStr: 'line',
23+
cLetter: 'c'
24+
});
2125
}
2226

2327
if(subTypes.hasMarkers(trace)) {
2428
if(hasColorscale(trace, 'marker')) {
25-
calcColorscale(trace, trace.marker.color, 'marker', 'c');
29+
calcColorscale(gd, trace, {
30+
vals: trace.marker.color,
31+
containerStr: 'marker',
32+
cLetter: 'c'
33+
});
2634
}
2735
if(hasColorscale(trace, 'marker.line')) {
28-
calcColorscale(trace, trace.marker.line.color, 'marker.line', 'c');
36+
calcColorscale(gd, trace, {
37+
vals: trace.marker.line.color,
38+
containerStr: 'marker.line',
39+
cLetter: 'c'
40+
});
2941
}
3042
}
3143
};

Diff for: src/traces/scatter3d/calc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ module.exports = function calc(gd, trace) {
2121
var cd = [{x: false, y: false, trace: trace, t: {}}];
2222

2323
arraysToCalcdata(cd, trace);
24-
calcColorscales(trace);
24+
calcColorscales(gd, trace);
2525

2626
return cd;
2727
};

Diff for: src/traces/scattercarpet/calc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ module.exports = function calc(gd, trace) {
5050
cd[0].trace = trace;
5151

5252
calcMarkerSize(trace, serieslen);
53-
calcColorscale(trace);
53+
calcColorscale(gd, trace);
5454
arraysToCalcdata(cd, trace);
5555
calcSelection(cd, trace);
5656

Diff for: src/traces/scattergeo/calc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ module.exports = function calc(gd, trace) {
3939
}
4040

4141
arraysToCalcdata(calcTrace, trace);
42-
calcMarkerColorscale(trace);
42+
calcMarkerColorscale(gd, trace);
4343
calcSelection(calcTrace, trace);
4444

4545
if(len) {

Diff for: src/traces/scattergl/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ function calc(gd, trace) {
8484
}
8585

8686
// create scene options and scene
87-
calcColorscales(trace);
87+
calcColorscales(gd, trace);
8888
var opts = sceneOptions(gd, subplot, trace, positions, x, y);
8989
var scene = sceneUpdate(gd, subplot);
9090

Diff for: src/traces/scatterpolar/calc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ module.exports = function calc(gd, trace) {
4545
var ppad = calcMarkerSize(trace, len);
4646
trace._extremes.x = Axes.findExtremes(radialAxis, rArray, {ppad: ppad});
4747

48-
calcColorscale(trace);
48+
calcColorscale(gd, trace);
4949
arraysToCalcdata(cd, trace);
5050
calcSelection(cd, trace);
5151

Diff for: src/traces/scatterpolargl/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ function calc(gd, trace) {
3838
stash.r = rArray;
3939
stash.theta = thetaArray;
4040

41-
calcColorscales(trace);
41+
calcColorscales(gd, trace);
4242

4343
// only compute 'style' options in calc, as position options
4444
// depend on the radial range and must be set in plot

Diff for: src/traces/scatterternary/calc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ module.exports = function calc(gd, trace) {
7272
}
7373

7474
calcMarkerSize(trace, serieslen);
75-
calcColorscale(trace);
75+
calcColorscale(gd, trace);
7676
arraysToCalcdata(cd, trace);
7777
calcSelection(cd, trace);
7878

0 commit comments

Comments
 (0)