plotly.js
Version:
The open source javascript graphing library that powers plotly
50 lines (39 loc) • 1.51 kB
JavaScript
var Lib = require('../../lib');
var handleGroupingDefaults = require('./grouping_defaults');
var attributes = require('./attributes');
// remove opacity for any trace that has a fill or is filled to
module.exports = function crossTraceDefaults(fullData, fullLayout) {
var traceIn, traceOut, i;
var scattermode = fullLayout.scattermode;
function coerce(attr) {
return Lib.coerce(traceOut._input, traceOut, attributes, attr);
}
if(fullLayout.scattermode === 'group') {
for(i = 0; i < fullData.length; i++) {
traceOut = fullData[i];
if(traceOut.type === 'scatter') {
traceIn = traceOut._input;
handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, scattermode);
}
}
}
for(i = 0; i < fullData.length; i++) {
var tracei = fullData[i];
if(tracei.type !== 'scatter') continue;
var filli = tracei.fill;
if(filli === 'none' || filli === 'toself') continue;
tracei.opacity = undefined;
if(filli === 'tonexty' || filli === 'tonextx') {
for(var j = i - 1; j >= 0; j--) {
var tracej = fullData[j];
if((tracej.type === 'scatter') &&
(tracej.xaxis === tracei.xaxis) &&
(tracej.yaxis === tracei.yaxis)) {
tracej.opacity = undefined;
break;
}
}
}
}
};
;