diff --git a/src/components/annotations/common_defaults.js b/src/components/annotations/common_defaults.js
index 3fac8722307..c8efb4ede3a 100644
--- a/src/components/annotations/common_defaults.js
+++ b/src/components/annotations/common_defaults.js
@@ -12,7 +12,7 @@ var Lib = require('../../lib');
var Color = require('../color');
// defaults common to 'annotations' and 'annotations3d'
-module.exports = function handleAnnotationCommonDefaults(annIn, annOut, fullLayout, coerce) {
+module.exports = function handleAnnotationCommonDefaults(gd, annIn, annOut, fullLayout, coerce) {
coerce('opacity');
var bgColor = coerce('bgcolor');
diff --git a/src/components/annotations/defaults.js b/src/components/annotations/defaults.js
index aca202ffaa2..9022865c42c 100644
--- a/src/components/annotations/defaults.js
+++ b/src/components/annotations/defaults.js
@@ -17,14 +17,14 @@ var handleAnnotationCommonDefaults = require('./common_defaults');
var attributes = require('./attributes');
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
- handleArrayContainerDefaults(layoutIn, layoutOut, {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut) {
+ handleArrayContainerDefaults(gd, layoutIn, layoutOut, {
name: 'annotations',
handleItemDefaults: handleAnnotationDefaults
});
};
-function handleAnnotationDefaults(annIn, annOut, fullLayout) {
+function handleAnnotationDefaults(gd, annIn, annOut, fullLayout) {
function coerce(attr, dflt) {
return Lib.coerce(annIn, annOut, attributes, attr, dflt);
}
@@ -34,7 +34,7 @@ function handleAnnotationDefaults(annIn, annOut, fullLayout) {
if(!(visible || clickToShow)) return;
- handleAnnotationCommonDefaults(annIn, annOut, fullLayout, coerce);
+ handleAnnotationCommonDefaults(gd, annIn, annOut, fullLayout, coerce);
var showArrow = annOut.showarrow;
diff --git a/src/components/annotations3d/defaults.js b/src/components/annotations3d/defaults.js
index ae749db5cbb..643d68bb354 100644
--- a/src/components/annotations3d/defaults.js
+++ b/src/components/annotations3d/defaults.js
@@ -14,15 +14,15 @@ var handleArrayContainerDefaults = require('../../plots/array_container_defaults
var handleAnnotationCommonDefaults = require('../annotations/common_defaults');
var attributes = require('./attributes');
-module.exports = function handleDefaults(sceneLayoutIn, sceneLayoutOut, opts) {
- handleArrayContainerDefaults(sceneLayoutIn, sceneLayoutOut, {
+module.exports = function handleDefaults(gd, sceneLayoutIn, sceneLayoutOut, opts) {
+ handleArrayContainerDefaults(gd, sceneLayoutIn, sceneLayoutOut, {
name: 'annotations',
handleItemDefaults: handleAnnotationDefaults,
fullLayout: opts.fullLayout
});
};
-function handleAnnotationDefaults(annIn, annOut, sceneLayout, opts) {
+function handleAnnotationDefaults(gd, annIn, annOut, sceneLayout, opts) {
function coerce(attr, dflt) {
return Lib.coerce(annIn, annOut, attributes, attr, dflt);
}
@@ -41,7 +41,7 @@ function handleAnnotationDefaults(annIn, annOut, sceneLayout, opts) {
var visible = coerce('visible');
if(!visible) return;
- handleAnnotationCommonDefaults(annIn, annOut, opts.fullLayout, coerce);
+ handleAnnotationCommonDefaults(gd, annIn, annOut, opts.fullLayout, coerce);
coercePosition('x');
coercePosition('y');
diff --git a/src/components/calendars/index.js b/src/components/calendars/index.js
index ea028373d78..00d03690b24 100644
--- a/src/components/calendars/index.js
+++ b/src/components/calendars/index.js
@@ -24,16 +24,16 @@ var attributes = {
dflt: 'gregorian'
};
-var handleDefaults = function(contIn, contOut, attr, dflt) {
+var handleDefaults = function(gd, contIn, contOut, attr, dflt) {
var attrs = {};
attrs[attr] = attributes;
return Lib.coerce(contIn, contOut, attrs, attr, dflt);
};
-var handleTraceDefaults = function(traceIn, traceOut, coords, layout) {
+var handleTraceDefaults = function(gd, traceIn, traceOut, coords, layout) {
for(var i = 0; i < coords.length; i++) {
- handleDefaults(traceIn, traceOut, coords[i] + 'calendar', layout.calendar);
+ handleDefaults(gd, traceIn, traceOut, coords[i] + 'calendar', layout.calendar);
}
};
diff --git a/src/components/colorbar/defaults.js b/src/components/colorbar/defaults.js
index 0a501cd321d..36b47f5a574 100644
--- a/src/components/colorbar/defaults.js
+++ b/src/components/colorbar/defaults.js
@@ -18,7 +18,7 @@ var handleTickLabelDefaults = require('../../plots/cartesian/tick_label_defaults
var attributes = require('./attributes');
-module.exports = function colorbarDefaults(containerIn, containerOut, layout) {
+module.exports = function colorbarDefaults(gd, containerIn, containerOut, layout) {
var colorbarOut = Template.newContainer(containerOut, 'colorbar');
var colorbarIn = containerIn.colorbar || {};
@@ -52,11 +52,11 @@ module.exports = function colorbarDefaults(containerIn, containerOut, layout) {
coerce('borderwidth');
coerce('bgcolor');
- handleTickValueDefaults(colorbarIn, colorbarOut, coerce, 'linear');
+ handleTickValueDefaults(gd, colorbarIn, colorbarOut, coerce, 'linear');
var opts = {outerTicks: false, font: layout.font};
- handleTickLabelDefaults(colorbarIn, colorbarOut, coerce, 'linear', opts);
- handleTickMarkDefaults(colorbarIn, colorbarOut, coerce, 'linear', opts);
+ handleTickLabelDefaults(gd, colorbarIn, colorbarOut, coerce, 'linear', opts);
+ handleTickMarkDefaults(gd, colorbarIn, colorbarOut, coerce, 'linear', opts);
coerce('title.text', layout._dfltTitle.colorbar);
Lib.coerceFont(coerce, 'title.font', layout.font);
diff --git a/src/components/colorbar/draw.js b/src/components/colorbar/draw.js
index a952f78340d..2f2580e1375 100644
--- a/src/components/colorbar/draw.js
+++ b/src/components/colorbar/draw.js
@@ -714,8 +714,8 @@ function mockColorBarAxis(gd, opts, zrange) {
return Lib.coerce(cbAxisIn, cbAxisOut, axisLayoutAttrs, attr, dflt);
}
- handleAxisDefaults(cbAxisIn, cbAxisOut, coerce, axisOptions, fullLayout);
- handleAxisPositionDefaults(cbAxisIn, cbAxisOut, coerce, axisOptions);
+ handleAxisDefaults(gd, cbAxisIn, cbAxisOut, coerce, axisOptions, fullLayout);
+ handleAxisPositionDefaults(gd, cbAxisIn, cbAxisOut, coerce, axisOptions);
return cbAxisOut;
}
diff --git a/src/components/colorscale/cross_trace_defaults.js b/src/components/colorscale/cross_trace_defaults.js
index c68f4183468..78f263fe8c4 100644
--- a/src/components/colorscale/cross_trace_defaults.js
+++ b/src/components/colorscale/cross_trace_defaults.js
@@ -12,7 +12,7 @@ var Lib = require('../../lib');
var hasColorscale = require('./helpers').hasColorscale;
var extractOpts = require('./helpers').extractOpts;
-module.exports = function crossTraceDefaults(fullData, fullLayout) {
+module.exports = function crossTraceDefaults(gd, fullData, fullLayout) {
function replace(cont, k) {
var val = cont['_' + k];
if(val !== undefined) {
diff --git a/src/components/colorscale/defaults.js b/src/components/colorscale/defaults.js
index 569a43793e1..32b1385c892 100644
--- a/src/components/colorscale/defaults.js
+++ b/src/components/colorscale/defaults.js
@@ -35,7 +35,7 @@ function npMaybe(parentCont, prefix) {
* - prefix {string} : attr string prefix to colorscale container from parent root
* - cLetter {string} : 'c or 'z' color letter
*/
-module.exports = function colorScaleDefaults(parentContIn, parentContOut, layout, coerce, opts) {
+module.exports = function colorScaleDefaults(gd, parentContIn, parentContOut, layout, coerce, opts) {
var prefix = opts.prefix;
var cLetter = opts.cLetter;
var inTrace = '_module' in parentContOut;
@@ -48,7 +48,7 @@ module.exports = function colorScaleDefaults(parentContIn, parentContOut, layout
var thisFn = function() {
delete parentContIn.coloraxis;
delete parentContOut.coloraxis;
- return colorScaleDefaults(parentContIn, parentContOut, layout, coerce, opts);
+ return colorScaleDefaults(gd, parentContIn, parentContOut, layout, coerce, opts);
};
if(inTrace) {
@@ -68,7 +68,7 @@ module.exports = function colorScaleDefaults(parentContIn, parentContOut, layout
if(stash[0] !== colorbarVisuals) {
stash[0] = false;
- Lib.warn([
+ Lib.warn(gd, [
'Ignoring coloraxis:', colorAx, 'setting',
'as it is linked to incompatible colorscales.'
].join(' '));
@@ -117,7 +117,7 @@ module.exports = function colorScaleDefaults(parentContIn, parentContOut, layout
var showScale = coerce(prefix + 'showscale', showScaleDflt);
if(showScale) {
if(prefix && template) containerOut._template = template;
- colorbarDefaults(containerIn, containerOut, layout);
+ colorbarDefaults(gd, containerIn, containerOut, layout);
}
}
};
diff --git a/src/components/colorscale/layout_defaults.js b/src/components/colorscale/layout_defaults.js
index 1de6f814235..1d98185a929 100644
--- a/src/components/colorscale/layout_defaults.js
+++ b/src/components/colorscale/layout_defaults.js
@@ -14,7 +14,7 @@ var Template = require('../../plot_api/plot_template');
var colorScaleAttrs = require('./layout_attributes');
var colorScaleDefaults = require('./defaults');
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut) {
function coerce(attr, dflt) {
return Lib.coerce(layoutIn, layoutOut, colorScaleAttrs, attr, dflt);
}
@@ -37,7 +37,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
colorAxIn = layoutIn[k] || {};
colorAxOut = Template.newContainer(layoutOut, k, 'coloraxis');
colorAxOut._name = k;
- colorScaleDefaults(colorAxIn, colorAxOut, layoutOut, coerceAx, {prefix: '', cLetter: 'c'});
+ colorScaleDefaults(gd, colorAxIn, colorAxOut, layoutOut, coerceAx, {prefix: '', cLetter: 'c'});
} else {
// re-coerce colorscale attributes w/o coloraxis
for(var i = 0; i < stash[2].length; i++) {
diff --git a/src/components/drawing/index.js b/src/components/drawing/index.js
index d8f99f96535..d3d673ef8e8 100644
--- a/src/components/drawing/index.js
+++ b/src/components/drawing/index.js
@@ -734,7 +734,7 @@ drawing.textPointStyle = function(s, trace, gd) {
var pointValues = {};
appendArrayPointValue(pointValues, trace, d.i);
var meta = trace._meta || {};
- text = Lib.texttemplateString(text, labels, fullLayout._d3locale, pointValues, d, meta);
+ text = Lib.texttemplateString(gd, text, labels, fullLayout._d3locale, pointValues, d, meta);
}
var pos = d.tp || trace.textposition;
diff --git a/src/components/errorbars/defaults.js b/src/components/errorbars/defaults.js
index 1eaad31a2a2..58f8d6ea6cd 100644
--- a/src/components/errorbars/defaults.js
+++ b/src/components/errorbars/defaults.js
@@ -17,7 +17,7 @@ var Template = require('../../plot_api/plot_template');
var attributes = require('./attributes');
-module.exports = function(traceIn, traceOut, defaultColor, opts) {
+module.exports = function supplyLayoutDefault(gd, traceIn, traceOut, defaultColor, opts) {
var objName = 'error_' + opts.axis;
var containerOut = Template.newContainer(traceOut, objName);
var containerIn = traceIn[objName] || {};
diff --git a/src/components/fx/defaults.js b/src/components/fx/defaults.js
index 0c7650892aa..8f808dd4f7c 100644
--- a/src/components/fx/defaults.js
+++ b/src/components/fx/defaults.js
@@ -12,7 +12,7 @@ var Lib = require('../../lib');
var attributes = require('./attributes');
var handleHoverLabelDefaults = require('./hoverlabel_defaults');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -20,5 +20,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
var opts = Lib.extendFlat({}, layout.hoverlabel);
if(traceOut.hovertemplate) opts.namelength = -1;
- handleHoverLabelDefaults(traceIn, traceOut, coerce, opts);
+ handleHoverLabelDefaults(gd, traceIn, traceOut, coerce, opts);
};
diff --git a/src/components/fx/hover.js b/src/components/fx/hover.js
index 45617636789..8363ff05058 100644
--- a/src/components/fx/hover.js
+++ b/src/components/fx/hover.js
@@ -238,7 +238,7 @@ function _hover(gd, evt, subplot, noHoverEvent) {
xaArray[i] = _subplot.xaxis;
yaArray[i] = _subplot.yaxis;
} else {
- Lib.warn('Unrecognized subplot: ' + spId);
+ Lib.warn(gd, 'Unrecognized subplot: ' + spId);
return;
}
}
@@ -353,7 +353,7 @@ function _hover(gd, evt, subplot, noHoverEvent) {
else yvalArray = helpers.p2c(yaArray, ypx);
if(!isNumeric(xvalArray[0]) || !isNumeric(yvalArray[0])) {
- Lib.warn('Fx.hover failed', evt, gd);
+ Lib.warn(gd, 'Fx.hover failed', evt, gd);
return dragElement.unhoverRaw(gd, evt);
}
}
@@ -478,7 +478,7 @@ function _hover(gd, evt, subplot, noHoverEvent) {
// Now if there is range to look in, find the points to hover.
if(hoverdistance !== 0) {
if(trace._module && trace._module.hoverPoints) {
- var newPoints = trace._module.hoverPoints(pointData, xval, yval, mode, fullLayout._hoverlayer);
+ var newPoints = trace._module.hoverPoints(gd, pointData, xval, yval, mode, fullLayout._hoverlayer);
if(newPoints) {
var newPoint;
for(var newPointNum = 0; newPointNum < newPoints.length; newPointNum++) {
@@ -489,7 +489,7 @@ function _hover(gd, evt, subplot, noHoverEvent) {
}
}
} else {
- Lib.log('Unrecognized trace type in hover:', trace);
+ Lib.log(gd, 'Unrecognized trace type in hover:', trace);
}
}
@@ -507,7 +507,7 @@ function _hover(gd, evt, subplot, noHoverEvent) {
if(hoverData.length === 0) {
pointData.distance = spikedistance;
pointData.index = false;
- var closestPoints = trace._module.hoverPoints(pointData, xval, yval, 'closest', fullLayout._hoverlayer);
+ var closestPoints = trace._module.hoverPoints(gd, pointData, xval, yval, 'closest', fullLayout._hoverlayer);
if(closestPoints) {
closestPoints = closestPoints.filter(function(point) {
// some hover points, like scatter fills, do not allow spikes,
@@ -1000,13 +1000,13 @@ function createHoverText(hoverData, opts, gd) {
}
};
var mockLayoutOut = {};
- legendSupplyDefaults(mockLayoutIn, mockLayoutOut, gd._fullData);
+ legendSupplyDefaults(gd, mockLayoutIn, mockLayoutOut, gd._fullData);
var legendOpts = mockLayoutOut.legend;
// prepare items for the legend
legendOpts.entries = [];
for(var j = 0; j < hoverData.length; j++) {
- var texts = getHoverLabelText(hoverData[j], true, hovermode, fullLayout, t0);
+ var texts = getHoverLabelText(gd, hoverData[j], true, hovermode, fullLayout, t0);
var text = texts[0];
var name = texts[1];
var pt = hoverData[j];
@@ -1118,7 +1118,7 @@ function createHoverText(hoverData, opts, gd) {
// find a contrasting color for border and text
var contrastColor = d.borderColor || Color.contrast(numsColor);
- var texts = getHoverLabelText(d, showCommonLabel, hovermode, fullLayout, t0, g);
+ var texts = getHoverLabelText(gd, d, showCommonLabel, hovermode, fullLayout, t0, g);
var text = texts[0];
var name = texts[1];
@@ -1219,7 +1219,7 @@ function createHoverText(hoverData, opts, gd) {
return hoverLabels;
}
-function getHoverLabelText(d, showCommonLabel, hovermode, fullLayout, t0, g) {
+function getHoverLabelText(gd, d, showCommonLabel, hovermode, fullLayout, t0, g) {
var name = '';
var text = '';
// to get custom 'name' labels pass cleanPoint
@@ -1274,6 +1274,7 @@ function getHoverLabelText(d, showCommonLabel, hovermode, fullLayout, t0, g) {
var eventData = d.eventData[0] || {};
if(hovertemplate) {
text = Lib.hovertemplateString(
+ gd,
hovertemplate,
hovertemplateLabels,
d3locale,
diff --git a/src/components/fx/hoverlabel_defaults.js b/src/components/fx/hoverlabel_defaults.js
index 22f80c5fced..a738ad2757c 100644
--- a/src/components/fx/hoverlabel_defaults.js
+++ b/src/components/fx/hoverlabel_defaults.js
@@ -12,7 +12,7 @@ var Lib = require('../../lib');
var Color = require('../color');
var isUnifiedHover = require('./helpers').isUnifiedHover;
-module.exports = function handleHoverLabelDefaults(contIn, contOut, coerce, opts) {
+module.exports = function handleHoverLabelDefaults(gd, contIn, contOut, coerce, opts) {
opts = opts || {};
function inheritFontAttr(attr) {
diff --git a/src/components/fx/hovermode_defaults.js b/src/components/fx/hovermode_defaults.js
index 42ffe7fde0f..8aa9c1b3260 100644
--- a/src/components/fx/hovermode_defaults.js
+++ b/src/components/fx/hovermode_defaults.js
@@ -11,7 +11,7 @@
var Lib = require('../../lib');
var layoutAttributes = require('./layout_attributes');
-module.exports = function handleHoverModeDefaults(layoutIn, layoutOut, fullData) {
+module.exports = function handleHoverModeDefaults(gd, layoutIn, layoutOut, fullData) {
function coerce(attr, dflt) {
// don't coerce if it is already coerced in other place e.g. in cartesian defaults
if(layoutOut[attr] !== undefined) return layoutOut[attr];
diff --git a/src/components/fx/layout_defaults.js b/src/components/fx/layout_defaults.js
index 15d6a7f11f6..8dcec8a0446 100644
--- a/src/components/fx/layout_defaults.js
+++ b/src/components/fx/layout_defaults.js
@@ -14,12 +14,12 @@ var layoutAttributes = require('./layout_attributes');
var handleHoverModeDefaults = require('./hovermode_defaults');
var handleHoverLabelDefaults = require('./hoverlabel_defaults');
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
function coerce(attr, dflt) {
return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);
}
- var hoverMode = handleHoverModeDefaults(layoutIn, layoutOut, fullData);
+ var hoverMode = handleHoverModeDefaults(gd, layoutIn, layoutOut, fullData);
if(hoverMode) {
coerce('hoverdistance');
coerce('spikedistance', isUnifiedHover(hoverMode) ? -1 : undefined);
@@ -42,5 +42,5 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
layoutOut.dragmode = 'pan';
}
- handleHoverLabelDefaults(layoutIn, layoutOut, coerce);
+ handleHoverLabelDefaults(gd, layoutIn, layoutOut, coerce);
};
diff --git a/src/components/fx/layout_global_defaults.js b/src/components/fx/layout_global_defaults.js
index 07c5013e6f9..c065ea74d70 100644
--- a/src/components/fx/layout_global_defaults.js
+++ b/src/components/fx/layout_global_defaults.js
@@ -12,10 +12,10 @@ var Lib = require('../../lib');
var handleHoverLabelDefaults = require('./hoverlabel_defaults');
var layoutAttributes = require('./layout_attributes');
-module.exports = function supplyLayoutGlobalDefaults(layoutIn, layoutOut) {
+module.exports = function supplyLayoutGlobalDefaults(gd, layoutIn, layoutOut) {
function coerce(attr, dflt) {
return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);
}
- handleHoverLabelDefaults(layoutIn, layoutOut, coerce);
+ handleHoverLabelDefaults(gd, layoutIn, layoutOut, coerce);
};
diff --git a/src/components/grid/index.js b/src/components/grid/index.js
index bb6ec2f6ad9..406d4a5939b 100644
--- a/src/components/grid/index.js
+++ b/src/components/grid/index.js
@@ -176,7 +176,7 @@ function getAxes(layout, grid, axLetter) {
// the shape of the grid - this needs to be done BEFORE supplyDataDefaults
// so that non-subplot traces can place themselves in the grid
-function sizeDefaults(layoutIn, layoutOut) {
+function sizeDefaults(gd, layoutIn, layoutOut) {
var gridIn = layoutIn.grid || {};
var xAxes = getAxes(layoutOut, gridIn, 'x');
var yAxes = getAxes(layoutOut, gridIn, 'y');
@@ -258,7 +258,7 @@ function fillGridPositions(axLetter, coerce, dfltGap, dfltSide, len, reversed) {
// the (cartesian) contents of the grid - this needs to happen AFTER supplyDataDefaults
// so that we know what cartesian subplots are available
-function contentDefaults(layoutIn, layoutOut) {
+function contentDefaults(gd, layoutIn, layoutOut) {
var gridOut = layoutOut.grid;
// make sure we got to the end of handleGridSizing
if(!gridOut || !gridOut._domains) return;
diff --git a/src/components/images/defaults.js b/src/components/images/defaults.js
index 0c08874c441..2f9c1f88b58 100644
--- a/src/components/images/defaults.js
+++ b/src/components/images/defaults.js
@@ -15,17 +15,17 @@ var handleArrayContainerDefaults = require('../../plots/array_container_defaults
var attributes = require('./attributes');
var name = 'images';
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut) {
var opts = {
name: name,
handleItemDefaults: imageDefaults
};
- handleArrayContainerDefaults(layoutIn, layoutOut, opts);
+ handleArrayContainerDefaults(gd, layoutIn, layoutOut, opts);
};
-function imageDefaults(imageIn, imageOut, fullLayout) {
+function imageDefaults(gd, imageIn, imageOut, fullLayout) {
function coerce(attr, dflt) {
return Lib.coerce(imageIn, imageOut, attributes, attr, dflt);
}
diff --git a/src/components/legend/defaults.js b/src/components/legend/defaults.js
index 9077a1e7890..62d2a2c0ed8 100644
--- a/src/components/legend/defaults.js
+++ b/src/components/legend/defaults.js
@@ -17,7 +17,7 @@ var basePlotLayoutAttributes = require('../../plots/layout_attributes');
var helpers = require('./helpers');
-module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {
+module.exports = function legendDefaults(gd, layoutIn, layoutOut, fullData) {
var containerIn = layoutIn.legend || {};
var legendTraceCount = 0;
diff --git a/src/components/legend/draw.js b/src/components/legend/draw.js
index 940c6a9c721..120326a105d 100644
--- a/src/components/legend/draw.js
+++ b/src/components/legend/draw.js
@@ -146,10 +146,10 @@ module.exports = function draw(gd, opts) {
ly = Lib.constrain(ly, 0, fullLayout.height - opts._effHeight);
if(lx !== lx0) {
- Lib.log('Constrain legend.x to make legend fit inside graph');
+ Lib.log(gd, 'Constrain legend.x to make legend fit inside graph');
}
if(ly !== ly0) {
- Lib.log('Constrain legend.y to make legend fit inside graph');
+ Lib.log(gd, 'Constrain legend.y to make legend fit inside graph');
}
}
diff --git a/src/components/rangeselector/defaults.js b/src/components/rangeselector/defaults.js
index 3151b981b4a..05ba27a5ec0 100644
--- a/src/components/rangeselector/defaults.js
+++ b/src/components/rangeselector/defaults.js
@@ -17,7 +17,7 @@ var attributes = require('./attributes');
var constants = require('./constants');
-module.exports = function handleDefaults(containerIn, containerOut, layout, counterAxes, calendar) {
+module.exports = function handleDefaults(gd, containerIn, containerOut, layout, counterAxes, calendar) {
var selectorIn = containerIn.rangeselector || {};
var selectorOut = Template.newContainer(containerOut, 'rangeselector');
@@ -25,7 +25,7 @@ module.exports = function handleDefaults(containerIn, containerOut, layout, coun
return Lib.coerce(selectorIn, selectorOut, attributes, attr, dflt);
}
- var buttons = handleArrayContainerDefaults(selectorIn, selectorOut, {
+ var buttons = handleArrayContainerDefaults(gd, selectorIn, selectorOut, {
name: 'buttons',
handleItemDefaults: buttonDefaults,
calendar: calendar
@@ -50,7 +50,7 @@ module.exports = function handleDefaults(containerIn, containerOut, layout, coun
}
};
-function buttonDefaults(buttonIn, buttonOut, selectorOut, opts) {
+function buttonDefaults(gd, buttonIn, buttonOut, selectorOut, opts) {
var calendar = opts.calendar;
function coerce(attr, dflt) {
diff --git a/src/components/rangeslider/defaults.js b/src/components/rangeslider/defaults.js
index 462a220e19a..765f72b4d47 100644
--- a/src/components/rangeslider/defaults.js
+++ b/src/components/rangeslider/defaults.js
@@ -15,7 +15,7 @@ var axisIds = require('../../plots/cartesian/axis_ids');
var attributes = require('./attributes');
var oppAxisAttrs = require('./oppaxis_attributes');
-module.exports = function handleDefaults(layoutIn, layoutOut, axName) {
+module.exports = function handleDefaults(gd, layoutIn, layoutOut, axName) {
var axIn = layoutIn[axName];
var axOut = layoutOut[axName];
diff --git a/src/components/shapes/defaults.js b/src/components/shapes/defaults.js
index 85b18ad3463..7e129e0fec8 100644
--- a/src/components/shapes/defaults.js
+++ b/src/components/shapes/defaults.js
@@ -17,14 +17,14 @@ var attributes = require('./attributes');
var helpers = require('./helpers');
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
- handleArrayContainerDefaults(layoutIn, layoutOut, {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut) {
+ handleArrayContainerDefaults(gd, layoutIn, layoutOut, {
name: 'shapes',
handleItemDefaults: handleShapeDefaults
});
};
-function handleShapeDefaults(shapeIn, shapeOut, fullLayout) {
+function handleShapeDefaults(gd, shapeIn, shapeOut, fullLayout) {
function coerce(attr, dflt) {
return Lib.coerce(shapeIn, shapeOut, attributes, attr, dflt);
}
diff --git a/src/components/shapes/draw.js b/src/components/shapes/draw.js
index b519a654a8b..fa8866931d0 100644
--- a/src/components/shapes/draw.js
+++ b/src/components/shapes/draw.js
@@ -607,7 +607,7 @@ function getPathString(gd, options) {
if(type === 'path') {
if(xa && xa.type === 'date') x2p = helpers.decodeDate(x2p);
if(ya && ya.type === 'date') y2p = helpers.decodeDate(y2p);
- return convertPath(options, x2p, y2p);
+ return convertPath(gd, options, x2p, y2p);
}
if(options.xsizemode === 'pixel') {
@@ -644,7 +644,7 @@ function getPathString(gd, options) {
}
-function convertPath(options, x2p, y2p) {
+function convertPath(gd, options, x2p, y2p) {
var pathIn = options.path;
var xSizemode = options.xsizemode;
var ySizemode = options.ysizemode;
@@ -674,7 +674,7 @@ function convertPath(options, x2p, y2p) {
if(paramNumber > nParams) {
paramString = paramString.replace(/[\s,]*X.*/, '');
- Lib.log('Ignoring extra params in segment ' + segment);
+ Lib.log(gd, 'Ignoring extra params in segment ' + segment);
}
return segmentType + paramString;
diff --git a/src/components/shapes/draw_newshape/defaults.js b/src/components/shapes/draw_newshape/defaults.js
index 06b37bd1345..a6c930764e9 100644
--- a/src/components/shapes/draw_newshape/defaults.js
+++ b/src/components/shapes/draw_newshape/defaults.js
@@ -12,7 +12,7 @@
var Color = require('../../color');
-module.exports = function supplyDrawNewShapeDefaults(layoutIn, layoutOut, coerce) {
+module.exports = function supplyDrawNewShapeDefaults(gd, layoutIn, layoutOut, coerce) {
coerce('newshape.drawdirection');
coerce('newshape.layer');
coerce('newshape.fillcolor');
diff --git a/src/components/sliders/defaults.js b/src/components/sliders/defaults.js
index 1411c2e16b2..f1415b4844e 100644
--- a/src/components/sliders/defaults.js
+++ b/src/components/sliders/defaults.js
@@ -18,19 +18,19 @@ var name = constants.name;
var stepAttrs = attributes.steps;
-module.exports = function slidersDefaults(layoutIn, layoutOut) {
- handleArrayContainerDefaults(layoutIn, layoutOut, {
+module.exports = function slidersDefaults(gd, layoutIn, layoutOut) {
+ handleArrayContainerDefaults(gd, layoutIn, layoutOut, {
name: name,
handleItemDefaults: sliderDefaults
});
};
-function sliderDefaults(sliderIn, sliderOut, layoutOut) {
+function sliderDefaults(gd, sliderIn, sliderOut, layoutOut) {
function coerce(attr, dflt) {
return Lib.coerce(sliderIn, sliderOut, attributes, attr, dflt);
}
- var steps = handleArrayContainerDefaults(sliderIn, sliderOut, {
+ var steps = handleArrayContainerDefaults(gd, sliderIn, sliderOut, {
name: 'steps',
handleItemDefaults: stepDefaults
});
@@ -93,7 +93,7 @@ function sliderDefaults(sliderIn, sliderOut, layoutOut) {
coerce('minorticklen');
}
-function stepDefaults(valueIn, valueOut) {
+function stepDefaults(gd, valueIn, valueOut) {
function coerce(attr, dflt) {
return Lib.coerce(valueIn, valueOut, stepAttrs, attr, dflt);
}
diff --git a/src/components/updatemenus/defaults.js b/src/components/updatemenus/defaults.js
index 4b3712b776e..965aee7b85f 100644
--- a/src/components/updatemenus/defaults.js
+++ b/src/components/updatemenus/defaults.js
@@ -18,21 +18,21 @@ var name = constants.name;
var buttonAttrs = attributes.buttons;
-module.exports = function updateMenusDefaults(layoutIn, layoutOut) {
+module.exports = function updateMenusDefaults(gd, layoutIn, layoutOut) {
var opts = {
name: name,
handleItemDefaults: menuDefaults
};
- handleArrayContainerDefaults(layoutIn, layoutOut, opts);
+ handleArrayContainerDefaults(gd, layoutIn, layoutOut, opts);
};
-function menuDefaults(menuIn, menuOut, layoutOut) {
+function menuDefaults(gd, menuIn, menuOut, layoutOut) {
function coerce(attr, dflt) {
return Lib.coerce(menuIn, menuOut, attributes, attr, dflt);
}
- var buttons = handleArrayContainerDefaults(menuIn, menuOut, {
+ var buttons = handleArrayContainerDefaults(gd, menuIn, menuOut, {
name: 'buttons',
handleItemDefaults: buttonDefaults
});
@@ -64,7 +64,7 @@ function menuDefaults(menuIn, menuOut, layoutOut) {
coerce('borderwidth');
}
-function buttonDefaults(buttonIn, buttonOut) {
+function buttonDefaults(gd, buttonIn, buttonOut) {
function coerce(attr, dflt) {
return Lib.coerce(buttonIn, buttonOut, buttonAttrs, attr, dflt);
}
diff --git a/src/lib/index.js b/src/lib/index.js
index 2ea7cda940c..a72efa94e8a 100644
--- a/src/lib/index.js
+++ b/src/lib/index.js
@@ -305,8 +305,7 @@ lib.randstr = function randstr(existing, bits, base, _recursion) {
if((existing && existing[res]) ||
(parsed !== Infinity && parsed >= Math.pow(2, bits))) {
if(_recursion > 10) {
- lib.warn('randstr failed uniqueness');
- return res;
+ throw new Error('randstr failed uniqueness');
}
return randstr(existing, bits, base, (_recursion || 0) + 1);
} else return res;
@@ -760,7 +759,7 @@ lib.ensureSingle = function(parent, nodeType, className, enterFn) {
};
/**
- * Same as Lib.ensureSingle, but using id as selector.
+ * Same as lib.ensureSingle, but using id as selector.
* This version is mostly used for clipPath nodes.
*
* @param {d3 selection} parent : parent selection of the element in question
@@ -976,8 +975,8 @@ var SIMPLE_PROPERTY_REGEX = /^\w*$/;
* Substitute values from an object into a string
*
* Examples:
- * Lib.templateString('name: %{trace}', {trace: 'asdf'}) --> 'name: asdf'
- * Lib.templateString('name: %{trace[0].name}', {trace: [{name: 'asdf'}]}) --> 'name: asdf'
+ * lib.templateString('name: %{trace}', {trace: 'asdf'}) --> 'name: asdf'
+ * lib.templateString('name: %{trace[0].name}', {trace: [{name: 'asdf'}]}) --> 'name: asdf'
*
* @param {string} input string containing %{...} template strings
* @param {obj} data object containing substitution values
@@ -1025,9 +1024,9 @@ var TEMPLATE_STRING_FORMAT_SEPARATOR = /^[:|\|]/;
* or fallback to associated labels.
*
* Examples:
- * Lib.hovertemplateString('name: %{trace}', {trace: 'asdf'}) --> 'name: asdf'
- * Lib.hovertemplateString('name: %{trace[0].name}', {trace: [{name: 'asdf'}]}) --> 'name: asdf'
- * Lib.hovertemplateString('price: %{y:$.2f}', {y: 1}) --> 'price: $1.00'
+ * lib.hovertemplateString(gd, 'name: %{trace}', {trace: 'asdf'}) --> 'name: asdf'
+ * lib.hovertemplateString(gd, 'name: %{trace[0].name}', {trace: [{name: 'asdf'}]}) --> 'name: asdf'
+ * lib.hovertemplateString(gd, 'price: %{y:$.2f}', {y: 1}) --> 'price: $1.00'
*
* @param {string} input string containing %{...:...} template strings
* @param {obj} data object containing fallback text when no formatting is specified, ex.: {yLabel: 'formattedYValue'}
@@ -1036,7 +1035,7 @@ var TEMPLATE_STRING_FORMAT_SEPARATOR = /^[:|\|]/;
*
* @return {string} templated string
*/
-function templateFormatString(string, labels, d3locale) {
+function templateFormatString(gd, string, labels, d3locale) {
var opts = this;
var args = arguments;
if(!labels) labels = {};
@@ -1046,7 +1045,7 @@ function templateFormatString(string, labels, d3locale) {
return string.replace(lib.TEMPLATE_STRING_REGEX, function(match, key, format) {
var obj, value, i;
- for(i = 3; i < args.length; i++) {
+ for(i = 4; i < args.length; i++) {
obj = args[i];
if(!obj) continue;
if(obj.hasOwnProperty(key)) {
@@ -1063,12 +1062,12 @@ function templateFormatString(string, labels, d3locale) {
if(value === undefined && opts) {
if(opts.count < opts.max) {
- lib.warn('Variable \'' + key + '\' in ' + opts.name + ' could not be found!');
+ lib.warn(gd, 'Variable \'' + key + '\' in ' + opts.name + ' could not be found!');
value = match;
}
if(opts.count === opts.max) {
- lib.warn('Too many ' + opts.name + ' warnings - additional warnings will be suppressed');
+ lib.warn(gd, 'Too many ' + opts.name + ' warnings - additional warnings will be suppressed');
}
opts.count++;
diff --git a/src/lib/loggers.js b/src/lib/loggers.js
index e6bb04224c9..2f1a28ab903 100644
--- a/src/lib/loggers.js
+++ b/src/lib/loggers.js
@@ -23,19 +23,21 @@ var loggers = module.exports = {};
*/
loggers.log = function() {
+ var gd = arguments[0] || {};
+ var context = gd._context || dfltConfig;
var i;
- if(dfltConfig.logging > 1) {
+ if(context.logging > 1) {
var messages = ['LOG:'];
- for(i = 0; i < arguments.length; i++) {
+ for(i = 1; i < arguments.length; i++) {
messages.push(arguments[i]);
}
apply(console.trace || console.log, messages);
}
- if(dfltConfig.notifyOnLogging > 1) {
+ if(context.notifyOnLogging > 1) {
var lines = [];
- for(i = 0; i < arguments.length; i++) {
+ for(i = 1; i < arguments.length; i++) {
lines.push(arguments[i]);
}
notifier(lines.join('
'), 'long');
@@ -43,19 +45,21 @@ loggers.log = function() {
};
loggers.warn = function() {
+ var gd = arguments[0] || {};
+ var context = gd._context || dfltConfig;
var i;
- if(dfltConfig.logging > 0) {
+ if(context.logging > 0) {
var messages = ['WARN:'];
- for(i = 0; i < arguments.length; i++) {
+ for(i = 1; i < arguments.length; i++) {
messages.push(arguments[i]);
}
apply(console.trace || console.log, messages);
}
- if(dfltConfig.notifyOnLogging > 0) {
+ if(context.notifyOnLogging > 0) {
var lines = [];
- for(i = 0; i < arguments.length; i++) {
+ for(i = 1; i < arguments.length; i++) {
lines.push(arguments[i]);
}
notifier(lines.join('
'), 'stick');
@@ -63,19 +67,21 @@ loggers.warn = function() {
};
loggers.error = function() {
+ var gd = arguments[0] || {};
+ var context = gd._context || dfltConfig;
var i;
- if(dfltConfig.logging > 0) {
+ if(context.logging > 0) {
var messages = ['ERROR:'];
- for(i = 0; i < arguments.length; i++) {
+ for(i = 1; i < arguments.length; i++) {
messages.push(arguments[i]);
}
apply(console.error, messages);
}
- if(dfltConfig.notifyOnLogging > 0) {
+ if(context.notifyOnLogging > 0) {
var lines = [];
- for(i = 0; i < arguments.length; i++) {
+ for(i = 1; i < arguments.length; i++) {
lines.push(arguments[i]);
}
notifier(lines.join('
'), 'stick');
diff --git a/src/lib/svg_text_utils.js b/src/lib/svg_text_utils.js
index 93194a14145..8142d71594a 100644
--- a/src/lib/svg_text_utils.js
+++ b/src/lib/svg_text_utils.js
@@ -58,7 +58,7 @@ exports.convertToTspans = function(_context, gd, _callback) {
_context.text('')
.style('white-space', 'pre');
- var hasLink = buildSVGText(_context.node(), str);
+ var hasLink = buildSVGText(gd, _context.node(), str);
if(hasLink) {
// at least in Chrome, pointer-events does not seem
@@ -79,7 +79,7 @@ exports.convertToTspans = function(_context, gd, _callback) {
var fontSize = parseInt(_context.node().style.fontSize, 10);
var config = {fontSize: fontSize};
- texToSVG(tex[2], config, function(_svgEl, _glyphDefs, _svgBBox) {
+ texToSVG(gd, tex[2], config, function(_svgEl, _glyphDefs, _svgBBox) {
parent.selectAll('svg.' + svgClass).remove();
parent.selectAll('g.' + svgClass + '-group').remove();
@@ -159,7 +159,7 @@ function cleanEscapesForTex(s) {
.replace(GT_MATCH, '\\gt ');
}
-function texToSVG(_texString, _config, _callback) {
+function texToSVG(gd, _texString, _config, _callback) {
var originalRenderer,
originalConfig,
originalProcessSectionDelay,
@@ -204,7 +204,7 @@ function texToSVG(_texString, _config, _callback) {
var glyphDefs = d3.select('body').select('#MathJax_SVG_glyphs');
if(tmpDiv.select('.MathJax_SVG').empty() || !tmpDiv.select('svg').node()) {
- Lib.log('There was an error in the tex syntax.', _texString);
+ Lib.log(gd, 'There was an error in the tex syntax.', _texString);
_callback();
} else {
var svgBBox = tmpDiv.select('svg').node().getBoundingClientRect();
@@ -446,7 +446,7 @@ function fromCodePoint(code) {
* @returns {bool}: does the result contain any links? We need to handle the text element
* somewhat differently if it does, so just keep track of this when it happens.
*/
-function buildSVGText(containerNode, str) {
+function buildSVGText(gd, containerNode, str) {
/*
* Normalize behavior between IE and others wrt newlines and whitespace:pre
* this combination makes IE barf https://github.com/plotly/plotly.js/issues/746
@@ -545,14 +545,14 @@ function buildSVGText(containerNode, str) {
// A bare closing tag can't close the root node. If we encounter this it
// means there's an extra closing tag that can just be ignored:
if(nodeStack.length === 1) {
- Lib.log('Ignoring unexpected end tag ' + type + '>.', str);
+ Lib.log(gd, 'Ignoring unexpected end tag ' + type + '>.', str);
return;
}
var innerNode = nodeStack.pop();
if(type !== innerNode.type) {
- Lib.log('Start tag <' + innerNode.type + '> doesnt match end tag <' +
+ Lib.log(gd, 'Start tag <' + innerNode.type + '> doesnt match end tag <' +
type + '>. Pretending it did match.', str);
}
currentNode = nodeStack[nodeStack.length - 1].node;
diff --git a/src/plot_api/helpers.js b/src/plot_api/helpers.js
index 230b313a8b7..06f47bcaf20 100644
--- a/src/plot_api/helpers.js
+++ b/src/plot_api/helpers.js
@@ -24,7 +24,7 @@ var traceIs = Registry.traceIs;
// clear the promise queue if one of them got rejected
exports.clearPromiseQueue = function(gd) {
if(Array.isArray(gd._promises) && gd._promises.length > 0) {
- Lib.log('Clearing previous rejected promises from queue.');
+ Lib.log(gd, 'Clearing previous rejected promises from queue.');
}
gd._promises = [];
@@ -568,7 +568,7 @@ exports.coerceTraceIndices = function(gd, traceIndices) {
if(Lib.isIndex(traceIndices[i], gd.data.length)) {
traceIndicesOut.push(traceIndices[i]);
} else {
- Lib.warn('trace index (', traceIndices[i], ') is not a number or is out of bounds');
+ Lib.warn(gd, 'trace index (', traceIndices[i], ') is not a number or is out of bounds');
}
}
return traceIndicesOut;
diff --git a/src/plot_api/manage_arrays.js b/src/plot_api/manage_arrays.js
index 606c5bc1887..688078068bc 100644
--- a/src/plot_api/manage_arrays.js
+++ b/src/plot_api/manage_arrays.js
@@ -99,7 +99,7 @@ exports.applyContainerArrayChanges = function applyContainerArrayChanges(gd, np,
if(replotLater) return false;
- supplyComponentDefaults(layout, fullLayout);
+ supplyComponentDefaults(gd, layout, fullLayout);
draw(gd);
return true;
}
@@ -179,7 +179,7 @@ exports.applyContainerArrayChanges = function applyContainerArrayChanges(gd, np,
if(replotLater) return false;
- supplyComponentDefaults(layout, fullLayout);
+ supplyComponentDefaults(gd, layout, fullLayout);
// finally draw all the components we need to
// if we added or removed any, redraw all after it
diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js
index 17ba52c2908..c2b75ba83e4 100644
--- a/src/plot_api/plot_api.js
+++ b/src/plot_api/plot_api.js
@@ -85,7 +85,7 @@ function plot(gd, data, layout, config) {
// if there's no data or layout, and this isn't yet a plotly plot
// container, log a warning to help plotly.js users debug
if(!data && !layout && !Lib.isPlotDiv(gd)) {
- Lib.warn('Calling Plotly.plot as if redrawing ' +
+ Lib.warn(gd, 'Calling Plotly.plot as if redrawing ' +
'but this container doesn\'t yet have a plot.', gd);
}
@@ -143,7 +143,7 @@ function plot(gd, data, layout, config) {
// Legacy polar plots
if(!fullLayout._has('polar') && data && data[0] && data[0].r) {
- Lib.log('Legacy polar charts are deprecated!');
+ Lib.log(gd, 'Legacy polar charts are deprecated!');
return plotLegacyPolar(gd, data, layout);
}
@@ -257,9 +257,9 @@ function plot(gd, data, layout, config) {
) {
var msg = 'WebGL context buffer and canvas dimensions do not match due to browser/WebGL bug.';
if(drawFrameworkCalls) {
- Lib.error(msg);
+ Lib.error(gd, msg);
} else {
- Lib.log(msg + ' Clearing graph and plotting again.');
+ Lib.log(gd, msg + ' Clearing graph and plotting again.');
Plots.cleanPlot([], {}, gd._fullData, fullLayout);
Plots.supplyDefaults(gd);
fullLayout = gd._fullLayout;
@@ -413,7 +413,7 @@ function setBackground(gd, bgColor) {
try {
gd._fullLayout._paper.style('background', bgColor);
} catch(e) {
- Lib.error(e);
+ Lib.error(gd, e);
}
}
@@ -1348,7 +1348,7 @@ function restyle(gd, astr, val, _traces) {
aobj = Lib.extendFlat({}, astr);
if(_traces === undefined) _traces = val;
} else {
- Lib.warn('Restyle fail.', astr, val, _traces);
+ Lib.warn(gd, 'Restyle fail.', astr, val, _traces);
return Promise.reject();
}
@@ -1862,7 +1862,7 @@ function relayout(gd, astr, val) {
} else if(Lib.isPlainObject(astr)) {
aobj = Lib.extendFlat({}, astr);
} else {
- Lib.warn('Relayout fail.', astr, val);
+ Lib.warn(gd, 'Relayout fail.', astr, val);
return Promise.reject();
}
@@ -2235,7 +2235,7 @@ function _relayout(gd, aobj) {
} else if(manageArrays.isRemoveVal(vi)) {
undoit[ai] = (nestedProperty(layout, arrayStr).get() || [])[i];
} else {
- Lib.warn('unrecognized full object value', aobj);
+ Lib.warn(gd, 'unrecognized full object value', aobj);
}
}
editTypes.update(flags, updateValObject);
@@ -2540,7 +2540,9 @@ function valsMatch(v1, v2) {
return v1 === v2;
}
-function applyUIRevisions(data, layout, oldFullData, oldFullLayout) {
+function applyUIRevisions(gd, oldFullData, oldFullLayout) {
+ var data = gd.data;
+ var layout = gd.layout;
var layoutPreGUI = oldFullLayout._preGUI;
var key, revAttr, oldRev, newRev, match, preGUIVal, newNP, newVal;
var bothInheritAutorange = [];
@@ -2565,7 +2567,7 @@ function applyUIRevisions(data, layout, oldFullData, oldFullLayout) {
}
}
} else {
- Lib.warn('unrecognized GUI edit: ' + key);
+ Lib.warn(gd, 'unrecognized GUI edit: ' + key);
}
// if we got this far, the new value was accepted as the new starting
// point (either because it changed or revision changed)
@@ -2642,7 +2644,7 @@ function applyUIRevisions(data, layout, oldFullData, oldFullLayout) {
}
}
} else {
- Lib.warn('unrecognized GUI edit: ' + key + ' in trace uid ' + uid);
+ Lib.warn(gd, 'unrecognized GUI edit: ' + key + ' in trace uid ' + uid);
}
delete tracePreGUI[key];
}
@@ -2710,7 +2712,7 @@ function react(gd, data, layout, config) {
gd.layout = layout || {};
helpers.cleanLayout(gd.layout);
- applyUIRevisions(gd.data, gd.layout, oldFullData, oldFullLayout);
+ applyUIRevisions(gd, oldFullData, oldFullLayout);
var allNames = Object.getOwnPropertyNames(oldFullLayout);
for(var q = 0; q < allNames.length; q++) {
@@ -3165,7 +3167,7 @@ function animate(gd, frameOrGroupNameOrFrameList, animationOpts) {
trans._frameQueue = [];
}
- animationOpts = Plots.supplyAnimationDefaults(animationOpts);
+ animationOpts = Plots.supplyAnimationDefaults(gd, animationOpts);
var transitionOpts = animationOpts.transition;
var frameOpts = animationOpts.frame;
@@ -3440,7 +3442,7 @@ function animate(gd, frameOrGroupNameOrFrameList, animationOpts) {
for(i = 0; i < frameList.length; i++) {
frame = frameList[i];
if(frame.type === 'byname' && !trans._frameHash[frame.data.name]) {
- Lib.warn('animate failure: frame not found: "' + frame.data.name + '"');
+ Lib.warn(gd, 'animate failure: frame not found: "' + frame.data.name + '"');
reject();
return;
}
@@ -3555,14 +3557,14 @@ function addFrames(gd, frameList, indices) {
if(name && newName && typeof newName === 'number' && collisionPresent && numericNameWarningCount < numericNameWarningCountLimit) {
numericNameWarningCount++;
- Lib.warn('addFrames: overwriting frame "' + (_frameHash[name] || _frameHashLocal[name]).name +
+ Lib.warn(gd, 'addFrames: overwriting frame "' + (_frameHash[name] || _frameHashLocal[name]).name +
'" with a frame whose name of type "number" also equates to "' +
name + '". This is valid but may potentially lead to unexpected ' +
'behavior since all plotly.js frame names are stored internally ' +
'as strings.');
if(numericNameWarningCount === numericNameWarningCountLimit) {
- Lib.warn('addFrames: This API call has yielded too many of these warnings. ' +
+ Lib.warn(gd, 'addFrames: This API call has yielded too many of these warnings. ' +
'For the rest of this call, further warnings about numeric frame ' +
'names will be suppressed.');
}
@@ -3571,7 +3573,7 @@ function addFrames(gd, frameList, indices) {
_frameHashLocal[lookupName] = {name: lookupName};
insertions.push({
- frame: Plots.supplyFrameDefaults(frameList[i]),
+ frame: Plots.supplyFrameDefaults(gd, frameList[i]),
index: (indices && indices[i] !== undefined && indices[i] !== null) ? indices[i] : bigIndex + i
});
}
@@ -3591,7 +3593,7 @@ function addFrames(gd, frameList, indices) {
frame = insertions[i].frame;
if(typeof frame.name === 'number') {
- Lib.warn('Warning: addFrames accepts frames with numeric names, but the numbers are' +
+ Lib.warn(gd, 'Warning: addFrames accepts frames with numeric names, but the numbers are' +
'implicitly cast to strings');
}
diff --git a/src/plot_api/plot_template.js b/src/plot_api/plot_template.js
index 82b31279a68..c00a1a7aedc 100644
--- a/src/plot_api/plot_template.js
+++ b/src/plot_api/plot_template.js
@@ -158,9 +158,9 @@ exports.newContainer = function(container, name, baseName) {
* specific template items that have not already beeen included,
* also as bare output items ready for supplyDefaults.
*/
-exports.arrayTemplater = function(container, name, inclusionAttr) {
+exports.arrayTemplater = function(gd, container, name, inclusionAttr) {
var template = container._template;
- var defaultsTemplate = template && template[arrayDefaultKey(name)];
+ var defaultsTemplate = template && template[arrayDefaultKey(gd, name)];
var templateItems = template && template[name];
if(!Array.isArray(templateItems) || !templateItems.length) {
templateItems = [];
@@ -238,10 +238,10 @@ function validItemName(name) {
return name && typeof name === 'string';
}
-function arrayDefaultKey(name) {
+function arrayDefaultKey(gd, name) {
var lastChar = name.length - 1;
if(name.charAt(lastChar) !== 's') {
- Lib.warn('bad argument to arrayDefaultKey: ' + name);
+ Lib.warn(gd, 'bad argument to arrayDefaultKey: ' + name);
}
return name.substr(0, name.length - 1) + 'defaults';
}
diff --git a/src/plot_api/template_api.js b/src/plot_api/template_api.js
index c9af9a9fde9..12a961874e9 100644
--- a/src/plot_api/template_api.js
+++ b/src/plot_api/template_api.js
@@ -31,6 +31,8 @@ var dfltConfig = require('./plot_config').dfltConfig;
* `layout.template` in another figure.
*/
exports.makeTemplate = function(figure) {
+ var gd = figure;
+
figure = Lib.isPlainObject(figure) ? figure : Lib.getGraphDiv(figure);
figure = Lib.extendDeep({_context: dfltConfig}, {data: figure.data, layout: figure.layout});
Plots.supplyDefaults(figure);
@@ -62,7 +64,7 @@ exports.makeTemplate = function(figure) {
// as it stands they are ignored, which may be for the best...
var traceTemplate = {};
- walkStyleKeys(trace, traceTemplate, getTraceInfo.bind(null, trace));
+ walkStyleKeys(gd, trace, traceTemplate, getTraceInfo.bind(null, trace));
var traceType = Lib.coerce(trace, {}, plotAttributes, 'type');
var typeTemplates = template.data[traceType];
@@ -70,7 +72,7 @@ exports.makeTemplate = function(figure) {
typeTemplates.push(traceTemplate);
});
- walkStyleKeys(layout, template.layout, getLayoutInfo.bind(null, layout));
+ walkStyleKeys(gd, layout, template.layout, getLayoutInfo.bind(null, layout));
/*
* Compose the new template with an existing one to the same effect
@@ -91,7 +93,7 @@ exports.makeTemplate = function(figure) {
var i, traceType, oldTypeTemplates, oldTypeLen, typeTemplates, typeLen;
if(isPlainObject(oldLayoutTemplate)) {
- mergeTemplates(oldLayoutTemplate, template.layout);
+ mergeTemplates(gd, oldLayoutTemplate, template.layout);
}
var oldDataTemplate = oldTemplate.data;
if(isPlainObject(oldDataTemplate)) {
@@ -102,7 +104,7 @@ exports.makeTemplate = function(figure) {
typeLen = typeTemplates.length;
oldTypeLen = oldTypeTemplates.length;
for(i = 0; i < typeLen; i++) {
- mergeTemplates(oldTypeTemplates[i % oldTypeLen], typeTemplates[i]);
+ mergeTemplates(gd, oldTypeTemplates[i % oldTypeLen], typeTemplates[i]);
}
for(i = typeLen; i < oldTypeLen; i++) {
typeTemplates.push(Lib.extendDeep({}, oldTypeTemplates[i]));
@@ -120,7 +122,7 @@ exports.makeTemplate = function(figure) {
return template;
};
-function mergeTemplates(oldTemplate, newTemplate) {
+function mergeTemplates(gd, oldTemplate, newTemplate) {
// we don't care about speed here, just make sure we have a totally
// distinct object from the previous template
oldTemplate = Lib.extendDeep({}, oldTemplate);
@@ -132,15 +134,15 @@ function mergeTemplates(oldTemplate, newTemplate) {
function mergeOne(oldVal, newVal, key) {
if(isPlainObject(newVal) && isPlainObject(oldVal)) {
- mergeTemplates(oldVal, newVal);
+ mergeTemplates(gd, oldVal, newVal);
} else if(Array.isArray(newVal) && Array.isArray(oldVal)) {
// Note: omitted `inclusionAttr` from arrayTemplater here,
// it's irrelevant as we only want the resulting `_template`.
- var templater = Template.arrayTemplater({_template: oldTemplate}, key);
+ var templater = Template.arrayTemplater(gd, {_template: oldTemplate}, key);
for(j = 0; j < newVal.length; j++) {
var item = newVal[j];
var oldItem = templater.newItem(item)._template;
- if(oldItem) mergeTemplates(oldItem, item);
+ if(oldItem) mergeTemplates(gd, oldItem, item);
}
var defaultItems = templater.defaultItems();
for(j = 0; j < defaultItems.length; j++) newVal.push(defaultItems[j]._template);
@@ -174,7 +176,7 @@ function getBaseKey(key) {
return key.replace(/[0-9]+$/, '');
}
-function walkStyleKeys(parent, templateOut, getAttributeInfo, path, basePath) {
+function walkStyleKeys(gd, parent, templateOut, getAttributeInfo, path, basePath) {
var pathAttr = basePath && getAttributeInfo(basePath);
for(var key in parent) {
var child = parent[key];
@@ -201,7 +203,7 @@ function walkStyleKeys(parent, templateOut, getAttributeInfo, path, basePath) {
}
if(!attr.valType && isPlainObject(child)) {
- walkStyleKeys(child, templateOut, getAttributeInfo, nextPath, nextBasePath);
+ walkStyleKeys(gd, child, templateOut, getAttributeInfo, nextPath, nextBasePath);
} else if(attr._isLinkedToArray && Array.isArray(child)) {
var dfltDone = false;
var namedIndex = 0;
@@ -213,21 +215,21 @@ function walkStyleKeys(parent, templateOut, getAttributeInfo, path, basePath) {
if(name) {
if(!usedNames[name]) {
// named array items: allow all attributes except data arrays
- walkStyleKeys(item, templateOut, getAttributeInfo,
+ walkStyleKeys(gd, item, templateOut, getAttributeInfo,
getNextPath(child, namedIndex, nextPath),
getNextPath(child, namedIndex, nextBasePath));
namedIndex++;
usedNames[name] = 1;
}
} else if(!dfltDone) {
- var dfltKey = Template.arrayDefaultKey(key);
+ var dfltKey = Template.arrayDefaultKey(gd, key);
var dfltPath = getNextPath(parent, dfltKey, path);
// getAttributeInfo will fail if we try to use dfltKey directly.
// Instead put this item into the next array element, then
// pull it out and move it to dfltKey.
var pathInArray = getNextPath(child, namedIndex, nextPath);
- walkStyleKeys(item, templateOut, getAttributeInfo, pathInArray,
+ walkStyleKeys(gd, item, templateOut, getAttributeInfo, pathInArray,
getNextPath(child, namedIndex, nextBasePath));
var itemPropInArray = Lib.nestedProperty(templateOut, pathInArray);
var dfltProp = Lib.nestedProperty(templateOut, dfltPath);
diff --git a/src/plot_api/validate.js b/src/plot_api/validate.js
index 726f2ea7b75..7a9bfe32ce7 100644
--- a/src/plot_api/validate.js
+++ b/src/plot_api/validate.js
@@ -54,7 +54,7 @@ module.exports = function validate(data, layout) {
} else {
gd.data = [];
dataIn = [];
- errorList.push(format('array', 'data'));
+ errorList.push(format(gd, 'array', 'data'));
}
if(isPlainObject(layout)) {
@@ -64,7 +64,7 @@ module.exports = function validate(data, layout) {
gd.layout = {};
layoutIn = {};
if(arguments.length > 1) {
- errorList.push(format('object', 'layout'));
+ errorList.push(format(gd, 'object', 'layout'));
}
}
@@ -82,7 +82,7 @@ module.exports = function validate(data, layout) {
var base = ['data', i];
if(!isPlainObject(traceIn)) {
- errorList.push(format('object', base));
+ errorList.push(format(gd, 'object', base));
continue;
}
@@ -98,17 +98,17 @@ module.exports = function validate(data, layout) {
};
if(traceOut.visible === false && traceIn.visible !== false) {
- errorList.push(format('invisible', base));
+ errorList.push(format(gd, 'invisible', base));
}
- crawl(traceIn, traceOut, traceSchema, errorList, base);
+ crawl(gd, traceIn, traceOut, traceSchema, errorList, base);
var transformsIn = traceIn.transforms;
var transformsOut = traceOut.transforms;
if(transformsIn) {
if(!isArray(transformsIn)) {
- errorList.push(format('array', base, ['transforms']));
+ errorList.push(format(gd, 'array', base, ['transforms']));
}
base.push('transforms');
@@ -118,7 +118,7 @@ module.exports = function validate(data, layout) {
var transformType = transformsIn[j].type;
if(!isPlainObject(transformsIn[j])) {
- errorList.push(format('object', base, path));
+ errorList.push(format(gd, 'object', base, path));
continue;
}
@@ -132,7 +132,7 @@ module.exports = function validate(data, layout) {
values: Object.keys(schema.transforms)
};
- crawl(transformsIn[j], transformsOut[j], transformSchema, errorList, base, path);
+ crawl(gd, transformsIn[j], transformsOut[j], transformSchema, errorList, base, path);
}
}
}
@@ -140,13 +140,13 @@ module.exports = function validate(data, layout) {
var layoutOut = gd._fullLayout;
var layoutSchema = fillLayoutSchema(schema, dataOut);
- crawl(layoutIn, layoutOut, layoutSchema, errorList, 'layout');
+ crawl(gd, layoutIn, layoutOut, layoutSchema, errorList, 'layout');
// return undefined if no validation errors were found
return (errorList.length === 0) ? void(0) : errorList;
};
-function crawl(objIn, objOut, schema, list, base, path) {
+function crawl(gd, objIn, objOut, schema, list, base, path) {
path = path || [];
var keys = Object.keys(objIn);
@@ -170,12 +170,12 @@ function crawl(objIn, objOut, schema, list, base, path) {
var items = (nestedSchema || {}).items;
if(!isInSchema(schema, k)) {
- list.push(format('schema', base, p));
+ list.push(format(gd, 'schema', base, p));
} else if(isPlainObject(valIn) && isPlainObject(valOut) && nestedValType !== 'any') {
- crawl(valIn, valOut, nestedSchema, list, base, p);
+ crawl(gd, valIn, valOut, nestedSchema, list, base, p);
} else if(isInfoArray && isArray(valIn)) {
if(valIn.length > valOut.length) {
- list.push(format('unused', base, p.concat(valOut.length)));
+ list.push(format(gd, 'unused', base, p.concat(valOut.length)));
}
var len = valOut.length;
var arrayItems = Array.isArray(items);
@@ -185,7 +185,7 @@ function crawl(objIn, objOut, schema, list, base, path) {
for(n = 0; n < len; n++) {
if(isArray(valIn[n])) {
if(valIn[n].length > valOut[n].length) {
- list.push(format('unused', base, p.concat(n, valOut[n].length)));
+ list.push(format(gd, 'unused', base, p.concat(n, valOut[n].length)));
}
var len2 = valOut[n].length;
for(m = 0; m < (arrayItems ? Math.min(len2, items[n].length) : len2); m++) {
@@ -193,13 +193,13 @@ function crawl(objIn, objOut, schema, list, base, path) {
valInPart = valIn[n][m];
valOutPart = valOut[n][m];
if(!Lib.validate(valInPart, item)) {
- list.push(format('value', base, p.concat(n, m), valInPart));
+ list.push(format(gd, 'value', base, p.concat(n, m), valInPart));
} else if(valOutPart !== valInPart && valOutPart !== +valInPart) {
- list.push(format('dynamic', base, p.concat(n, m), valInPart, valOutPart));
+ list.push(format(gd, 'dynamic', base, p.concat(n, m), valInPart, valOutPart));
}
}
} else {
- list.push(format('array', base, p.concat(n), valIn[n]));
+ list.push(format(gd, 'array', base, p.concat(n), valIn[n]));
}
}
} else {
@@ -208,9 +208,9 @@ function crawl(objIn, objOut, schema, list, base, path) {
valInPart = valIn[n];
valOutPart = valOut[n];
if(!Lib.validate(valInPart, item)) {
- list.push(format('value', base, p.concat(n), valInPart));
+ list.push(format(gd, 'value', base, p.concat(n), valInPart));
} else if(valOutPart !== valInPart && valOutPart !== +valInPart) {
- list.push(format('dynamic', base, p.concat(n), valInPart, valOutPart));
+ list.push(format(gd, 'dynamic', base, p.concat(n), valInPart, valOutPart));
}
}
}
@@ -233,8 +233,8 @@ function crawl(objIn, objOut, schema, list, base, path) {
var valInj = valIn[_index];
var valOutj = valOut[j];
if(isPlainObject(valInj) && valInj.visible !== false && valOutj.visible === false) {
- list.push(format('invisible', base, _p));
- } else crawl(valInj, valOutj, _nestedSchema, list, base, _p);
+ list.push(format(gd, 'invisible', base, _p));
+ } else crawl(gd, valInj, valOutj, _nestedSchema, list, base, _p);
}
}
@@ -244,23 +244,23 @@ function crawl(objIn, objOut, schema, list, base, path) {
_p.push(j);
if(!isPlainObject(valIn[j])) {
- list.push(format('object', base, _p, valIn[j]));
+ list.push(format(gd, 'object', base, _p, valIn[j]));
} else if(indexList.indexOf(j) === -1) {
- list.push(format('unused', base, _p));
+ list.push(format(gd, 'unused', base, _p));
}
}
} else if(!isPlainObject(valIn) && isPlainObject(valOut)) {
- list.push(format('object', base, p, valIn));
+ list.push(format(gd, 'object', base, p, valIn));
} else if(!isArrayOrTypedArray(valIn) && isArrayOrTypedArray(valOut) && !isInfoArray && !isColorscale) {
- list.push(format('array', base, p, valIn));
+ list.push(format(gd, 'array', base, p, valIn));
} else if(!(k in objOut)) {
- list.push(format('unused', base, p, valIn));
+ list.push(format(gd, 'unused', base, p, valIn));
} else if(!Lib.validate(valIn, nestedSchema)) {
- list.push(format('value', base, p, valIn));
+ list.push(format(gd, 'value', base, p, valIn));
} else if(nestedSchema.valType === 'enumerated' &&
((nestedSchema.coerceNumber && valIn !== +valOut) || valIn !== valOut)
) {
- list.push(format('dynamic', base, p, valIn, valOut));
+ list.push(format(gd, 'dynamic', base, p, valIn, valOut));
}
}
@@ -345,7 +345,7 @@ function inBase(base) {
return 'In ' + base + ', ';
}
-function format(code, base, path, valIn, valOut) {
+function format(gd, code, base, path, valIn, valOut) {
path = path || '';
var container, trace;
@@ -365,7 +365,7 @@ function format(code, base, path, valIn, valOut) {
var msg = code2msgFunc[code](base, astr, valIn, valOut);
// log to console if logger config option is enabled
- Lib.log(msg);
+ Lib.log(gd, msg);
return {
code: code,
diff --git a/src/plots/array_container_defaults.js b/src/plots/array_container_defaults.js
index 5f258544309..a394cad50d0 100644
--- a/src/plots/array_container_defaults.js
+++ b/src/plots/array_container_defaults.js
@@ -42,7 +42,7 @@ var Template = require('../plot_api/plot_template');
* links to supplementary data (e.g. fullData for layout components)
*
*/
-module.exports = function handleArrayContainerDefaults(parentObjIn, parentObjOut, opts) {
+module.exports = function handleArrayContainerDefaults(gd, parentObjIn, parentObjOut, opts) {
var name = opts.name;
var inclusionAttr = opts.inclusionAttr || 'visible';
@@ -50,7 +50,7 @@ module.exports = function handleArrayContainerDefaults(parentObjIn, parentObjOut
var contIn = Lib.isArrayOrTypedArray(parentObjIn[name]) ? parentObjIn[name] : [];
var contOut = parentObjOut[name] = [];
- var templater = Template.arrayTemplater(parentObjOut, name, inclusionAttr);
+ var templater = Template.arrayTemplater(gd, parentObjOut, name, inclusionAttr);
var i, itemOut;
for(i = 0; i < contIn.length; i++) {
@@ -66,7 +66,7 @@ module.exports = function handleArrayContainerDefaults(parentObjIn, parentObjOut
itemOut._index = i;
if(itemOut[inclusionAttr] !== false) {
- opts.handleItemDefaults(itemIn, itemOut, parentObjOut, opts);
+ opts.handleItemDefaults(gd, itemIn, itemOut, parentObjOut, opts);
}
contOut.push(itemOut);
@@ -76,7 +76,7 @@ module.exports = function handleArrayContainerDefaults(parentObjIn, parentObjOut
for(i = 0; i < defaultItems.length; i++) {
itemOut = defaultItems[i];
itemOut._index = contOut.length;
- opts.handleItemDefaults({}, itemOut, parentObjOut, opts, {});
+ opts.handleItemDefaults(gd, {}, itemOut, parentObjOut, opts, {});
contOut.push(itemOut);
}
diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js
index 094774715a0..6751c349772 100644
--- a/src/plots/cartesian/axes.js
+++ b/src/plots/cartesian/axes.js
@@ -1081,7 +1081,7 @@ axes.tickFirst = function(ax, opts) {
t0 = axes.tickIncrement(t0, newDTick, mult < 0 ? !axrev : axrev, ax.calendar);
cnt++;
}
- Lib.error('tickFirst did not converge', ax);
+ // Lib.error(gd, 'tickFirst did not converge', ax);
return t0;
} else if(tType === 'L') {
// Log scales: Linear, Digits
diff --git a/src/plots/cartesian/axis_defaults.js b/src/plots/cartesian/axis_defaults.js
index 667ecda5c7f..a4be7477dc0 100644
--- a/src/plots/cartesian/axis_defaults.js
+++ b/src/plots/cartesian/axis_defaults.js
@@ -44,7 +44,7 @@ var HOUR = require('./constants').HOUR_PATTERN;
* reverseDflt: boolean
* automargin: boolean
*/
-module.exports = function handleAxisDefaults(containerIn, containerOut, coerce, options, layoutOut) {
+module.exports = function handleAxisDefaults(gd, containerIn, containerOut, coerce, options, layoutOut) {
var letter = options.letter;
var font = options.font || {};
var splomStash = options.splomStash || {};
@@ -56,7 +56,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
if(axType === 'date') {
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleDefaults');
- handleCalendarDefaults(containerIn, containerOut, 'calendar', options.calendar);
+ handleCalendarDefaults(gd, containerIn, containerOut, 'calendar', options.calendar);
}
setConvert(containerOut, layoutOut);
@@ -69,7 +69,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
coerce('range');
containerOut.cleanRange();
- handleCategoryOrderDefaults(containerIn, containerOut, coerce, options);
+ handleCategoryOrderDefaults(gd, containerIn, containerOut, coerce, options);
if(axType !== 'category' && !options.noHover) coerce('hoverformat');
@@ -82,7 +82,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
// try to get default title from splom trace, fallback to graph-wide value
var dfltTitle = splomStash.label || layoutOut._dfltTitle[letter];
- handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options, {pass: 1});
+ handleTickLabelDefaults(gd, containerIn, containerOut, coerce, axType, options, {pass: 1});
if(!visible) return containerOut;
coerce('title.text', dfltTitle);
@@ -92,10 +92,10 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
color: dfltFontColor
});
- handleTickValueDefaults(containerIn, containerOut, coerce, axType);
- handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options, {pass: 2});
- handleTickMarkDefaults(containerIn, containerOut, coerce, options);
- handleLineGridDefaults(containerIn, containerOut, coerce, {
+ handleTickValueDefaults(gd, containerIn, containerOut, coerce, axType);
+ handleTickLabelDefaults(gd, containerIn, containerOut, coerce, axType, options, {pass: 2});
+ handleTickMarkDefaults(gd, containerIn, containerOut, coerce, options);
+ handleLineGridDefaults(gd, containerIn, containerOut, coerce, {
dfltColor: dfltColor,
bgColor: options.bgColor,
showGrid: options.showGrid,
@@ -128,7 +128,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
if(axType === 'date') {
if(!options.noTicklabelmode) coerce('ticklabelmode');
- handleArrayContainerDefaults(containerIn, containerOut, {
+ handleArrayContainerDefaults(gd, containerIn, containerOut, {
name: 'rangebreaks',
inclusionAttr: 'enabled',
handleItemDefaults: rangebreaksDefaults
@@ -151,7 +151,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
var trace = options.data[i];
if(trace.type === 'scattergl' || trace.type === 'splom') {
trace.visible = false;
- Lib.warn(trace.type +
+ Lib.warn(gd, trace.type +
' traces do not work on axes with rangebreaks.' +
' Setting trace ' + trace.index + ' to `visible: false`.');
}
@@ -163,7 +163,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
return containerOut;
};
-function rangebreaksDefaults(itemIn, itemOut, containerOut) {
+function rangebreaksDefaults(gd, itemIn, itemOut, containerOut) {
function coerce(attr, dflt) {
return Lib.coerce(itemIn, itemOut, layoutAttributes.rangebreaks, attr, dflt);
}
diff --git a/src/plots/cartesian/category_order_defaults.js b/src/plots/cartesian/category_order_defaults.js
index 8cdbb81129b..f6fa6769f9d 100644
--- a/src/plots/cartesian/category_order_defaults.js
+++ b/src/plots/cartesian/category_order_defaults.js
@@ -53,7 +53,7 @@ function findCategories(ax, opts) {
* - axData {array} : (full) data associated with axis being coerced here
* - dataAttr {string} : attribute name corresponding to coordinate array
*/
-module.exports = function handleCategoryOrderDefaults(containerIn, containerOut, coerce, opts) {
+module.exports = function handleCategoryOrderDefaults(gd, containerIn, containerOut, coerce, opts) {
if(containerOut.type !== 'category') return;
var arrayIn = containerIn.categoryarray;
diff --git a/src/plots/cartesian/constraints.js b/src/plots/cartesian/constraints.js
index d3c0c138152..178771a36ff 100644
--- a/src/plots/cartesian/constraints.js
+++ b/src/plots/cartesian/constraints.js
@@ -17,7 +17,7 @@ var concatExtremes = require('./autorange').concatExtremes;
var ALMOST_EQUAL = require('../../constants/numerical').ALMOST_EQUAL;
var FROM_BL = require('../../constants/alignment').FROM_BL;
-exports.handleConstraintDefaults = function(containerIn, containerOut, coerce, opts) {
+exports.handleConstraintDefaults = function(gd, containerIn, containerOut, coerce, opts) {
var allAxisIds = opts.allAxisIds;
var layoutOut = opts.layoutOut;
var scaleanchorDflt = opts.scaleanchorDflt;
@@ -74,7 +74,7 @@ exports.handleConstraintDefaults = function(containerIn, containerOut, coerce, o
delete containerOut.constrain;
updateConstraintGroups(matchGroups, matchOpts.thisGroup, thisID, matches, 1);
} else if(allAxisIds.indexOf(containerIn.matches) !== -1) {
- Lib.warn('ignored ' + containerOut._name + '.matches: "' +
+ Lib.warn(gd, 'ignored ' + containerOut._name + '.matches: "' +
containerIn.matches + '" to avoid either an infinite loop ' +
'or because the target axis has fixed range.');
}
@@ -91,7 +91,7 @@ exports.handleConstraintDefaults = function(containerIn, containerOut, coerce, o
updateConstraintGroups(constraintGroups, scaleOpts.thisGroup, thisID, scaleanchor, scaleratio);
} else if(allAxisIds.indexOf(containerIn.scaleanchor) !== -1) {
- Lib.warn('ignored ' + containerOut._name + '.scaleanchor: "' +
+ Lib.warn(gd, 'ignored ' + containerOut._name + '.scaleanchor: "' +
containerIn.scaleanchor + '" to avoid either an infinite loop ' +
'and possibly inconsistent scaleratios, or because the target ' +
'axis has fixed range or this axis declares a *matches* constraint.');
diff --git a/src/plots/cartesian/dragbox.js b/src/plots/cartesian/dragbox.js
index 573362f0047..990ea630dbb 100644
--- a/src/plots/cartesian/dragbox.js
+++ b/src/plots/cartesian/dragbox.js
@@ -476,7 +476,7 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) {
var wheelDelta = -e.deltaY;
if(!isFinite(wheelDelta)) wheelDelta = e.wheelDelta / 10;
if(!isFinite(wheelDelta)) {
- Lib.log('Did not find wheel motion attributes: ', e);
+ Lib.log(gd, 'Did not find wheel motion attributes: ', e);
return;
}
diff --git a/src/plots/cartesian/layout_defaults.js b/src/plots/cartesian/layout_defaults.js
index 3e411ae0574..cc14992f776 100644
--- a/src/plots/cartesian/layout_defaults.js
+++ b/src/plots/cartesian/layout_defaults.js
@@ -37,7 +37,7 @@ function appendList(cont, k, item) {
else cont[k] = [item];
}
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
var ax2traces = {};
var xaMayHide = {};
var yaMayHide = {};
@@ -207,7 +207,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
}
}
- var hovermode = handleHoverModeDefaults(layoutIn, layoutOut, fullData);
+ var hovermode = handleHoverModeDefaults(gd, layoutIn, layoutOut, fullData);
var unifiedHover = isUnifiedHover(hovermode);
// first pass creates the containers, determines types, and handles most of the settings
@@ -251,8 +251,8 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
coerce('uirevision', layoutOut.uirevision);
- handleTypeDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions);
- handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions, layoutOut);
+ handleTypeDefaults(gd, axLayoutIn, axLayoutOut, coerce, defaultOptions);
+ handleAxisDefaults(gd, axLayoutIn, axLayoutOut, coerce, defaultOptions, layoutOut);
var unifiedSpike = unifiedHover && axLetter === hovermode.charAt(0);
var spikecolor = coerce2('spikecolor', unifiedHover ? axLayoutOut.color : undefined);
@@ -270,7 +270,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
delete axLayoutOut.spikesnap;
}
- handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {
+ handlePositionDefaults(gd, axLayoutIn, axLayoutOut, coerce, {
letter: axLetter,
counterAxes: counterAxes[axLetter],
overlayableAxes: getOverlayableAxes(axLetter, axName),
@@ -317,9 +317,9 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
axLayoutOut.type = missingMatchedAxisIdsLookup[axId] || 'linear';
- handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions2, layoutOut);
+ handleAxisDefaults(gd, axLayoutIn, axLayoutOut, coerce, defaultOptions2, layoutOut);
- handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {
+ handlePositionDefaults(gd, axLayoutIn, axLayoutOut, coerce, {
letter: axLetter,
counterAxes: counterAxes[axLetter],
overlayableAxes: getOverlayableAxes(axLetter, axName),
@@ -342,10 +342,11 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
axLayoutIn = layoutIn[axName];
axLayoutOut = layoutOut[axName];
- rangeSliderDefaults(layoutIn, layoutOut, axName);
+ rangeSliderDefaults(gd, layoutIn, layoutOut, axName);
if(axLayoutOut.type === 'date') {
rangeSelectorDefaults(
+ gd,
axLayoutIn,
axLayoutOut,
layoutOut,
@@ -404,7 +405,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
constrainDflt = undefined;
}
- handleConstraintDefaults(axLayoutIn, axLayoutOut, coerce, {
+ handleConstraintDefaults(gd, axLayoutIn, axLayoutOut, coerce, {
allAxisIds: allAxisIdsIncludingMissing,
layoutOut: layoutOut,
scaleanchorDflt: scaleanchorDflt,
@@ -452,7 +453,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
var group2 = constraintGroups[j];
for(var axId2 in group2) {
if(axId === axId2) {
- Lib.warn('Axis ' + axId2 + ' is set with both ' +
+ Lib.warn(gd, 'Axis ' + axId2 + ' is set with both ' +
'a *scaleanchor* and *matches* constraint; ' +
'ignoring the scale constraint.');
diff --git a/src/plots/cartesian/line_grid_defaults.js b/src/plots/cartesian/line_grid_defaults.js
index 18fd9974134..579ae397b72 100644
--- a/src/plots/cartesian/line_grid_defaults.js
+++ b/src/plots/cartesian/line_grid_defaults.js
@@ -22,7 +22,7 @@ var Lib = require('../../lib');
* - noZeroLine {boolean} : don't coerce zeroline* attributes
* - attributes {object} : attribute object associated with input containers
*/
-module.exports = function handleLineGridDefaults(containerIn, containerOut, coerce, opts) {
+module.exports = function handleLineGridDefaults(gd, containerIn, containerOut, coerce, opts) {
opts = opts || {};
var dfltColor = opts.dfltColor;
diff --git a/src/plots/cartesian/position_defaults.js b/src/plots/cartesian/position_defaults.js
index 4859615fab3..4e46304f3db 100644
--- a/src/plots/cartesian/position_defaults.js
+++ b/src/plots/cartesian/position_defaults.js
@@ -14,7 +14,7 @@ var isNumeric = require('fast-isnumeric');
var Lib = require('../../lib');
-module.exports = function handlePositionDefaults(containerIn, containerOut, coerce, options) {
+module.exports = function handlePositionDefaults(gd, containerIn, containerOut, coerce, options) {
var counterAxes = options.counterAxes || [];
var overlayableAxes = options.overlayableAxes || [];
var letter = options.letter;
diff --git a/src/plots/cartesian/tick_label_defaults.js b/src/plots/cartesian/tick_label_defaults.js
index ad3a1d166a1..1886d4a8839 100644
--- a/src/plots/cartesian/tick_label_defaults.js
+++ b/src/plots/cartesian/tick_label_defaults.js
@@ -13,13 +13,13 @@ var Lib = require('../../lib');
var layoutAttributes = require('./layout_attributes');
var handleArrayContainerDefaults = require('../array_container_defaults');
-module.exports = function handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options, config) {
+module.exports = function handleTickLabelDefaults(gd, containerIn, containerOut, coerce, axType, options, config) {
if(!config || config.pass === 1) {
handlePrefixSuffix(containerIn, containerOut, coerce, axType, options);
}
if(!config || config.pass === 2) {
- handleOtherDefaults(containerIn, containerOut, coerce, axType, options);
+ handleOtherDefaults(gd, containerIn, containerOut, coerce, axType, options);
}
};
@@ -33,7 +33,7 @@ function handlePrefixSuffix(containerIn, containerOut, coerce, axType, options)
if(tickSuffix) coerce('showticksuffix', showAttrDflt);
}
-function handleOtherDefaults(containerIn, containerOut, coerce, axType, options) {
+function handleOtherDefaults(gd, containerIn, containerOut, coerce, axType, options) {
var showAttrDflt = getShowAttrDflt(containerIn);
var tickPrefix = coerce('tickprefix');
@@ -60,7 +60,7 @@ function handleOtherDefaults(containerIn, containerOut, coerce, axType, options)
if(axType !== 'category') {
var tickFormat = coerce('tickformat');
- handleArrayContainerDefaults(containerIn, containerOut, {
+ handleArrayContainerDefaults(gd, containerIn, containerOut, {
name: 'tickformatstops',
inclusionAttr: 'enabled',
handleItemDefaults: tickformatstopDefaults
@@ -106,7 +106,7 @@ function getShowAttrDflt(containerIn) {
}
}
-function tickformatstopDefaults(valueIn, valueOut) {
+function tickformatstopDefaults(gd, valueIn, valueOut) {
function coerce(attr, dflt) {
return Lib.coerce(valueIn, valueOut, layoutAttributes.tickformatstops, attr, dflt);
}
diff --git a/src/plots/cartesian/tick_mark_defaults.js b/src/plots/cartesian/tick_mark_defaults.js
index 3e1df1e4108..53f0cf2fddf 100644
--- a/src/plots/cartesian/tick_mark_defaults.js
+++ b/src/plots/cartesian/tick_mark_defaults.js
@@ -17,7 +17,7 @@ var layoutAttributes = require('./layout_attributes');
/**
* options: inherits outerTicks from axes.handleAxisDefaults
*/
-module.exports = function handleTickDefaults(containerIn, containerOut, coerce, options) {
+module.exports = function handleTickDefaults(gd, containerIn, containerOut, coerce, options) {
var tickLen = Lib.coerce2(containerIn, containerOut, layoutAttributes, 'ticklen');
var tickWidth = Lib.coerce2(containerIn, containerOut, layoutAttributes, 'tickwidth');
var tickColor = Lib.coerce2(containerIn, containerOut, layoutAttributes, 'tickcolor', containerOut.color);
diff --git a/src/plots/cartesian/tick_value_defaults.js b/src/plots/cartesian/tick_value_defaults.js
index 62268bf01c2..071c02e29cc 100644
--- a/src/plots/cartesian/tick_value_defaults.js
+++ b/src/plots/cartesian/tick_value_defaults.js
@@ -11,7 +11,7 @@
var cleanTicks = require('./clean_ticks');
var isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;
-module.exports = function handleTickValueDefaults(containerIn, containerOut, coerce, axType) {
+module.exports = function handleTickValueDefaults(gd, containerIn, containerOut, coerce, axType) {
function readInput(attr) {
var v = containerIn[attr];
return (
diff --git a/src/plots/cartesian/type_defaults.js b/src/plots/cartesian/type_defaults.js
index f9d73cd3663..204d0046997 100644
--- a/src/plots/cartesian/type_defaults.js
+++ b/src/plots/cartesian/type_defaults.js
@@ -15,7 +15,7 @@ var autoType = require('./axis_autotype');
* data: the plot data to use in choosing auto type
* name: axis object name (ie 'xaxis') if one should be stored
*/
-module.exports = function handleTypeDefaults(containerIn, containerOut, coerce, options) {
+module.exports = function handleTypeDefaults(gd, containerIn, containerOut, coerce, options) {
var axType = coerce('type', (options.splomStash || {}).type);
if(axType === '-') {
diff --git a/src/plots/command.js b/src/plots/command.js
index 800c6a90d3a..1381446b5f3 100644
--- a/src/plots/command.js
+++ b/src/plots/command.js
@@ -111,7 +111,7 @@ exports.manageCommandObserver = function(gd, container, commandList, onchange) {
} else {
// TODO: It'd be really neat to actually give a *reason* for this, but at least a warning
// is a start
- Lib.log('Unable to automatically bind plot updates to API command');
+ Lib.log(gd, 'Unable to automatically bind plot updates to API command');
ret.lookupTable = {};
ret.remove = function() {};
@@ -270,7 +270,7 @@ exports.executeAPICommand = function(gd, method, args) {
}
return _method.apply(null, allArgs).catch(function(err) {
- Lib.warn('API call to Plotly.' + method + ' rejected.', err);
+ Lib.warn(gd, 'API call to Plotly.' + method + ' rejected.', err);
return Promise.reject(err);
});
};
diff --git a/src/plots/domain.js b/src/plots/domain.js
index 7e469b7442f..70262b7cb2e 100644
--- a/src/plots/domain.js
+++ b/src/plots/domain.js
@@ -108,7 +108,7 @@ exports.attributes = function(opts, extra) {
return out;
};
-exports.defaults = function(containerOut, layout, coerce, dfltDomains) {
+exports.defaults = function(gd, containerOut, layout, coerce, dfltDomains) {
var dfltX = (dfltDomains && dfltDomains.x) || [0, 1];
var dfltY = (dfltDomains && dfltDomains.y) || [0, 1];
diff --git a/src/plots/geo/geo.js b/src/plots/geo/geo.js
index 00088cf9b03..2f1449badb3 100644
--- a/src/plots/geo/geo.js
+++ b/src/plots/geo/geo.js
@@ -272,7 +272,7 @@ proto.updateProjection = function(geoCalcData, fullLayout) {
this.viewInitial = null;
- Lib.warn(msg);
+ Lib.warn(gd, msg);
gd._promises.push(Registry.call('relayout', gd, updateObj));
return msg;
}
@@ -287,7 +287,7 @@ proto.updateProjection = function(geoCalcData, fullLayout) {
if(isFinite(k2)) {
projection.scale(k2 * s);
} else {
- Lib.warn('Something went wrong during' + this.id + 'fitbounds computations.');
+ Lib.warn(gd, 'Something went wrong during' + this.id + 'fitbounds computations.');
}
} else {
// adjust projection to user setting
diff --git a/src/plots/geo/layout_defaults.js b/src/plots/geo/layout_defaults.js
index d690a616265..0f60b876818 100644
--- a/src/plots/geo/layout_defaults.js
+++ b/src/plots/geo/layout_defaults.js
@@ -17,8 +17,8 @@ var layoutAttributes = require('./layout_attributes');
var axesNames = constants.axesNames;
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
- handleSubplotDefaults(layoutIn, layoutOut, fullData, {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
+ handleSubplotDefaults(gd, layoutIn, layoutOut, fullData, {
type: 'geo',
attributes: layoutAttributes,
handleDefaults: handleGeoDefaults,
@@ -27,7 +27,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
});
};
-function handleGeoDefaults(geoLayoutIn, geoLayoutOut, coerce, opts) {
+function handleGeoDefaults(gd, geoLayoutIn, geoLayoutOut, coerce, opts) {
var subplotData = getSubplotData(opts.fullData, 'geo', opts.id);
var traceIndices = subplotData.map(function(t) { return t._expandedIndex; });
diff --git a/src/plots/gl2d/index.js b/src/plots/gl2d/index.js
index 8fdf25034b5..acf3ca31f20 100644
--- a/src/plots/gl2d/index.js
+++ b/src/plots/gl2d/index.js
@@ -31,9 +31,9 @@ exports.attrRegex = constants.attrRegex;
exports.attributes = require('../cartesian/attributes');
-exports.supplyLayoutDefaults = function(layoutIn, layoutOut, fullData) {
+exports.supplyLayoutDefaults = function(gd, layoutIn, layoutOut, fullData) {
if(!layoutOut._has('cartesian')) {
- Cartesian.supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ Cartesian.supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData);
}
};
diff --git a/src/plots/gl2d/scene2d.js b/src/plots/gl2d/scene2d.js
index 79d6bc48de0..962c4ad9bad 100644
--- a/src/plots/gl2d/scene2d.js
+++ b/src/plots/gl2d/scene2d.js
@@ -579,6 +579,7 @@ proto.draw = function() {
requestAnimationFrame(this.redraw);
+ var gd = this.graphDiv;
var glplot = this.glplot;
var camera = this.camera;
var mouseListener = camera.mouseListener;
@@ -691,7 +692,7 @@ proto.draw = function() {
textAlign: Fx.castHoverOption(trace, ptNumber, 'align')
}, {
container: this.svgContainer,
- gd: this.graphDiv
+ gd: gd
});
}
}
diff --git a/src/plots/gl3d/index.js b/src/plots/gl3d/index.js
index 09eef189dd0..a8ef45f8ce7 100644
--- a/src/plots/gl3d/index.js
+++ b/src/plots/gl3d/index.js
@@ -88,7 +88,7 @@ exports.plot = function plot(gd) {
};
}
- scene.plot(fullSceneData, fullLayout, gd.layout);
+ scene.plot(gd, fullSceneData, fullLayout);
}
};
diff --git a/src/plots/gl3d/layout/axis_defaults.js b/src/plots/gl3d/layout/axis_defaults.js
index 8bc9d7155ef..a7c25fd9983 100644
--- a/src/plots/gl3d/layout/axis_defaults.js
+++ b/src/plots/gl3d/layout/axis_defaults.js
@@ -24,7 +24,7 @@ var axesNames = ['xaxis', 'yaxis', 'zaxis'];
// that differ from other subplot types.
var gridLightness = 100 * (204 - 0x44) / (255 - 0x44);
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, options) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, options) {
var containerIn, containerOut;
function coerce(attr, dflt) {
@@ -39,9 +39,10 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, options) {
containerOut._id = axName[0] + options.scene;
containerOut._name = axName;
- handleTypeDefaults(containerIn, containerOut, coerce, options);
+ handleTypeDefaults(gd, containerIn, containerOut, coerce, options);
handleAxisDefaults(
+ gd,
containerIn,
containerOut,
coerce,
diff --git a/src/plots/gl3d/layout/defaults.js b/src/plots/gl3d/layout/defaults.js
index dd4c3eca2ce..c5699d5b802 100644
--- a/src/plots/gl3d/layout/defaults.js
+++ b/src/plots/gl3d/layout/defaults.js
@@ -20,7 +20,7 @@ var getSubplotData = require('../../get_data').getSubplotData;
var GL3D = 'gl3d';
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
var hasNon3D = layoutOut._basePlotModules.length > 1;
// some layout-wide attribute are used in all scenes
@@ -32,7 +32,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
if(isValid) return layoutIn[attr];
}
- handleSubplotDefaults(layoutIn, layoutOut, fullData, {
+ handleSubplotDefaults(gd, layoutIn, layoutOut, fullData, {
type: GL3D,
attributes: layoutAttributes,
handleDefaults: handleGl3dDefaults,
@@ -45,7 +45,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
});
};
-function handleGl3dDefaults(sceneLayoutIn, sceneLayoutOut, coerce, opts) {
+function handleGl3dDefaults(gd, sceneLayoutIn, sceneLayoutOut, coerce, opts) {
/*
* Scene numbering proceeds as follows
* scene
@@ -103,7 +103,7 @@ function handleGl3dDefaults(sceneLayoutIn, sceneLayoutOut, coerce, opts) {
var fullGl3dData = getSubplotData(opts.fullData, GL3D, opts.id);
- supplyGl3dAxisLayoutDefaults(sceneLayoutIn, sceneLayoutOut, {
+ supplyGl3dAxisLayoutDefaults(gd, sceneLayoutIn, sceneLayoutOut, {
font: opts.font,
scene: opts.id,
data: fullGl3dData,
@@ -113,7 +113,7 @@ function handleGl3dDefaults(sceneLayoutIn, sceneLayoutOut, coerce, opts) {
});
Registry.getComponentMethod('annotations3d', 'handleDefaults')(
- sceneLayoutIn, sceneLayoutOut, opts
+ gd, sceneLayoutIn, sceneLayoutOut, opts
);
var dragmode = opts.getDfltFromLayout('dragmode');
diff --git a/src/plots/gl3d/scene.js b/src/plots/gl3d/scene.js
index e45fb6e932a..3570f861853 100644
--- a/src/plots/gl3d/scene.js
+++ b/src/plots/gl3d/scene.js
@@ -138,6 +138,7 @@ proto.prepareOptions = function() {
proto.tryCreatePlot = function() {
var scene = this;
+ var gd = scene.graphDiv;
var opts = scene.prepareOptions();
@@ -151,7 +152,7 @@ proto.tryCreatePlot = function() {
} else { // try second time
try {
// invert preserveDrawingBuffer setup which could be resulted from is-mobile not detecting the right device
- Lib.warn([
+ Lib.warn(gd, [
'webgl setup failed possibly due to',
isMobile ? 'disabling' : 'enabling',
'preserveDrawingBuffer config.',
@@ -278,7 +279,7 @@ proto.initializeGLPlot = function() {
}
scene.glplot.oncontextloss = function() {
- scene.recoverContext();
+ scene.recoverContext(gd);
};
scene.glplot.onrender = function() {
@@ -453,7 +454,7 @@ proto.render = function() {
scene.drawAnnotations(scene);
};
-proto.recoverContext = function() {
+proto.recoverContext = function(gd) {
var scene = this;
scene.glplot.dispose();
@@ -464,7 +465,7 @@ proto.recoverContext = function() {
return;
}
if(!scene.initializeGLPlot()) {
- Lib.error('Catastrophic and unrecoverable WebGL error. Context lost.');
+ Lib.error(gd, 'Catastrophic and unrecoverable WebGL error. Context lost.');
return;
}
scene.plot.apply(scene, scene.plotArgs);
@@ -536,7 +537,8 @@ function computeAnnotationBounds(scene, bounds) {
}
}
-proto.plot = function(sceneData, fullLayout, layout) {
+proto.plot = function(gd, sceneData, fullLayout) {
+ var layout = gd.layout;
var scene = this;
// Save parameters
@@ -609,14 +611,14 @@ proto.plot = function(sceneData, fullLayout, layout) {
trace = scene.traces[data.uid];
if(trace) {
if(trace.data.type === data.type) {
- trace.update(data);
+ trace.update(gd, data);
} else {
trace.dispose();
- trace = data._module.plot(this, data);
+ trace = data._module.plot(gd, this, data);
scene.traces[data.uid] = trace;
}
} else {
- trace = data._module.plot(this, data);
+ trace = data._module.plot(gd, this, data);
scene.traces[data.uid] = trace;
}
trace.name = data.name;
diff --git a/src/plots/mapbox/index.js b/src/plots/mapbox/index.js
index c9e93b61d6f..1e952ff598c 100644
--- a/src/plots/mapbox/index.js
+++ b/src/plots/mapbox/index.js
@@ -234,7 +234,7 @@ function findAccessToken(gd, mapboxIds) {
Lib.pushUnique(tokensUseful, token);
} else {
if(isMapboxStyle(opts._input.style)) {
- Lib.error('Uses Mapbox map style, but did not set an access token.');
+ Lib.error(gd, 'Uses Mapbox map style, but did not set an access token.');
hasOneSetMapboxStyle = true;
}
wontWork = true;
@@ -250,18 +250,18 @@ function findAccessToken(gd, mapboxIds) {
var msg = hasOneSetMapboxStyle ?
constants.noAccessTokenErrorMsg :
constants.missingStyleErrorMsg;
- Lib.error(msg);
+ Lib.error(gd, msg);
throw new Error(msg);
}
if(tokensUseful.length) {
if(tokensUseful.length > 1) {
- Lib.warn(constants.multipleTokensErrorMsg);
+ Lib.warn(gd, constants.multipleTokensErrorMsg);
}
return tokensUseful[0];
} else {
if(tokensListed.length) {
- Lib.log([
+ Lib.log(gd, [
'Listed mapbox access token(s)', tokensListed.join(','),
'but did not use a Mapbox map style, ignoring token(s).'
].join(' '));
diff --git a/src/plots/mapbox/layout_defaults.js b/src/plots/mapbox/layout_defaults.js
index 7aed4eeef20..917b5689089 100644
--- a/src/plots/mapbox/layout_defaults.js
+++ b/src/plots/mapbox/layout_defaults.js
@@ -15,8 +15,8 @@ var handleArrayContainerDefaults = require('../array_container_defaults');
var layoutAttributes = require('./layout_attributes');
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
- handleSubplotDefaults(layoutIn, layoutOut, fullData, {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
+ handleSubplotDefaults(gd, layoutIn, layoutOut, fullData, {
type: 'mapbox',
attributes: layoutAttributes,
handleDefaults: handleDefaults,
@@ -25,7 +25,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
});
};
-function handleDefaults(containerIn, containerOut, coerce, opts) {
+function handleDefaults(gd, containerIn, containerOut, coerce, opts) {
coerce('accesstoken', opts.accessToken);
coerce('style');
coerce('center.lon');
@@ -34,7 +34,7 @@ function handleDefaults(containerIn, containerOut, coerce, opts) {
coerce('bearing');
coerce('pitch');
- handleArrayContainerDefaults(containerIn, containerOut, {
+ handleArrayContainerDefaults(gd, containerIn, containerOut, {
name: 'layers',
handleItemDefaults: handleLayerDefaults
});
@@ -43,7 +43,7 @@ function handleDefaults(containerIn, containerOut, coerce, opts) {
containerOut._input = containerIn;
}
-function handleLayerDefaults(layerIn, layerOut) {
+function handleLayerDefaults(gd, layerIn, layerOut) {
function coerce(attr, dflt) {
return Lib.coerce(layerIn, layerOut, layoutAttributes.layers, attr, dflt);
}
@@ -71,7 +71,7 @@ function handleLayerDefaults(layerIn, layerOut) {
if(mustBeRasterLayer && type !== 'raster') {
type = layerOut.type = 'raster';
- Lib.log('Source types *raster* and *image* must drawn *raster* layer type.');
+ Lib.log(gd, 'Source types *raster* and *image* must drawn *raster* layer type.');
}
coerce('below');
diff --git a/src/plots/mapbox/mapbox.js b/src/plots/mapbox/mapbox.js
index b3268b9a5cb..94f16ceb5c6 100644
--- a/src/plots/mapbox/mapbox.js
+++ b/src/plots/mapbox/mapbox.js
@@ -710,7 +710,7 @@ proto.addLayer = function(opts, below) {
}
}
- Lib.warn([
+ Lib.warn(void 0 /* until we could pass gd */, [
'Trying to add layer with *below* value',
below,
'referencing a layer that does not exist',
diff --git a/src/plots/plots.js b/src/plots/plots.js
index 03ba70426c0..2812f58c191 100644
--- a/src/plots/plots.js
+++ b/src/plots/plots.js
@@ -349,14 +349,14 @@ plots.supplyDefaults = function(gd, opts) {
var oldWidth = oldFullLayout.width;
var oldHeight = oldFullLayout.height;
- plots.supplyLayoutGlobalDefaults(newLayout, newFullLayout, formatObj);
+ plots.supplyLayoutGlobalDefaults(gd, newLayout, newFullLayout, formatObj);
if(!newLayout.width) newFullLayout.width = oldWidth;
if(!newLayout.height) newFullLayout.height = oldHeight;
plots.sanitizeMargins(newFullLayout);
} else {
// coerce the updated layout and autosize if needed
- plots.supplyLayoutGlobalDefaults(newLayout, newFullLayout, formatObj);
+ plots.supplyLayoutGlobalDefaults(gd, newLayout, newFullLayout, formatObj);
var missingWidthOrHeight = (!newLayout.width || !newLayout.height);
var autosize = newFullLayout.autosize;
@@ -407,18 +407,18 @@ plots.supplyDefaults = function(gd, opts) {
newFullLayout._requestRangeslider = {};
// pull uids from old data to use as new defaults
- newFullLayout._traceUids = getTraceUids(oldFullData, newData);
+ newFullLayout._traceUids = getTraceUids(gd, oldFullData, newData);
// then do the data
newFullLayout._globalTransforms = (gd._context || {}).globalTransforms;
- plots.supplyDataDefaults(newData, newFullData, newLayout, newFullLayout);
+ plots.supplyDataDefaults(gd, newData, newFullData, newLayout, newFullLayout);
// redo grid size defaults with info about splom x/y axes,
// and fill in generated cartesian axes and subplots
var splomXa = Object.keys(splomAxes.x);
var splomYa = Object.keys(splomAxes.y);
if(splomXa.length > 1 && splomYa.length > 1) {
- Registry.getComponentMethod('grid', 'sizeDefaults')(newLayout, newFullLayout);
+ Registry.getComponentMethod('grid', 'sizeDefaults')(gd, newLayout, newFullLayout);
for(i = 0; i < splomXa.length; i++) {
Lib.pushUnique(subplots.xaxis, splomXa[i]);
@@ -441,7 +441,7 @@ plots.supplyDefaults = function(gd, opts) {
}
// finally, fill in the pieces of layout that may need to look at data
- plots.supplyLayoutModuleDefaults(newLayout, newFullLayout, newFullData, gd._transitionData);
+ plots.supplyLayoutModuleDefaults(gd, newLayout, newFullLayout, newFullData, gd._transitionData);
// Special cases that introduce interactions between traces.
// This is after relinkPrivateKeys so we can use those in crossTraceDefaults
@@ -454,7 +454,7 @@ plots.supplyDefaults = function(gd, opts) {
if(funci) Lib.pushUnique(crossTraceDefaultsFuncs, funci);
}
for(i = 0; i < crossTraceDefaultsFuncs.length; i++) {
- crossTraceDefaultsFuncs[i](newFullData, newFullLayout);
+ crossTraceDefaultsFuncs[i](gd, newFullData, newFullLayout);
}
// turn on flag to optimize large splom-only graphs
@@ -478,7 +478,7 @@ plots.supplyDefaults = function(gd, opts) {
newFullLayout._hasPie = newFullLayout._has('pie');
// relink / initialize subplot axis objects
- plots.linkSubplots(newFullData, newFullLayout, oldFullData, oldFullLayout);
+ plots.linkSubplots(gd, newFullData, newFullLayout, oldFullData, oldFullLayout);
// clean subplots and other artifacts from previous plot calls
plots.cleanPlot(newFullData, newFullLayout, oldFullData, oldFullLayout);
@@ -516,7 +516,7 @@ plots.supplyDefaults = function(gd, opts) {
relinkPrivateKeys(newFullLayout, oldFullLayout);
// colorscale crossTraceDefaults needs newFullLayout with relinked keys
- Registry.getComponentMethod('colorscale', 'crossTraceDefaults')(newFullData, newFullLayout);
+ Registry.getComponentMethod('colorscale', 'crossTraceDefaults')(gd, newFullData, newFullLayout);
// For persisting GUI-driven changes in layout
// _preGUI and _tracePreGUI were already copied over in relinkPrivateKeys
@@ -575,7 +575,7 @@ plots.supplyDefaultsUpdateCalc = function(oldCalcdata, newFullData) {
* 2. matches input uids if provided
* 3. matches previous data uids
*/
-function getTraceUids(oldFullData, newData) {
+function getTraceUids(gd, oldFullData, newData) {
var len = newData.length;
var oldFullInput = [];
var i, prevFullInput;
@@ -854,7 +854,7 @@ plots.cleanPlot = function(newFullData, newFullLayout, oldFullData, oldFullLayou
}
};
-plots.linkSubplots = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {
+plots.linkSubplots = function(gd, newFullData, newFullLayout, oldFullData, oldFullLayout) {
var i, j;
var oldSubplots = oldFullLayout._plots || {};
@@ -1058,7 +1058,7 @@ plots.clearExpandedTraceDefaultColors = function(trace) {
};
-plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) {
+plots.supplyDataDefaults = function(gd, dataIn, dataOut, layout, fullLayout) {
var modules = fullLayout._modules;
var visibleModules = fullLayout._visibleModules;
var basePlotModules = fullLayout._basePlotModules;
@@ -1102,7 +1102,7 @@ plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) {
// Note: templater supplies trace type
fullTrace = templater.newTrace(trace);
fullTrace.uid = fullLayout._traceUids[i];
- plots.supplyTraceDefaults(trace, fullTrace, colorCnt, fullLayout, i);
+ plots.supplyTraceDefaults(gd, trace, fullTrace, colorCnt, fullLayout, i);
fullTrace.index = i;
fullTrace._input = trace;
@@ -1135,7 +1135,7 @@ plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) {
delete expandedTrace.visible;
}
- plots.supplyTraceDefaults(expandedTrace, fullExpandedTrace, cnt, fullLayout, i);
+ plots.supplyTraceDefaults(gd, expandedTrace, fullExpandedTrace, cnt, fullLayout, i);
// relink private (i.e. underscore) keys expanded trace to full expanded trace so
// that transform supply-default methods can set _ keys for future use.
@@ -1187,7 +1187,7 @@ plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) {
}
};
-plots.supplyAnimationDefaults = function(opts) {
+plots.supplyAnimationDefaults = function(gd, opts) {
opts = opts || {};
var i;
var optsOut = {};
@@ -1203,25 +1203,25 @@ plots.supplyAnimationDefaults = function(opts) {
if(Array.isArray(opts.frame)) {
optsOut.frame = [];
for(i = 0; i < opts.frame.length; i++) {
- optsOut.frame[i] = plots.supplyAnimationFrameDefaults(opts.frame[i] || {});
+ optsOut.frame[i] = plots.supplyAnimationFrameDefaults(gd, opts.frame[i] || {});
}
} else {
- optsOut.frame = plots.supplyAnimationFrameDefaults(opts.frame || {});
+ optsOut.frame = plots.supplyAnimationFrameDefaults(gd, opts.frame || {});
}
if(Array.isArray(opts.transition)) {
optsOut.transition = [];
for(i = 0; i < opts.transition.length; i++) {
- optsOut.transition[i] = plots.supplyAnimationTransitionDefaults(opts.transition[i] || {});
+ optsOut.transition[i] = plots.supplyAnimationTransitionDefaults(gd, opts.transition[i] || {});
}
} else {
- optsOut.transition = plots.supplyAnimationTransitionDefaults(opts.transition || {});
+ optsOut.transition = plots.supplyAnimationTransitionDefaults(gd, opts.transition || {});
}
return optsOut;
};
-plots.supplyAnimationFrameDefaults = function(opts) {
+plots.supplyAnimationFrameDefaults = function(gd, opts) {
var optsOut = {};
function coerce(attr, dflt) {
@@ -1234,7 +1234,7 @@ plots.supplyAnimationFrameDefaults = function(opts) {
return optsOut;
};
-plots.supplyAnimationTransitionDefaults = function(opts) {
+plots.supplyAnimationTransitionDefaults = function(gd, opts) {
var optsOut = {};
function coerce(attr, dflt) {
@@ -1247,7 +1247,7 @@ plots.supplyAnimationTransitionDefaults = function(opts) {
return optsOut;
};
-plots.supplyFrameDefaults = function(frameIn) {
+plots.supplyFrameDefaults = function(gd, frameIn) {
var frameOut = {};
function coerce(attr, dflt) {
@@ -1264,7 +1264,7 @@ plots.supplyFrameDefaults = function(frameIn) {
return frameOut;
};
-plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, traceInIndex) {
+plots.supplyTraceDefaults = function(gd, traceIn, traceOut, colorIndex, layout, traceInIndex) {
var colorway = layout.colorway || Color.defaults;
var defaultColor = colorway[colorIndex % colorway.length];
@@ -1339,7 +1339,7 @@ plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, trac
}
if(_module) {
- _module.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ _module.supplyDefaults(gd, traceIn, traceOut, defaultColor, layout);
}
if(!Registry.traceIs(traceOut, 'noOpacity')) {
@@ -1357,7 +1357,7 @@ plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, trac
// parcats support hover, but not hoverlabel stylings (yet)
if(traceOut.type !== 'parcats') {
- Registry.getComponentMethod('fx', 'supplyDefaults')(traceIn, traceOut, defaultColor, layout);
+ Registry.getComponentMethod('fx', 'supplyDefaults')(gd, traceIn, traceOut, defaultColor, layout);
}
}
@@ -1365,7 +1365,7 @@ plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, trac
coerce('selectedpoints');
}
- plots.supplyTransformDefaults(traceIn, traceOut, layout);
+ plots.supplyTransformDefaults(gd, traceIn, traceOut, layout);
}
return traceOut;
@@ -1391,7 +1391,7 @@ function hasMakesDataTransform(trace) {
plots.hasMakesDataTransform = hasMakesDataTransform;
-plots.supplyTransformDefaults = function(traceIn, traceOut, layout) {
+plots.supplyTransformDefaults = function(gd, traceIn, traceOut, layout) {
// For now we only allow transforms on 1D traces, ie those that specify a _length.
// If we were to implement 2D transforms, we'd need to have each transform
// describe its own applicability and disable itself when it doesn't apply.
@@ -1425,10 +1425,10 @@ plots.supplyTransformDefaults = function(traceIn, traceOut, layout) {
var isFirstStage = !(transformIn._module && transformIn._module === _module);
var doLaterStages = _module && typeof _module.transform === 'function';
- if(!_module) Lib.warn('Unrecognized transform type ' + type + '.');
+ if(!_module) Lib.warn(gd, 'Unrecognized transform type ' + type + '.');
if(_module && _module.supplyDefaults && (isFirstStage || doLaterStages)) {
- transformOut = _module.supplyDefaults(transformIn, traceOut, layout, traceIn);
+ transformOut = _module.supplyDefaults(gd, transformIn, traceOut, layout, traceIn);
transformOut.type = type;
transformOut._module = _module;
@@ -1464,7 +1464,7 @@ function applyTransforms(fullTrace, fullData, layout, fullLayout) {
return dataOut;
}
-plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
+plots.supplyLayoutGlobalDefaults = function(gd, layoutIn, layoutOut, formatObj) {
function coerce(attr, dflt) {
return Lib.coerce(layoutIn, layoutOut, plots.layoutAttributes, attr, dflt);
}
@@ -1524,7 +1524,7 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
if(layoutIn.width && layoutIn.height) plots.sanitizeMargins(layoutOut);
- Registry.getComponentMethod('grid', 'sizeDefaults')(layoutIn, layoutOut);
+ Registry.getComponentMethod('grid', 'sizeDefaults')(gd, layoutIn, layoutOut);
coerce('paper_bgcolor');
@@ -1548,7 +1548,7 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
Registry.getComponentMethod(
'shapes',
'supplyDrawNewShapeDefaults'
- )(layoutIn, layoutOut, coerce);
+ )(gd, layoutIn, layoutOut, coerce);
coerce('meta');
@@ -1562,12 +1562,12 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {
Registry.getComponentMethod(
'calendars',
'handleDefaults'
- )(layoutIn, layoutOut, 'calendar');
+ )(gd, layoutIn, layoutOut, 'calendar');
Registry.getComponentMethod(
'fx',
'supplyLayoutGlobalDefaults'
- )(layoutIn, layoutOut, coerce);
+ )(gd, layoutIn, layoutOut, coerce);
};
function getComputedSize(attr) {
@@ -1639,7 +1639,7 @@ plots.plotAutoSize = function plotAutoSize(gd, layout, fullLayout) {
plots.sanitizeMargins(fullLayout);
};
-plots.supplyLayoutModuleDefaults = function(layoutIn, layoutOut, fullData, transitionData) {
+plots.supplyLayoutModuleDefaults = function(gd, layoutIn, layoutOut, fullData, transitionData) {
var componentsRegistry = Registry.componentsRegistry;
var basePlotModules = layoutOut._basePlotModules;
var component, i, _module;
@@ -1663,7 +1663,7 @@ plots.supplyLayoutModuleDefaults = function(layoutIn, layoutOut, fullData, trans
// ensure all cartesian axes have at least one subplot
if(layoutOut._has('cartesian')) {
- Registry.getComponentMethod('grid', 'contentDefaults')(layoutIn, layoutOut);
+ Registry.getComponentMethod('grid', 'contentDefaults')(gd, layoutIn, layoutOut);
Cartesian.finalizeSubplots(layoutIn, layoutOut);
}
@@ -1678,7 +1678,7 @@ plots.supplyLayoutModuleDefaults = function(layoutIn, layoutOut, fullData, trans
// e.g. pie does not have a layout-defaults step
if(_module.supplyLayoutDefaults) {
- _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ _module.supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData);
}
}
@@ -1691,7 +1691,7 @@ plots.supplyLayoutModuleDefaults = function(layoutIn, layoutOut, fullData, trans
_module = modules[i];
if(_module.supplyLayoutDefaults) {
- _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ _module.supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData);
}
}
@@ -1701,7 +1701,7 @@ plots.supplyLayoutModuleDefaults = function(layoutIn, layoutOut, fullData, trans
_module = transformModules[i];
if(_module.supplyLayoutDefaults) {
- _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData, transitionData);
+ _module.supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData, transitionData);
}
}
@@ -1709,7 +1709,7 @@ plots.supplyLayoutModuleDefaults = function(layoutIn, layoutOut, fullData, trans
_module = componentsRegistry[component];
if(_module.supplyLayoutDefaults) {
- _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ _module.supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData);
}
}
};
@@ -1901,11 +1901,11 @@ plots.autoMargin = function(gd, id, o) {
// if the item is too big, just give it enough automargin to
// make sure you can still grab it and bring it back
if(o.l + o.r > fullLayout.width * 0.5) {
- Lib.log('Margin push', id, 'is too big in x, dropping');
+ Lib.log(gd, 'Margin push', id, 'is too big in x, dropping');
o.l = o.r = 0;
}
if(o.b + o.t > fullLayout.height * 0.5) {
- Lib.log('Margin push', id, 'is too big in y, dropping');
+ Lib.log(gd, 'Margin push', id, 'is too big in y, dropping');
o.b = o.t = 0;
}
@@ -2032,7 +2032,7 @@ plots.doAutoMargin = function(gd) {
if(fullLayout._redrawFromAutoMarginCount < maxNumberOfRedraws) {
return Registry.call('plot', gd);
} else {
- Lib.warn('Too many auto-margin redraws.');
+ Lib.warn(gd, 'Too many auto-margin redraws.');
}
}
};
diff --git a/src/plots/polar/layout_defaults.js b/src/plots/polar/layout_defaults.js
index f751ad9cef8..2810fdacb92 100644
--- a/src/plots/polar/layout_defaults.js
+++ b/src/plots/polar/layout_defaults.js
@@ -27,7 +27,7 @@ var setConvert = require('./set_convert');
var constants = require('./constants');
var axisNames = constants.axisNames;
-function handleDefaults(contIn, contOut, coerce, opts) {
+function handleDefaults(gd, contIn, contOut, coerce, opts) {
var bgColor = coerce('bgcolor');
opts.bgColor = Color.combine(bgColor, opts.paper_bgcolor);
@@ -57,9 +57,9 @@ function handleDefaults(contIn, contOut, coerce, opts) {
axOut._traceIndices = subplotData.map(function(t) { return t._expandedIndex; });
var dataAttr = constants.axisName2dataArray[axName];
- var axType = handleAxisTypeDefaults(axIn, axOut, coerceAxis, subplotData, dataAttr);
+ var axType = handleAxisTypeDefaults(gd, axIn, axOut, coerceAxis, subplotData, dataAttr);
- handleCategoryOrderDefaults(axIn, axOut, coerceAxis, {
+ handleCategoryOrderDefaults(gd, axIn, axOut, coerceAxis, {
axData: subplotData,
dataAttr: dataAttr
});
@@ -122,7 +122,7 @@ function handleDefaults(contIn, contOut, coerce, opts) {
// when we do add support for data angular axes, the new
// behavior won't conflict with existing behavior
if(axType === 'date') {
- Lib.log('Polar plots do not support date angular axes yet.');
+ Lib.log(gd, 'Polar plots do not support date angular axes yet.');
for(var j = 0; j < subplotData.length; j++) {
subplotData[j].visible = false;
@@ -145,11 +145,11 @@ function handleDefaults(contIn, contOut, coerce, opts) {
}
if(visible) {
- handleTickValueDefaults(axIn, axOut, coerceAxis, axOut.type);
- handleTickLabelDefaults(axIn, axOut, coerceAxis, axOut.type, {
+ handleTickValueDefaults(gd, axIn, axOut, coerceAxis, axOut.type);
+ handleTickLabelDefaults(gd, axIn, axOut, coerceAxis, axOut.type, {
tickSuffixDflt: axOut.thetaunit === 'degrees' ? '°' : undefined
});
- handleTickMarkDefaults(axIn, axOut, coerceAxis, {outerTicks: true});
+ handleTickMarkDefaults(gd, axIn, axOut, coerceAxis, {outerTicks: true});
var showTickLabels = coerceAxis('showticklabels');
if(showTickLabels) {
@@ -162,7 +162,7 @@ function handleDefaults(contIn, contOut, coerce, opts) {
coerceAxis('tickformat');
}
- handleLineGridDefaults(axIn, axOut, coerceAxis, {
+ handleLineGridDefaults(gd, axIn, axOut, coerceAxis, {
dfltColor: dfltColor,
bgColor: opts.bgColor,
// default grid color is darker here (60%, vs cartesian default ~91%)
@@ -187,7 +187,7 @@ function handleDefaults(contIn, contOut, coerce, opts) {
}
}
-function handleAxisTypeDefaults(axIn, axOut, coerce, subplotData, dataAttr) {
+function handleAxisTypeDefaults(gd, axIn, axOut, coerce, subplotData, dataAttr) {
var axType = coerce('type');
if(axType === '-') {
@@ -218,8 +218,8 @@ function handleAxisTypeDefaults(axIn, axOut, coerce, subplotData, dataAttr) {
return axOut.type;
}
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
- handleSubplotDefaults(layoutIn, layoutOut, fullData, {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
+ handleSubplotDefaults(gd, layoutIn, layoutOut, fullData, {
type: constants.name,
attributes: layoutAttributes,
handleDefaults: handleDefaults,
diff --git a/src/plots/subplot_defaults.js b/src/plots/subplot_defaults.js
index 990cba7163d..34360b5584e 100644
--- a/src/plots/subplot_defaults.js
+++ b/src/plots/subplot_defaults.js
@@ -41,7 +41,7 @@ var handleDomainDefaults = require('./domain').defaults;
* additional items needed by this function here as well
* }
*/
-module.exports = function handleSubplotDefaults(layoutIn, layoutOut, fullData, opts) {
+module.exports = function handleSubplotDefaults(gd, layoutIn, layoutOut, fullData, opts) {
var subplotType = opts.type;
var subplotAttributes = opts.attributes;
var handleDefaults = opts.handleDefaults;
@@ -75,9 +75,9 @@ module.exports = function handleSubplotDefaults(layoutIn, layoutOut, fullData, o
var dfltDomains = {};
dfltDomains[partition] = [i / idsLength, (i + 1) / idsLength];
- handleDomainDefaults(subplotLayoutOut, layoutOut, coerce, dfltDomains);
+ handleDomainDefaults(gd, subplotLayoutOut, layoutOut, coerce, dfltDomains);
opts.id = id;
- handleDefaults(subplotLayoutIn, subplotLayoutOut, coerce, opts);
+ handleDefaults(gd, subplotLayoutIn, subplotLayoutOut, coerce, opts);
}
};
diff --git a/src/plots/ternary/layout_defaults.js b/src/plots/ternary/layout_defaults.js
index 54fd942a2cd..02cfcfbab92 100644
--- a/src/plots/ternary/layout_defaults.js
+++ b/src/plots/ternary/layout_defaults.js
@@ -21,8 +21,8 @@ var layoutAttributes = require('./layout_attributes');
var axesNames = ['aaxis', 'baxis', 'caxis'];
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
- handleSubplotDefaults(layoutIn, layoutOut, fullData, {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
+ handleSubplotDefaults(gd, layoutIn, layoutOut, fullData, {
type: 'ternary',
attributes: layoutAttributes,
handleDefaults: handleTernaryDefaults,
@@ -31,7 +31,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
});
};
-function handleTernaryDefaults(ternaryLayoutIn, ternaryLayoutOut, coerce, options) {
+function handleTernaryDefaults(gd, ternaryLayoutIn, ternaryLayoutOut, coerce, options) {
var bgColor = coerce('bgcolor');
var sum = coerce('sum');
options.bgColor = Color.combine(bgColor, options.paper_bgcolor);
@@ -46,7 +46,7 @@ function handleTernaryDefaults(ternaryLayoutIn, ternaryLayoutOut, coerce, option
containerOut = Template.newContainer(ternaryLayoutOut, axName);
containerOut._name = axName;
- handleAxisDefaults(containerIn, containerOut, options, ternaryLayoutOut);
+ handleAxisDefaults(gd, containerIn, containerOut, options, ternaryLayoutOut);
}
// if the min values contradict each other, set them all to default (0)
@@ -65,7 +65,7 @@ function handleTernaryDefaults(ternaryLayoutIn, ternaryLayoutOut, coerce, option
}
}
-function handleAxisDefaults(containerIn, containerOut, options, ternaryLayoutOut) {
+function handleAxisDefaults(gd, containerIn, containerOut, options, ternaryLayoutOut) {
var axAttrs = layoutAttributes[containerOut._name];
function coerce(attr, dflt) {
@@ -97,9 +97,9 @@ function handleAxisDefaults(containerIn, containerOut, options, ternaryLayoutOut
// range is just set by 'min' - max is determined by the other axes mins
coerce('min');
- handleTickValueDefaults(containerIn, containerOut, coerce, 'linear');
- handleTickLabelDefaults(containerIn, containerOut, coerce, 'linear', {});
- handleTickMarkDefaults(containerIn, containerOut, coerce,
+ handleTickValueDefaults(gd, containerIn, containerOut, coerce, 'linear');
+ handleTickLabelDefaults(gd, containerIn, containerOut, coerce, 'linear', {});
+ handleTickMarkDefaults(gd, containerIn, containerOut, coerce,
{ outerTicks: true });
var showTickLabels = coerce('showticklabels');
@@ -113,7 +113,7 @@ function handleAxisDefaults(containerIn, containerOut, options, ternaryLayoutOut
coerce('tickformat');
}
- handleLineGridDefaults(containerIn, containerOut, coerce, {
+ handleLineGridDefaults(gd, containerIn, containerOut, coerce, {
dfltColor: dfltColor,
bgColor: options.bgColor,
// default grid color is darker here (60%, vs cartesian default ~91%)
diff --git a/src/traces/bar/defaults.js b/src/traces/bar/defaults.js
index d6284ff5351..ff5e9d0c13a 100644
--- a/src/traces/bar/defaults.js
+++ b/src/traces/bar/defaults.js
@@ -19,12 +19,12 @@ var attributes = require('./attributes');
var coerceFont = Lib.coerceFont;
-function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len = handleXYDefaults(traceIn, traceOut, layout, coerce);
+ var len = handleXYDefaults(gd, traceIn, traceOut, layout, coerce);
if(!len) {
traceOut.visible = false;
return;
@@ -49,19 +49,19 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
moduleHasInsideanchor: true
});
- handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);
+ handleStyleDefaults(gd, traceIn, traceOut, coerce, defaultColor, layout);
var lineColor = (traceOut.marker.line || {}).color;
// override defaultColor for error bars with defaultLine
var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');
- errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'});
- errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});
+ errorBarsSupplyDefaults(gd, traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'});
+ errorBarsSupplyDefaults(gd, traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
}
-function handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce) {
+function handleGroupingDefaults(gd, traceIn, traceOut, fullLayout, coerce) {
var orientation = traceOut.orientation;
// N.B. grouping is done across all trace types that support it
var posAxId = traceOut[{v: 'x', h: 'y'}[orientation] + 'axis'];
@@ -100,7 +100,7 @@ function handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce) {
}
}
-function crossTraceDefaults(fullData, fullLayout) {
+function crossTraceDefaults(gd, fullData, fullLayout) {
var traceIn, traceOut;
function coerce(attr) {
@@ -113,7 +113,7 @@ function crossTraceDefaults(fullData, fullLayout) {
if(traceOut.type === 'bar') {
traceIn = traceOut._input;
- handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce);
+ handleGroupingDefaults(gd, traceIn, traceOut, fullLayout, coerce);
}
}
}
diff --git a/src/traces/bar/hover.js b/src/traces/bar/hover.js
index 8cb3d926540..6160a6d57f6 100644
--- a/src/traces/bar/hover.js
+++ b/src/traces/bar/hover.js
@@ -18,7 +18,7 @@ var getLineWidth = require('./helpers').getLineWidth;
var hoverLabelText = require('../../plots/cartesian/axes').hoverLabelText;
var BADNUM = require('../../constants/numerical').BADNUM;
-function hoverPoints(pointData, xval, yval, hovermode) {
+function hoverPoints(gd, pointData, xval, yval, hovermode) {
var barPointData = hoverOnBars(pointData, xval, yval, hovermode);
if(barPointData) {
diff --git a/src/traces/bar/layout_defaults.js b/src/traces/bar/layout_defaults.js
index b15197c0ba0..c0a5ebac160 100644
--- a/src/traces/bar/layout_defaults.js
+++ b/src/traces/bar/layout_defaults.js
@@ -14,7 +14,7 @@ var Lib = require('../../lib');
var layoutAttributes = require('./layout_attributes');
-module.exports = function(layoutIn, layoutOut, fullData) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
function coerce(attr, dflt) {
return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);
}
diff --git a/src/traces/bar/plot.js b/src/traces/bar/plot.js
index eaee3a1418c..1f29ac4bd99 100644
--- a/src/traces/bar/plot.js
+++ b/src/traces/bar/plot.js
@@ -294,7 +294,7 @@ function appendBarText(gd, plotinfo, bar, cd, i, x0, x1, y0, y1, opts, makeOnCom
var trace = cd[0].trace;
var isHorizontal = (trace.orientation === 'h');
- var text = getText(fullLayout, cd, i, xa, ya);
+ var text = getText(gd, fullLayout, cd, i, xa, ya);
textPosition = getTextPosition(trace, i);
// compute text position
@@ -612,13 +612,13 @@ function toMoveOutsideBar(x0, x1, y0, y1, textBB, opts) {
};
}
-function getText(fullLayout, cd, index, xa, ya) {
+function getText(gd, fullLayout, cd, index, xa, ya) {
var trace = cd[0].trace;
var texttemplate = trace.texttemplate;
var value;
if(texttemplate) {
- value = calcTexttemplate(fullLayout, cd, index, xa, ya);
+ value = calcTexttemplate(gd, fullLayout, cd, index, xa, ya);
} else if(trace.textinfo) {
value = calcTextinfo(cd, index, xa, ya);
} else {
@@ -633,7 +633,7 @@ function getTextPosition(trace, index) {
return helpers.coerceEnumerated(attributeTextPosition, value);
}
-function calcTexttemplate(fullLayout, cd, index, xa, ya) {
+function calcTexttemplate(gd, fullLayout, cd, index, xa, ya) {
var trace = cd[0].trace;
var texttemplate = Lib.castOption(trace, index, 'texttemplate');
if(!texttemplate) return '';
@@ -700,7 +700,7 @@ function calcTexttemplate(fullLayout, cd, index, xa, ya) {
var customdata = Lib.castOption(trace, cdi.i, 'customdata');
if(customdata) obj.customdata = customdata;
- return Lib.texttemplateString(texttemplate, obj, fullLayout._d3locale, pt, obj, trace._meta || {});
+ return Lib.texttemplateString(gd, texttemplate, obj, fullLayout._d3locale, pt, obj, trace._meta || {});
}
function calcTextinfo(cd, index, xa, ya) {
diff --git a/src/traces/bar/style_defaults.js b/src/traces/bar/style_defaults.js
index 4a0638ccac3..b1d4b60217b 100644
--- a/src/traces/bar/style_defaults.js
+++ b/src/traces/bar/style_defaults.js
@@ -12,12 +12,12 @@ var Color = require('../../components/color');
var hasColorscale = require('../../components/colorscale/helpers').hasColorscale;
var colorscaleDefaults = require('../../components/colorscale/defaults');
-module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout) {
+module.exports = function handleStyleDefaults(gd, traceIn, traceOut, coerce, defaultColor, layout) {
coerce('marker.color', defaultColor);
if(hasColorscale(traceIn, 'marker')) {
colorscaleDefaults(
- traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'}
+ gd, traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'}
);
}
@@ -25,7 +25,7 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, default
if(hasColorscale(traceIn, 'marker.line')) {
colorscaleDefaults(
- traceIn, traceOut, layout, coerce, {prefix: 'marker.line.', cLetter: 'c'}
+ gd, traceIn, traceOut, layout, coerce, {prefix: 'marker.line.', cLetter: 'c'}
);
}
diff --git a/src/traces/barpolar/defaults.js b/src/traces/barpolar/defaults.js
index 71f30aef40e..52033873e52 100644
--- a/src/traces/barpolar/defaults.js
+++ b/src/traces/barpolar/defaults.js
@@ -14,12 +14,12 @@ var handleRThetaDefaults = require('../scatterpolar/defaults').handleRThetaDefau
var handleStyleDefaults = require('../bar/style_defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len = handleRThetaDefaults(traceIn, traceOut, layout, coerce);
+ var len = handleRThetaDefaults(gd, traceIn, traceOut, layout, coerce);
if(!len) {
traceOut.visible = false;
return;
@@ -51,7 +51,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
// coerce('cliponaxis');
// }
- handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);
+ handleStyleDefaults(gd, traceIn, traceOut, coerce, defaultColor, layout);
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
};
diff --git a/src/traces/barpolar/hover.js b/src/traces/barpolar/hover.js
index d72543906da..c04d89dc7b0 100644
--- a/src/traces/barpolar/hover.js
+++ b/src/traces/barpolar/hover.js
@@ -15,7 +15,7 @@ var fillText = Lib.fillText;
var makeHoverPointText = require('../scatterpolar/hover').makeHoverPointText;
var isPtInsidePolygon = require('../../plots/polar/helpers').isPtInsidePolygon;
-module.exports = function hoverPoints(pointData, xval, yval) {
+module.exports = function hoverPoints(gd, pointData, xval, yval) {
var cd = pointData.cd;
var trace = cd[0].trace;
diff --git a/src/traces/barpolar/layout_defaults.js b/src/traces/barpolar/layout_defaults.js
index e0ad2f7a189..b73b34d89aa 100644
--- a/src/traces/barpolar/layout_defaults.js
+++ b/src/traces/barpolar/layout_defaults.js
@@ -11,7 +11,7 @@
var Lib = require('../../lib');
var attrs = require('./layout_attributes');
-module.exports = function(layoutIn, layoutOut, fullData) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
var subplotsDone = {};
var sp;
diff --git a/src/traces/box/calc.js b/src/traces/box/calc.js
index 0c9115dc03b..f8816ed0763 100644
--- a/src/traces/box/calc.js
+++ b/src/traces/box/calc.js
@@ -141,7 +141,7 @@ module.exports = function calc(gd, trace) {
cdi.min = imin;
cdi.max = imax;
} else {
- Lib.warn([
+ Lib.warn(gd, [
'Invalid input - make sure that q1 <= median <= q3',
'q1 = ' + cdi.q1,
'median = ' + cdi.med,
diff --git a/src/traces/box/defaults.js b/src/traces/box/defaults.js
index 300053e6e5d..4fe800c02e4 100644
--- a/src/traces/box/defaults.js
+++ b/src/traces/box/defaults.js
@@ -15,12 +15,12 @@ var handleGroupingDefaults = require('../bar/defaults').handleGroupingDefaults;
var autoType = require('../../plots/cartesian/axis_autotype');
var attributes = require('./attributes');
-function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- handleSampleDefaults(traceIn, traceOut, coerce, layout);
+ handleSampleDefaults(gd, traceIn, traceOut, coerce, layout);
if(traceOut.visible === false) return;
var hasPreCompStats = traceOut._hasPreCompStats;
@@ -61,10 +61,10 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
var notched = coerce('notched', notchedDflt);
if(notched) coerce('notchwidth');
- handlePointsDefaults(traceIn, traceOut, coerce, {prefix: 'box'});
+ handlePointsDefaults(gd, traceIn, traceOut, coerce, {prefix: 'box'});
}
-function handleSampleDefaults(traceIn, traceOut, coerce, layout) {
+function handleSampleDefaults(gd, traceIn, traceOut, coerce, layout) {
function getDims(arr) {
var dims = 0;
if(arr && arr.length) {
@@ -224,10 +224,10 @@ function handleSampleDefaults(traceIn, traceOut, coerce, layout) {
}
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
- handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);
+ handleCalendarDefaults(gd, traceIn, traceOut, ['x', 'y'], layout);
}
-function handlePointsDefaults(traceIn, traceOut, coerce, opts) {
+function handlePointsDefaults(gd, traceIn, traceOut, coerce, opts) {
var prefix = opts.prefix;
var outlierColorDflt = Lib.coerce2(traceIn, traceOut, attributes, 'marker.outliercolor');
@@ -277,7 +277,7 @@ function handlePointsDefaults(traceIn, traceOut, coerce, opts) {
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
}
-function crossTraceDefaults(fullData, fullLayout) {
+function crossTraceDefaults(gd, fullData, fullLayout) {
var traceIn, traceOut;
function coerce(attr) {
@@ -291,7 +291,7 @@ function crossTraceDefaults(fullData, fullLayout) {
if(traceType === 'box' || traceType === 'violin') {
traceIn = traceOut._input;
if(fullLayout[traceType + 'mode'] === 'group') {
- handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce);
+ handleGroupingDefaults(gd, traceIn, traceOut, fullLayout, coerce);
}
}
}
diff --git a/src/traces/box/hover.js b/src/traces/box/hover.js
index 3fee0d1e638..26c646d344b 100644
--- a/src/traces/box/hover.js
+++ b/src/traces/box/hover.js
@@ -14,7 +14,7 @@ var Fx = require('../../components/fx');
var Color = require('../../components/color');
var fillText = Lib.fillText;
-function hoverPoints(pointData, xval, yval, hovermode) {
+function hoverPoints(gd, pointData, xval, yval, hovermode) {
var cd = pointData.cd;
var trace = cd[0].trace;
var hoveron = trace.hoveron;
@@ -22,11 +22,11 @@ function hoverPoints(pointData, xval, yval, hovermode) {
var closePtData;
if(hoveron.indexOf('boxes') !== -1) {
- closeBoxData = closeBoxData.concat(hoverOnBoxes(pointData, xval, yval, hovermode));
+ closeBoxData = closeBoxData.concat(hoverOnBoxes(gd, pointData, xval, yval, hovermode));
}
if(hoveron.indexOf('points') !== -1) {
- closePtData = hoverOnPoints(pointData, xval, yval);
+ closePtData = hoverOnPoints(gd, pointData, xval, yval);
}
// If there's a point in range and hoveron has points, show the best single point only.
@@ -45,7 +45,7 @@ function hoverPoints(pointData, xval, yval, hovermode) {
return closeBoxData;
}
-function hoverOnBoxes(pointData, xval, yval, hovermode) {
+function hoverOnBoxes(gd, pointData, xval, yval, hovermode) {
var cd = pointData.cd;
var xa = pointData.xa;
var ya = pointData.ya;
@@ -198,7 +198,7 @@ function hoverOnBoxes(pointData, xval, yval, hovermode) {
return closeBoxData;
}
-function hoverOnPoints(pointData, xval, yval) {
+function hoverOnPoints(gd, pointData, xval, yval) {
var cd = pointData.cd;
var xa = pointData.xa;
var ya = pointData.ya;
diff --git a/src/traces/box/layout_defaults.js b/src/traces/box/layout_defaults.js
index a7f33da4793..4ed0cec7415 100644
--- a/src/traces/box/layout_defaults.js
+++ b/src/traces/box/layout_defaults.js
@@ -12,7 +12,7 @@ var Registry = require('../../registry');
var Lib = require('../../lib');
var layoutAttributes = require('./layout_attributes');
-function _supply(layoutIn, layoutOut, fullData, coerce, traceType) {
+function _supply(gd, layoutIn, layoutOut, fullData, coerce, traceType) {
var category = traceType + 'Layout';
var hasTraceType = false;
@@ -31,11 +31,11 @@ function _supply(layoutIn, layoutOut, fullData, coerce, traceType) {
coerce(traceType + 'groupgap');
}
-function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
+function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
function coerce(attr, dflt) {
return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);
}
- _supply(layoutIn, layoutOut, fullData, coerce, 'box');
+ _supply(gd, layoutIn, layoutOut, fullData, coerce, 'box');
}
module.exports = {
diff --git a/src/traces/candlestick/defaults.js b/src/traces/candlestick/defaults.js
index 244cfafa768..531a0562cc4 100644
--- a/src/traces/candlestick/defaults.js
+++ b/src/traces/candlestick/defaults.js
@@ -14,12 +14,12 @@ var Color = require('../../components/color');
var handleOHLC = require('../ohlc/ohlc_defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len = handleOHLC(traceIn, traceOut, coerce, layout);
+ var len = handleOHLC(gd, traceIn, traceOut, coerce, layout);
if(!len) {
traceOut.visible = false;
return;
diff --git a/src/traces/carpet/ab_defaults.js b/src/traces/carpet/ab_defaults.js
index b0875392f19..0a15c3caac5 100644
--- a/src/traces/carpet/ab_defaults.js
+++ b/src/traces/carpet/ab_defaults.js
@@ -11,7 +11,7 @@
var handleAxisDefaults = require('./axis_defaults');
var Template = require('../../plot_api/plot_template');
-module.exports = function handleABDefaults(traceIn, traceOut, fullLayout, coerce, dfltColor) {
+module.exports = function handleABDefaults(gd, traceIn, traceOut, fullLayout, coerce, dfltColor) {
var a = coerce('a');
if(!a) {
@@ -26,10 +26,10 @@ module.exports = function handleABDefaults(traceIn, traceOut, fullLayout, coerce
coerce('b0');
}
- mimickAxisDefaults(traceIn, traceOut, fullLayout, dfltColor);
+ mimickAxisDefaults(gd, traceIn, traceOut, fullLayout, dfltColor);
};
-function mimickAxisDefaults(traceIn, traceOut, fullLayout, dfltColor) {
+function mimickAxisDefaults(gd, traceIn, traceOut, fullLayout, dfltColor) {
var axesList = ['aaxis', 'baxis'];
axesList.forEach(function(axName) {
@@ -50,7 +50,7 @@ function mimickAxisDefaults(traceIn, traceOut, fullLayout, dfltColor) {
fullLayout: fullLayout
};
- handleAxisDefaults(axIn, axOut, defaultOptions);
+ handleAxisDefaults(gd, axIn, axOut, defaultOptions);
axOut._categories = axOut._categories || [];
// so we don't have to repeat autotype unnecessarily,
diff --git a/src/traces/carpet/axis_defaults.js b/src/traces/carpet/axis_defaults.js
index 680a787a6c8..b7f91e9e186 100644
--- a/src/traces/carpet/axis_defaults.js
+++ b/src/traces/carpet/axis_defaults.js
@@ -31,7 +31,7 @@ var autoType = require('../../plots/cartesian/axis_autotype');
* data: the plot data to use in choosing auto type
* bgColor: the plot background color, to calculate default gridline colors
*/
-module.exports = function handleAxisDefaults(containerIn, containerOut, options) {
+module.exports = function handleAxisDefaults(gd, containerIn, containerOut, options) {
var letter = options.letter;
var font = options.font || {};
var attributes = carpetAttrs[letter + 'axis'];
@@ -99,7 +99,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, options)
if(axType === 'date') {
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleDefaults');
- handleCalendarDefaults(containerIn, containerOut, 'calendar', options.calendar);
+ handleCalendarDefaults(gd, containerIn, containerOut, 'calendar', options.calendar);
}
// we need some of the other functions setConvert attaches, but for
@@ -133,9 +133,9 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, options)
coerce('fixedrange');
- handleTickValueDefaults(containerIn, containerOut, coerce, axType);
- handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options);
- handleCategoryOrderDefaults(containerIn, containerOut, coerce, {
+ handleTickValueDefaults(gd, containerIn, containerOut, coerce, axType);
+ handleTickLabelDefaults(gd, containerIn, containerOut, coerce, axType, options);
+ handleCategoryOrderDefaults(gd, containerIn, containerOut, coerce, {
data: options.data,
dataAttr: letter
});
diff --git a/src/traces/carpet/calc.js b/src/traces/carpet/calc.js
index 30620d98bc0..82d9f265ff1 100644
--- a/src/traces/carpet/calc.js
+++ b/src/traces/carpet/calc.js
@@ -56,8 +56,8 @@ module.exports = function calc(gd, trace) {
// into account the spacing of the values. That is, the derivatives should
// be modified to use a and b values. It's not that hard, but this is already
// moderate overkill for just filling in missing values.
- smoothFill2dArray(x, a, b);
- smoothFill2dArray(y, a, b);
+ smoothFill2dArray(gd, x, a, b);
+ smoothFill2dArray(gd, y, a, b);
setConvert(trace);
diff --git a/src/traces/carpet/defaults.js b/src/traces/carpet/defaults.js
index 7394aaa4aa0..49eeb21989f 100644
--- a/src/traces/carpet/defaults.js
+++ b/src/traces/carpet/defaults.js
@@ -15,7 +15,7 @@ var handleABDefaults = require('./ab_defaults');
var attributes = require('./attributes');
var colorAttrs = require('../../components/color/attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, dfltColor, fullLayout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, dfltColor, fullLayout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -27,7 +27,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, dfltColor, fullLayou
coerce('carpet');
- handleABDefaults(traceIn, traceOut, fullLayout, coerce, defaultColor);
+ handleABDefaults(gd, traceIn, traceOut, fullLayout, coerce, defaultColor);
if(!traceOut.a || !traceOut.b) {
traceOut.visible = false;
@@ -46,7 +46,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, dfltColor, fullLayou
// corresponds to b and the second to a. This sounds backwards but ends up making sense
// the important part to know is that when you write y[j][i], j goes from 0 to b.length - 1
// and i goes from 0 to a.length - 1.
- var validData = handleXYDefaults(traceIn, traceOut, coerce);
+ var validData = handleXYDefaults(gd, traceIn, traceOut, coerce);
if(!validData) {
traceOut.visible = false;
}
diff --git a/src/traces/carpet/smooth_fill_2d_array.js b/src/traces/carpet/smooth_fill_2d_array.js
index f2b60cd1dc7..5f3995ecb42 100644
--- a/src/traces/carpet/smooth_fill_2d_array.js
+++ b/src/traces/carpet/smooth_fill_2d_array.js
@@ -22,7 +22,7 @@ var Lib = require('../../lib');
* - a: array such that a.length === data[0].length
* - b: array such that b.length === data.length
*/
-module.exports = function smoothFill2dArray(data, a, b) {
+module.exports = function smoothFill2dArray(gd, data, a, b) {
var i, j, k;
var ip = [];
var jp = [];
@@ -214,7 +214,7 @@ module.exports = function smoothFill2dArray(data, a, b) {
resid = Math.sqrt(resid);
} while(iter++ < itermax && resid > tol);
- Lib.log('Smoother converged to', resid, 'after', iter, 'iterations');
+ Lib.log(gd, 'Smoother converged to', resid, 'after', iter, 'iterations');
return data;
};
diff --git a/src/traces/carpet/xy_defaults.js b/src/traces/carpet/xy_defaults.js
index d49016f2a53..e6c4396085e 100644
--- a/src/traces/carpet/xy_defaults.js
+++ b/src/traces/carpet/xy_defaults.js
@@ -11,7 +11,7 @@
var isArray1D = require('../../lib').isArray1D;
-module.exports = function handleXYDefaults(traceIn, traceOut, coerce) {
+module.exports = function handleXYDefaults(gd, traceIn, traceOut, coerce) {
var x = coerce('x');
var hasX = x && x.length;
var y = coerce('y');
diff --git a/src/traces/choropleth/defaults.js b/src/traces/choropleth/defaults.js
index 5e5ec1e6115..3ebbe9ff2e5 100644
--- a/src/traces/choropleth/defaults.js
+++ b/src/traces/choropleth/defaults.js
@@ -12,7 +12,7 @@ var Lib = require('../../lib');
var colorscaleDefaults = require('../../components/colorscale/defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -48,7 +48,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
if(mlw) coerce('marker.line.color');
coerce('marker.opacity');
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
};
diff --git a/src/traces/choropleth/hover.js b/src/traces/choropleth/hover.js
index 3d1609ef627..f70c7f34bf7 100644
--- a/src/traces/choropleth/hover.js
+++ b/src/traces/choropleth/hover.js
@@ -12,7 +12,7 @@ var Axes = require('../../plots/cartesian/axes');
var attributes = require('./attributes');
var fillText = require('../../lib').fillText;
-module.exports = function hoverPoints(pointData, xval, yval) {
+module.exports = function hoverPoints(gd, pointData, xval, yval) {
var cd = pointData.cd;
var trace = cd[0].trace;
var geo = pointData.subplot;
diff --git a/src/traces/choroplethmapbox/defaults.js b/src/traces/choroplethmapbox/defaults.js
index df8dff1efe4..8b2fadda148 100644
--- a/src/traces/choroplethmapbox/defaults.js
+++ b/src/traces/choroplethmapbox/defaults.js
@@ -12,7 +12,7 @@ var Lib = require('../../lib');
var colorscaleDefaults = require('../../components/colorscale/defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -43,7 +43,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
if(mlw) coerce('marker.line.color');
coerce('marker.opacity');
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
};
diff --git a/src/traces/cone/convert.js b/src/traces/cone/convert.js
index 304f6aa2c08..573a0fc6456 100644
--- a/src/traces/cone/convert.js
+++ b/src/traces/cone/convert.js
@@ -114,7 +114,7 @@ function convert(scene, trace) {
return meshData;
}
-proto.update = function(data) {
+proto.update = function(gd, data) {
this.data = data;
var meshData = convert(this.scene, data);
@@ -126,7 +126,7 @@ proto.dispose = function() {
this.mesh.dispose();
};
-function createConeTrace(scene, data) {
+function createConeTrace(gd, scene, data) {
var gl = scene.glplot.gl;
var meshData = convert(scene, data);
diff --git a/src/traces/cone/defaults.js b/src/traces/cone/defaults.js
index b0200862708..347a64555bc 100644
--- a/src/traces/cone/defaults.js
+++ b/src/traces/cone/defaults.js
@@ -14,7 +14,7 @@ var Lib = require('../../lib');
var colorscaleDefaults = require('../../components/colorscale/defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -49,7 +49,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('lightposition.y');
coerce('lightposition.z');
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});
coerce('text');
coerce('hovertext');
diff --git a/src/traces/contour/constraint_defaults.js b/src/traces/contour/constraint_defaults.js
index bb64397f2b5..9027504b842 100644
--- a/src/traces/contour/constraint_defaults.js
+++ b/src/traces/contour/constraint_defaults.js
@@ -20,14 +20,14 @@ var filterOps = require('../../constants/filter_ops');
var CONSTRAINT_REDUCTION = filterOps.CONSTRAINT_REDUCTION;
var COMPARISON_OPS2 = filterOps.COMPARISON_OPS2;
-module.exports = function handleConstraintDefaults(traceIn, traceOut, coerce, layout, defaultColor, opts) {
+module.exports = function handleConstraintDefaults(gd, traceIn, traceOut, coerce, layout, defaultColor, opts) {
var contours = traceOut.contours;
var showLines, lineColor, fillColor;
var operation = coerce('contours.operation');
contours._operation = CONSTRAINT_REDUCTION[operation];
- handleConstraintValueDefaults(coerce, contours);
+ handleConstraintValueDefaults(gd, coerce, contours);
if(operation === '=') {
showLines = contours.showlines = true;
@@ -49,10 +49,10 @@ module.exports = function handleConstraintDefaults(traceIn, traceOut, coerce, la
coerce('line.smoothing');
- handleLabelDefaults(coerce, layout, lineColor, opts);
+ handleLabelDefaults(gd, coerce, layout, lineColor, opts);
};
-function handleConstraintValueDefaults(coerce, contours) {
+function handleConstraintValueDefaults(gd, coerce, contours) {
var zvalue;
if(COMPARISON_OPS2.indexOf(contours.operation) === -1) {
diff --git a/src/traces/contour/contours_defaults.js b/src/traces/contour/contours_defaults.js
index 725302630a3..0a3b0f5424b 100644
--- a/src/traces/contour/contours_defaults.js
+++ b/src/traces/contour/contours_defaults.js
@@ -8,7 +8,7 @@
'use strict';
-module.exports = function handleContourDefaults(traceIn, traceOut, coerce, coerce2) {
+module.exports = function handleContourDefaults(gd, traceIn, traceOut, coerce, coerce2) {
var contourStart = coerce2('contours.start');
var contourEnd = coerce2('contours.end');
var missingEnd = (contourStart === false) || (contourEnd === false);
diff --git a/src/traces/contour/convert_to_constraints.js b/src/traces/contour/convert_to_constraints.js
index 22c151e2503..cd5a9604ec0 100644
--- a/src/traces/contour/convert_to_constraints.js
+++ b/src/traces/contour/convert_to_constraints.js
@@ -16,7 +16,7 @@ var Lib = require('../../lib');
// draws contours correctly *as* constraints.
//
// ** I do not know which "weird range loops" the comment above is referring to.
-module.exports = function(pathinfo, operation) {
+module.exports = function convertToConstraints(gd, pathinfo, operation) {
var i, pi0, pi1;
var op0 = function(arr) { return arr.reverse(); };
@@ -28,7 +28,7 @@ module.exports = function(pathinfo, operation) {
return pathinfo;
case '>':
if(pathinfo.length !== 1) {
- Lib.warn('Contour data invalid for the specified inequality operation.');
+ Lib.warn(gd, 'Contour data invalid for the specified inequality operation.');
}
// In this case there should be exactly one contour levels in pathinfo.
@@ -55,7 +55,7 @@ module.exports = function(pathinfo, operation) {
case '[]':
/* eslint-enable: no-fallthrough */
if(pathinfo.length !== 2) {
- Lib.warn('Contour data invalid for the specified inequality range operation.');
+ Lib.warn(gd, 'Contour data invalid for the specified inequality range operation.');
}
// In this case there should be exactly two contour levels in pathinfo.
diff --git a/src/traces/contour/defaults.js b/src/traces/contour/defaults.js
index b0489275155..6f7c4e47c2e 100644
--- a/src/traces/contour/defaults.js
+++ b/src/traces/contour/defaults.js
@@ -17,7 +17,7 @@ var handleStyleDefaults = require('./style_defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -26,7 +26,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
return Lib.coerce2(traceIn, traceOut, attributes, attr);
}
- var len = handleXYZDefaults(traceIn, traceOut, coerce, layout);
+ var len = handleXYZDefaults(gd, traceIn, traceOut, coerce, layout);
if(!len) {
traceOut.visible = false;
return;
@@ -41,9 +41,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('connectgaps', Lib.isArray1D(traceOut.z));
if(isConstraint) {
- handleConstraintDefaults(traceIn, traceOut, coerce, layout, defaultColor);
+ handleConstraintDefaults(gd, traceIn, traceOut, coerce, layout, defaultColor);
} else {
- handleContoursDefaults(traceIn, traceOut, coerce, coerce2);
- handleStyleDefaults(traceIn, traceOut, coerce, layout);
+ handleContoursDefaults(gd, traceIn, traceOut, coerce, coerce2);
+ handleStyleDefaults(gd, traceIn, traceOut, coerce, layout);
}
};
diff --git a/src/traces/contour/empty_pathinfo.js b/src/traces/contour/empty_pathinfo.js
index 31e64724f47..94ad363d716 100644
--- a/src/traces/contour/empty_pathinfo.js
+++ b/src/traces/contour/empty_pathinfo.js
@@ -12,7 +12,7 @@ var Lib = require('../../lib');
var constraintMapping = require('./constraint_mapping');
var endPlus = require('./end_plus');
-module.exports = function emptyPathinfo(contours, plotinfo, cd0) {
+module.exports = function emptyPathinfo(gd, contours, plotinfo, cd0) {
var contoursFinal = (contours.type === 'constraint') ?
constraintMapping[contours._operation](contours.value) :
contours;
@@ -54,7 +54,7 @@ module.exports = function emptyPathinfo(contours, plotinfo, cd0) {
}, basePathinfo));
if(pathinfo.length > 1000) {
- Lib.warn('Too many contours, clipping at 1000', contours);
+ Lib.warn(gd, 'Too many contours, clipping at 1000', contours);
break;
}
}
diff --git a/src/traces/contour/find_all_paths.js b/src/traces/contour/find_all_paths.js
index 0bc62b3849f..2995d5b107e 100644
--- a/src/traces/contour/find_all_paths.js
+++ b/src/traces/contour/find_all_paths.js
@@ -11,7 +11,7 @@
var Lib = require('../../lib');
var constants = require('./constants');
-module.exports = function findAllPaths(pathinfo, xtol, ytol) {
+module.exports = function findAllPaths(gd, pathinfo, xtol, ytol) {
var cnt,
startLoc,
i,
@@ -27,16 +27,16 @@ module.exports = function findAllPaths(pathinfo, xtol, ytol) {
for(j = 0; j < pi.starts.length; j++) {
startLoc = pi.starts[j];
- makePath(pi, startLoc, 'edge', xtol, ytol);
+ makePath(gd, pi, startLoc, 'edge', xtol, ytol);
}
cnt = 0;
while(Object.keys(pi.crossings).length && cnt < 10000) {
cnt++;
startLoc = Object.keys(pi.crossings)[0].split(',').map(Number);
- makePath(pi, startLoc, undefined, xtol, ytol);
+ makePath(gd, pi, startLoc, undefined, xtol, ytol);
}
- if(cnt === 10000) Lib.log('Infinite loop in contour?');
+ if(cnt === 10000) Lib.log(gd, 'Infinite loop in contour?');
}
};
@@ -52,7 +52,7 @@ function ptDist(pt1, pt2) {
return Math.sqrt(dx * dx + dy * dy);
}
-function makePath(pi, loc, edgeflag, xtol, ytol) {
+function makePath(gd, pi, loc, edgeflag, xtol, ytol) {
var locStr = loc.join(',');
var mi = pi.crossings[locStr];
var marchStep = getStartStep(mi, edgeflag, loc);
@@ -75,7 +75,7 @@ function makePath(pi, loc, edgeflag, xtol, ytol) {
marchStep = constants.NEWDELTA[mi];
if(!marchStep) {
- Lib.log('Found bad marching index:', mi, loc, pi.level);
+ Lib.log(gd, 'Found bad marching index:', mi, loc, pi.level);
break;
}
@@ -101,7 +101,7 @@ function makePath(pi, loc, edgeflag, xtol, ytol) {
}
if(cnt === 10000) {
- Lib.log('Infinite loop in contour?');
+ Lib.log(gd, 'Infinite loop in contour?');
}
var closedpath = equalPts(pts[0], pts[pts.length - 1], xtol, ytol);
var totaldist = 0;
@@ -185,7 +185,7 @@ function makePath(pi, loc, edgeflag, xtol, ytol) {
pi.paths.push(pts);
} else {
if(!edgeflag) {
- Lib.log('Unclosed interior contour?',
+ Lib.log(gd, 'Unclosed interior contour?',
pi.level, startLoc.join(','), pts.join('L'));
}
diff --git a/src/traces/contour/hover.js b/src/traces/contour/hover.js
index d968a943080..03054d4b670 100644
--- a/src/traces/contour/hover.js
+++ b/src/traces/contour/hover.js
@@ -13,8 +13,8 @@ var Color = require('../../components/color');
var heatmapHoverPoints = require('../heatmap/hover');
-module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLayer) {
- var hoverData = heatmapHoverPoints(pointData, xval, yval, hovermode, hoverLayer, true);
+module.exports = function hoverPoints(gd, pointData, xval, yval, hovermode, hoverLayer) {
+ var hoverData = heatmapHoverPoints(gd, pointData, xval, yval, hovermode, hoverLayer, true);
if(hoverData) {
hoverData.forEach(function(hoverPt) {
diff --git a/src/traces/contour/label_defaults.js b/src/traces/contour/label_defaults.js
index d53803f39b7..8c16dd0e3ad 100644
--- a/src/traces/contour/label_defaults.js
+++ b/src/traces/contour/label_defaults.js
@@ -11,7 +11,7 @@
var Lib = require('../../lib');
-module.exports = function handleLabelDefaults(coerce, layout, lineColor, opts) {
+module.exports = function handleLabelDefaults(gd, coerce, layout, lineColor, opts) {
if(!opts) opts = {};
var showLabels = coerce('contours.showlabels');
if(showLabels) {
diff --git a/src/traces/contour/plot.js b/src/traces/contour/plot.js
index 78fd46147b9..3d85ad93c68 100644
--- a/src/traces/contour/plot.js
+++ b/src/traces/contour/plot.js
@@ -38,7 +38,7 @@ exports.plot = function plot(gd, plotinfo, cdcontours, contourLayer) {
var x = cd0.x;
var y = cd0.y;
var contours = trace.contours;
- var pathinfo = emptyPathinfo(contours, plotinfo, cd0);
+ var pathinfo = emptyPathinfo(gd, contours, plotinfo, cd0);
// use a heatmap to fill - draw it behind the lines
var heatmapColoringLayer = Lib.ensureSingle(plotGroup, 'g', 'heatmapcoloring');
@@ -49,7 +49,7 @@ exports.plot = function plot(gd, plotinfo, cdcontours, contourLayer) {
heatmapPlot(gd, plotinfo, cdheatmaps, heatmapColoringLayer);
makeCrossings(pathinfo);
- findAllPaths(pathinfo);
+ findAllPaths(gd, pathinfo);
var leftedge = xa.c2p(x[0], true);
var rightedge = xa.c2p(x[x.length - 1], true);
@@ -65,12 +65,12 @@ exports.plot = function plot(gd, plotinfo, cdcontours, contourLayer) {
var fillPathinfo = pathinfo;
if(contours.type === 'constraint') {
// N.B. this also mutates pathinfo
- fillPathinfo = convertToConstraints(pathinfo, contours._operation);
+ fillPathinfo = convertToConstraints(gd, pathinfo, contours._operation);
}
// draw everything
makeBackground(plotGroup, perimeter, contours);
- makeFills(plotGroup, fillPathinfo, perimeter, contours);
+ makeFills(gd, plotGroup, fillPathinfo, perimeter, contours);
makeLinesAndLabels(plotGroup, pathinfo, gd, cd0, contours);
clipGaps(plotGroup, plotinfo, gd, cd0, perimeter);
});
@@ -88,7 +88,7 @@ function makeBackground(plotgroup, perimeter, contours) {
.style('stroke', 'none');
}
-function makeFills(plotgroup, pathinfo, perimeter, contours) {
+function makeFills(gd, plotgroup, pathinfo, perimeter, contours) {
var hasFills = contours.coloring === 'fill' || (contours.type === 'constraint' && contours._operation !== '=');
var boundaryPath = 'M' + perimeter.join('L') + 'Z';
@@ -109,7 +109,7 @@ function makeFills(plotgroup, pathinfo, perimeter, contours) {
// enclosing the whole thing. With all that, the parity should mean
// that we always fill everything above the contour, nothing below
var fullpath = (pi.prefixBoundary ? boundaryPath : '') +
- joinAllPaths(pi, perimeter);
+ joinAllPaths(gd, pi, perimeter);
if(!fullpath) {
d3.select(this).remove();
@@ -121,7 +121,7 @@ function makeFills(plotgroup, pathinfo, perimeter, contours) {
});
}
-function joinAllPaths(pi, perimeter) {
+function joinAllPaths(gd, pi, perimeter) {
var fullpath = '';
var i = 0;
var startsleft = pi.edgepaths.map(function(v, i) { return i; });
@@ -148,7 +148,7 @@ function joinAllPaths(pi, perimeter) {
// now loop through sides, moving our endpoint until we find a new start
for(cnt = 0; cnt < 4; cnt++) { // just to prevent infinite loops
if(!endpt) {
- Lib.log('Missing end?', i, pi);
+ Lib.log(gd, 'Missing end?', i, pi);
break;
}
@@ -173,7 +173,7 @@ function joinAllPaths(pi, perimeter) {
nexti = possiblei;
}
} else {
- Lib.log('endpt to newendpt is not vert. or horz.',
+ Lib.log(gd, 'endpt to newendpt is not vert. or horz.',
endpt, newendpt, ptNew);
}
}
@@ -185,7 +185,7 @@ function joinAllPaths(pi, perimeter) {
}
if(nexti === pi.edgepaths.length) {
- Lib.log('unclosed perimeter path');
+ Lib.log(gd, 'unclosed perimeter path');
break;
}
@@ -655,13 +655,13 @@ function clipGaps(plotGroup, plotinfo, gd, cd0, perimeter) {
};
makeCrossings([clipPathInfo]);
- findAllPaths([clipPathInfo]);
+ findAllPaths(gd, [clipPathInfo]);
closeBoundaries([clipPathInfo], {type: 'levels'});
var path = Lib.ensureSingle(clipPath, 'path', '');
path.attr('d',
(clipPathInfo.prefixBoundary ? 'M' + perimeter.join('L') + 'Z' : '') +
- joinAllPaths(clipPathInfo, perimeter)
+ joinAllPaths(gd, clipPathInfo, perimeter)
);
} else clipId = null;
diff --git a/src/traces/contour/style_defaults.js b/src/traces/contour/style_defaults.js
index 2deaa962ae1..bf6c76dc022 100644
--- a/src/traces/contour/style_defaults.js
+++ b/src/traces/contour/style_defaults.js
@@ -13,7 +13,7 @@ var colorscaleDefaults = require('../../components/colorscale/defaults');
var handleLabelDefaults = require('./label_defaults');
-module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout, opts) {
+module.exports = function handleStyleDefaults(gd, traceIn, traceOut, coerce, layout, opts) {
var coloring = coerce('contours.coloring');
var showLines;
@@ -33,11 +33,11 @@ module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout,
traceOut._dfltShowLegend = false;
colorscaleDefaults(
- traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'}
+ gd, traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'}
);
}
coerce('line.smoothing');
- handleLabelDefaults(coerce, layout, lineColor, opts);
+ handleLabelDefaults(gd, coerce, layout, lineColor, opts);
};
diff --git a/src/traces/contourcarpet/calc.js b/src/traces/contourcarpet/calc.js
index b4ce52808be..21b87253b8a 100644
--- a/src/traces/contourcarpet/calc.js
+++ b/src/traces/contourcarpet/calc.js
@@ -41,7 +41,7 @@ module.exports = function calc(gd, trace) {
if(!tracedata.a) tracedata.a = carpetdata.a;
if(!tracedata.b) tracedata.b = carpetdata.b;
- supplyDefaults(tracedata, trace, trace._defaultColor, gd._fullLayout);
+ supplyDefaults(gd, tracedata, trace, trace._defaultColor, gd._fullLayout);
}
var cd = heatmappishCalc(gd, trace);
@@ -82,7 +82,7 @@ function heatmappishCalc(gd, trace) {
z = trace._z = clean2dArray(trace._z || trace.z, trace.transpose);
trace._emptypoints = findEmpties(z);
- interp2d(z, trace._emptypoints);
+ interp2d(gd, z, trace._emptypoints);
// create arrays of brick boundaries, to be used by autorange and heatmap.plot
var xlen = Lib.maxRowLength(z);
diff --git a/src/traces/contourcarpet/defaults.js b/src/traces/contourcarpet/defaults.js
index 1227710f889..ca9b1e8c901 100644
--- a/src/traces/contourcarpet/defaults.js
+++ b/src/traces/contourcarpet/defaults.js
@@ -17,7 +17,7 @@ var handleConstraintDefaults = require('../contour/constraint_defaults');
var handleContoursDefaults = require('../contour/contours_defaults');
var handleStyleDefaults = require('../contour/style_defaults');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -44,7 +44,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
// attribute name to match the property name -- except '_a' !== 'a' so that is not
// straightforward.
if(traceIn.a && traceIn.b) {
- var len = handleXYZDefaults(traceIn, traceOut, coerce, layout, 'a', 'b');
+ var len = handleXYZDefaults(gd, traceIn, traceOut, coerce, layout, 'a', 'b');
if(!len) {
traceOut.visible = false;
@@ -55,10 +55,10 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
var isConstraint = (coerce('contours.type') === 'constraint');
if(isConstraint) {
- handleConstraintDefaults(traceIn, traceOut, coerce, layout, defaultColor, {hasHover: false});
+ handleConstraintDefaults(gd, traceIn, traceOut, coerce, layout, defaultColor, {hasHover: false});
} else {
- handleContoursDefaults(traceIn, traceOut, coerce, coerce2);
- handleStyleDefaults(traceIn, traceOut, coerce, layout, {hasHover: false});
+ handleContoursDefaults(gd, traceIn, traceOut, coerce, coerce2);
+ handleStyleDefaults(gd, traceIn, traceOut, coerce, layout, {hasHover: false});
}
} else {
traceOut._defaultColor = defaultColor;
diff --git a/src/traces/contourcarpet/plot.js b/src/traces/contourcarpet/plot.js
index 884c3d95dd7..7e6a0f6bb3d 100644
--- a/src/traces/contourcarpet/plot.js
+++ b/src/traces/contourcarpet/plot.js
@@ -41,7 +41,7 @@ module.exports = function plot(gd, plotinfo, cdcontours, contourcarpetLayer) {
var a = cd0.a;
var b = cd0.b;
var contours = trace.contours;
- var pathinfo = emptyPathinfo(contours, plotinfo, cd0);
+ var pathinfo = emptyPathinfo(gd, contours, plotinfo, cd0);
var isConstraint = contours.type === 'constraint';
var operation = contours._operation;
var coloring = isConstraint ? (operation === '=' ? 'lines' : 'fill') : contours.coloring;
@@ -64,7 +64,7 @@ module.exports = function plot(gd, plotinfo, cdcontours, contourcarpetLayer) {
makeCrossings(pathinfo);
var atol = (a[a.length - 1] - a[0]) * 1e-8;
var btol = (b[b.length - 1] - b[0]) * 1e-8;
- findAllPaths(pathinfo, atol, btol);
+ findAllPaths(gd, pathinfo, atol, btol);
// Constraints might need to be draw inverted, which is not something contours
// handle by default since they're assumed fully opaque so that they can be
@@ -76,7 +76,7 @@ module.exports = function plot(gd, plotinfo, cdcontours, contourcarpetLayer) {
// See: https://github.com/plotly/plotly.js/issues/1356
var fillPathinfo = pathinfo;
if(contours.type === 'constraint') {
- fillPathinfo = convertToConstraints(pathinfo, operation);
+ fillPathinfo = convertToConstraints(gd, pathinfo, operation);
}
// Map the paths in a/b coordinates to pixel coordinates:
@@ -105,7 +105,7 @@ module.exports = function plot(gd, plotinfo, cdcontours, contourcarpetLayer) {
// Draw the specific contour fills. As a simplification, they're assumed to be
// fully opaque so that it's easy to draw them simply overlapping. The alternative
// would be to flip adjacent paths and draw closed paths for each level instead.
- makeFills(trace, plotGroup, xa, ya, fillPathinfo, perimeter, ab2p, carpet, carpetcd, coloring, boundaryPath);
+ makeFills(gd, trace, plotGroup, xa, ya, fillPathinfo, perimeter, ab2p, carpet, carpetcd, coloring, boundaryPath);
// Draw contour lines:
makeLinesAndLabels(plotGroup, pathinfo, gd, cd0, contours, plotinfo, carpet);
@@ -326,7 +326,7 @@ function makeBackground(plotgroup, clipsegments, xaxis, yaxis, isConstraint, col
.style('stroke', 'none');
}
-function makeFills(trace, plotgroup, xa, ya, pathinfo, perimeter, ab2p, carpet, carpetcd, coloring, boundaryPath) {
+function makeFills(gd, trace, plotgroup, xa, ya, pathinfo, perimeter, ab2p, carpet, carpetcd, coloring, boundaryPath) {
var hasFills = coloring === 'fill';
// fills prefixBoundary in pathinfo items
@@ -345,7 +345,7 @@ function makeFills(trace, plotgroup, xa, ya, pathinfo, perimeter, ab2p, carpet,
// enclosing the whole thing. With all that, the parity should mean
// that we always fill everything above the contour, nothing below
var fullpath = (pi.prefixBoundary ? boundaryPath : '') +
- joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya);
+ joinAllPaths(gd, trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya);
if(!fullpath) {
d3.select(this).remove();
@@ -357,7 +357,7 @@ function makeFills(trace, plotgroup, xa, ya, pathinfo, perimeter, ab2p, carpet,
});
}
-function joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya) {
+function joinAllPaths(gd, trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya) {
var i;
var fullpath = '';
@@ -414,7 +414,7 @@ function joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya) {
// now loop through sides, moving our endpoint until we find a new start
for(cnt = 0; cnt < 4; cnt++) { // just to prevent infinite loops
if(!endpt) {
- Lib.log('Missing end?', i, pi);
+ Lib.log(gd, 'Missing end?', i, pi);
break;
}
@@ -444,7 +444,7 @@ function joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya) {
nexti = possiblei;
}
} else {
- Lib.log('endpt to newendpt is not vert. or horz.', endpt, newendpt, ptNew);
+ Lib.log(gd, 'endpt to newendpt is not vert. or horz.', endpt, newendpt, ptNew);
}
}
@@ -454,7 +454,7 @@ function joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya) {
}
if(nexti === pi.edgepaths.length) {
- Lib.log('unclosed perimeter path');
+ Lib.log(gd, 'unclosed perimeter path');
break;
}
diff --git a/src/traces/densitymapbox/defaults.js b/src/traces/densitymapbox/defaults.js
index 709f44f9809..3ad4f933952 100644
--- a/src/traces/densitymapbox/defaults.js
+++ b/src/traces/densitymapbox/defaults.js
@@ -12,7 +12,7 @@ var Lib = require('../../lib');
var colorscaleDefaults = require('../../components/colorscale/defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -36,5 +36,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('hovertext');
coerce('hovertemplate');
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
};
diff --git a/src/traces/densitymapbox/hover.js b/src/traces/densitymapbox/hover.js
index 7fab240997a..2b708f5276c 100644
--- a/src/traces/densitymapbox/hover.js
+++ b/src/traces/densitymapbox/hover.js
@@ -12,8 +12,8 @@ var Lib = require('../../lib');
var Axes = require('../../plots/cartesian/axes');
var scatterMapboxHoverPoints = require('../scattermapbox/hover');
-module.exports = function hoverPoints(pointData, xval, yval) {
- var pts = scatterMapboxHoverPoints(pointData, xval, yval);
+module.exports = function hoverPoints(gd, pointData, xval, yval) {
+ var pts = scatterMapboxHoverPoints(gd, pointData, xval, yval);
if(!pts) return;
var newPointData = pts[0];
diff --git a/src/traces/funnel/defaults.js b/src/traces/funnel/defaults.js
index 4d1ea4b47e2..4691f291217 100644
--- a/src/traces/funnel/defaults.js
+++ b/src/traces/funnel/defaults.js
@@ -16,12 +16,12 @@ var handleXYDefaults = require('../scatter/xy_defaults');
var attributes = require('./attributes');
var Color = require('../../components/color');
-function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len = handleXYDefaults(traceIn, traceOut, layout, coerce);
+ var len = handleXYDefaults(gd, traceIn, traceOut, layout, coerce);
if(!len) {
traceOut.visible = false;
return;
@@ -72,7 +72,7 @@ function defaultFillColor(markerColor) {
return Color.addOpacity(cBase, 0.5 * Color.opacity(cBase));
}
-function crossTraceDefaults(fullData, fullLayout) {
+function crossTraceDefaults(gd, fullData, fullLayout) {
var traceIn, traceOut;
function coerce(attr) {
@@ -84,7 +84,7 @@ function crossTraceDefaults(fullData, fullLayout) {
traceOut = fullData[i];
traceIn = traceOut._input;
- handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce);
+ handleGroupingDefaults(gd, traceIn, traceOut, fullLayout, coerce);
}
}
}
diff --git a/src/traces/funnel/hover.js b/src/traces/funnel/hover.js
index 145f6e141b3..876c942b382 100644
--- a/src/traces/funnel/hover.js
+++ b/src/traces/funnel/hover.js
@@ -12,7 +12,7 @@ var opacity = require('../../components/color').opacity;
var hoverOnBars = require('../bar/hover').hoverOnBars;
var formatPercent = require('../../lib').formatPercent;
-module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
+module.exports = function hoverPoints(gd, pointData, xval, yval, hovermode) {
var point = hoverOnBars(pointData, xval, yval, hovermode);
if(!point) return;
diff --git a/src/traces/funnel/layout_defaults.js b/src/traces/funnel/layout_defaults.js
index 8219ab1bdbe..6dc31832f4f 100644
--- a/src/traces/funnel/layout_defaults.js
+++ b/src/traces/funnel/layout_defaults.js
@@ -11,7 +11,7 @@
var Lib = require('../../lib');
var layoutAttributes = require('./layout_attributes');
-module.exports = function(layoutIn, layoutOut, fullData) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
var hasTraceType = false;
function coerce(attr, dflt) {
diff --git a/src/traces/funnelarea/defaults.js b/src/traces/funnelarea/defaults.js
index 701fe112fe2..16f33a169e0 100644
--- a/src/traces/funnelarea/defaults.js
+++ b/src/traces/funnelarea/defaults.js
@@ -14,7 +14,7 @@ var handleDomainDefaults = require('../../plots/domain').defaults;
var handleText = require('../bar/defaults').handleText;
var handleLabelsAndValues = require('../pie/defaults').handleLabelsAndValues;
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -67,7 +67,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
});
}
- handleDomainDefaults(traceOut, layout, coerce);
+ handleDomainDefaults(gd, traceOut, layout, coerce);
var title = coerce('title.text');
if(title) {
diff --git a/src/traces/funnelarea/layout_defaults.js b/src/traces/funnelarea/layout_defaults.js
index 0354aa9235a..5e674950174 100644
--- a/src/traces/funnelarea/layout_defaults.js
+++ b/src/traces/funnelarea/layout_defaults.js
@@ -12,7 +12,7 @@ var Lib = require('../../lib');
var layoutAttributes = require('./layout_attributes');
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut) {
function coerce(attr, dflt) {
return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);
}
diff --git a/src/traces/heatmap/calc.js b/src/traces/heatmap/calc.js
index 0f8f0c50f95..02416a17430 100644
--- a/src/traces/heatmap/calc.js
+++ b/src/traces/heatmap/calc.js
@@ -87,12 +87,12 @@ module.exports = function calc(gd, trace) {
if(!isHist && (isContour || trace.connectgaps)) {
trace._emptypoints = findEmpties(z);
- interp2d(z, trace._emptypoints);
+ interp2d(gd, z, trace._emptypoints);
}
function noZsmooth(msg) {
zsmooth = trace._input.zsmooth = trace.zsmooth = false;
- Lib.warn('cannot use zsmooth: "fast": ' + msg);
+ Lib.warn(gd, 'cannot use zsmooth: "fast": ' + msg);
}
// check whether we really can smooth (ie all boxes are about the same size)
diff --git a/src/traces/heatmap/defaults.js b/src/traces/heatmap/defaults.js
index b3fda9d8c9b..8e1d13d2adf 100644
--- a/src/traces/heatmap/defaults.js
+++ b/src/traces/heatmap/defaults.js
@@ -17,12 +17,12 @@ var colorscaleDefaults = require('../../components/colorscale/defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var validData = handleXYZDefaults(traceIn, traceOut, coerce, layout);
+ var validData = handleXYZDefaults(gd, traceIn, traceOut, coerce, layout);
if(!validData) {
traceOut.visible = false;
return;
@@ -32,10 +32,10 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('hovertext');
coerce('hovertemplate');
- handleStyleDefaults(traceIn, traceOut, coerce, layout);
+ handleStyleDefaults(gd, traceIn, traceOut, coerce, layout);
coerce('hoverongaps');
coerce('connectgaps', Lib.isArray1D(traceOut.z) && (traceOut.zsmooth !== false));
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
};
diff --git a/src/traces/heatmap/hover.js b/src/traces/heatmap/hover.js
index 86c2a42c6f3..c83716fe597 100644
--- a/src/traces/heatmap/hover.js
+++ b/src/traces/heatmap/hover.js
@@ -13,7 +13,7 @@ var Lib = require('../../lib');
var Axes = require('../../plots/cartesian/axes');
var extractOpts = require('../../components/colorscale').extractOpts;
-module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLayer, contour) {
+module.exports = function hoverPoints(gd, pointData, xval, yval, hovermode, hoverLayer, contour) {
var cd0 = pointData.cd[0];
var trace = cd0.trace;
var xa = pointData.xa;
@@ -35,7 +35,7 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
nx = Math.round(pointData.index[1]);
ny = Math.round(pointData.index[0]);
} catch(e) {
- Lib.error('Error hovering on heatmap, ' +
+ Lib.error(gd, 'Error hovering on heatmap, ' +
'pointNumber must be [row,col], found:', pointData.index);
return;
}
diff --git a/src/traces/heatmap/interp2d.js b/src/traces/heatmap/interp2d.js
index 04415b129e2..6a7ce1d2303 100644
--- a/src/traces/heatmap/interp2d.js
+++ b/src/traces/heatmap/interp2d.js
@@ -35,7 +35,7 @@ function correctionOvershoot(maxFractionalChange) {
* of neighbors that are *not* missing. Assumed to be sorted from most to
* least neighbors, as produced by heatmap/find_empties.
*/
-module.exports = function interp2d(z, emptyPoints) {
+module.exports = function interp2d(gd, z, emptyPoints) {
var maxFractionalChange = 1;
var i;
@@ -55,7 +55,7 @@ module.exports = function interp2d(z, emptyPoints) {
correctionOvershoot(maxFractionalChange));
}
if(maxFractionalChange > INTERPTHRESHOLD) {
- Lib.log('interp2d didn\'t converge quickly', maxFractionalChange);
+ Lib.log(gd, 'interp2d didn\'t converge quickly', maxFractionalChange);
}
return z;
diff --git a/src/traces/heatmap/style_defaults.js b/src/traces/heatmap/style_defaults.js
index 8386d8d08c8..fa8471a1482 100644
--- a/src/traces/heatmap/style_defaults.js
+++ b/src/traces/heatmap/style_defaults.js
@@ -9,7 +9,7 @@
'use strict';
-module.exports = function handleStyleDefaults(traceIn, traceOut, coerce) {
+module.exports = function handleStyleDefaults(gd, traceIn, traceOut, coerce) {
var zsmooth = coerce('zsmooth');
if(zsmooth === false) {
// ensure that xgap and ygap are coerced only when zsmooth allows them to have an effect.
diff --git a/src/traces/heatmap/xyz_defaults.js b/src/traces/heatmap/xyz_defaults.js
index 8be45ca87f0..a18c5525013 100644
--- a/src/traces/heatmap/xyz_defaults.js
+++ b/src/traces/heatmap/xyz_defaults.js
@@ -13,7 +13,7 @@ var Lib = require('../../lib');
var Registry = require('../../registry');
-module.exports = function handleXYZDefaults(traceIn, traceOut, coerce, layout, xName, yName) {
+module.exports = function handleXYZDefaults(gd, traceIn, traceOut, coerce, layout, xName, yName) {
var z = coerce('z');
xName = xName || 'x';
yName = yName || 'y';
@@ -33,8 +33,8 @@ module.exports = function handleXYZDefaults(traceIn, traceOut, coerce, layout, x
traceOut._length = Math.min(xlen, ylen, z.length);
} else {
- x = coordDefaults(xName, coerce);
- y = coordDefaults(yName, coerce);
+ x = coordDefaults(gd, xName, coerce);
+ y = coordDefaults(gd, yName, coerce);
// TODO put z validation elsewhere
if(!isValidZ(z)) return 0;
@@ -50,12 +50,12 @@ module.exports = function handleXYZDefaults(traceIn, traceOut, coerce, layout, x
) return true; // skip calendars until we handle them in those traces
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
- handleCalendarDefaults(traceIn, traceOut, [xName, yName], layout);
+ handleCalendarDefaults(gd, traceIn, traceOut, [xName, yName], layout);
return true;
};
-function coordDefaults(coordStr, coerce) {
+function coordDefaults(gd, coordStr, coerce) {
var coord = coerce(coordStr);
var coordType = coord ? coerce(coordStr + 'type', 'array') : 'scaled';
diff --git a/src/traces/heatmapgl/defaults.js b/src/traces/heatmapgl/defaults.js
index 1f164bc33c5..dfc6a723d27 100644
--- a/src/traces/heatmapgl/defaults.js
+++ b/src/traces/heatmapgl/defaults.js
@@ -16,12 +16,12 @@ var colorscaleDefaults = require('../../components/colorscale/defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var validData = handleXYZDefaults(traceIn, traceOut, coerce, layout);
+ var validData = handleXYZDefaults(gd, traceIn, traceOut, coerce, layout);
if(!validData) {
traceOut.visible = false;
return;
@@ -30,5 +30,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('text');
coerce('zsmooth');
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
};
diff --git a/src/traces/histogram/cross_trace_defaults.js b/src/traces/histogram/cross_trace_defaults.js
index 906bac67a8c..533c4edc275 100644
--- a/src/traces/histogram/cross_trace_defaults.js
+++ b/src/traces/histogram/cross_trace_defaults.js
@@ -27,7 +27,7 @@ var BINATTRS = [
var BINDIRECTIONS = ['x', 'y'];
// handle bin attrs and relink auto-determined values so fullData is complete
-module.exports = function crossTraceDefaults(fullData, fullLayout) {
+module.exports = function crossTraceDefaults(gd, fullData, fullLayout) {
var allBinOpts = fullLayout._histogramBinOpts = {};
var histTraces = [];
var mustMatchTracesLookup = {};
@@ -68,7 +68,7 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) {
groupName = fallbackGroupName;
if(axType !== binOpts.axType) {
- Lib.warn([
+ Lib.warn(gd, [
'Attempted to group the bins of trace', traceOut.index,
'set on a', 'type:' + axType, 'axis',
'with bins on', 'type:' + binOpts.axType, 'axis.'
@@ -77,7 +77,7 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) {
if(calendar !== binOpts.calendar) {
// prohibit bingroup for traces using different calendar,
// there's probably a way to make this work, but skip for now
- Lib.warn([
+ Lib.warn(gd, [
'Attempted to group the bins of trace', traceOut.index,
'set with a', calendar, 'calendar',
'with bins',
@@ -112,7 +112,7 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) {
// N.B. need to coerce *alignmentgroup* before *bingroup*, as traces
// in same alignmentgroup "have to match"
if(!traceIs(traceOut, '2dMap')) {
- handleGroupingDefaults(traceOut._input, traceOut, fullLayout, coerce);
+ handleGroupingDefaults(gd, traceOut._input, traceOut, fullLayout, coerce);
}
}
}
@@ -186,7 +186,7 @@ module.exports = function crossTraceDefaults(fullData, fullLayout) {
traceOut = traces[i];
var bingroupIn = traceOut._input.bingroup;
if(bingroupIn && bingroupIn !== groupName) {
- Lib.warn([
+ Lib.warn(gd, [
'Trace', traceOut.index, 'must match',
'within bingroup', groupName + '.',
'Ignoring its bingroup:', bingroupIn, 'setting.'
diff --git a/src/traces/histogram/defaults.js b/src/traces/histogram/defaults.js
index 0c125945e31..2f49883945f 100644
--- a/src/traces/histogram/defaults.js
+++ b/src/traces/histogram/defaults.js
@@ -15,7 +15,7 @@ var Color = require('../../components/color');
var handleStyleDefaults = require('../bar/style_defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -49,7 +49,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
traceOut._length = len;
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
- handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);
+ handleCalendarDefaults(gd, traceIn, traceOut, ['x', 'y'], layout);
var hasAggregationData = traceOut[aggLetter];
if(hasAggregationData) coerce('histfunc');
@@ -59,7 +59,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
// autobin(x|y) are only included here to appease Plotly.validate
coerce('autobin' + sampleLetter);
- handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);
+ handleStyleDefaults(gd, traceIn, traceOut, coerce, defaultColor, layout);
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
@@ -67,6 +67,6 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
// override defaultColor for error bars with defaultLine
var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');
- errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'});
- errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});
+ errorBarsSupplyDefaults(gd, traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'});
+ errorBarsSupplyDefaults(gd, traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});
};
diff --git a/src/traces/histogram/hover.js b/src/traces/histogram/hover.js
index 7fd13f2bb2a..8edd010f85e 100644
--- a/src/traces/histogram/hover.js
+++ b/src/traces/histogram/hover.js
@@ -12,8 +12,8 @@
var barHover = require('../bar/hover').hoverPoints;
var hoverLabelText = require('../../plots/cartesian/axes').hoverLabelText;
-module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
- var pts = barHover(pointData, xval, yval, hovermode);
+module.exports = function hoverPoints(gd, pointData, xval, yval, hovermode) {
+ var pts = barHover(gd, pointData, xval, yval, hovermode);
if(!pts) return;
diff --git a/src/traces/histogram2d/defaults.js b/src/traces/histogram2d/defaults.js
index 6ba52066c9a..fef730235e8 100644
--- a/src/traces/histogram2d/defaults.js
+++ b/src/traces/histogram2d/defaults.js
@@ -17,15 +17,15 @@ var colorscaleDefaults = require('../../components/colorscale/defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- handleSampleDefaults(traceIn, traceOut, coerce, layout);
+ handleSampleDefaults(gd, traceIn, traceOut, coerce, layout);
if(traceOut.visible === false) return;
- handleStyleDefaults(traceIn, traceOut, coerce, layout);
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
+ handleStyleDefaults(gd, traceIn, traceOut, coerce, layout);
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});
coerce('hovertemplate');
};
diff --git a/src/traces/histogram2d/hover.js b/src/traces/histogram2d/hover.js
index b2f67b2f4d4..2bbeb6f4775 100644
--- a/src/traces/histogram2d/hover.js
+++ b/src/traces/histogram2d/hover.js
@@ -12,8 +12,8 @@
var heatmapHover = require('../heatmap/hover');
var hoverLabelText = require('../../plots/cartesian/axes').hoverLabelText;
-module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLayer, contour) {
- var pts = heatmapHover(pointData, xval, yval, hovermode, hoverLayer, contour);
+module.exports = function hoverPoints(gd, pointData, xval, yval, hovermode, hoverLayer, contour) {
+ var pts = heatmapHover(gd, pointData, xval, yval, hovermode, hoverLayer, contour);
if(!pts) return;
diff --git a/src/traces/histogram2d/sample_defaults.js b/src/traces/histogram2d/sample_defaults.js
index 7936ddbab82..dec2fef0fe1 100644
--- a/src/traces/histogram2d/sample_defaults.js
+++ b/src/traces/histogram2d/sample_defaults.js
@@ -11,7 +11,7 @@
var Registry = require('../../registry');
var Lib = require('../../lib');
-module.exports = function handleSampleDefaults(traceIn, traceOut, coerce, layout) {
+module.exports = function handleSampleDefaults(gd, traceIn, traceOut, coerce, layout) {
var x = coerce('x');
var y = coerce('y');
var xlen = Lib.minRowLength(x);
@@ -28,7 +28,7 @@ module.exports = function handleSampleDefaults(traceIn, traceOut, coerce, layout
traceOut._length = Math.min(xlen, ylen);
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
- handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);
+ handleCalendarDefaults(gd, traceIn, traceOut, ['x', 'y'], layout);
// if marker.color is an array, we can use it in aggregation instead of z
var hasAggregationData = coerce('z') || coerce('marker.color');
diff --git a/src/traces/histogram2dcontour/defaults.js b/src/traces/histogram2dcontour/defaults.js
index fc3457777d7..3f2a7ae9464 100644
--- a/src/traces/histogram2dcontour/defaults.js
+++ b/src/traces/histogram2dcontour/defaults.js
@@ -17,7 +17,7 @@ var handleStyleDefaults = require('../contour/style_defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -26,10 +26,10 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
return Lib.coerce2(traceIn, traceOut, attributes, attr);
}
- handleSampleDefaults(traceIn, traceOut, coerce, layout);
+ handleSampleDefaults(gd, traceIn, traceOut, coerce, layout);
if(traceOut.visible === false) return;
- handleContoursDefaults(traceIn, traceOut, coerce, coerce2);
- handleStyleDefaults(traceIn, traceOut, coerce, layout);
+ handleContoursDefaults(gd, traceIn, traceOut, coerce, coerce2);
+ handleStyleDefaults(gd, traceIn, traceOut, coerce, layout);
coerce('hovertemplate');
};
diff --git a/src/traces/image/defaults.js b/src/traces/image/defaults.js
index 49612446e5d..4e64d39c0cc 100644
--- a/src/traces/image/defaults.js
+++ b/src/traces/image/defaults.js
@@ -12,7 +12,7 @@ var Lib = require('../../lib');
var attributes = require('./attributes');
var constants = require('./constants');
-module.exports = function supplyDefaults(traceIn, traceOut) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
diff --git a/src/traces/image/hover.js b/src/traces/image/hover.js
index 97c4bd3972d..7045d921247 100644
--- a/src/traces/image/hover.js
+++ b/src/traces/image/hover.js
@@ -12,7 +12,7 @@ var Fx = require('../../components/fx');
var Lib = require('../../lib');
var constants = require('./constants');
-module.exports = function hoverPoints(pointData, xval, yval) {
+module.exports = function hoverPoints(gd, pointData, xval, yval) {
var cd0 = pointData.cd[0];
var trace = cd0.trace;
var xa = pointData.xa;
diff --git a/src/traces/indicator/defaults.js b/src/traces/indicator/defaults.js
index 717f99984c8..db5ee1495a4 100644
--- a/src/traces/indicator/defaults.js
+++ b/src/traces/indicator/defaults.js
@@ -19,12 +19,12 @@ var handleTickValueDefaults = require('../../plots/cartesian/tick_value_defaults
var handleTickMarkDefaults = require('../../plots/cartesian/tick_mark_defaults');
var handleTickLabelDefaults = require('../../plots/cartesian/tick_label_defaults');
-function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- handleDomainDefaults(traceOut, layout, coerce);
+ handleDomainDefaults(gd, traceOut, layout, coerce);
// Mode
coerce('mode');
@@ -116,7 +116,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
coerceGauge('bar.thickness', defaultBarThickness);
// Gauge steps
- handleArrayContainerDefaults(gaugeIn, gaugeOut, {
+ handleArrayContainerDefaults(gd, gaugeIn, gaugeOut, {
name: 'steps',
handleItemDefaults: stepDefaults
});
@@ -135,9 +135,9 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
traceOut._range = coerceGaugeAxis('range', traceOut._range);
var opts = {outerTicks: true};
- handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear');
- handleTickLabelDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear', opts);
- handleTickMarkDefaults(axisIn, axisOut, coerceGaugeAxis, opts);
+ handleTickValueDefaults(gd, axisIn, axisOut, coerceGaugeAxis, 'linear');
+ handleTickLabelDefaults(gd, axisIn, axisOut, coerceGaugeAxis, 'linear', opts);
+ handleTickMarkDefaults(gd, axisIn, axisOut, coerceGaugeAxis, opts);
} else {
coerce('title.align', 'center');
coerce('align', 'center');
@@ -148,7 +148,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
traceOut._length = null;
}
-function stepDefaults(stepIn, stepOut) {
+function stepDefaults(gd, stepIn, stepOut) {
function coerce(attr, dflt) {
return Lib.coerce(stepIn, stepOut, attributes.gauge.steps, attr, dflt);
}
diff --git a/src/traces/indicator/plot.js b/src/traces/indicator/plot.js
index 96ef6de708b..6ca67ab2034 100644
--- a/src/traces/indicator/plot.js
+++ b/src/traces/indicator/plot.js
@@ -831,8 +831,8 @@ function mockAxis(gd, opts, zrange) {
return Lib.coerce(axisIn, axisOut, axisLayoutAttrs, attr, dflt);
}
- handleAxisDefaults(axisIn, axisOut, coerce, axisOptions, fullLayout);
- handleAxisPositionDefaults(axisIn, axisOut, coerce, axisOptions);
+ handleAxisDefaults(gd, axisIn, axisOut, coerce, axisOptions, fullLayout);
+ handleAxisPositionDefaults(gd, axisIn, axisOut, coerce, axisOptions);
return axisOut;
}
diff --git a/src/traces/isosurface/calc.js b/src/traces/isosurface/calc.js
index 5816a02f54a..a223f514b37 100644
--- a/src/traces/isosurface/calc.js
+++ b/src/traces/isosurface/calc.js
@@ -25,7 +25,7 @@ module.exports = function calc(gd, trace) {
trace._z = filter(trace.z, trace._len);
trace._value = filter(trace.value, trace._len);
- var grid = processGrid(trace);
+ var grid = processGrid(gd, trace);
trace._gridFill = grid.fill;
trace._Xs = grid.Xs;
trace._Ys = grid.Ys;
diff --git a/src/traces/isosurface/convert.js b/src/traces/isosurface/convert.js
index 33d1b637ab0..4beddad3fe5 100644
--- a/src/traces/isosurface/convert.js
+++ b/src/traces/isosurface/convert.js
@@ -77,7 +77,7 @@ proto.handlePick = function(selection) {
}
};
-proto.update = function(data) {
+proto.update = function(gd, data) {
var scene = this.scene;
var layout = scene.fullSceneLayout;
@@ -1036,13 +1036,13 @@ function generateIsoMeshes(data) {
return data;
}
-function createIsosurfaceTrace(scene, data) {
+function createIsosurfaceTrace(gd, scene, data) {
var gl = scene.glplot.gl;
var mesh = createMesh({gl: gl});
var result = new IsosurfaceTrace(scene, mesh, data.uid);
mesh._trace = result;
- result.update(data);
+ result.update(gd, data);
scene.glplot.add(mesh);
return result;
}
diff --git a/src/traces/isosurface/defaults.js b/src/traces/isosurface/defaults.js
index c8b9916c86e..69a0f068cda 100644
--- a/src/traces/isosurface/defaults.js
+++ b/src/traces/isosurface/defaults.js
@@ -13,15 +13,15 @@ var Registry = require('../../registry');
var attributes = require('./attributes');
var colorscaleDefaults = require('../../components/colorscale/defaults');
-function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce);
+ supplyIsoDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
}
-function supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce) {
+function supplyIsoDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce) {
var isomin = coerce('isomin');
var isomax = coerce('isomax');
@@ -49,7 +49,7 @@ function supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce) {
}
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
- handleCalendarDefaults(traceIn, traceOut, ['x', 'y', 'z'], layout);
+ handleCalendarDefaults(gd, traceIn, traceOut, ['x', 'y', 'z'], layout);
['x', 'y', 'z'].forEach(function(dim) {
var capDim = 'caps.' + dim;
@@ -103,7 +103,7 @@ function supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce) {
'opacity'
].forEach(function(x) { coerce(x); });
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});
// disable 1D transforms (for now)
traceOut._length = null;
diff --git a/src/traces/mesh3d/convert.js b/src/traces/mesh3d/convert.js
index 5b4417e6fad..4c69d8dc5ed 100644
--- a/src/traces/mesh3d/convert.js
+++ b/src/traces/mesh3d/convert.js
@@ -105,7 +105,7 @@ function hasValidIndices(list, numVertices) {
return true;
}
-proto.update = function(data) {
+proto.update = function(gd, data) {
var scene = this.scene;
var layout = scene.fullSceneLayout;
@@ -188,12 +188,12 @@ proto.dispose = function() {
this.mesh.dispose();
};
-function createMesh3DTrace(scene, data) {
+function createMesh3DTrace(gd, scene, data) {
var gl = scene.glplot.gl;
var mesh = createMesh({gl: gl});
var result = new Mesh3DTrace(scene, mesh, data.uid);
mesh._trace = result;
- result.update(data);
+ result.update(gd, data);
scene.glplot.add(mesh);
return result;
}
diff --git a/src/traces/mesh3d/defaults.js b/src/traces/mesh3d/defaults.js
index 19debf1d2b4..11b6b027c86 100644
--- a/src/traces/mesh3d/defaults.js
+++ b/src/traces/mesh3d/defaults.js
@@ -14,7 +14,7 @@ var Lib = require('../../lib');
var colorscaleDefaults = require('../../components/colorscale/defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -51,7 +51,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
}
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
- handleCalendarDefaults(traceIn, traceOut, ['x', 'y', 'z'], layout);
+ handleCalendarDefaults(gd, traceIn, traceOut, ['x', 'y', 'z'], layout);
// Coerce remaining properties
[
@@ -80,7 +80,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
if('intensity' in traceIn) {
coerce('intensity');
coerce('intensitymode');
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});
} else {
traceOut.showscale = false;
diff --git a/src/traces/ohlc/defaults.js b/src/traces/ohlc/defaults.js
index 78f22e790f0..f00358bae22 100644
--- a/src/traces/ohlc/defaults.js
+++ b/src/traces/ohlc/defaults.js
@@ -13,12 +13,12 @@ var Lib = require('../../lib');
var handleOHLC = require('./ohlc_defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len = handleOHLC(traceIn, traceOut, coerce, layout);
+ var len = handleOHLC(gd, traceIn, traceOut, coerce, layout);
if(!len) {
traceOut.visible = false;
return;
diff --git a/src/traces/ohlc/hover.js b/src/traces/ohlc/hover.js
index c11cfeec77b..440edafb643 100644
--- a/src/traces/ohlc/hover.js
+++ b/src/traces/ohlc/hover.js
@@ -20,7 +20,7 @@ var DIRSYMBOL = {
decreasing: delta.DECREASING.SYMBOL
};
-function hoverPoints(pointData, xval, yval, hovermode) {
+function hoverPoints(gd, pointData, xval, yval, hovermode) {
var cd = pointData.cd;
var trace = cd[0].trace;
@@ -28,7 +28,7 @@ function hoverPoints(pointData, xval, yval, hovermode) {
return hoverSplit(pointData, xval, yval, hovermode);
}
- return hoverOnPoints(pointData, xval, yval, hovermode);
+ return hoverOnPoints(gd, pointData, xval, yval, hovermode);
}
function getClosestPoint(pointData, xval, yval, hovermode) {
@@ -152,7 +152,7 @@ function hoverSplit(pointData, xval, yval, hovermode) {
return closeBoxData;
}
-function hoverOnPoints(pointData, xval, yval, hovermode) {
+function hoverOnPoints(gd, pointData, xval, yval, hovermode) {
var cd = pointData.cd;
var ya = pointData.ya;
var trace = cd[0].trace;
diff --git a/src/traces/ohlc/ohlc_defaults.js b/src/traces/ohlc/ohlc_defaults.js
index 27b98733f21..286eb4a72e4 100644
--- a/src/traces/ohlc/ohlc_defaults.js
+++ b/src/traces/ohlc/ohlc_defaults.js
@@ -11,7 +11,7 @@
var Registry = require('../../registry');
var Lib = require('../../lib');
-module.exports = function handleOHLC(traceIn, traceOut, coerce, layout) {
+module.exports = function handleOHLC(gd, traceIn, traceOut, coerce, layout) {
var x = coerce('x');
var open = coerce('open');
var high = coerce('high');
@@ -21,7 +21,7 @@ module.exports = function handleOHLC(traceIn, traceOut, coerce, layout) {
coerce('hoverlabel.split');
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
- handleCalendarDefaults(traceIn, traceOut, ['x'], layout);
+ handleCalendarDefaults(gd, traceIn, traceOut, ['x'], layout);
if(!(open && high && low && close)) return;
diff --git a/src/traces/parcats/defaults.js b/src/traces/parcats/defaults.js
index f9a6403be70..45b60ecb555 100644
--- a/src/traces/parcats/defaults.js
+++ b/src/traces/parcats/defaults.js
@@ -17,7 +17,7 @@ var handleArrayContainerDefaults = require('../../plots/array_container_defaults
var attributes = require('./attributes');
var mergeLength = require('../parcoords/merge_length');
-function handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce) {
+function handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce) {
coerce('line.shape');
coerce('line.hovertemplate');
@@ -25,7 +25,7 @@ function handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce) {
if(hasColorscale(traceIn, 'line') && Lib.isArrayOrTypedArray(lineColor)) {
if(lineColor.length) {
coerce('line.colorscale');
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'line.', cLetter: 'c'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: 'line.', cLetter: 'c'});
return lineColor.length;
} else {
traceOut.line.color = defaultColor;
@@ -34,7 +34,7 @@ function handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce) {
return Infinity;
}
-function dimensionDefaults(dimensionIn, dimensionOut) {
+function dimensionDefaults(gd, dimensionIn, dimensionOut) {
function coerce(attr, dflt) {
return Lib.coerce(dimensionIn, dimensionOut, attributes.dimensions, attr, dflt);
}
@@ -74,19 +74,19 @@ function dimensionDefaults(dimensionIn, dimensionOut) {
}
}
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var dimensions = handleArrayContainerDefaults(traceIn, traceOut, {
+ var dimensions = handleArrayContainerDefaults(gd, traceIn, traceOut, {
name: 'dimensions',
handleItemDefaults: dimensionDefaults
});
- var len = handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);
+ var len = handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
- handleDomainDefaults(traceOut, layout, coerce);
+ handleDomainDefaults(gd, traceOut, layout, coerce);
if(!Array.isArray(dimensions) || !dimensions.length) {
traceOut.visible = false;
diff --git a/src/traces/parcoords/defaults.js b/src/traces/parcoords/defaults.js
index 33e769d2a86..c41acb2f43f 100644
--- a/src/traces/parcoords/defaults.js
+++ b/src/traces/parcoords/defaults.js
@@ -20,13 +20,13 @@ var axisBrush = require('./axisbrush');
var maxDimensionCount = require('./constants').maxDimensionCount;
var mergeLength = require('./merge_length');
-function handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce) {
+function handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce) {
var lineColor = coerce('line.color', defaultColor);
if(hasColorscale(traceIn, 'line') && Lib.isArrayOrTypedArray(lineColor)) {
if(lineColor.length) {
coerce('line.colorscale');
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'line.', cLetter: 'c'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: 'line.', cLetter: 'c'});
// TODO: I think it would be better to keep showing lines beyond the last line color
// but I'm not sure what color to give these lines - probably black or white
// depending on the background color?
@@ -38,7 +38,7 @@ function handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce) {
return Infinity;
}
-function dimensionDefaults(dimensionIn, dimensionOut, parentOut, opts) {
+function dimensionDefaults(gd, dimensionIn, dimensionOut, parentOut, opts) {
function coerce(attr, dflt) {
return Lib.coerce(dimensionIn, dimensionOut, attributes.dimensions, attr, dflt);
}
@@ -74,26 +74,26 @@ function dimensionDefaults(dimensionIn, dimensionOut, parentOut, opts) {
}
}
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
var dimensionsIn = traceIn.dimensions;
if(Array.isArray(dimensionsIn) && dimensionsIn.length > maxDimensionCount) {
- Lib.log('parcoords traces support up to ' + maxDimensionCount + ' dimensions at the moment');
+ Lib.log(gd, 'parcoords traces support up to ' + maxDimensionCount + ' dimensions at the moment');
dimensionsIn.splice(maxDimensionCount);
}
- var dimensions = handleArrayContainerDefaults(traceIn, traceOut, {
+ var dimensions = handleArrayContainerDefaults(gd, traceIn, traceOut, {
name: 'dimensions',
layout: layout,
handleItemDefaults: dimensionDefaults
});
- var len = handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);
+ var len = handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
- handleDomainDefaults(traceOut, layout, coerce);
+ handleDomainDefaults(gd, traceOut, layout, coerce);
if(!Array.isArray(dimensions) || !dimensions.length) {
traceOut.visible = false;
diff --git a/src/traces/pie/defaults.js b/src/traces/pie/defaults.js
index 174b9964ec3..e4616d3054f 100644
--- a/src/traces/pie/defaults.js
+++ b/src/traces/pie/defaults.js
@@ -43,7 +43,7 @@ function handleLabelsAndValues(labels, values) {
};
}
-function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -107,7 +107,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
}
}
- handleDomainDefaults(traceOut, layout, coerce);
+ handleDomainDefaults(gd, traceOut, layout, coerce);
var hole = coerce('hole');
var title = coerce('title.text');
diff --git a/src/traces/pie/layout_defaults.js b/src/traces/pie/layout_defaults.js
index 1bc1b4328f9..f32d94be0c6 100644
--- a/src/traces/pie/layout_defaults.js
+++ b/src/traces/pie/layout_defaults.js
@@ -12,7 +12,7 @@ var Lib = require('../../lib');
var layoutAttributes = require('./layout_attributes');
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut) {
function coerce(attr, dflt) {
return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);
}
diff --git a/src/traces/pie/plot.js b/src/traces/pie/plot.js
index 9dd866c04f0..c352853ca82 100644
--- a/src/traces/pie/plot.js
+++ b/src/traces/pie/plot.js
@@ -1144,7 +1144,7 @@ function formatSliceLabel(gd, pt, cd0) {
var obj = makeTemplateVariables(pt);
var ptTx = helpers.getFirstFilled(trace.text, pt.pts);
if(isValidTextValue(ptTx) || ptTx === '') obj.text = ptTx;
- pt.text = Lib.texttemplateString(txt, obj, gd._fullLayout._d3locale, obj, trace._meta || {});
+ pt.text = Lib.texttemplateString(gd, txt, obj, gd._fullLayout._d3locale, obj, trace._meta || {});
}
}
}
diff --git a/src/traces/pointcloud/defaults.js b/src/traces/pointcloud/defaults.js
index 7c16d45ca14..a76df8e2851 100644
--- a/src/traces/pointcloud/defaults.js
+++ b/src/traces/pointcloud/defaults.js
@@ -13,7 +13,7 @@ var Lib = require('../../lib');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
diff --git a/src/traces/sankey/calc.js b/src/traces/sankey/calc.js
index 84de346cdf8..81ace77fef0 100644
--- a/src/traces/sankey/calc.js
+++ b/src/traces/sankey/calc.js
@@ -16,7 +16,7 @@ var isArrayOrTypedArray = Lib.isArrayOrTypedArray;
var isIndex = Lib.isIndex;
var Colorscale = require('../../components/colorscale');
-function convertToD3Sankey(trace) {
+function convertToD3Sankey(gd, trace) {
var nodeSpec = trace.node;
var linkSpec = trace.link;
@@ -54,7 +54,7 @@ function convertToD3Sankey(trace) {
var nodeIndex = group[j];
var groupIndex = nodeCount + i;
if(groupLookup.hasOwnProperty(nodeIndex)) {
- Lib.warn('Node ' + nodeIndex + ' is already part of a group.');
+ Lib.warn(gd, 'Node ' + nodeIndex + ' is already part of a group.');
} else {
groupLookup[nodeIndex] = groupIndex;
}
@@ -173,7 +173,7 @@ function circularityPresent(nodeLen, sources, targets) {
}
module.exports = function calc(gd, trace) {
- var result = convertToD3Sankey(trace);
+ var result = convertToD3Sankey(gd, trace);
return wrap({
circular: result.circular,
diff --git a/src/traces/sankey/defaults.js b/src/traces/sankey/defaults.js
index 9a73591eb12..854a6676e8e 100644
--- a/src/traces/sankey/defaults.js
+++ b/src/traces/sankey/defaults.js
@@ -17,7 +17,7 @@ var handleHoverLabelDefaults = require('../../components/fx/hoverlabel_defaults'
var Template = require('../../plot_api/plot_template');
var handleArrayContainerDefaults = require('../../plots/array_container_defaults');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -40,7 +40,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerceNode('line.color');
coerceNode('line.width');
coerceNode('hoverinfo', traceIn.hoverinfo);
- handleHoverLabelDefaults(nodeIn, nodeOut, coerceNode, hoverlabelDefault);
+ handleHoverLabelDefaults(gd, nodeIn, nodeOut, coerceNode, hoverlabelDefault);
coerceNode('hovertemplate');
var colors = layout.colorway;
@@ -66,7 +66,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerceLink('line.color');
coerceLink('line.width');
coerceLink('hoverinfo', traceIn.hoverinfo);
- handleHoverLabelDefaults(linkIn, linkOut, coerceLink, hoverlabelDefault);
+ handleHoverLabelDefaults(gd, linkIn, linkOut, coerceLink, hoverlabelDefault);
coerceLink('hovertemplate');
var defaultLinkColor = tinycolor(layout.paper_bgcolor).getLuminance() < 0.333 ?
@@ -76,12 +76,12 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerceLink('color', Lib.repeat(defaultLinkColor, linkOut.value.length));
coerceLink('customdata');
- handleArrayContainerDefaults(linkIn, linkOut, {
+ handleArrayContainerDefaults(gd, linkIn, linkOut, {
name: 'colorscales',
handleItemDefaults: concentrationscalesDefaults
});
- handleDomainDefaults(traceOut, layout, coerce);
+ handleDomainDefaults(gd, traceOut, layout, coerce);
coerce('orientation');
coerce('valueformat');
@@ -100,7 +100,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
traceOut._length = null;
};
-function concentrationscalesDefaults(In, Out) {
+function concentrationscalesDefaults(gd, In, Out) {
function coerce(attr, dflt) {
return Lib.coerce(In, Out, attributes.link.colorscales, attr, dflt);
}
diff --git a/src/traces/sankey/render.js b/src/traces/sankey/render.js
index 031d31ebdb1..13b120c7c60 100644
--- a/src/traces/sankey/render.js
+++ b/src/traces/sankey/render.js
@@ -27,7 +27,7 @@ var Registry = require('../../registry');
// view models
-function sankeyModel(layout, d, traceIndex) {
+function sankeyModel(gd, layout, d, traceIndex) {
var calcData = unwrap(d);
var trace = calcData.trace;
var domain = trace.domain;
@@ -66,7 +66,7 @@ function sankeyModel(layout, d, traceIndex) {
var graph = sankey();
if(sankey.nodePadding() < nodePad) {
- Lib.warn('node.pad was reduced to ', sankey.nodePadding(), ' to fit within the figure.');
+ Lib.warn(gd, 'node.pad was reduced to ', sankey.nodePadding(), ' to fit within the figure.');
}
// Counters for nested loops
@@ -465,7 +465,7 @@ function linkPath() {
return path;
}
-function nodeModel(d, n) {
+function nodeModel(gd, d, n) {
var tc = tinycolor(n.color);
var zoneThicknessPad = c.nodePadAcross;
var zoneLengthPad = d.nodePad / 2;
@@ -819,7 +819,7 @@ module.exports = function(gd, svg, calcData, layout, callbacks) {
var styledData = calcData
.filter(function(d) {return unwrap(d).trace.visible;})
- .map(sankeyModel.bind(null, layout));
+ .map(sankeyModel.bind(null, gd, layout));
var sankey = svg.selectAll('.' + c.cn.sankey)
.data(styledData, keyFun);
@@ -932,7 +932,7 @@ module.exports = function(gd, svg, calcData, layout, callbacks) {
var nodes = d.graph.nodes;
persistOriginalPlace(nodes);
return nodes
- .map(nodeModel.bind(null, d));
+ .map(nodeModel.bind(null, gd, d));
}, keyFun);
sankeyNode.enter()
diff --git a/src/traces/scatter/cross_trace_defaults.js b/src/traces/scatter/cross_trace_defaults.js
index 398f9c8cf34..2c7d0dfa57d 100644
--- a/src/traces/scatter/cross_trace_defaults.js
+++ b/src/traces/scatter/cross_trace_defaults.js
@@ -11,7 +11,7 @@
// remove opacity for any trace that has a fill or is filled to
-module.exports = function crossTraceDefaults(fullData) {
+module.exports = function crossTraceDefaults(gd, fullData) {
for(var i = 0; i < fullData.length; i++) {
var tracei = fullData[i];
if(tracei.type !== 'scatter') continue;
diff --git a/src/traces/scatter/defaults.js b/src/traces/scatter/defaults.js
index 08758d76181..99b0b5d7f19 100644
--- a/src/traces/scatter/defaults.js
+++ b/src/traces/scatter/defaults.js
@@ -22,17 +22,17 @@ var handleLineShapeDefaults = require('./line_shape_defaults');
var handleTextDefaults = require('./text_defaults');
var handleFillColorDefaults = require('./fillcolor_defaults');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len = handleXYDefaults(traceIn, traceOut, layout, coerce);
+ var len = handleXYDefaults(gd, traceIn, traceOut, layout, coerce);
if(!len) traceOut.visible = false;
if(!traceOut.visible) return;
- var stackGroupOpts = handleStackDefaults(traceIn, traceOut, layout, coerce);
+ var stackGroupOpts = handleStackDefaults(gd, traceIn, traceOut, layout, coerce);
var defaultMode = !stackGroupOpts && (len < constants.PTS_LINESONLY) ?
'lines+markers' : 'lines';
@@ -41,19 +41,19 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('mode', defaultMode);
if(subTypes.hasLines(traceOut)) {
- handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);
- handleLineShapeDefaults(traceIn, traceOut, coerce);
+ handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
+ handleLineShapeDefaults(gd, traceIn, traceOut, coerce);
coerce('connectgaps');
coerce('line.simplify');
}
if(subTypes.hasMarkers(traceOut)) {
- handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});
+ handleMarkerDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});
}
if(subTypes.hasText(traceOut)) {
coerce('texttemplate');
- handleTextDefaults(traceIn, traceOut, layout, coerce);
+ handleTextDefaults(gd, traceIn, traceOut, layout, coerce);
}
var dfltHoverOn = [];
@@ -68,8 +68,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
// We handle that case in some hacky code inside handleStackDefaults.
coerce('fill', stackGroupOpts ? stackGroupOpts.fillDflt : 'none');
if(traceOut.fill !== 'none') {
- handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);
- if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);
+ handleFillColorDefaults(gd, traceIn, traceOut, defaultColor, coerce);
+ if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(gd, traceIn, traceOut, coerce);
}
var lineColor = (traceOut.line || {}).color;
@@ -81,8 +81,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('hoveron', dfltHoverOn.join('+') || 'points');
if(traceOut.hoveron !== 'fills') coerce('hovertemplate');
var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');
- errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'});
- errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'});
+ errorBarsSupplyDefaults(gd, traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'});
+ errorBarsSupplyDefaults(gd, traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'});
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
};
diff --git a/src/traces/scatter/fillcolor_defaults.js b/src/traces/scatter/fillcolor_defaults.js
index 01f39fad5ef..2716d1a2de9 100644
--- a/src/traces/scatter/fillcolor_defaults.js
+++ b/src/traces/scatter/fillcolor_defaults.js
@@ -12,7 +12,7 @@
var Color = require('../../components/color');
var isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;
-module.exports = function fillColorDefaults(traceIn, traceOut, defaultColor, coerce) {
+module.exports = function fillColorDefaults(gd, traceIn, traceOut, defaultColor, coerce) {
var inheritColorFromMarker = false;
if(traceOut.marker) {
diff --git a/src/traces/scatter/hover.js b/src/traces/scatter/hover.js
index b481dc3ca19..62dc73ce112 100644
--- a/src/traces/scatter/hover.js
+++ b/src/traces/scatter/hover.js
@@ -15,7 +15,7 @@ var getTraceColor = require('./get_trace_color');
var Color = require('../../components/color');
var fillText = Lib.fillText;
-module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
+module.exports = function hoverPoints(gd, pointData, xval, yval, hovermode) {
var cd = pointData.cd;
var trace = cd[0].trace;
var xa = pointData.xa;
diff --git a/src/traces/scatter/line_defaults.js b/src/traces/scatter/line_defaults.js
index b0da768254a..7a8f12f82dc 100644
--- a/src/traces/scatter/line_defaults.js
+++ b/src/traces/scatter/line_defaults.js
@@ -12,13 +12,13 @@ var isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray;
var hasColorscale = require('../../components/colorscale/helpers').hasColorscale;
var colorscaleDefaults = require('../../components/colorscale/defaults');
-module.exports = function lineDefaults(traceIn, traceOut, defaultColor, layout, coerce, opts) {
+module.exports = function lineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce, opts) {
var markerColor = (traceIn.marker || {}).color;
coerce('line.color', defaultColor);
if(hasColorscale(traceIn, 'line')) {
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'line.', cLetter: 'c'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: 'line.', cLetter: 'c'});
} else {
var lineColorDflt = (isArrayOrTypedArray(markerColor) ? false : markerColor) || defaultColor;
coerce('line.color', lineColorDflt);
diff --git a/src/traces/scatter/line_shape_defaults.js b/src/traces/scatter/line_shape_defaults.js
index 04f7567a024..7269890ddee 100644
--- a/src/traces/scatter/line_shape_defaults.js
+++ b/src/traces/scatter/line_shape_defaults.js
@@ -11,7 +11,7 @@
// common to 'scatter' and 'scatterternary'
-module.exports = function handleLineShapeDefaults(traceIn, traceOut, coerce) {
+module.exports = function handleLineShapeDefaults(gd, traceIn, traceOut, coerce) {
var shape = coerce('line.shape');
if(shape === 'spline') coerce('line.smoothing');
};
diff --git a/src/traces/scatter/marker_defaults.js b/src/traces/scatter/marker_defaults.js
index 56783342de5..b6010de9375 100644
--- a/src/traces/scatter/marker_defaults.js
+++ b/src/traces/scatter/marker_defaults.js
@@ -20,7 +20,7 @@ var subTypes = require('./subtypes');
* gradient: caller supports gradients
* noSelect: caller does not support selected/unselected attribute containers
*/
-module.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout, coerce, opts) {
+module.exports = function markerDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce, opts) {
var isBubble = subTypes.isBubble(traceIn);
var lineColor = (traceIn.line || {}).color;
var defaultMLC;
@@ -36,7 +36,7 @@ module.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout
coerce('marker.color', defaultColor);
if(hasColorscale(traceIn, 'marker')) {
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});
}
if(!opts.noSelect) {
@@ -58,7 +58,7 @@ module.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout
coerce('marker.line.color', defaultMLC);
if(hasColorscale(traceIn, 'marker.line')) {
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.line.', cLetter: 'c'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: 'marker.line.', cLetter: 'c'});
}
coerce('marker.line.width', isBubble ? 1 : 0);
diff --git a/src/traces/scatter/stack_defaults.js b/src/traces/scatter/stack_defaults.js
index 409649597fc..e6c63f234cf 100644
--- a/src/traces/scatter/stack_defaults.js
+++ b/src/traces/scatter/stack_defaults.js
@@ -10,7 +10,7 @@
var perStackAttrs = ['orientation', 'groupnorm', 'stackgaps'];
-module.exports = function handleStackDefaults(traceIn, traceOut, layout, coerce) {
+module.exports = function handleStackDefaults(gd, traceIn, traceOut, layout, coerce) {
var stackOpts = layout._scatterStackOpts;
var stackGroup = coerce('stackgroup');
diff --git a/src/traces/scatter/text_defaults.js b/src/traces/scatter/text_defaults.js
index 55e36522784..384baa5b5b0 100644
--- a/src/traces/scatter/text_defaults.js
+++ b/src/traces/scatter/text_defaults.js
@@ -15,7 +15,7 @@ var Lib = require('../../lib');
* opts: object of flags to control features not all text users support
* noSelect: caller does not support selected/unselected attribute containers
*/
-module.exports = function(traceIn, traceOut, layout, coerce, opts) {
+module.exports = function handleTextDefaults(gd, traceIn, traceOut, layout, coerce, opts) {
opts = opts || {};
coerce('textposition');
diff --git a/src/traces/scatter/xy_defaults.js b/src/traces/scatter/xy_defaults.js
index 5c8f7ace4ef..bd745126394 100644
--- a/src/traces/scatter/xy_defaults.js
+++ b/src/traces/scatter/xy_defaults.js
@@ -11,13 +11,13 @@
var Lib = require('../../lib');
var Registry = require('../../registry');
-module.exports = function handleXYDefaults(traceIn, traceOut, layout, coerce) {
+module.exports = function handleXYDefaults(gd, traceIn, traceOut, layout, coerce) {
var x = coerce('x');
var y = coerce('y');
var len;
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
- handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);
+ handleCalendarDefaults(gd, traceIn, traceOut, ['x', 'y'], layout);
if(x) {
var xlen = Lib.minRowLength(x);
diff --git a/src/traces/scatter3d/calc_errors.js b/src/traces/scatter3d/calc_errors.js
index a655437f2e5..6f8bf69f936 100644
--- a/src/traces/scatter3d/calc_errors.js
+++ b/src/traces/scatter3d/calc_errors.js
@@ -10,7 +10,7 @@
var Registry = require('../../registry');
-function calculateAxisErrors(data, params, scaleFactor, axis) {
+function calculateAxisErrors(gd, data, params, scaleFactor, axis) {
if(!params || !params.visible) return null;
var computeError = Registry.getComponentMethod('errorbars', 'makeComputeError')(params);
@@ -53,11 +53,11 @@ function dataLength(array) {
return 0;
}
-function calculateErrors(data, scaleFactor, sceneLayout) {
+function calculateErrors(gd, data, scaleFactor, sceneLayout) {
var errors = [
- calculateAxisErrors(data.x, data.error_x, scaleFactor[0], sceneLayout.xaxis),
- calculateAxisErrors(data.y, data.error_y, scaleFactor[1], sceneLayout.yaxis),
- calculateAxisErrors(data.z, data.error_z, scaleFactor[2], sceneLayout.zaxis)
+ calculateAxisErrors(gd, data.x, data.error_x, scaleFactor[0], sceneLayout.xaxis),
+ calculateAxisErrors(gd, data.y, data.error_y, scaleFactor[1], sceneLayout.yaxis),
+ calculateAxisErrors(gd, data.z, data.error_z, scaleFactor[2], sceneLayout.zaxis)
];
var n = dataLength(errors);
diff --git a/src/traces/scatter3d/convert.js b/src/traces/scatter3d/convert.js
index a5ab89ceef5..067d1d431ca 100644
--- a/src/traces/scatter3d/convert.js
+++ b/src/traces/scatter3d/convert.js
@@ -205,7 +205,7 @@ function formatParam(paramIn, len, calculate, dflt, extraFn) {
}
-function convertPlotlyOptions(scene, data) {
+function convertPlotlyOptions(gd, scene, data) {
var points = [];
var sceneLayout = scene.fullSceneLayout;
var scaleFactor = scene.dataScale;
@@ -270,7 +270,7 @@ function convertPlotlyOptions(scene, data) {
var pointValues = {};
appendArrayPointValue(pointValues, data, i);
var meta = data._meta || {};
- text[i] = Lib.texttemplateString(txt(i), labels, d3locale, pointValues, d, meta);
+ text[i] = Lib.texttemplateString(gd, txt(i), labels, d3locale, pointValues, d, meta);
}
}
@@ -318,7 +318,7 @@ function convertPlotlyOptions(scene, data) {
}
}
- params.errorBounds = calculateError(data, scaleFactor, sceneLayout);
+ params.errorBounds = calculateError(gd, data, scaleFactor, sceneLayout);
var errorParams = calculateErrorParams([data.error_x, data.error_y, data.error_z]);
params.errorColor = errorParams.color;
@@ -345,7 +345,7 @@ function arrayToColor(color) {
return null;
}
-proto.update = function(data) {
+proto.update = function(gd, data) {
var gl = this.scene.glplot.gl;
var lineOptions;
var scatterOptions;
@@ -357,7 +357,7 @@ proto.update = function(data) {
this.data = data;
// Run data conversion
- var options = convertPlotlyOptions(this.scene, data);
+ var options = convertPlotlyOptions(gd, this.scene, data);
if('mode' in options) {
this.mode = options.mode;
@@ -531,9 +531,9 @@ proto.dispose = function() {
}
};
-function createLineWithMarkers(scene, data) {
+function createLineWithMarkers(gd, scene, data) {
var plot = new LineWithMarkers(scene, data.uid);
- plot.update(data);
+ plot.update(gd, data);
return plot;
}
diff --git a/src/traces/scatter3d/defaults.js b/src/traces/scatter3d/defaults.js
index 0c1b1cf8274..b3f56f41561 100644
--- a/src/traces/scatter3d/defaults.js
+++ b/src/traces/scatter3d/defaults.js
@@ -19,12 +19,12 @@ var handleTextDefaults = require('../scatter/text_defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len = handleXYZDefaults(traceIn, traceOut, coerce, layout);
+ var len = handleXYZDefaults(gd, traceIn, traceOut, coerce, layout);
if(!len) {
traceOut.visible = false;
return;
@@ -37,16 +37,16 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
if(subTypes.hasLines(traceOut)) {
coerce('connectgaps');
- handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);
+ handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
}
if(subTypes.hasMarkers(traceOut)) {
- handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {noSelect: true});
+ handleMarkerDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce, {noSelect: true});
}
if(subTypes.hasText(traceOut)) {
coerce('texttemplate');
- handleTextDefaults(traceIn, traceOut, layout, coerce, {noSelect: true});
+ handleTextDefaults(gd, traceIn, traceOut, layout, coerce, {noSelect: true});
}
var lineColor = (traceOut.line || {}).color;
@@ -63,19 +63,19 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
}
var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');
- errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'z'});
- errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y', inherit: 'z'});
- errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'z'});
+ errorBarsSupplyDefaults(gd, traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'z'});
+ errorBarsSupplyDefaults(gd, traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y', inherit: 'z'});
+ errorBarsSupplyDefaults(gd, traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'z'});
};
-function handleXYZDefaults(traceIn, traceOut, coerce, layout) {
+function handleXYZDefaults(gd, traceIn, traceOut, coerce, layout) {
var len = 0;
var x = coerce('x');
var y = coerce('y');
var z = coerce('z');
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
- handleCalendarDefaults(traceIn, traceOut, ['x', 'y', 'z'], layout);
+ handleCalendarDefaults(gd, traceIn, traceOut, ['x', 'y', 'z'], layout);
if(x && y && z) {
// TODO: what happens if one is missing?
diff --git a/src/traces/scattercarpet/defaults.js b/src/traces/scattercarpet/defaults.js
index 0b7bab1a4f2..2ee6d469e0b 100644
--- a/src/traces/scattercarpet/defaults.js
+++ b/src/traces/scattercarpet/defaults.js
@@ -21,7 +21,7 @@ var handleFillColorDefaults = require('../scatter/fillcolor_defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -51,17 +51,17 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('mode', defaultMode);
if(subTypes.hasLines(traceOut)) {
- handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);
- handleLineShapeDefaults(traceIn, traceOut, coerce);
+ handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
+ handleLineShapeDefaults(gd, traceIn, traceOut, coerce);
coerce('connectgaps');
}
if(subTypes.hasMarkers(traceOut)) {
- handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});
+ handleMarkerDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});
}
if(subTypes.hasText(traceOut)) {
- handleTextDefaults(traceIn, traceOut, layout, coerce);
+ handleTextDefaults(gd, traceIn, traceOut, layout, coerce);
}
var dfltHoverOn = [];
@@ -73,8 +73,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('fill');
if(traceOut.fill !== 'none') {
- handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);
- if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);
+ handleFillColorDefaults(gd, traceIn, traceOut, defaultColor, coerce);
+ if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(gd, traceIn, traceOut, coerce);
}
if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {
diff --git a/src/traces/scattercarpet/hover.js b/src/traces/scattercarpet/hover.js
index 37286244baa..91903f187fa 100644
--- a/src/traces/scattercarpet/hover.js
+++ b/src/traces/scattercarpet/hover.js
@@ -11,8 +11,8 @@
var scatterHover = require('../scatter/hover');
var fillText = require('../../lib').fillText;
-module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
- var scatterPointData = scatterHover(pointData, xval, yval, hovermode);
+module.exports = function hoverPoints(gd, pointData, xval, yval, hovermode) {
+ var scatterPointData = scatterHover(gd, pointData, xval, yval, hovermode);
if(!scatterPointData || scatterPointData[0].index === false) return;
var newPointData = scatterPointData[0];
diff --git a/src/traces/scattergeo/defaults.js b/src/traces/scattergeo/defaults.js
index 8c3cb4969f1..10fd2c78aef 100644
--- a/src/traces/scattergeo/defaults.js
+++ b/src/traces/scattergeo/defaults.js
@@ -18,7 +18,7 @@ var handleFillColorDefaults = require('../scatter/fillcolor_defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -59,22 +59,22 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('mode');
if(subTypes.hasLines(traceOut)) {
- handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);
+ handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
coerce('connectgaps');
}
if(subTypes.hasMarkers(traceOut)) {
- handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});
+ handleMarkerDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});
}
if(subTypes.hasText(traceOut)) {
coerce('texttemplate');
- handleTextDefaults(traceIn, traceOut, layout, coerce);
+ handleTextDefaults(gd, traceIn, traceOut, layout, coerce);
}
coerce('fill');
if(traceOut.fill !== 'none') {
- handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);
+ handleFillColorDefaults(gd, traceIn, traceOut, defaultColor, coerce);
}
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
diff --git a/src/traces/scattergeo/hover.js b/src/traces/scattergeo/hover.js
index fb0c1345da5..c1dde328d17 100644
--- a/src/traces/scattergeo/hover.js
+++ b/src/traces/scattergeo/hover.js
@@ -15,7 +15,7 @@ var getTraceColor = require('../scatter/get_trace_color');
var fillText = require('../../lib').fillText;
var attributes = require('./attributes');
-module.exports = function hoverPoints(pointData, xval, yval) {
+module.exports = function hoverPoints(gd, pointData, xval, yval) {
var cd = pointData.cd;
var trace = cd[0].trace;
var xa = pointData.xa;
diff --git a/src/traces/scattergl/convert.js b/src/traces/scattergl/convert.js
index bed3fa3ca79..786a6c8970b 100644
--- a/src/traces/scattergl/convert.js
+++ b/src/traces/scattergl/convert.js
@@ -132,7 +132,7 @@ function convertTextStyle(gd, trace) {
var pointValues = {};
appendArrayPointValue(pointValues, trace, i);
var meta = trace._meta || {};
- optsOut.text.push(Lib.texttemplateString(txt(i), labels, d3locale, pointValues, d, meta));
+ optsOut.text.push(Lib.texttemplateString(gd, txt(i), labels, d3locale, pointValues, d, meta));
}
} else {
if(Array.isArray(trace.text) && trace.text.length < count) {
diff --git a/src/traces/scattergl/defaults.js b/src/traces/scattergl/defaults.js
index a30becb09ee..ab9d544163e 100644
--- a/src/traces/scattergl/defaults.js
+++ b/src/traces/scattergl/defaults.js
@@ -21,7 +21,7 @@ var handleLineDefaults = require('../scatter/line_defaults');
var handleFillColorDefaults = require('../scatter/fillcolor_defaults');
var handleTextDefaults = require('../scatter/text_defaults');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -29,7 +29,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
var isOpen = traceIn.marker ? helpers.isOpenSymbol(traceIn.marker.symbol) : false;
var isBubble = subTypes.isBubble(traceIn);
- var len = handleXYDefaults(traceIn, traceOut, layout, coerce);
+ var len = handleXYDefaults(gd, traceIn, traceOut, layout, coerce);
if(!len) {
traceOut.visible = false;
return;
@@ -43,18 +43,18 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
if(subTypes.hasLines(traceOut)) {
coerce('connectgaps');
- handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);
+ handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
coerce('line.shape');
}
if(subTypes.hasMarkers(traceOut)) {
- handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce);
+ handleMarkerDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
coerce('marker.line.width', isOpen || isBubble ? 1 : 0);
}
if(subTypes.hasText(traceOut)) {
coerce('texttemplate');
- handleTextDefaults(traceIn, traceOut, layout, coerce);
+ handleTextDefaults(gd, traceIn, traceOut, layout, coerce);
}
var lineColor = (traceOut.line || {}).color;
@@ -62,12 +62,12 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('fill');
if(traceOut.fill !== 'none') {
- handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);
+ handleFillColorDefaults(gd, traceIn, traceOut, defaultColor, coerce);
}
var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');
- errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'});
- errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'});
+ errorBarsSupplyDefaults(gd, traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'});
+ errorBarsSupplyDefaults(gd, traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'});
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
};
diff --git a/src/traces/scattergl/hover.js b/src/traces/scattergl/hover.js
index 6e7c03a947c..9d9cc6566c7 100644
--- a/src/traces/scattergl/hover.js
+++ b/src/traces/scattergl/hover.js
@@ -12,7 +12,7 @@ var Registry = require('../../registry');
var Lib = require('../../lib');
var getTraceColor = require('../scatter/get_trace_color');
-function hoverPoints(pointData, xval, yval, hovermode) {
+function hoverPoints(gd, pointData, xval, yval, hovermode) {
var cd = pointData.cd;
var stash = cd[0].t;
var trace = cd[0].trace;
@@ -84,10 +84,10 @@ function hoverPoints(pointData, xval, yval, hovermode) {
if(id === undefined) return [pointData];
- return [calcHover(pointData, x, y, trace)];
+ return [calcHover(gd, pointData, x, y, trace)];
}
-function calcHover(pointData, x, y, trace) {
+function calcHover(gd, pointData, x, y, trace) {
var xa = pointData.xa;
var ya = pointData.ya;
var minDist = pointData.distance;
diff --git a/src/traces/scattermapbox/convert.js b/src/traces/scattermapbox/convert.js
index 0362d96a07c..962364c0fca 100644
--- a/src/traces/scattermapbox/convert.js
+++ b/src/traces/scattermapbox/convert.js
@@ -283,7 +283,7 @@ function makeSymbolGeoJSON(calcTrace, gd) {
var pointValues = {};
appendArrayPointValue(pointValues, trace, calcPt.i);
var meta = trace._meta || {};
- text = Lib.texttemplateString(tt, labels, fullLayout._d3locale, pointValues, calcPt, meta);
+ text = Lib.texttemplateString(gd, tt, labels, fullLayout._d3locale, pointValues, calcPt, meta);
} else {
text = fillText(i);
}
diff --git a/src/traces/scattermapbox/defaults.js b/src/traces/scattermapbox/defaults.js
index 21842d9abc7..d6e8a81e759 100644
--- a/src/traces/scattermapbox/defaults.js
+++ b/src/traces/scattermapbox/defaults.js
@@ -17,12 +17,12 @@ var handleTextDefaults = require('../scatter/text_defaults');
var handleFillColorDefaults = require('../scatter/fillcolor_defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len = handleLonLatDefaults(traceIn, traceOut, coerce);
+ var len = handleLonLatDefaults(gd, traceIn, traceOut, coerce);
if(!len) {
traceOut.visible = false;
return;
@@ -36,12 +36,12 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('below');
if(subTypes.hasLines(traceOut)) {
- handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, {noDash: true});
+ handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce, {noDash: true});
coerce('connectgaps');
}
if(subTypes.hasMarkers(traceOut)) {
- handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {noLine: true});
+ handleMarkerDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce, {noLine: true});
coerce('marker.allowoverlap');
coerce('marker.angle');
@@ -55,18 +55,18 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
}
if(subTypes.hasText(traceOut)) {
- handleTextDefaults(traceIn, traceOut, layout, coerce, {noSelect: true});
+ handleTextDefaults(gd, traceIn, traceOut, layout, coerce, {noSelect: true});
}
coerce('fill');
if(traceOut.fill !== 'none') {
- handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);
+ handleFillColorDefaults(gd, traceIn, traceOut, defaultColor, coerce);
}
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
};
-function handleLonLatDefaults(traceIn, traceOut, coerce) {
+function handleLonLatDefaults(gd, traceIn, traceOut, coerce) {
var lon = coerce('lon') || [];
var lat = coerce('lat') || [];
var len = Math.min(lon.length, lat.length);
diff --git a/src/traces/scattermapbox/hover.js b/src/traces/scattermapbox/hover.js
index d1bd61d3a3e..54b24fa83b4 100644
--- a/src/traces/scattermapbox/hover.js
+++ b/src/traces/scattermapbox/hover.js
@@ -15,7 +15,7 @@ var getTraceColor = require('../scatter/get_trace_color');
var fillText = Lib.fillText;
var BADNUM = require('../../constants/numerical').BADNUM;
-module.exports = function hoverPoints(pointData, xval, yval) {
+module.exports = function hoverPoints(gd, pointData, xval, yval) {
var cd = pointData.cd;
var trace = cd[0].trace;
var xa = pointData.xa;
diff --git a/src/traces/scatterpolar/defaults.js b/src/traces/scatterpolar/defaults.js
index 2de46f9b8cc..1e05520c428 100644
--- a/src/traces/scatterpolar/defaults.js
+++ b/src/traces/scatterpolar/defaults.js
@@ -20,12 +20,12 @@ var PTS_LINESONLY = require('../scatter/constants').PTS_LINESONLY;
var attributes = require('./attributes');
-function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len = handleRThetaDefaults(traceIn, traceOut, layout, coerce);
+ var len = handleRThetaDefaults(gd, traceIn, traceOut, layout, coerce);
if(!len) {
traceOut.visible = false;
return;
@@ -38,18 +38,18 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
if(traceOut.hoveron !== 'fills') coerce('hovertemplate');
if(subTypes.hasLines(traceOut)) {
- handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);
- handleLineShapeDefaults(traceIn, traceOut, coerce);
+ handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
+ handleLineShapeDefaults(gd, traceIn, traceOut, coerce);
coerce('connectgaps');
}
if(subTypes.hasMarkers(traceOut)) {
- handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});
+ handleMarkerDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});
}
if(subTypes.hasText(traceOut)) {
coerce('texttemplate');
- handleTextDefaults(traceIn, traceOut, layout, coerce);
+ handleTextDefaults(gd, traceIn, traceOut, layout, coerce);
}
var dfltHoverOn = [];
@@ -63,8 +63,8 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
coerce('fill');
if(traceOut.fill !== 'none') {
- handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);
- if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);
+ handleFillColorDefaults(gd, traceIn, traceOut, defaultColor, coerce);
+ if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(gd, traceIn, traceOut, coerce);
}
if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {
@@ -75,7 +75,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
}
-function handleRThetaDefaults(traceIn, traceOut, layout, coerce) {
+function handleRThetaDefaults(gd, traceIn, traceOut, layout, coerce) {
var r = coerce('r');
var theta = coerce('theta');
var len;
diff --git a/src/traces/scatterpolar/hover.js b/src/traces/scatterpolar/hover.js
index c7fbc7b90ed..30e84bb7e2f 100644
--- a/src/traces/scatterpolar/hover.js
+++ b/src/traces/scatterpolar/hover.js
@@ -10,8 +10,8 @@
var scatterHover = require('../scatter/hover');
-function hoverPoints(pointData, xval, yval, hovermode) {
- var scatterPointData = scatterHover(pointData, xval, yval, hovermode);
+function hoverPoints(gd, pointData, xval, yval, hovermode) {
+ var scatterPointData = scatterHover(gd, pointData, xval, yval, hovermode);
if(!scatterPointData || scatterPointData[0].index === false) return;
var newPointData = scatterPointData[0];
diff --git a/src/traces/scatterpolargl/defaults.js b/src/traces/scatterpolargl/defaults.js
index 617ec755d78..ee8bac708d7 100644
--- a/src/traces/scatterpolargl/defaults.js
+++ b/src/traces/scatterpolargl/defaults.js
@@ -20,12 +20,12 @@ var PTS_LINESONLY = require('../scatter/constants').PTS_LINESONLY;
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len = handleRThetaDefaults(traceIn, traceOut, layout, coerce);
+ var len = handleRThetaDefaults(gd, traceIn, traceOut, layout, coerce);
if(!len) {
traceOut.visible = false;
return;
@@ -38,22 +38,22 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
if(traceOut.hoveron !== 'fills') coerce('hovertemplate');
if(subTypes.hasLines(traceOut)) {
- handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);
+ handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
coerce('connectgaps');
}
if(subTypes.hasMarkers(traceOut)) {
- handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce);
+ handleMarkerDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
}
if(subTypes.hasText(traceOut)) {
coerce('texttemplate');
- handleTextDefaults(traceIn, traceOut, layout, coerce);
+ handleTextDefaults(gd, traceIn, traceOut, layout, coerce);
}
coerce('fill');
if(traceOut.fill !== 'none') {
- handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);
+ handleFillColorDefaults(gd, traceIn, traceOut, defaultColor, coerce);
}
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
diff --git a/src/traces/scatterpolargl/hover.js b/src/traces/scatterpolargl/hover.js
index 8f0966d56b7..9286421e542 100644
--- a/src/traces/scatterpolargl/hover.js
+++ b/src/traces/scatterpolargl/hover.js
@@ -11,13 +11,13 @@
var hover = require('../scattergl/hover');
var makeHoverPointText = require('../scatterpolar/hover').makeHoverPointText;
-function hoverPoints(pointData, xval, yval, hovermode) {
+function hoverPoints(gd, pointData, xval, yval, hovermode) {
var cd = pointData.cd;
var stash = cd[0].t;
var rArray = stash.r;
var thetaArray = stash.theta;
- var scatterPointData = hover.hoverPoints(pointData, xval, yval, hovermode);
+ var scatterPointData = hover.hoverPoints(gd, pointData, xval, yval, hovermode);
if(!scatterPointData || scatterPointData[0].index === false) return;
var newPointData = scatterPointData[0];
diff --git a/src/traces/scatterternary/defaults.js b/src/traces/scatterternary/defaults.js
index 59b6c827c24..13b6c643f3a 100644
--- a/src/traces/scatterternary/defaults.js
+++ b/src/traces/scatterternary/defaults.js
@@ -22,7 +22,7 @@ var handleFillColorDefaults = require('../scatter/fillcolor_defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -65,18 +65,18 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('mode', defaultMode);
if(subTypes.hasLines(traceOut)) {
- handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);
- handleLineShapeDefaults(traceIn, traceOut, coerce);
+ handleLineDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
+ handleLineShapeDefaults(gd, traceIn, traceOut, coerce);
coerce('connectgaps');
}
if(subTypes.hasMarkers(traceOut)) {
- handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});
+ handleMarkerDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});
}
if(subTypes.hasText(traceOut)) {
coerce('texttemplate');
- handleTextDefaults(traceIn, traceOut, layout, coerce);
+ handleTextDefaults(gd, traceIn, traceOut, layout, coerce);
}
var dfltHoverOn = [];
@@ -89,8 +89,8 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('fill');
if(traceOut.fill !== 'none') {
- handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);
- if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);
+ handleFillColorDefaults(gd, traceIn, traceOut, defaultColor, coerce);
+ if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(gd, traceIn, traceOut, coerce);
}
if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {
diff --git a/src/traces/scatterternary/hover.js b/src/traces/scatterternary/hover.js
index ac93f9b38b2..f61ba7017d6 100644
--- a/src/traces/scatterternary/hover.js
+++ b/src/traces/scatterternary/hover.js
@@ -10,8 +10,8 @@
var scatterHover = require('../scatter/hover');
-module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
- var scatterPointData = scatterHover(pointData, xval, yval, hovermode);
+module.exports = function hoverPoints(gd, pointData, xval, yval, hovermode) {
+ var scatterPointData = scatterHover(gd, pointData, xval, yval, hovermode);
if(!scatterPointData || scatterPointData[0].index === false) return;
var newPointData = scatterPointData[0];
diff --git a/src/traces/splom/calc.js b/src/traces/splom/calc.js
index eaca46ec8e5..7ebfb08c7c6 100644
--- a/src/traces/splom/calc.js
+++ b/src/traces/splom/calc.js
@@ -56,7 +56,7 @@ module.exports = function calc(gd, trace) {
// if corresponding x & y axes don't have matching types, skip dim
if(xa && ya && xa.type !== ya.type) {
- Lib.log('Skipping splom dimension ' + i + ' with conflicting axis types');
+ Lib.log(gd, 'Skipping splom dimension ' + i + ' with conflicting axis types');
continue;
}
diff --git a/src/traces/splom/defaults.js b/src/traces/splom/defaults.js
index 4d062510d9d..ec938b9f46b 100644
--- a/src/traces/splom/defaults.js
+++ b/src/traces/splom/defaults.js
@@ -17,12 +17,12 @@ var handleMarkerDefaults = require('../scatter/marker_defaults');
var mergeLength = require('../parcoords/merge_length');
var isOpenSymbol = require('../scattergl/helpers').isOpenSymbol;
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var dimensions = handleArrayContainerDefaults(traceIn, traceOut, {
+ var dimensions = handleArrayContainerDefaults(gd, traceIn, traceOut, {
name: 'dimensions',
handleItemDefaults: dimensionDefaults
});
@@ -42,18 +42,18 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('hovertext');
coerce('hovertemplate');
- handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce);
+ handleMarkerDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
var isOpen = isOpenSymbol(traceOut.marker.symbol);
var isBubble = subTypes.isBubble(traceOut);
coerce('marker.line.width', isOpen || isBubble ? 1 : 0);
- handleAxisDefaults(traceIn, traceOut, layout, coerce);
+ handleAxisDefaults(gd, traceIn, traceOut, layout, coerce);
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
};
-function dimensionDefaults(dimIn, dimOut) {
+function dimensionDefaults(gd, dimIn, dimOut) {
function coerce(attr, dflt) {
return Lib.coerce(dimIn, dimOut, attributes.dimensions, attr, dflt);
}
@@ -68,7 +68,7 @@ function dimensionDefaults(dimIn, dimOut) {
coerce('axis.matches');
}
-function handleAxisDefaults(traceIn, traceOut, layout, coerce) {
+function handleAxisDefaults(gd, traceIn, traceOut, layout, coerce) {
var dimensions = traceOut.dimensions;
var dimLength = dimensions.length;
var showUpper = traceOut.showupperhalf;
diff --git a/src/traces/splom/hover.js b/src/traces/splom/hover.js
index 9cea4845d31..5eb24aadb2b 100644
--- a/src/traces/splom/hover.js
+++ b/src/traces/splom/hover.js
@@ -11,7 +11,7 @@
var helpers = require('./helpers');
var calcHover = require('../scattergl/hover').calcHover;
-function hoverPoints(pointData, xval, yval) {
+function hoverPoints(gd, pointData, xval, yval) {
var cd = pointData.cd;
var trace = cd[0].trace;
var scene = pointData.scene;
@@ -51,7 +51,7 @@ function hoverPoints(pointData, xval, yval) {
if(id === undefined) return [pointData];
- return [calcHover(pointData, x, y, trace)];
+ return [calcHover(gd, pointData, x, y, trace)];
}
module.exports = {
diff --git a/src/traces/streamtube/calc.js b/src/traces/streamtube/calc.js
index 6e24e54c4dc..9a5565e03dc 100644
--- a/src/traces/streamtube/calc.js
+++ b/src/traces/streamtube/calc.js
@@ -28,7 +28,7 @@ function calc(gd, trace) {
trace._y = filter(trace.y, trace._len);
trace._z = filter(trace.z, trace._len);
- var grid = processGrid(trace);
+ var grid = processGrid(gd, trace);
trace._gridFill = grid.fill;
trace._Xs = grid.Xs;
trace._Ys = grid.Ys;
@@ -87,7 +87,7 @@ function calc(gd, trace) {
trace._zbnds = [grid.zMin, grid.zMax];
}
-function processGrid(trace) {
+function processGrid(gd, trace) {
var x = trace._x;
var y = trace._y;
var z = trace._z;
@@ -211,7 +211,7 @@ function processGrid(trace) {
}
if(arbitrary) {
- Lib.warn('Encountered arbitrary coordinates! Unable to input data grid.');
+ Lib.warn(gd, 'Encountered arbitrary coordinates! Unable to input data grid.');
empty();
}
diff --git a/src/traces/streamtube/convert.js b/src/traces/streamtube/convert.js
index 0e0aa1c76dd..4decd104776 100644
--- a/src/traces/streamtube/convert.js
+++ b/src/traces/streamtube/convert.js
@@ -193,7 +193,7 @@ function convert(scene, trace) {
return meshData;
}
-proto.update = function(data) {
+proto.update = function(gd, data) {
this.data = data;
var meshData = convert(this.scene, data);
@@ -205,7 +205,7 @@ proto.dispose = function() {
this.mesh.dispose();
};
-function createStreamtubeTrace(scene, data) {
+function createStreamtubeTrace(gd, scene, data) {
var gl = scene.glplot.gl;
var meshData = convert(scene, data);
diff --git a/src/traces/streamtube/defaults.js b/src/traces/streamtube/defaults.js
index 5098cf01cb7..26c9853a03c 100644
--- a/src/traces/streamtube/defaults.js
+++ b/src/traces/streamtube/defaults.js
@@ -13,7 +13,7 @@ var Lib = require('../../lib');
var colorscaleDefaults = require('../../components/colorscale/defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -50,7 +50,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('lightposition.y');
coerce('lightposition.z');
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});
coerce('text');
coerce('hovertext');
diff --git a/src/traces/sunburst/calc.js b/src/traces/sunburst/calc.js
index e8a9a90d676..e76f75f2edb 100644
--- a/src/traces/sunburst/calc.js
+++ b/src/traces/sunburst/calc.js
@@ -111,7 +111,7 @@ exports.calc = function(gd, trace) {
label: k
});
} else {
- return Lib.warn('Multiple implied roots, cannot build ' + trace.type + ' hierarchy.');
+ return Lib.warn(gd, 'Multiple implied roots, cannot build ' + trace.type + ' hierarchy.');
}
} else if(parent2children[''].length > 1) {
var dummyId = Lib.randstr();
@@ -140,7 +140,7 @@ exports.calc = function(gd, trace) {
.id(function(d) { return d.id; })
.parentId(function(d) { return d.pid; })(cd);
} catch(e) {
- return Lib.warn('Failed to build ' + trace.type + ' hierarchy. Error: ' + e.message);
+ return Lib.warn(gd, 'Failed to build ' + trace.type + ' hierarchy. Error: ' + e.message);
}
var hierarchy = d3Hierarchy.hierarchy(root);
@@ -169,7 +169,7 @@ exports.calc = function(gd, trace) {
if(v < partialSum * ALMOST_EQUAL) {
failed = true;
- return Lib.warn([
+ return Lib.warn(gd, [
'Total value for node', d.data.data.id,
'is smaller than the sum of its children.',
'\nparent value =', v,
diff --git a/src/traces/sunburst/defaults.js b/src/traces/sunburst/defaults.js
index cd034ca75fb..9df5c2e94b2 100644
--- a/src/traces/sunburst/defaults.js
+++ b/src/traces/sunburst/defaults.js
@@ -17,7 +17,7 @@ var Colorscale = require('../../components/colorscale');
var hasColorscale = Colorscale.hasColorscale;
var colorscaleDefaults = Colorscale.handleDefaults;
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -49,7 +49,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
(traceIn.marker || {}).coloraxis // N.B. special logic to consider "values" colorscales
);
if(withColorscale) {
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});
}
coerce('leaf.opacity', withColorscale ? 1 : 0.7);
@@ -73,7 +73,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('insidetextorientation');
- handleDomainDefaults(traceOut, layout, coerce);
+ handleDomainDefaults(gd, traceOut, layout, coerce);
// do not support transforms for now
traceOut._length = null;
diff --git a/src/traces/sunburst/layout_defaults.js b/src/traces/sunburst/layout_defaults.js
index 56a9ac34002..b45129b6129 100644
--- a/src/traces/sunburst/layout_defaults.js
+++ b/src/traces/sunburst/layout_defaults.js
@@ -11,7 +11,7 @@
var Lib = require('../../lib');
var layoutAttributes = require('./layout_attributes');
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut) {
function coerce(attr, dflt) {
return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);
}
diff --git a/src/traces/sunburst/plot.js b/src/traces/sunburst/plot.js
index ef3616e4b88..af35ac13fbb 100644
--- a/src/traces/sunburst/plot.js
+++ b/src/traces/sunburst/plot.js
@@ -263,7 +263,7 @@ function plotOne(gd, cd, element, transitionOpts) {
var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font));
- sliceText.text(exports.formatSliceLabel(pt, entry, trace, cd, fullLayout))
+ sliceText.text(exports.formatSliceLabel(gd, pt, entry, trace, cd, fullLayout))
.classed('slicetext', true)
.attr('text-anchor', 'middle')
.call(Drawing.font, font)
@@ -495,7 +495,7 @@ function partition(entry) {
.size([2 * Math.PI, entry.height + 1])(entry);
}
-exports.formatSliceLabel = function(pt, entry, trace, cd, fullLayout) {
+exports.formatSliceLabel = function(gd, pt, entry, trace, cd, fullLayout) {
var texttemplate = trace.texttemplate;
var textinfo = trace.textinfo;
@@ -605,7 +605,7 @@ exports.formatSliceLabel = function(pt, entry, trace, cd, fullLayout) {
var ptTx = Lib.castOption(trace, cdi.i, 'text');
if(Lib.isValidTextValue(ptTx) || ptTx === '') obj.text = ptTx;
obj.customdata = Lib.castOption(trace, cdi.i, 'customdata');
- return Lib.texttemplateString(txt, obj, fullLayout._d3locale, obj, trace._meta || {});
+ return Lib.texttemplateString(gd, txt, obj, fullLayout._d3locale, obj, trace._meta || {});
};
function getInscribedRadiusFraction(pt) {
diff --git a/src/traces/surface/convert.js b/src/traces/surface/convert.js
index 06bb723eb58..c7886abda5a 100644
--- a/src/traces/surface/convert.js
+++ b/src/traces/surface/convert.js
@@ -429,7 +429,7 @@ proto.setContourLevels = function() {
}
};
-proto.update = function(data) {
+proto.update = function(gd, data) {
var scene = this.scene;
var sceneLayout = scene.fullSceneLayout;
var surface = this.surface;
@@ -476,7 +476,7 @@ proto.update = function(data) {
if(data.connectgaps) {
data._emptypoints = findEmpties(rawCoords[2]);
- interp2d(rawCoords[2], data._emptypoints);
+ interp2d(gd, rawCoords[2], data._emptypoints);
data._interpolatedZ = [];
for(j = 0; j < xlen; j++) {
@@ -690,12 +690,12 @@ proto.dispose = function() {
this.surface.dispose();
};
-function createSurfaceTrace(scene, data) {
+function createSurfaceTrace(gd, scene, data) {
var gl = scene.glplot.gl;
var surface = createSurface({ gl: gl });
var result = new SurfaceTrace(scene, surface, data.uid);
surface._trace = result;
- result.update(data);
+ result.update(gd, data);
scene.glplot.add(surface);
return result;
}
diff --git a/src/traces/surface/defaults.js b/src/traces/surface/defaults.js
index aad58532e7a..638090f4f3e 100644
--- a/src/traces/surface/defaults.js
+++ b/src/traces/surface/defaults.js
@@ -52,7 +52,7 @@ function isValidScaleArray(scl) {
return true;
}
-function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
var i, j;
function coerce(attr, dflt) {
@@ -75,7 +75,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
traceOut._ylength = z.length;
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');
- handleCalendarDefaults(traceIn, traceOut, ['x', 'y', 'z'], layout);
+ handleCalendarDefaults(gd, traceIn, traceOut, ['x', 'y', 'z'], layout);
coerce('text');
coerce('hovertext');
@@ -137,17 +137,17 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
// the colorbar shouldn't be shown by default
colorscaleDefaults(
- traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'}
+ gd, traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'}
);
- opacityscaleDefaults(traceIn, traceOut, layout, coerce);
+ opacityscaleDefaults(gd, traceIn, traceOut, layout, coerce);
// disable 1D transforms - currently surface does NOT support column data like heatmap does
// you can use mesh3d for this use case, but not surface
traceOut._length = null;
}
-function opacityscaleDefaults(traceIn, traceOut, layout, coerce) {
+function opacityscaleDefaults(gd, traceIn, traceOut, layout, coerce) {
var opacityscale = coerce('opacityscale');
if(opacityscale === 'max') {
traceOut.opacityscale = [[0, MIN], [1, 1]];
diff --git a/src/traces/table/defaults.js b/src/traces/table/defaults.js
index cce9b0af567..577f0aae992 100644
--- a/src/traces/table/defaults.js
+++ b/src/traces/table/defaults.js
@@ -24,12 +24,12 @@ function defaultColumnOrder(traceOut, coerce) {
coerce('columnorder', oneStepped);
}
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- handleDomainDefaults(traceOut, layout, coerce);
+ handleDomainDefaults(gd, traceOut, layout, coerce);
coerce('columnwidth');
diff --git a/src/traces/treemap/defaults.js b/src/traces/treemap/defaults.js
index 017fe0a6013..a5e5ffc2275 100644
--- a/src/traces/treemap/defaults.js
+++ b/src/traces/treemap/defaults.js
@@ -19,7 +19,7 @@ var Colorscale = require('../../components/colorscale');
var hasColorscale = Colorscale.hasColorscale;
var colorscaleDefaults = Colorscale.handleDefaults;
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -81,7 +81,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
(traceIn.marker || {}).coloraxis // N.B. special logic to consider "values" colorscales
);
if(withColorscale) {
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});
} else {
coerce('marker.depthfade', !(colors || []).length);
}
@@ -94,7 +94,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('marker.pad.b', bottomText ? headerSize : headerSize / 4);
if(withColorscale) {
- colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});
+ colorscaleDefaults(gd, traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});
}
traceOut._hovered = {
@@ -114,7 +114,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
coerce('pathbar.edgeshape');
}
- handleDomainDefaults(traceOut, layout, coerce);
+ handleDomainDefaults(gd, traceOut, layout, coerce);
// do not support transforms for now
traceOut._length = null;
diff --git a/src/traces/treemap/draw_descendants.js b/src/traces/treemap/draw_descendants.js
index 782a6a18899..50e5914ffc9 100644
--- a/src/traces/treemap/draw_descendants.js
+++ b/src/traces/treemap/draw_descendants.js
@@ -171,7 +171,7 @@ module.exports = function drawDescendants(gd, cd, entry, slices, opts) {
if(isHeader) {
pt._text = noRoomForHeader ? '' : helpers.getPtLabel(pt) || '';
} else {
- pt._text = formatSliceLabel(pt, entry, trace, cd, fullLayout) || '';
+ pt._text = formatSliceLabel(gd, pt, entry, trace, cd, fullLayout) || '';
}
}
diff --git a/src/traces/treemap/layout_defaults.js b/src/traces/treemap/layout_defaults.js
index f81900b4099..524923dda3e 100644
--- a/src/traces/treemap/layout_defaults.js
+++ b/src/traces/treemap/layout_defaults.js
@@ -11,7 +11,7 @@
var Lib = require('../../lib');
var layoutAttributes = require('./layout_attributes');
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut) {
function coerce(attr, dflt) {
return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);
}
diff --git a/src/traces/violin/calc.js b/src/traces/violin/calc.js
index e0f77ebcacb..5ddc6268a66 100644
--- a/src/traces/violin/calc.js
+++ b/src/traces/violin/calc.js
@@ -50,7 +50,7 @@ module.exports = function calc(gd, trace) {
var step = dist / n;
if(!isFinite(step) || !isFinite(n)) {
- Lib.error('Something went wrong with computing the violin span');
+ Lib.error(gd, 'Something went wrong with computing the violin span');
cd[0].t.empty = true;
return cd;
}
diff --git a/src/traces/violin/defaults.js b/src/traces/violin/defaults.js
index 8b9f538e589..82145b008de 100644
--- a/src/traces/violin/defaults.js
+++ b/src/traces/violin/defaults.js
@@ -14,7 +14,7 @@ var Color = require('../../components/color');
var boxDefaults = require('../box/defaults');
var attributes = require('./attributes');
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
@@ -22,7 +22,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
return Lib.coerce2(traceIn, traceOut, attributes, attr, dflt);
}
- boxDefaults.handleSampleDefaults(traceIn, traceOut, coerce, layout);
+ boxDefaults.handleSampleDefaults(gd, traceIn, traceOut, coerce, layout);
if(traceOut.visible === false) return;
coerce('bandwidth');
@@ -43,7 +43,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
var lineWidth = coerce('line.width');
var fillColor = coerce('fillcolor', Color.addOpacity(traceOut.line.color, 0.5));
- boxDefaults.handlePointsDefaults(traceIn, traceOut, coerce, {prefix: ''});
+ boxDefaults.handlePointsDefaults(gd, traceIn, traceOut, coerce, {prefix: ''});
var boxWidth = coerce2('box.width');
var boxFillColor = coerce2('box.fillcolor', fillColor);
diff --git a/src/traces/violin/hover.js b/src/traces/violin/hover.js
index ef5a433bb1c..f8dd1791ff4 100644
--- a/src/traces/violin/hover.js
+++ b/src/traces/violin/hover.js
@@ -13,7 +13,7 @@ var Axes = require('../../plots/cartesian/axes');
var boxHoverPoints = require('../box/hover');
var helpers = require('./helpers');
-module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLayer) {
+module.exports = function hoverPoints(gd, pointData, xval, yval, hovermode, hoverLayer) {
var cd = pointData.cd;
var trace = cd[0].trace;
var hoveron = trace.hoveron;
@@ -24,7 +24,7 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
var violinLineAttrs;
if(hasHoveronViolins || hasHoveronKDE) {
- var closeBoxData = boxHoverPoints.hoverOnBoxes(pointData, xval, yval, hovermode);
+ var closeBoxData = boxHoverPoints.hoverOnBoxes(gd, pointData, xval, yval, hovermode);
if(hasHoveronKDE && closeBoxData.length > 0) {
var xa = pointData.xa;
@@ -85,7 +85,7 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
}
if(hoveron.indexOf('points') !== -1) {
- closePtData = boxHoverPoints.hoverOnPoints(pointData, xval, yval);
+ closePtData = boxHoverPoints.hoverOnPoints(gd, pointData, xval, yval);
}
// update violin line (if any)
diff --git a/src/traces/violin/layout_defaults.js b/src/traces/violin/layout_defaults.js
index dd299cab930..f94d4fc2b7b 100644
--- a/src/traces/violin/layout_defaults.js
+++ b/src/traces/violin/layout_defaults.js
@@ -12,9 +12,9 @@ var Lib = require('../../lib');
var layoutAttributes = require('./layout_attributes');
var boxLayoutDefaults = require('../box/layout_defaults');
-module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
function coerce(attr, dflt) {
return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);
}
- boxLayoutDefaults._supply(layoutIn, layoutOut, fullData, coerce, 'violin');
+ boxLayoutDefaults._supply(gd, layoutIn, layoutOut, fullData, coerce, 'violin');
};
diff --git a/src/traces/volume/convert.js b/src/traces/volume/convert.js
index 6aabd09bded..eb1c4942201 100644
--- a/src/traces/volume/convert.js
+++ b/src/traces/volume/convert.js
@@ -64,7 +64,7 @@ proto.handlePick = function(selection) {
}
};
-proto.update = function(data) {
+proto.update = function(gd, data) {
var scene = this.scene;
var layout = scene.fullSceneLayout;
@@ -117,13 +117,13 @@ proto.dispose = function() {
this.mesh.dispose();
};
-function createVolumeTrace(scene, data) {
+function createVolumeTrace(gd, scene, data) {
var gl = scene.glplot.gl;
var mesh = createMesh({gl: gl});
var result = new VolumeTrace(scene, mesh, data.uid);
mesh._trace = result;
- result.update(data);
+ result.update(gd, data);
scene.glplot.add(mesh);
return result;
}
diff --git a/src/traces/volume/defaults.js b/src/traces/volume/defaults.js
index f6f86395509..8657e85f298 100644
--- a/src/traces/volume/defaults.js
+++ b/src/traces/volume/defaults.js
@@ -13,12 +13,12 @@ var attributes = require('./attributes');
var supplyIsoDefaults = require('../isosurface/defaults').supplyIsoDefaults;
var opacityscaleDefaults = require('../surface/defaults').opacityscaleDefaults;
-module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+module.exports = function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce);
+ supplyIsoDefaults(gd, traceIn, traceOut, defaultColor, layout, coerce);
- opacityscaleDefaults(traceIn, traceOut, layout, coerce);
+ opacityscaleDefaults(gd, traceIn, traceOut, layout, coerce);
};
diff --git a/src/traces/waterfall/defaults.js b/src/traces/waterfall/defaults.js
index 022589a99e1..22c21e6dad2 100644
--- a/src/traces/waterfall/defaults.js
+++ b/src/traces/waterfall/defaults.js
@@ -27,12 +27,12 @@ function handleDirection(coerce, direction, defaultColor) {
coerce(direction + '.marker.line.width');
}
-function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
function coerce(attr, dflt) {
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
}
- var len = handleXYDefaults(traceIn, traceOut, layout, coerce);
+ var len = handleXYDefaults(gd, traceIn, traceOut, layout, coerce);
if(!len) {
traceOut.visible = false;
return;
@@ -81,7 +81,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
}
}
-function crossTraceDefaults(fullData, fullLayout) {
+function crossTraceDefaults(gd, fullData, fullLayout) {
var traceIn, traceOut;
function coerce(attr) {
@@ -93,7 +93,7 @@ function crossTraceDefaults(fullData, fullLayout) {
traceOut = fullData[i];
traceIn = traceOut._input;
- handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce);
+ handleGroupingDefaults(gd, traceIn, traceOut, fullLayout, coerce);
}
}
}
diff --git a/src/traces/waterfall/hover.js b/src/traces/waterfall/hover.js
index f255d71f18e..53882f8be80 100644
--- a/src/traces/waterfall/hover.js
+++ b/src/traces/waterfall/hover.js
@@ -18,7 +18,7 @@ var DIRSYMBOL = {
decreasing: delta.DECREASING.SYMBOL
};
-module.exports = function hoverPoints(pointData, xval, yval, hovermode) {
+module.exports = function hoverPoints(gd, pointData, xval, yval, hovermode) {
var point = hoverOnBars(pointData, xval, yval, hovermode);
if(!point) return;
diff --git a/src/traces/waterfall/layout_defaults.js b/src/traces/waterfall/layout_defaults.js
index 347056b91f5..7810445f2c7 100644
--- a/src/traces/waterfall/layout_defaults.js
+++ b/src/traces/waterfall/layout_defaults.js
@@ -11,7 +11,7 @@
var Lib = require('../../lib');
var layoutAttributes = require('./layout_attributes');
-module.exports = function(layoutIn, layoutOut, fullData) {
+module.exports = function supplyLayoutDefaults(gd, layoutIn, layoutOut, fullData) {
var hasTraceType = false;
function coerce(attr, dflt) {
diff --git a/src/transforms/aggregate.js b/src/transforms/aggregate.js
index 54d0ea77630..e3cc4d08bbe 100644
--- a/src/transforms/aggregate.js
+++ b/src/transforms/aggregate.js
@@ -133,7 +133,7 @@ var aggAttrs = attrs.aggregations;
* @return {object} transformOut
* copy of transformIn that contains attribute defaults
*/
-exports.supplyDefaults = function(transformIn, traceOut) {
+exports.supplyDefaults = function(gd, transformIn, traceOut) {
var transformOut = {};
var i;
diff --git a/src/transforms/filter.js b/src/transforms/filter.js
index c763edeb0c6..ea4c8fc3a5f 100644
--- a/src/transforms/filter.js
+++ b/src/transforms/filter.js
@@ -128,7 +128,7 @@ exports.attributes = {
editType: 'calc'
};
-exports.supplyDefaults = function(transformIn) {
+exports.supplyDefaults = function(gd, transformIn) {
var transformOut = {};
function coerce(attr, dflt) {
@@ -150,8 +150,8 @@ exports.supplyDefaults = function(transformIn) {
coerce('value');
var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleDefaults');
- handleCalendarDefaults(transformIn, transformOut, 'valuecalendar', null);
- handleCalendarDefaults(transformIn, transformOut, 'targetcalendar', null);
+ handleCalendarDefaults(gd, transformIn, transformOut, 'valuecalendar', null);
+ handleCalendarDefaults(gd, transformIn, transformOut, 'targetcalendar', null);
}
return transformOut;
diff --git a/src/transforms/groupby.js b/src/transforms/groupby.js
index 540ba24d472..1ffd27b795c 100644
--- a/src/transforms/groupby.js
+++ b/src/transforms/groupby.js
@@ -96,7 +96,7 @@ exports.attributes = {
* @return {object} transformOut
* copy of transformIn that contains attribute defaults
*/
-exports.supplyDefaults = function(transformIn, traceOut, layout) {
+exports.supplyDefaults = function(gd, transformIn, traceOut, layout) {
var i;
var transformOut = {};
diff --git a/src/transforms/sort.js b/src/transforms/sort.js
index e60de7ddbff..3813eb0110a 100644
--- a/src/transforms/sort.js
+++ b/src/transforms/sort.js
@@ -62,7 +62,7 @@ exports.attributes = {
editType: 'calc'
};
-exports.supplyDefaults = function(transformIn) {
+exports.supplyDefaults = function(gd, transformIn) {
var transformOut = {};
function coerce(attr, dflt) {
diff --git a/test/jasmine/tests/animate_test.js b/test/jasmine/tests/animate_test.js
index 90ce6fccaba..62454a7f00a 100644
--- a/test/jasmine/tests/animate_test.js
+++ b/test/jasmine/tests/animate_test.js
@@ -15,7 +15,7 @@ describe('Plots.supplyAnimationDefaults', function() {
'use strict';
it('supplies transition defaults', function() {
- expect(Plots.supplyAnimationDefaults({})).toEqual({
+ expect(Plots.supplyAnimationDefaults(void 0, {})).toEqual({
fromcurrent: false,
mode: 'afterall',
direction: 'forward',
@@ -31,7 +31,7 @@ describe('Plots.supplyAnimationDefaults', function() {
});
it('uses provided values', function() {
- expect(Plots.supplyAnimationDefaults({
+ expect(Plots.supplyAnimationDefaults(void 0, {
mode: 'next',
fromcurrent: true,
direction: 'reverse',
diff --git a/test/jasmine/tests/annotations_test.js b/test/jasmine/tests/annotations_test.js
index 7ddde730bc6..67c804b7f51 100644
--- a/test/jasmine/tests/annotations_test.js
+++ b/test/jasmine/tests/annotations_test.js
@@ -36,7 +36,7 @@ describe('Test annotations', function() {
Axes.setConvert(layoutOut[axName]);
});
- Annotations.supplyLayoutDefaults(layoutIn, layoutOut);
+ Annotations.supplyLayoutDefaults(void 0, layoutIn, layoutOut);
return layoutOut.annotations;
}
diff --git a/test/jasmine/tests/axes_test.js b/test/jasmine/tests/axes_test.js
index f9c7b2a347c..cc38931d334 100644
--- a/test/jasmine/tests/axes_test.js
+++ b/test/jasmine/tests/axes_test.js
@@ -204,7 +204,7 @@ describe('Test axes', function() {
trace
);
layoutIn = {xaxis: {}, yaxis: {}};
- supplyLayoutDefaults(layoutIn, layoutOut, [fullTrace]);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, [fullTrace]);
}
function checkTypes(xType, yType, msg) {
@@ -338,7 +338,7 @@ describe('Test axes', function() {
xaxis: {},
yaxis: {}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.linewidth).toBe(undefined);
expect(layoutOut.xaxis.linecolor).toBe(undefined);
expect(layoutOut.yaxis.linewidth).toBe(undefined);
@@ -349,7 +349,7 @@ describe('Test axes', function() {
layoutIn = {
xaxis: {showline: true}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.linewidth).toBe(1);
expect(layoutOut.xaxis.linecolor).toBe(Color.defaultLine);
});
@@ -358,7 +358,7 @@ describe('Test axes', function() {
layoutIn = {
xaxis: { linecolor: 'black' }
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.linecolor).toBe('black');
expect(layoutOut.xaxis.linewidth).toBe(1);
});
@@ -367,7 +367,7 @@ describe('Test axes', function() {
layoutIn = {
yaxis: { linewidth: 2 }
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.yaxis.linewidth).toBe(2);
expect(layoutOut.yaxis.linecolor).toBe(Color.defaultLine);
});
@@ -377,7 +377,7 @@ describe('Test axes', function() {
xaxis: {},
yaxis: {}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
var lightLine = tinycolor(Color.lightLine).toRgbString();
expect(layoutOut.xaxis.gridwidth).toBe(1);
expect(tinycolor(layoutOut.xaxis.gridcolor).toRgbString()).toBe(lightLine);
@@ -389,7 +389,7 @@ describe('Test axes', function() {
layoutIn = {
yaxis: {showgrid: false}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.yaxis.gridwidth).toBe(undefined);
expect(layoutOut.yaxis.gridcolor).toBe(undefined);
});
@@ -399,7 +399,7 @@ describe('Test axes', function() {
xaxis: {},
yaxis: {}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.zerolinewidth).toBe(1);
expect(layoutOut.xaxis.zerolinecolor).toBe(Color.defaultLine);
expect(layoutOut.yaxis.zerolinewidth).toBe(1);
@@ -410,7 +410,7 @@ describe('Test axes', function() {
layoutIn = {
xaxis: {zeroline: false}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.zerolinewidth).toBe(undefined);
expect(layoutOut.xaxis.zerolinecolor).toBe(undefined);
});
@@ -426,7 +426,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('xy2');
layoutOut._subplots.yaxis.push('y2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.title.font.color).toEqual('red');
expect(layoutOut.yaxis.title.font.color).toEqual('blue');
expect(layoutOut.yaxis2.title.font.color).toEqual('yellow');
@@ -441,7 +441,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('xy2');
layoutOut._subplots.yaxis.push('y2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.linecolor).toEqual('red');
expect(layoutOut.yaxis.linecolor).toEqual('blue');
expect(layoutOut.yaxis2.linecolor).toEqual('#444');
@@ -456,7 +456,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('xy2');
layoutOut._subplots.yaxis.push('y2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.zerolinecolor).toEqual('red');
expect(layoutOut.yaxis.zerolinecolor).toEqual('blue');
expect(layoutOut.yaxis2.zerolinecolor).toEqual('#444');
@@ -476,7 +476,7 @@ describe('Test axes', function() {
var bgColor = Color.combine('yellow', 'green');
var frac = 100 * (0xe - 0x4) / (0xf - 0x4);
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.gridcolor)
.toEqual(tinycolor.mix('red', bgColor, frac).toRgbString());
expect(layoutOut.yaxis.gridcolor).toEqual('blue');
@@ -492,7 +492,7 @@ describe('Test axes', function() {
yaxis: {type: 'date'}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.calendar).toBe('nepali');
expect(layoutOut.yaxis.calendar).toBe('nepali');
@@ -506,7 +506,7 @@ describe('Test axes', function() {
yaxis: {type: 'date', calendar: 'thai'}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.calendar).toBe('coptic');
expect(layoutOut.yaxis.calendar).toBe('thai');
@@ -523,7 +523,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('x2y2', 'xy3');
layoutOut._subplots.yaxis.push('x2', 'y2', 'y3');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
Axes.list({ _fullLayout: layoutOut }).forEach(function(ax) {
expect(ax.autorange).toBe(true, ax._name);
@@ -540,7 +540,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('x2y2');
layoutOut._subplots.yaxis.push('x2', 'y2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
Axes.list({ _fullLayout: layoutOut }).forEach(function(ax) {
expect(ax.autorange).toBe(false, ax._name);
@@ -557,7 +557,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('x2y2');
layoutOut._subplots.yaxis.push('x2', 'y2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.rangemode).toBeUndefined();
expect(layoutOut.yaxis.rangemode).toBeUndefined();
@@ -581,7 +581,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('x2y2', 'x3y3', 'x4y3', 'x5y3');
layoutOut._subplots.yaxis.push('x2', 'x3', 'x4', 'x5', 'y2', 'y3');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisConstraintGroups).toEqual([
{x: 1, y: 2, x2: 2 * 3, y2: 2 * 3 * 5},
@@ -595,7 +595,7 @@ describe('Test axes', function() {
it('breaks scaleanchor loops and drops conflicting ratios', function() {
var warnings = [];
- spyOn(Lib, 'warn').and.callFake(function(msg) {
+ spyOn(Lib, 'warn').and.callFake(function(gd, msg) {
warnings.push(msg);
});
@@ -614,7 +614,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('x2y2', 'x3y3', 'x4y4');
layoutOut._subplots.yaxis.push('x2', 'x3', 'x4', 'y2', 'y3', 'y4');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisConstraintGroups).toEqual([
{x: 2, y: 1, x4: 2 * 13, y4: 17},
@@ -629,7 +629,7 @@ describe('Test axes', function() {
it('silently drops invalid scaleanchor values', function() {
var warnings = [];
- spyOn(Lib, 'warn').and.callFake(function(msg) {
+ spyOn(Lib, 'warn').and.callFake(function(gd, msg) {
warnings.push(msg);
});
@@ -641,7 +641,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('x2y');
layoutOut._subplots.yaxis.push('x2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisConstraintGroups).toEqual([]);
expect(warnings).toEqual(['ignored xaxis.scaleanchor: "x"' + warnTxt]);
@@ -662,7 +662,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('x2y2');
layoutOut._subplots.yaxis.push('x2', 'y2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisConstraintGroups).toEqual([]);
@@ -682,7 +682,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('x2y2');
layoutOut._subplots.yaxis.push('x2', 'y2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisMatchGroups).toEqual([]);
@@ -699,7 +699,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('x2y');
layoutOut._subplots.xaxis.push('x2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis2.matches).toBe('x');
expect(layoutOut.xaxis2.scaleanchor).toBe(undefined);
@@ -725,7 +725,7 @@ describe('Test axes', function() {
layoutOut._subplots.xaxis.push('x2', 'x3');
layoutOut._subplots.yaxis.push('y2', 'y3');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisMatchGroups.length).toBe(1);
expect(layoutOut._axisMatchGroups).toContain({x2: 1, y2: 1});
@@ -743,7 +743,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('x2y');
layoutOut._subplots.xaxis.push('x2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisMatchGroups.length).toBe(1);
expect(layoutOut._axisMatchGroups).toContain({x: 1, y: 1});
@@ -765,7 +765,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('x2y2');
layoutOut._subplots.yaxis.push('x2', 'y2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisConstraintGroups).toEqual([{x2: 1, y: 3}]);
@@ -788,7 +788,7 @@ describe('Test axes', function() {
layoutOut._subplots.cartesian.push('x2y2');
layoutOut._subplots.yaxis.push('x2', 'y2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisMatchGroups).toEqual([{x2: 1, y: 1}]);
expect(layoutOut.yaxis.matches).toBe('x2');
@@ -806,7 +806,7 @@ describe('Test axes', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.hoverformat).toEqual('g');
});
@@ -825,7 +825,7 @@ describe('Test axes', function() {
layoutOut._subplots.xaxis.push('x2', 'x3');
layoutOut._subplots.yaxis.push('y2', 'y3');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisMatchGroups.length).toBe(2);
expect(layoutOut._axisMatchGroups).toContain({x: 1, x2: 1, x3: 1});
@@ -847,7 +847,7 @@ describe('Test axes', function() {
layoutOut._subplots.xaxis = ['x2', 'x3', 'x4'];
layoutOut._subplots.yaxis = ['y2', 'y3', 'y4'];
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisMatchGroups.length).toBe(2);
expect(layoutOut._axisMatchGroups).toContain({x: 1, x2: 1, x3: 1, x4: 1});
@@ -877,7 +877,7 @@ describe('Test axes', function() {
layoutOut._subplots.xaxis = ['x3', 'x4'];
layoutOut._subplots.yaxis = ['y3', 'y4'];
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisMatchGroups.length).toBe(2);
expect(layoutOut._axisMatchGroups).toContain({x: 1, x2: 1, x3: 1, x4: 1});
@@ -913,7 +913,7 @@ describe('Test axes', function() {
layoutOut._subplots.xaxis.push('x2', 'x3', 'x4');
layoutOut._subplots.yaxis.push('y2', 'y3', 'y4');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisMatchGroups.length).toBe(4);
expect(layoutOut._axisMatchGroups).toContain({x: 1, x2: 1});
@@ -946,7 +946,7 @@ describe('Test axes', function() {
layoutOut._subplots.xaxis = ['x2', 'x4'];
layoutOut._subplots.yaxis = ['y2', 'y4'];
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisMatchGroups.length).toBe(1);
expect(layoutOut._axisMatchGroups).toContain({x: 1, x2: 1, x4: 1});
@@ -969,7 +969,7 @@ describe('Test axes', function() {
layoutOut._subplots.xaxis = ['x3', 'x4'];
layoutOut._subplots.yaxis = ['y3', 'y4'];
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisMatchGroups.length).toBe(1);
expect(layoutOut._axisMatchGroups).toContain({x: 1, x2: 1, x3: 1, x4: 1});
@@ -989,7 +989,7 @@ describe('Test axes', function() {
layoutOut._subplots.xaxis = ['x2'];
layoutOut._subplots.yaxis = ['y'];
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut._axisMatchGroups.length).toBe(2);
expect(layoutOut._axisMatchGroups).toContain({x: 1, x2: 1});
@@ -1012,7 +1012,7 @@ describe('Test axes', function() {
layoutOut._subplots.xaxis.push('x2');
layoutOut._subplots.yaxis.push('y2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.range).withContext('xaxis range').toEqual([0, 6]);
expect(layoutOut.xaxis2.range).withContext('xaxis2 range').toEqual([0, 6]);
@@ -1031,7 +1031,7 @@ describe('Test axes', function() {
xaxis6: {rangebreaks: [{bounds: bounds}], type: 'multicategory'}
};
layoutOut._subplots.xaxis.push('x2', 'x3', 'x4', 'x5', 'x6');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(Array.isArray(layoutOut.xaxis.rangebreaks) && layoutOut.xaxis.rangebreaks.length)
.toBe(1, 'xaxis.rangebreaks is array of length 1');
@@ -1050,7 +1050,7 @@ describe('Test axes', function() {
xaxis4: {type: 'date'}
};
layoutOut._subplots.xaxis.push('x2', 'x3', 'x4');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(Array.isArray(layoutOut.xaxis.rangebreaks) && layoutOut.xaxis.rangebreaks.length)
.toBe(1, 'xaxis.rangebreaks is array of length 1');
@@ -1067,7 +1067,7 @@ describe('Test axes', function() {
xaxis4: {type: 'date', rangebreaks: [{bounds: ['2020-01-10', '2020-01-11', '2020-01-12']}]}
};
layoutOut._subplots.xaxis.push('x2', 'x3', 'x4');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.rangebreaks[0].enabled).toBe(false, 'invalid *bounds*');
expect(layoutOut.xaxis2.rangebreaks[0].enabled).toBe(true, 'invalid *bounds*, valid *values*');
@@ -1084,7 +1084,7 @@ describe('Test axes', function() {
xaxis4: {type: 'date', range: ['2020-01-12', '2020-01-11'], rangebreaks: [{bounds: ['2020-01-14', '2020-01-10']}]}
};
layoutOut._subplots.xaxis.push('x2', 'x3', 'x4');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.rangebreaks[0].enabled).toBe(true, '*bounds* within set range');
expect(layoutOut.xaxis2.rangebreaks[0].enabled).toBe(false, '*bounds* bigger than set range');
@@ -1100,7 +1100,7 @@ describe('Test axes', function() {
xaxis4: {type: 'date', rangebreaks: [{bounds: false, values: ['2020-01-10', '2020-01-12', '2020-01-14'], dvalue: 2}]},
};
layoutOut._subplots.xaxis.push('x2', 'x3', 'x4');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
var xaBreak = layoutOut.xaxis.rangebreaks[0];
expect(xaBreak.bounds).withContext('valid *bounds*').toEqual(['2020-01-10', '2020-01-11']);
@@ -1130,7 +1130,7 @@ describe('Test axes', function() {
xaxis3: {type: 'date', rangebreaks: [{values: ['2020-01-04', '2020-01-05'], pattern: 'NOP'}]},
};
layoutOut._subplots.xaxis.push('x2', 'x3');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.rangebreaks[0].pattern).toBe('', 'coerced to dflt value');
expect(layoutOut.xaxis2.rangebreaks[0].pattern).toBe('day of week', 'coerced');
@@ -1150,7 +1150,7 @@ describe('Test axes', function() {
]}
};
layoutOut._subplots.xaxis.push('x2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.rangebreaks[0].pattern).toBe('day of week', 'complete Capital');
expect(layoutOut.xaxis2.rangebreaks[0].pattern).toBe('day of week', '3-letter case');
@@ -1179,7 +1179,7 @@ describe('Test axes', function() {
xaxis11: {type: 'date', rangebreaks: [{pattern: 'day of week', bounds: [1, true] }]}
};
layoutOut._subplots.xaxis.push('x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9', 'x10', 'x11');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.rangebreaks[0].enabled).toBe(true, 'valid');
expect(layoutOut.xaxis.rangebreaks[0].bounds[0]).toBe(6, 'cast float to int');
@@ -1212,7 +1212,7 @@ describe('Test axes', function() {
xaxis11: {type: 'date', rangebreaks: [{pattern: 'day of week', bounds: [1, true] }]}
};
layoutOut._subplots.xaxis.push('x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9', 'x10', 'x11');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.xaxis.rangebreaks[0].enabled).toBe(true, 'valid');
expect(layoutOut.xaxis.rangebreaks[0].bounds[0]).toBe(24, 'accept 24');
@@ -1855,7 +1855,7 @@ describe('Test axes', function() {
describe('handleTickValueDefaults', function() {
var viaTemplate;
- function mockSupplyDefaults(axIn, axOut, axType) {
+ function mockSupplyDefaults(gd, axIn, axOut, axType) {
if(viaTemplate) {
axOut._template = axIn;
axIn = {};
@@ -1865,7 +1865,7 @@ describe('Test axes', function() {
return Lib.coerce(axIn, axOut, Cartesian.layoutAttributes, attr, dflt);
}
- handleTickValueDefaults(axIn, axOut, coerce, axType);
+ handleTickValueDefaults(gd, axIn, axOut, coerce, axType);
}
[
@@ -1877,32 +1877,32 @@ describe('Test axes', function() {
it(woTemplate + 'should set default tickmode correctly', function() {
var axIn = {};
var axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.tickmode).toBe('auto');
// and not push it back to axIn (which we used to do)
expect(axIn.tickmode).toBeUndefined();
axIn = {tickmode: 'array', tickvals: 'stuff'};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.tickmode).toBe('auto');
expect(axIn.tickmode).toBe('array');
axIn = {tickvals: [1, 2, 3]};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'date');
+ mockSupplyDefaults(void 0, axIn, axOut, 'date');
expect(axOut.tickmode).toBe('array');
expect(axIn.tickmode).toBeUndefined();
axIn = {tickmode: 'array', tickvals: [1, 2, 3]};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'date');
+ mockSupplyDefaults(void 0, axIn, axOut, 'date');
expect(axOut.tickmode).toBe('array');
expect(axIn.tickmode).toBe('array');
axIn = {tickvals: [1, 2, 3]};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.tickmode).toBe('array');
expect(axIn.tickmode).toBeUndefined();
@@ -1911,13 +1911,13 @@ describe('Test axes', function() {
arr[1] = 1;
axIn = {tickvals: arr};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.tickmode).toBe('array');
expect(axIn.tickmode).toBeUndefined();
axIn = {dtick: 1};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.tickmode).toBe('linear');
expect(axIn.tickmode).toBeUndefined();
});
@@ -1925,42 +1925,42 @@ describe('Test axes', function() {
it(woTemplate + 'should set nticks if tickmode=auto', function() {
var axIn = {};
var axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.nticks).toBe(0);
axIn = {tickmode: 'auto', nticks: 5};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.nticks).toBe(5);
axIn = {tickmode: 'linear', nticks: 15};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.nticks).toBe(undefined);
});
it(woTemplate + 'should set tick0 and dtick if tickmode=linear', function() {
var axIn = {tickmode: 'auto', tick0: 1, dtick: 1};
var axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.tick0).toBe(undefined);
expect(axOut.dtick).toBe(undefined);
axIn = {tickvals: [1, 2, 3], tick0: 1, dtick: 1};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.tick0).toBe(undefined);
expect(axOut.dtick).toBe(undefined);
axIn = {tick0: 2.71, dtick: 0.00828};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.tick0).toBe(2.71);
expect(axOut.dtick).toBe(0.00828);
axIn = {tickmode: 'linear', tick0: 3.14, dtick: 0.00159};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.tick0).toBe(3.14);
expect(axOut.dtick).toBe(0.00159);
});
@@ -1971,21 +1971,21 @@ describe('Test axes', function() {
var oneDay = 24 * 3600 * 1000;
var axIn = {tick0: someMs, dtick: String(3 * oneDay)};
var axOut = {};
- mockSupplyDefaults(axIn, axOut, 'date');
+ mockSupplyDefaults(void 0, axIn, axOut, 'date');
expect(axOut.tick0).toBe(someMsDate);
expect(axOut.dtick).toBe(3 * oneDay);
var someDate = '2011-12-15 13:45:56';
axIn = {tick0: someDate, dtick: 'M15'};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'date');
+ mockSupplyDefaults(void 0, axIn, axOut, 'date');
expect(axOut.tick0).toBe(someDate);
expect(axOut.dtick).toBe('M15');
// dtick without tick0: get the right default
axIn = {dtick: 'M12'};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'date');
+ mockSupplyDefaults(void 0, axIn, axOut, 'date');
expect(axOut.tick0).toBe('2000-01-01');
expect(axOut.dtick).toBe('M12');
@@ -2004,7 +2004,7 @@ describe('Test axes', function() {
].forEach(function(v, i) {
axIn = {tick0: v[0], dtick: v[1]};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'date');
+ mockSupplyDefaults(void 0, axIn, axOut, 'date');
expect(axOut.tick0).toBe('2000-01-01');
expect(axOut.dtick).toBe(oneDay);
expect(errors.length).toBe(i + 1);
@@ -2014,14 +2014,14 @@ describe('Test axes', function() {
it(woTemplate + 'should handle tick0 and dtick for log axes', function() {
var axIn = {tick0: '0.2', dtick: 0.3};
var axOut = {};
- mockSupplyDefaults(axIn, axOut, 'log');
+ mockSupplyDefaults(void 0, axIn, axOut, 'log');
expect(axOut.tick0).toBe(0.2);
expect(axOut.dtick).toBe(0.3);
['D1', 'D2'].forEach(function(v) {
axIn = {tick0: -1, dtick: v};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'log');
+ mockSupplyDefaults(void 0, axIn, axOut, 'log');
// tick0 gets ignored for D
expect(axOut.tick0).toBeUndefined(v);
expect(axOut.dtick).toBe(v);
@@ -2035,7 +2035,7 @@ describe('Test axes', function() {
].forEach(function(v) {
axIn = {tick0: v[0], dtick: v[1]};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'log');
+ mockSupplyDefaults(void 0, axIn, axOut, 'log');
expect(axOut.tick0).toBe(Number(v[0]));
expect(axOut.dtick).toBe((+v[1]) ? Number(v[1]) : v[1]);
});
@@ -2050,7 +2050,7 @@ describe('Test axes', function() {
].forEach(function(v) {
axIn = {tick0: v[0], dtick: v[1]};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'log');
+ mockSupplyDefaults(void 0, axIn, axOut, 'log');
expect(axOut.tick0).toBe(0);
expect(axOut.dtick).toBe(1);
});
@@ -2059,13 +2059,13 @@ describe('Test axes', function() {
it(woTemplate + 'should set tickvals and ticktext if tickmode=array', function() {
var axIn = {tickmode: 'auto', tickvals: [1, 2, 3], ticktext: ['4', '5', '6']};
var axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.tickvals).toBe(undefined);
expect(axOut.ticktext).toBe(undefined);
axIn = {tickvals: [2, 4, 6, 8], ticktext: ['who', 'do', 'we', 'appreciate']};
axOut = {};
- mockSupplyDefaults(axIn, axOut, 'linear');
+ mockSupplyDefaults(void 0, axIn, axOut, 'linear');
expect(axOut.tickvals).toEqual([2, 4, 6, 8]);
expect(axOut.ticktext).toEqual(['who', 'do', 'we', 'appreciate']);
});
@@ -2073,7 +2073,7 @@ describe('Test axes', function() {
it(woTemplate + 'should not coerce ticktext/tickvals on multicategory axes', function() {
var axIn = {tickvals: [1, 2, 3], ticktext: ['4', '5', '6']};
var axOut = {};
- mockSupplyDefaults(axIn, axOut, 'multicategory');
+ mockSupplyDefaults(void 0, axIn, axOut, 'multicategory');
expect(axOut.tickvals).toBe(undefined);
expect(axOut.ticktext).toBe(undefined);
});
@@ -5187,7 +5187,7 @@ describe('Test axes', function() {
.then(function() {
expect(gd._fullData[0].visible).toBe(false, 'sets visible:false');
expect(Lib.warn).toHaveBeenCalledTimes(1);
- expect(Lib.warn).toHaveBeenCalledWith('scattergl traces do not work on axes with rangebreaks. Setting trace 0 to `visible: false`.');
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), 'scattergl traces do not work on axes with rangebreaks. Setting trace 0 to `visible: false`.');
})
.catch(failTest)
.then(function() {
diff --git a/test/jasmine/tests/bar_test.js b/test/jasmine/tests/bar_test.js
index 3ef5568c3c2..6dea469a8d1 100644
--- a/test/jasmine/tests/bar_test.js
+++ b/test/jasmine/tests/bar_test.js
@@ -49,14 +49,14 @@ describe('Bar.supplyDefaults', function() {
it('should set visible to false when x and y are empty', function() {
traceIn = {};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
x: [],
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
});
@@ -64,27 +64,27 @@ describe('Bar.supplyDefaults', function() {
traceIn = {
x: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
x: [],
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
x: [1, 2, 3],
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
});
@@ -96,7 +96,7 @@ describe('Bar.supplyDefaults', function() {
it('should be visible using ' + c0 + '/' + dc + ' if ' + c + ' is missing completely but ' + l + ' is present', function() {
traceIn = {};
traceIn[l] = [1, 2];
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(undefined, l); // visible: true gets set above the module level
expect(traceOut._length).toBe(2, l);
expect(traceOut[c0]).toBe(0, c0);
@@ -109,7 +109,7 @@ describe('Bar.supplyDefaults', function() {
traceIn = {
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.base).toBeUndefined();
expect(traceOut.offset).toBeUndefined();
expect(traceOut.width).toBeUndefined();
@@ -120,7 +120,7 @@ describe('Bar.supplyDefaults', function() {
width: -1,
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.width).toBeUndefined();
});
@@ -128,7 +128,7 @@ describe('Bar.supplyDefaults', function() {
traceIn = {
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.textposition).toBe('none');
expect(traceOut.texfont).toBeUndefined();
expect(traceOut.insidetexfont).toBeUndefined();
@@ -146,7 +146,7 @@ describe('Bar.supplyDefaults', function() {
};
var layoutFontMinusColor = {family: 'arial', size: 13};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.textposition).toBe('inside');
expect(traceOut.textfont).toEqual(layout.font);
@@ -167,7 +167,7 @@ describe('Bar.supplyDefaults', function() {
font: {family: 'arial', color: '#AAA', size: 13}
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.insidetextfont.family).toBe('arial');
expect(traceOut.insidetextfont.color).toBeUndefined();
@@ -181,7 +181,7 @@ describe('Bar.supplyDefaults', function() {
textfont: {family: 'arial', color: '#09F', size: 20}
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.insidetextfont.family).toBe('arial');
expect(traceOut.insidetextfont.color).toBe('#09F');
@@ -193,7 +193,7 @@ describe('Bar.supplyDefaults', function() {
x: [1, 2, 3],
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {calendar: 'islamic'});
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -208,7 +208,7 @@ describe('Bar.supplyDefaults', function() {
xcalendar: 'coptic',
ycalendar: 'ethiopian'
};
- supplyDefaults(traceIn, traceOut, defaultColor, {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {calendar: 'islamic'});
expect(traceOut.xcalendar).toBe('coptic');
expect(traceOut.ycalendar).toBe('ethiopian');
@@ -2260,7 +2260,7 @@ describe('bar hover', function() {
function _hover(gd, xval, yval, hovermode) {
var pointData = getPointData(gd);
- var pts = Bar.hoverPoints(pointData, xval, yval, hovermode);
+ var pts = Bar.hoverPoints(gd, pointData, xval, yval, hovermode);
if(!pts) return false;
var pt = pts[0];
@@ -2589,8 +2589,8 @@ describe('bar hover', function() {
barmode: m
})
.then(function() {
- var pt0 = Bar.hoverPoints(getPointData(gd, 0), 0, 1, 'x')[0];
- var pt1 = Bar.hoverPoints(getPointData(gd, 1), 0, 1, 'x')[0];
+ var pt0 = Bar.hoverPoints(gd, getPointData(gd, 0), 0, 1, 'x')[0];
+ var pt1 = Bar.hoverPoints(gd, getPointData(gd, 1), 0, 1, 'x')[0];
expect(pt0.yLabelVal).toBe(0, 'y label value for data[0]');
expect(pt1.yLabelVal).toBe(1, 'y label value for data[1]');
diff --git a/test/jasmine/tests/barpolar_test.js b/test/jasmine/tests/barpolar_test.js
index 76c97c9e13a..af58a447e51 100644
--- a/test/jasmine/tests/barpolar_test.js
+++ b/test/jasmine/tests/barpolar_test.js
@@ -71,7 +71,7 @@ describe('Test barpolar hover:', function() {
subplot: subplot,
maxHoverDistance: 20
};
- var pts = trace._module.hoverPoints(pointData, specs.xval, specs.yval, 'closest');
+ var pts = trace._module.hoverPoints(gd, pointData, specs.xval, specs.yval, 'closest');
return pts ? pts[0] : {distance: Infinity};
});
diff --git a/test/jasmine/tests/box_test.js b/test/jasmine/tests/box_test.js
index 58ea50c048d..068f8afd3b3 100644
--- a/test/jasmine/tests/box_test.js
+++ b/test/jasmine/tests/box_test.js
@@ -26,14 +26,14 @@ describe('Test boxes supplyDefaults', function() {
it('should set visible to false when x and y are empty', function() {
traceIn = {};
- supplyDefaults(traceIn, traceOut, defaultColor);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor);
expect(traceOut.visible).toBe(false);
traceIn = {
x: [],
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
});
@@ -41,27 +41,27 @@ describe('Test boxes supplyDefaults', function() {
traceIn = {
x: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
x: [],
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
x: [1, 2, 3],
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
});
@@ -69,14 +69,14 @@ describe('Test boxes supplyDefaults', function() {
traceIn = {
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.orientation).toBe('v');
traceIn = {
x: [1, 1, 1],
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.orientation).toBe('v');
});
@@ -84,7 +84,7 @@ describe('Test boxes supplyDefaults', function() {
traceIn = {
x: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.orientation).toBe('h');
});
@@ -92,7 +92,7 @@ describe('Test boxes supplyDefaults', function() {
traceIn = {
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {calendar: 'islamic'});
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -106,7 +106,7 @@ describe('Test boxes supplyDefaults', function() {
xcalendar: 'coptic',
ycalendar: 'ethiopian'
};
- supplyDefaults(traceIn, traceOut, defaultColor, {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {calendar: 'islamic'});
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -119,7 +119,7 @@ describe('Test boxes supplyDefaults', function() {
y: [1, 1, 2],
boxpoints: false
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.boxpoints).toBe(false);
expect(traceOut.jitter).toBeUndefined();
@@ -135,7 +135,7 @@ describe('Test boxes supplyDefaults', function() {
outliercolor: 'blue'
}
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.boxpoints).toBe('suspectedoutliers');
});
@@ -146,7 +146,7 @@ describe('Test boxes supplyDefaults', function() {
line: {outliercolor: 'blue'}
}
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.boxpoints).toBe('suspectedoutliers');
expect(traceOut.marker).toBeDefined();
expect(traceOut.text).toBeDefined();
@@ -161,7 +161,7 @@ describe('Test boxes supplyDefaults', function() {
hoveron: 'points',
hovertemplate: ht
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.hovertemplate).toBe(ht);
});
@@ -171,7 +171,7 @@ describe('Test boxes supplyDefaults', function() {
hoveron: 'points+boxes',
hovertemplate: ht
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.hovertemplate).toBe(ht);
});
@@ -181,7 +181,7 @@ describe('Test boxes supplyDefaults', function() {
hoveron: 'boxes',
hovertemplate: ht
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.hovertemplate).toBe(undefined);
});
});
diff --git a/test/jasmine/tests/carpet_test.js b/test/jasmine/tests/carpet_test.js
index 8bf0aab5033..91a013cf2c5 100644
--- a/test/jasmine/tests/carpet_test.js
+++ b/test/jasmine/tests/carpet_test.js
@@ -3,8 +3,9 @@ var Plots = require('@src/plots/plots');
var Lib = require('@src/lib');
var Carpet = require('@src/traces/carpet');
-var smoothFill2D = require('@src/traces/carpet/smooth_fill_2d_array');
var smoothFill = require('@src/traces/carpet/smooth_fill_array');
+var smoothFill2DRaw = require('@src/traces/carpet/smooth_fill_2d_array');
+function smoothFill2D(data, a, b) { return smoothFill2DRaw(void 0, data, a, b); }
var d3 = require('d3');
var createGraphDiv = require('../assets/create_graph_div');
@@ -42,7 +43,7 @@ describe('carpet supplyDefaults', function() {
y: [[2, 3, 4], [5, 6, 7]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.a).toEqual([0, 1]);
expect(traceOut.b).toEqual([0, 1, 2]);
@@ -59,7 +60,7 @@ describe('carpet supplyDefaults', function() {
y: [[2, 3, 4], [5, 6, 7]],
b: [0, 1]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.da).not.toBeUndefined();
expect(traceOut.a0).not.toBeUndefined();
@@ -72,7 +73,7 @@ describe('carpet supplyDefaults', function() {
y: [[2, 3, 4], [5, 6, 7]],
a: [0, 1, 2]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.da).toBeUndefined();
expect(traceOut.a0).toBeUndefined();
@@ -82,13 +83,13 @@ describe('carpet supplyDefaults', function() {
it('sets visible = false when x is not valid', function() {
traceIn = {y: [[1, 2], [3, 4]], x: [4]};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
it('sets visible = false when y is not valid', function() {
traceIn = {y: [1, 2]};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -97,19 +98,19 @@ describe('carpet supplyDefaults', function() {
x: [[1, 2], [3, 4]],
y: [[1, 2, 3], [4, 5, 6]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
/* it('sets _cheater = true when x is provided', function() {
traceIn = {y: [[1, 2], [3, 4]]};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut._cheater).toBe(true);
});
it('sets cheater = false when x is not valid', function() {
traceIn = {y: [[1, 2], [3, 4]], x: [[3, 4], [1, 2]]};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut._cheater).toBe(false);
});*/
});
diff --git a/test/jasmine/tests/choropleth_test.js b/test/jasmine/tests/choropleth_test.js
index 9aee3409e56..63d27c5bba4 100644
--- a/test/jasmine/tests/choropleth_test.js
+++ b/test/jasmine/tests/choropleth_test.js
@@ -38,7 +38,7 @@ describe('Test choropleth', function() {
z: [1, 2, 3]
};
- Choropleth.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Choropleth.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.z).toEqual([1, 2, 3]);
expect(traceOut.locations).toEqual(['CAN', 'USA']);
expect(traceOut._length).toBe(2);
@@ -48,7 +48,7 @@ describe('Test choropleth', function() {
z: [1, 2]
};
- Choropleth.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Choropleth.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.z).toEqual([1, 2]);
expect(traceOut.locations).toEqual(['CAN', 'USA', 'ALB']);
expect(traceOut._length).toBe(2);
@@ -59,7 +59,7 @@ describe('Test choropleth', function() {
z: [1, 2, 3]
};
- Choropleth.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Choropleth.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -69,7 +69,7 @@ describe('Test choropleth', function() {
z: 'no gonna work'
};
- Choropleth.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Choropleth.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -85,7 +85,7 @@ describe('Test choropleth', function() {
}
};
- Choropleth.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Choropleth.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.marker.line.width).toBe(0, 'mlw');
expect(traceOut.marker.line.color).toBe(undefined, 'mlc');
});
@@ -97,7 +97,7 @@ describe('Test choropleth', function() {
geojson: 'url'
};
traceOut = {};
- Choropleth.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Choropleth.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.locationmode).toBe('geojson-id', 'valid url string');
traceIn = {
@@ -106,7 +106,7 @@ describe('Test choropleth', function() {
geojson: {}
};
traceOut = {};
- Choropleth.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Choropleth.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.locationmode).toBe('geojson-id', 'valid object');
traceIn = {
@@ -115,7 +115,7 @@ describe('Test choropleth', function() {
geojson: ''
};
traceOut = {};
- Choropleth.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Choropleth.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.locationmode).toBe('ISO-3', 'invalid sting');
traceIn = {
@@ -124,7 +124,7 @@ describe('Test choropleth', function() {
geojson: []
};
traceOut = {};
- Choropleth.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Choropleth.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.locationmode).toBe('ISO-3', 'invalid object');
});
@@ -136,7 +136,7 @@ describe('Test choropleth', function() {
featureidkey: 'properties.name'
};
traceOut = {};
- Choropleth.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Choropleth.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.featureidkey).toBe('properties.name', 'coerced');
traceIn = {
@@ -145,7 +145,7 @@ describe('Test choropleth', function() {
featureidkey: 'properties.name'
};
traceOut = {};
- Choropleth.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Choropleth.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.featureidkey).toBe(undefined, 'NOT coerced');
});
});
diff --git a/test/jasmine/tests/colorscale_test.js b/test/jasmine/tests/colorscale_test.js
index 9d509ab6321..2be00a749c3 100644
--- a/test/jasmine/tests/colorscale_test.js
+++ b/test/jasmine/tests/colorscale_test.js
@@ -265,7 +265,7 @@ describe('Test colorscale:', function() {
zmin: -10,
zmax: 10
};
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.zauto).toBe(false);
});
@@ -274,42 +274,42 @@ describe('Test colorscale:', function() {
zmin: 'dsa',
zmax: null
};
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.zauto).toBe(true);
traceIn = {
zmin: 10,
zmax: -10
};
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.zauto).toBe(true);
});
it('should coerce autocolorscale to false unless set to true', function() {
traceIn = {};
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.autocolorscale).toBe(false);
traceIn = {
colorscale: 'Greens'
};
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.autocolorscale).toBe(false);
traceIn = {
autocolorscale: true
};
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.autocolorscale).toBe(true);
});
it('should coerce showscale to true unless set to false', function() {
traceIn = {};
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.showscale).toBe(true);
traceIn = { showscale: false };
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.showscale).toBe(false);
});
});
@@ -336,7 +336,7 @@ describe('Test colorscale:', function() {
it('should coerce autocolorscale to true by default', function() {
traceIn = { marker: { line: {} } };
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.marker.autocolorscale).toBe(true);
});
@@ -344,19 +344,19 @@ describe('Test colorscale:', function() {
traceIn = {
marker: { colorscale: 'Greens' }
};
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.marker.autocolorscale).toBe(false);
traceIn = {
marker: { colorscale: 'nope' }
};
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.marker.autocolorscale).toBe(true);
});
it('should coerce showscale to true if colorbar is specified', function() {
traceIn = { marker: {} };
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.marker.showscale).toBe(false);
traceIn = {
@@ -364,7 +364,7 @@ describe('Test colorscale:', function() {
colorbar: {}
}
};
- handleDefaults(traceIn, traceOut, layout, coerce, opts);
+ handleDefaults(void 0, traceIn, traceOut, layout, coerce, opts);
expect(traceOut.marker.showscale).toBe(true);
});
});
diff --git a/test/jasmine/tests/contour_test.js b/test/jasmine/tests/contour_test.js
index cd4c93f792d..76b45450838 100644
--- a/test/jasmine/tests/contour_test.js
+++ b/test/jasmine/tests/contour_test.js
@@ -49,7 +49,7 @@ describe('contour defaults', function() {
// even though in calc we set an autosize.
}
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.autocontour).toBe(false);
traceIn = {
@@ -60,7 +60,7 @@ describe('contour defaults', function() {
[0.625, 1.25, 3.125, 6.25]],
contours: {start: 4} // you need at least start and end
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.autocontour).toBe(true);
});
@@ -70,7 +70,7 @@ describe('contour defaults', function() {
z: [[0, null], [1, 2]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.connectgaps).toBe(false);
});
@@ -82,7 +82,7 @@ describe('contour defaults', function() {
z: [0, null, 1, 2]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.connectgaps).toBe(true);
});
@@ -92,7 +92,7 @@ describe('contour defaults', function() {
y: [1, 2],
z: [[1, 2], [3, 4]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, Lib.extendFlat({calendar: 'islamic'}, layout));
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, Lib.extendFlat({calendar: 'islamic'}, layout));
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -108,7 +108,7 @@ describe('contour defaults', function() {
xcalendar: 'coptic',
ycalendar: 'ethiopian'
};
- supplyDefaults(traceIn, traceOut, defaultColor, Lib.extendFlat({calendar: 'islamic'}, layout));
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, Lib.extendFlat({calendar: 'islamic'}, layout));
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -612,7 +612,7 @@ describe('contour hover', function() {
ya: fullLayout.yaxis
};
- var hoverPoint = Contour.hoverPoints(pointData, xval, yval);
+ var hoverPoint = Contour.hoverPoints(gd, pointData, xval, yval);
if(hoverPoint) hoverData.push(hoverPoint[0]);
}
diff --git a/test/jasmine/tests/contourgl_test.js b/test/jasmine/tests/contourgl_test.js
index bdf1a40c936..4f82465af18 100644
--- a/test/jasmine/tests/contourgl_test.js
+++ b/test/jasmine/tests/contourgl_test.js
@@ -279,7 +279,7 @@ describe('heatmapgl supplyDefaults', function() {
z: [[0, 1], [1, 0]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
var allKeys = Object.getOwnPropertyNames(traceOut);
allKeys.forEach(function(key) {
if(key[0] !== '_') {
diff --git a/test/jasmine/tests/finance_test.js b/test/jasmine/tests/finance_test.js
index 859f60a0ca6..b726329c66d 100644
--- a/test/jasmine/tests/finance_test.js
+++ b/test/jasmine/tests/finance_test.js
@@ -1162,7 +1162,7 @@ describe('finance trace hover:', function() {
ya: gd._fullLayout.yaxis,
maxHoverDistance: 20
};
- var pts = trace._module.hoverPoints(pointData, xval, yval, hovermode);
+ var pts = trace._module.hoverPoints(gd, pointData, xval, yval, hovermode);
return pts ? pts[0] : {distance: Infinity};
});
diff --git a/test/jasmine/tests/frame_api_test.js b/test/jasmine/tests/frame_api_test.js
index 9f69bd97cc8..9d693a12ad0 100644
--- a/test/jasmine/tests/frame_api_test.js
+++ b/test/jasmine/tests/frame_api_test.js
@@ -39,7 +39,7 @@ describe('Test frame api', function() {
describe('#addFrames', function() {
it('issues a warning if a number-named frame would overwrite a frame', function(done) {
var warnings = [];
- spyOn(Lib, 'warn').and.callFake(function(msg) {
+ spyOn(Lib, 'warn').and.callFake(function(gd, msg) {
warnings.push(msg);
});
diff --git a/test/jasmine/tests/funnel_test.js b/test/jasmine/tests/funnel_test.js
index cf59df2ab06..aad88657d91 100644
--- a/test/jasmine/tests/funnel_test.js
+++ b/test/jasmine/tests/funnel_test.js
@@ -40,14 +40,14 @@ describe('Funnel.supplyDefaults', function() {
it('should set visible to false when x and y are empty', function() {
traceIn = {};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
x: [],
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
});
@@ -55,27 +55,27 @@ describe('Funnel.supplyDefaults', function() {
traceIn = {
x: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
x: [],
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
x: [1, 2, 3],
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
});
@@ -87,7 +87,7 @@ describe('Funnel.supplyDefaults', function() {
it('should be visible using ' + c0 + '/' + dc + ' if ' + c + ' is missing completely but ' + l + ' is present', function() {
traceIn = {};
traceIn[l] = [1, 2];
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(undefined, l); // visible: true gets set above the module level
expect(traceOut._length).toBe(2, l);
expect(traceOut[c0]).toBe(0, c0);
@@ -100,7 +100,7 @@ describe('Funnel.supplyDefaults', function() {
traceIn = {
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.base).toBeUndefined();
expect(traceOut.offset).toBeUndefined();
expect(traceOut.width).toBeUndefined();
@@ -111,7 +111,7 @@ describe('Funnel.supplyDefaults', function() {
width: -1,
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.width).toBeUndefined();
});
@@ -119,7 +119,7 @@ describe('Funnel.supplyDefaults', function() {
traceIn = {
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.textposition).toBe('auto');
expect(traceOut.texfont).toBeUndefined();
expect(traceOut.insidetexfont).toBeUndefined();
@@ -133,7 +133,7 @@ describe('Funnel.supplyDefaults', function() {
textposition: 'none',
textinfo: 'text'
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.textinfo).toBeUndefined();
});
@@ -142,7 +142,7 @@ describe('Funnel.supplyDefaults', function() {
y: [1, 2, 3],
textinfo: 'text'
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.textinfo).not.toBeUndefined();
});
@@ -156,7 +156,7 @@ describe('Funnel.supplyDefaults', function() {
};
var layoutFontMinusColor = {family: 'arial', size: 13};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.textposition).toBe('inside');
expect(traceOut.textfont).toEqual(layout.font);
@@ -177,7 +177,7 @@ describe('Funnel.supplyDefaults', function() {
font: {family: 'arial', color: '#AAA', size: 13}
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.insidetextfont.family).toBe('arial');
expect(traceOut.insidetextfont.color).toBeUndefined();
@@ -191,7 +191,7 @@ describe('Funnel.supplyDefaults', function() {
textfont: {family: 'arial', color: '#09F', size: 20}
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.insidetextfont.family).toBe('arial');
expect(traceOut.insidetextfont.color).toBe('#09F');
@@ -203,7 +203,7 @@ describe('Funnel.supplyDefaults', function() {
x: [1, 2, 3],
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {calendar: 'islamic'});
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -218,7 +218,7 @@ describe('Funnel.supplyDefaults', function() {
xcalendar: 'coptic',
ycalendar: 'ethiopian'
};
- supplyDefaults(traceIn, traceOut, defaultColor, {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {calendar: 'islamic'});
expect(traceOut.xcalendar).toBe('coptic');
expect(traceOut.ycalendar).toBe('ethiopian');
@@ -1321,7 +1321,7 @@ describe('funnel hover', function() {
function _hover(gd, xval, yval, hovermode) {
var pointData = getPointData(gd);
- var pts = Funnel.hoverPoints(pointData, xval, yval, hovermode);
+ var pts = Funnel.hoverPoints(gd, pointData, xval, yval, hovermode);
if(!pts) return false;
var pt = pts[0];
diff --git a/test/jasmine/tests/geo_test.js b/test/jasmine/tests/geo_test.js
index 426c9a7e745..9edee5fb115 100644
--- a/test/jasmine/tests/geo_test.js
+++ b/test/jasmine/tests/geo_test.js
@@ -75,7 +75,7 @@ describe('Test Geo layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.geo.projection.rotation).toBeUndefined();
expect(layoutOut.geo.scope).toEqual('usa');
});
@@ -92,7 +92,7 @@ describe('Test Geo layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.geo.projection.rotation).toBeDefined();
expect(layoutOut.geo.scope).toEqual('world');
});
@@ -108,7 +108,7 @@ describe('Test Geo layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
seaFields.forEach(function(field) {
expect(layoutOut.geo[field]).toBeUndefined();
});
@@ -122,7 +122,7 @@ describe('Test Geo layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
seaFields.forEach(function(field) {
expect(layoutOut.geo[field]).toBeDefined();
});
@@ -141,7 +141,7 @@ describe('Test Geo layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
}
projTypes.forEach(function(projType) {
@@ -159,7 +159,7 @@ describe('Test Geo layout defaults', function() {
geo: { scope: 'usa' }
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
subunitFields.forEach(function(field) {
expect(layoutOut.geo[field]).toBeDefined();
});
@@ -168,7 +168,7 @@ describe('Test Geo layout defaults', function() {
it('should coerce subunits only when available (default case)', function() {
layoutIn = { geo: {} };
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
subunitFields.forEach(function(field) {
expect(layoutOut.geo[field]).toBeUndefined();
});
@@ -182,7 +182,7 @@ describe('Test Geo layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
subunitFields.forEach(function(field) {
expect(layoutOut.geo[field]).toBeDefined();
});
@@ -196,7 +196,7 @@ describe('Test Geo layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
subunitFields.forEach(function(field) {
expect(layoutOut.geo[field]).toBeDefined();
});
@@ -209,7 +209,7 @@ describe('Test Geo layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
subunitFields.forEach(function(field) {
expect(layoutOut.geo[field]).toBeUndefined();
});
@@ -223,7 +223,7 @@ describe('Test Geo layout defaults', function() {
geo: { scope: scope }
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
}
scopes.forEach(function(scope) {
@@ -244,7 +244,7 @@ describe('Test Geo layout defaults', function() {
layoutIn = {};
fullData = [{ type: 'scattergeo', geo: 'geo' }];
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutIn.geo).toEqual({});
});
@@ -253,7 +253,7 @@ describe('Test Geo layout defaults', function() {
layoutIn = {};
fullData = [{ type: 'scatter' }];
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutIn.geo).toBe(undefined);
});
@@ -268,7 +268,7 @@ describe('Test Geo layout defaults', function() {
it('base case for ' + s, function() {
layoutIn = {geo: {scope: s}};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
var dfltLonaxisRange = scopeDefaults[s].lonaxisRange;
var dfltLataxisRange = scopeDefaults[s].lataxisRange;
@@ -287,7 +287,7 @@ describe('Test Geo layout defaults', function() {
lataxis: {range: customLataxisRange}
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.geo.lonaxis.range).toEqual(customLonaxisRange);
expect(layoutOut.geo.lataxis.range).toEqual(customLataxisRange);
@@ -334,7 +334,7 @@ describe('Test Geo layout defaults', function() {
specs.forEach(function(s, i) {
it('- case ' + i, function() {
layoutIn = {geo: s.geo};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.geo.lonaxis.range).toEqual(s.lonRange);
expect(layoutOut.geo.lataxis.range).toEqual(s.latRange);
@@ -358,7 +358,7 @@ describe('Test Geo layout defaults', function() {
geo: { lonaxis: {range: s.lonRange} }
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.geo.lonaxis.range)
.toEqual(s.lonRange, 'lonaxis.range');
expect(layoutOut.geo.projection.rotation.lon)
@@ -378,7 +378,7 @@ describe('Test Geo layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.geo.lonaxis.range)
.toEqual(s.lonRange, 'lonaxis.range');
expect(layoutOut.geo.projection.rotation.lon)
@@ -407,7 +407,7 @@ describe('Test Geo layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.geo.lonaxis.range)
.toEqual(s.lonRange, 'lonaxis.range');
expect(layoutOut.geo.projection.rotation.lon)
@@ -431,7 +431,7 @@ describe('Test Geo layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.geo.lonaxis.range)
.toEqual(s.lonRange, 'lonaxis.range');
expect(layoutOut.geo.projection.rotation.lon)
@@ -455,7 +455,7 @@ describe('Test Geo layout defaults', function() {
geo: { lataxis: {range: s.latRange} }
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.geo.lataxis.range)
.toEqual(s.latRange, 'lataxis.range');
expect(layoutOut.geo.center.lat)
@@ -485,7 +485,7 @@ describe('Test Geo layout defaults', function() {
fitbounds: false
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
_assert({
'projection.scale': 1,
'center.lon': 15,
@@ -505,7 +505,7 @@ describe('Test Geo layout defaults', function() {
fitbounds: v
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
_assert({
'projection.scale': undefined,
'center.lon': undefined,
@@ -531,7 +531,7 @@ describe('Test Geo layout defaults', function() {
fitbounds: false,
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
_assert({
'projection.scale': 2,
'center.lon': 20,
@@ -555,7 +555,7 @@ describe('Test Geo layout defaults', function() {
fitbounds: v
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
_assert({
'projection.scale': undefined,
'center.lon': undefined,
@@ -583,7 +583,7 @@ describe('Test Geo layout defaults', function() {
fitbounds: false,
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
_assert({
'projection.scale': 2,
'center.lon': 20,
@@ -609,7 +609,7 @@ describe('Test Geo layout defaults', function() {
fitbounds: v,
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
_assert({
'projection.scale': undefined,
'center.lon': undefined,
@@ -672,7 +672,7 @@ describe('Test Geo layout defaults', function() {
geo: { visible: false }
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
_assert({
showsubunits: undefined
});
@@ -701,7 +701,7 @@ describe('Test Geo layout defaults', function() {
geo: { scope: 'europe', visible: false }
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
_assert({
showframe: undefined,
showsubunits: undefined
@@ -731,7 +731,7 @@ describe('Test Geo layout defaults', function() {
geo: { scope: 'usa', visible: false }
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
_assert({
showframe: undefined,
showcoastlines: undefined,
@@ -1477,7 +1477,7 @@ describe('Test geo interactions', function() {
});
expect(Lib.warn).toHaveBeenCalledTimes(1);
- expect(Lib.warn).toHaveBeenCalledWith(
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(),
'Invalid geo settings, relayout\'ing to default view.'
);
})
diff --git a/test/jasmine/tests/gl3dlayout_test.js b/test/jasmine/tests/gl3dlayout_test.js
index 06232dab190..a80d50dfbc4 100644
--- a/test/jasmine/tests/gl3dlayout_test.js
+++ b/test/jasmine/tests/gl3dlayout_test.js
@@ -80,7 +80,7 @@ describe('Test gl3d axes defaults', function() {
return true;
}
- supplyLayoutDefaults(layoutIn, layoutOut, options);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, options);
['xaxis', 'yaxis', 'zaxis'].forEach(function(axis) {
checkKeys(expected[axis], layoutOut[axis]);
});
@@ -94,7 +94,7 @@ describe('Test gl3d axes defaults', function() {
};
options.calendar = 'taiwan';
- supplyLayoutDefaults(layoutIn, layoutOut, options);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, options);
expect(layoutOut.xaxis.calendar).toBe('taiwan');
expect(layoutOut.yaxis.calendar).toBe('taiwan');
@@ -109,7 +109,7 @@ describe('Test gl3d axes defaults', function() {
};
options.calendar = 'taiwan';
- supplyLayoutDefaults(layoutIn, layoutOut, options);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, options);
expect(layoutOut.xaxis.calendar).toBe('hebrew');
expect(layoutOut.yaxis.calendar).toBe('ummalqura');
@@ -159,7 +159,7 @@ describe('Test Gl3d layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.aspectmode).toBe(expected.scene.aspectmode);
expect(layoutOut.scene.aspectratio).toEqual(expected.scene.aspectratio);
expect(layoutOut.scene.bgcolor).toBe(expected.scene.bgcolor);
@@ -187,7 +187,7 @@ describe('Test Gl3d layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.aspectmode).toBe(expected.scene.aspectmode);
expect(layoutOut.scene.aspectratio).toEqual(expected.scene.aspectratio);
});
@@ -214,7 +214,7 @@ describe('Test Gl3d layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.aspectmode).toBe(expected.scene.aspectmode);
expect(layoutOut.scene.aspectratio).toEqual(expected.scene.aspectratio);
});
@@ -241,7 +241,7 @@ describe('Test Gl3d layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.aspectmode).toBe(expected.scene.aspectmode);
expect(layoutOut.scene.aspectratio).toEqual(expected.scene.aspectratio);
});
@@ -268,73 +268,73 @@ describe('Test Gl3d layout defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.aspectmode).toBe(expected.scene.aspectmode);
expect(layoutOut.scene.aspectratio).toEqual(expected.scene.aspectratio);
});
it('should coerce dragmode', function() {
layoutIn = { scene: {} };
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.dragmode)
.toBe('turntable', 'to turntable by default');
layoutIn = { scene: { dragmode: 'orbit' } };
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.dragmode)
.toBe('orbit', 'to user val if valid');
layoutIn = { scene: {}, dragmode: 'orbit' };
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.dragmode)
.toBe('orbit', 'to user layout val if valid and 3d only');
layoutIn = { scene: {}, dragmode: 'invalid' };
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.dragmode)
.toBe('turntable', 'to turntable if invalid and 3d only');
layoutIn = { scene: {}, dragmode: 'orbit' };
layoutOut._basePlotModules.push({ name: 'cartesian' });
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.dragmode)
.toBe('turntable', 'to default if not 3d only');
layoutIn = { scene: {}, dragmode: 'not gonna work' };
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.dragmode)
.toBe('turntable', 'to default if not valid');
});
it('should coerce hovermode', function() {
layoutIn = { scene: {} };
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.hovermode)
.toBe('closest', 'to closest by default');
layoutIn = { scene: { hovermode: false } };
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.hovermode)
.toBe(false, 'to user val if valid');
layoutIn = { scene: {}, hovermode: false };
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.hovermode)
.toBe(false, 'to user layout val if valid and 3d only');
layoutIn = { scene: {}, hovermode: 'invalid' };
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.hovermode)
.toBe('closest', 'to closest if invalid and 3d only');
layoutIn = { scene: {}, hovermode: false };
layoutOut._basePlotModules.push({ name: 'cartesian' });
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.hovermode)
.toBe('closest', 'to default if not 3d only');
layoutIn = { scene: {}, hovermode: 'not gonna work' };
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.hovermode)
.toBe('closest', 'to default if not valid');
});
@@ -343,7 +343,7 @@ describe('Test Gl3d layout defaults', function() {
layoutIn = {};
fullData = [{ type: 'scatter3d', scene: 'scene' }];
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutIn.scene).toEqual({
aspectratio: { x: 1, y: 1, z: 1 },
aspectmode: 'auto'
@@ -355,7 +355,7 @@ describe('Test Gl3d layout defaults', function() {
layoutOut._subplots.gl3d = [];
fullData = [{ type: 'scatter' }];
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutIn.scene).toBe(undefined);
});
@@ -373,7 +373,7 @@ describe('Test Gl3d layout defaults', function() {
var bgColor = Color.combine('yellow', 'green');
var frac = 100 * (204 - 0x44) / (255 - 0x44);
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.scene.xaxis.gridcolor)
.toEqual(tinycolor.mix('red', bgColor, frac).toRgbString());
expect(layoutOut.scene.yaxis.gridcolor).toEqual('blue');
diff --git a/test/jasmine/tests/heatmap_test.js b/test/jasmine/tests/heatmap_test.js
index 92b494de801..73aaf8ac151 100644
--- a/test/jasmine/tests/heatmap_test.js
+++ b/test/jasmine/tests/heatmap_test.js
@@ -35,32 +35,32 @@ describe('heatmap supplyDefaults', function() {
traceIn = {
z: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
traceIn = {
z: [[]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
traceIn = {
z: [[], [], []]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
traceIn = {
type: 'heatmap',
z: [[1, 2], []]
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'heatmap'}, 0, layout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'heatmap'}, 0, layout);
traceIn = {
type: 'heatmap',
z: [[], [1, 2], [1, 2, 3]]
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'heatmap'}, 0, layout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'heatmap'}, 0, layout);
expect(traceOut.visible).toBe(true);
expect(traceOut.visible).toBe(true);
});
@@ -70,7 +70,7 @@ describe('heatmap supplyDefaults', function() {
type: 'heatmap',
z: [['a', 'b'], ['c', 'd']]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -80,7 +80,7 @@ describe('heatmap supplyDefaults', function() {
y: [1, 2, 3, 1, 2],
z: [1, ['this is considered a column'], 1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).not.toBe(false);
traceIn = {
@@ -88,7 +88,7 @@ describe('heatmap supplyDefaults', function() {
y: [1, 2, 3, 1, 2],
z: [[0], ['this is not considered a column'], 1, ['nor 2d']]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -98,7 +98,7 @@ describe('heatmap supplyDefaults', function() {
z: [[1, 2], [3, 4]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.xgap).toBe(0);
expect(traceOut.ygap).toBe(0);
});
@@ -110,7 +110,7 @@ describe('heatmap supplyDefaults', function() {
z: [[1, 2], [3, 4]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.xgap).toBe(10);
expect(traceOut.ygap).toBe(0);
});
@@ -123,7 +123,7 @@ describe('heatmap supplyDefaults', function() {
z: [[1, 2], [3, 4]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.xgap).toBe(undefined);
expect(traceOut.ygap).toBe(undefined);
});
@@ -134,7 +134,7 @@ describe('heatmap supplyDefaults', function() {
z: [[0, null], [1, 2]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.connectgaps).toBe(false);
});
@@ -147,7 +147,7 @@ describe('heatmap supplyDefaults', function() {
z: [1, null, 4, 5, 6]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.connectgaps).toBe(true);
});
@@ -160,7 +160,7 @@ describe('heatmap supplyDefaults', function() {
z: [1, null, 4, 5, 6]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.connectgaps).toBe(false);
});
@@ -170,7 +170,7 @@ describe('heatmap supplyDefaults', function() {
y: [1, 2],
z: [[1, 2], [3, 4]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, Lib.extendDeep({calendar: 'islamic'}, layout));
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, Lib.extendDeep({calendar: 'islamic'}, layout));
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -186,7 +186,7 @@ describe('heatmap supplyDefaults', function() {
xcalendar: 'coptic',
ycalendar: 'ethiopian'
};
- supplyDefaults(traceIn, traceOut, defaultColor, Lib.extendDeep({calendar: 'islamic'}, layout));
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, Lib.extendDeep({calendar: 'islamic'}, layout));
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -852,7 +852,7 @@ describe('heatmap hover', function() {
ya: fullLayout.yaxis
};
- var hoverPoint = Heatmap.hoverPoints(pointData, xval, yval);
+ var hoverPoint = Heatmap.hoverPoints(gd, pointData, xval, yval);
if(hoverPoint) hoverData.push(hoverPoint[0]);
}
diff --git a/test/jasmine/tests/heatmapgl_test.js b/test/jasmine/tests/heatmapgl_test.js
index c4e7a5b7478..d88ab9b620c 100644
--- a/test/jasmine/tests/heatmapgl_test.js
+++ b/test/jasmine/tests/heatmapgl_test.js
@@ -25,33 +25,33 @@ describe('heatmapgl supplyDefaults', function() {
traceIn = {
z: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
traceIn = {
z: [[]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
traceIn = {
z: [[], [], []]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
traceIn = {
type: 'heatmapgl',
z: [[1, 2], []]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
traceIn = {
type: 'heatmapgl',
z: [[], [1, 2], [1, 2, 3]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -60,7 +60,7 @@ describe('heatmapgl supplyDefaults', function() {
type: 'heatmapgl',
z: [['a', 'b'], ['c', 'd']]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -70,7 +70,7 @@ describe('heatmapgl supplyDefaults', function() {
y: [1, 2, 3, 1, 2],
z: [1, ['this is considered a column'], 1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).not.toBe(false);
traceIn = {
@@ -78,7 +78,7 @@ describe('heatmapgl supplyDefaults', function() {
y: [1, 2, 3, 1, 2],
z: [[0], ['this is not considered a column'], 1, ['nor 2d']]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -88,7 +88,7 @@ describe('heatmapgl supplyDefaults', function() {
z: [[0, 1], [1, 0]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
var allKeys = Object.getOwnPropertyNames(traceOut);
allKeys.forEach(function(key) {
if(key[0] !== '_') {
diff --git a/test/jasmine/tests/histogram2d_test.js b/test/jasmine/tests/histogram2d_test.js
index cab4e2523e7..c4debb50a83 100644
--- a/test/jasmine/tests/histogram2d_test.js
+++ b/test/jasmine/tests/histogram2d_test.js
@@ -16,10 +16,10 @@ var assertHoverLabelContent = customAssertions.assertHoverLabelContent;
describe('Test histogram2d', function() {
'use strict';
- function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
+ function supplyDefaults(gd, traceIn, traceOut, defaultColor, layout) {
layout._dfltTitle = {colorbar: 'cb'};
- return supplyDefaultsRaw(traceIn, traceOut, defaultColor, layout);
+ return supplyDefaultsRaw(gd, traceIn, traceOut, defaultColor, layout);
}
describe('supplyDefaults', function() {
@@ -32,7 +32,7 @@ describe('Test histogram2d', function() {
it('should quit early if there is no data', function() {
traceIn = {};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.visible).toBe(false);
['zsmooth', 'xgap', 'ygap', 'calendar'].forEach(function(v) {
expect(traceOut[v]).toBeUndefined(v);
@@ -41,7 +41,7 @@ describe('Test histogram2d', function() {
it('should set zsmooth to false when zsmooth is empty', function() {
traceIn = {x: [1, 2], y: [1, 2]};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.visible).not.toBe(false);
expect(traceOut.zsmooth).toBe(false);
});
@@ -52,13 +52,13 @@ describe('Test histogram2d', function() {
y: [1, 2],
zsmooth: 'fast'
};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.zsmooth).toBe('fast');
});
it('should set xgap and ygap to 0 when xgap and ygap are empty', function() {
traceIn = {x: [1, 2], y: [1, 2]};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.xgap).toBe(0);
expect(traceOut.ygap).toBe(0);
});
@@ -70,7 +70,7 @@ describe('Test histogram2d', function() {
xgap: 10,
ygap: 5
};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.xgap).toBe(10);
expect(traceOut.ygap).toBe(5);
});
@@ -83,7 +83,7 @@ describe('Test histogram2d', function() {
ygap: 5,
zsmooth: 'best'
};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.xgap).toBe(undefined);
expect(traceOut.ygap).toBe(undefined);
});
@@ -94,7 +94,7 @@ describe('Test histogram2d', function() {
x: [1, 2, 3],
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, '', {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, '', {calendar: 'islamic'});
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -109,7 +109,7 @@ describe('Test histogram2d', function() {
xcalendar: 'coptic',
ycalendar: 'ethiopian'
};
- supplyDefaults(traceIn, traceOut, '', {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, '', {calendar: 'islamic'});
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
diff --git a/test/jasmine/tests/histogram_test.js b/test/jasmine/tests/histogram_test.js
index 064cac6678a..1b866b4af63 100644
--- a/test/jasmine/tests/histogram_test.js
+++ b/test/jasmine/tests/histogram_test.js
@@ -33,14 +33,14 @@ describe('Test histogram', function() {
traceIn = {
x: []
};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.visible).toBe(false);
traceIn = {
y: []
};
traceOut = {};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.visible).toBe(false);
});
@@ -49,7 +49,7 @@ describe('Test histogram', function() {
x: [],
y: [1, 2, 2]
};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.visible).toBe(false);
traceIn = {
@@ -57,7 +57,7 @@ describe('Test histogram', function() {
y: []
};
traceOut = {};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.visible).toBe(false);
});
@@ -66,7 +66,7 @@ describe('Test histogram', function() {
x: [],
y: [1, 2, 2]
};
- supplyDefaults2D(traceIn, traceOut, '', {});
+ supplyDefaults2D(void 0, traceIn, traceOut, '', {});
expect(traceOut.visible).toBe(false);
traceIn = {
@@ -74,7 +74,7 @@ describe('Test histogram', function() {
y: []
};
traceOut = {};
- supplyDefaults2D(traceIn, traceOut, '', {});
+ supplyDefaults2D(void 0, traceIn, traceOut, '', {});
expect(traceOut.visible).toBe(false);
traceIn = {
@@ -82,7 +82,7 @@ describe('Test histogram', function() {
y: []
};
traceOut = {};
- supplyDefaults2D(traceIn, traceOut, '', {});
+ supplyDefaults2D(void 0, traceIn, traceOut, '', {});
expect(traceOut.visible).toBe(false);
traceIn = {
@@ -90,7 +90,7 @@ describe('Test histogram', function() {
y: [1, 2, 2]
};
traceOut = {};
- supplyDefaults2DC(traceIn, traceOut, '', {});
+ supplyDefaults2DC(void 0, traceIn, traceOut, '', {});
expect(traceOut.visible).toBe(false);
});
@@ -98,7 +98,7 @@ describe('Test histogram', function() {
traceIn = {
x: [1, 2, 2]
};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.orientation).toBe('v');
traceIn = {
@@ -106,7 +106,7 @@ describe('Test histogram', function() {
y: [1, 2, 2]
};
traceOut = {};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.orientation).toBe('v');
});
@@ -114,7 +114,7 @@ describe('Test histogram', function() {
traceIn = {
y: [1, 2, 2]
};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.orientation).toBe('h');
});
@@ -130,14 +130,14 @@ describe('Test histogram', function() {
size: 1
}
};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.autobinx).toBeUndefined();
traceIn = {
x: [1, 2, 2]
};
traceOut = {};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.autobinx).toBeUndefined();
});
@@ -150,14 +150,14 @@ describe('Test histogram', function() {
size: 1
}
};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.autobiny).toBeUndefined();
traceIn = {
y: [1, 2, 2]
};
traceOut = {};
- supplyDefaults(traceIn, traceOut, '', {});
+ supplyDefaults(void 0, traceIn, traceOut, '', {});
expect(traceOut.autobiny).toBeUndefined();
});
@@ -165,7 +165,7 @@ describe('Test histogram', function() {
traceIn = {
x: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, '', {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, '', {calendar: 'islamic'});
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -181,7 +181,7 @@ describe('Test histogram', function() {
xcalendar: 'coptic',
ycalendar: 'nepali'
};
- supplyDefaults(traceIn, traceOut, '', {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, '', {calendar: 'islamic'});
expect(traceOut.xcalendar).toBe('coptic');
expect(traceOut.ycalendar).toBe('nepali');
@@ -229,7 +229,7 @@ describe('Test histogram', function() {
});
if(warnMsg) {
- expect(Lib.warn).toHaveBeenCalledWith(warnMsg);
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), warnMsg);
} else {
expect(Lib.warn).toHaveBeenCalledTimes(0);
}
diff --git a/test/jasmine/tests/hover_label_test.js b/test/jasmine/tests/hover_label_test.js
index c117315d5e4..3e6888ab76d 100644
--- a/test/jasmine/tests/hover_label_test.js
+++ b/test/jasmine/tests/hover_label_test.js
@@ -67,7 +67,7 @@ describe('Fx.hover:', function() {
.then(function() {
Fx.hover(gd, {xpx: 300, ypx: 100}, 'x2y2');
expect(gd._hoverdata).toBe(undefined, 'did not generate hoverdata');
- expect(Lib.warn).toHaveBeenCalledWith('Unrecognized subplot: x2y2');
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), 'Unrecognized subplot: x2y2');
})
.catch(failTest)
.then(done);
diff --git a/test/jasmine/tests/image_test.js b/test/jasmine/tests/image_test.js
index ea187c3c5b0..578a86dba79 100644
--- a/test/jasmine/tests/image_test.js
+++ b/test/jasmine/tests/image_test.js
@@ -34,26 +34,26 @@ describe('image supplyDefaults', function() {
traceIn = {
z: []
};
- supplyDefaults(traceIn, traceOut);
+ supplyDefaults(void 0, traceIn, traceOut);
expect(traceOut.visible).toBe(false);
traceIn = {
z: [[]]
};
- supplyDefaults(traceIn, traceOut);
+ supplyDefaults(void 0, traceIn, traceOut);
expect(traceOut.visible).toBe(false);
traceIn = {
z: [[], [], []]
};
- supplyDefaults(traceIn, traceOut);
+ supplyDefaults(void 0, traceIn, traceOut);
expect(traceOut.visible).toBe(false);
traceIn = {
type: 'image',
z: [[[255, 0, 0]]]
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'image'}, 0, layout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'image'}, 0, layout);
expect(traceOut.visible).toBe(true);
});
@@ -72,10 +72,10 @@ describe('image supplyDefaults', function() {
z: [[[1, 1, 1, 1]]],
colormodel: test[0]
};
- supplyDefaults(traceIn, traceOut);
+ supplyDefaults(void 0, traceIn, traceOut);
expect(traceOut.zmin).toEqual(test[1], 'default zmin for ' + test[0]);
expect(traceOut.zmax).toEqual(test[2], 'default zmax for ' + test[0]);
- supplyDefaults(traceIn, traceOut);
+ supplyDefaults(void 0, traceIn, traceOut);
});
});
@@ -85,7 +85,7 @@ describe('image supplyDefaults', function() {
zmin: [10, 10],
zmax: [null, 20]
};
- supplyDefaults(traceIn, traceOut);
+ supplyDefaults(void 0, traceIn, traceOut);
expect(traceOut.zmin).toEqual([10, 10, 0], 'zmin default');
expect(traceOut.zmax).toEqual([255, 20, 255], 'zmax default');
@@ -95,7 +95,7 @@ describe('image supplyDefaults', function() {
zmin: [null, 10, null, null, 100],
zmax: [20]
};
- supplyDefaults(traceIn, traceOut);
+ supplyDefaults(void 0, traceIn, traceOut);
expect(traceOut.zmin).toEqual([0, 10, 0, 0], 'zmin default');
expect(traceOut.zmax).toEqual([20, 100, 100, 1], 'zmax default');
});
@@ -380,7 +380,7 @@ describe('image hover:', function() {
ya: fullLayout.yaxis
};
- var hoverPoint = Image.hoverPoints(pointData, xval, yval);
+ var hoverPoint = Image.hoverPoints(gd, pointData, xval, yval);
if(hoverPoint) hoverData.push(hoverPoint[0]);
}
diff --git a/test/jasmine/tests/isosurface_test.js b/test/jasmine/tests/isosurface_test.js
index 2421ca8460d..ba6c5395cc0 100644
--- a/test/jasmine/tests/isosurface_test.js
+++ b/test/jasmine/tests/isosurface_test.js
@@ -556,7 +556,7 @@ describe('Test isosurface grid', function() {
cellsLength: 0
});
}).then(function() {
- expect(Lib.warn).toHaveBeenCalledWith('Encountered arbitrary coordinates! Unable to input data grid.');
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), 'Encountered arbitrary coordinates! Unable to input data grid.');
})
.catch(failTest)
.then(done);
diff --git a/test/jasmine/tests/layout_images_test.js b/test/jasmine/tests/layout_images_test.js
index 0cdc86faa30..5a6093d6f72 100644
--- a/test/jasmine/tests/layout_images_test.js
+++ b/test/jasmine/tests/layout_images_test.js
@@ -32,7 +32,7 @@ describe('Layout images', function() {
it('should reject when there is no `source`', function() {
layoutIn.images[0] = { opacity: 0.5, sizex: 0.2, sizey: 0.2 };
- Images.supplyLayoutDefaults(layoutIn, layoutOut);
+ Images.supplyLayoutDefaults(void 0, layoutIn, layoutOut);
expect(layoutOut.images).toEqual([jasmine.objectContaining({
visible: false,
@@ -49,7 +49,7 @@ describe('Layout images', function() {
sizey: 0.2
};
- Images.supplyLayoutDefaults(layoutIn, layoutOut);
+ Images.supplyLayoutDefaults(void 0, layoutIn, layoutOut);
expect(layoutOut.images).toEqual([]);
});
@@ -77,7 +77,7 @@ describe('Layout images', function() {
_index: 0
};
- Images.supplyLayoutDefaults(layoutIn, layoutOut);
+ Images.supplyLayoutDefaults(void 0, layoutIn, layoutOut);
expect(layoutOut.images[0]).toEqual(jasmine.objectContaining(expected));
});
diff --git a/test/jasmine/tests/legend_test.js b/test/jasmine/tests/legend_test.js
index 21f25626989..a301657c0f1 100644
--- a/test/jasmine/tests/legend_test.js
+++ b/test/jasmine/tests/legend_test.js
@@ -54,7 +54,7 @@ describe('legend defaults', function() {
{type: 'contour', _dfltShowLegend: false, showlegend: false} // hidden by default
]);
- supplyLayoutDefaults({}, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, {}, layoutOut, fullData);
expect(layoutOut.showlegend).toBe(false);
});
@@ -64,7 +64,7 @@ describe('legend defaults', function() {
{type: 'scatter', showlegend: false} // not shown but still triggers legend
]);
- supplyLayoutDefaults({}, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, {}, layoutOut, fullData);
expect(layoutOut.showlegend).toBe(true);
});
@@ -74,7 +74,7 @@ describe('legend defaults', function() {
{type: 'scatter', showlegend: false}
]);
- supplyLayoutDefaults({}, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, {}, layoutOut, fullData);
expect(layoutOut.showlegend).toBe(false);
});
@@ -83,7 +83,7 @@ describe('legend defaults', function() {
{type: 'pie'}
]);
- supplyLayoutDefaults({}, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, {}, layoutOut, fullData);
expect(layoutOut.showlegend).toBe(true);
});
@@ -92,7 +92,7 @@ describe('legend defaults', function() {
{type: 'pie', showlegend: false}
]);
- supplyLayoutDefaults({}, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, {}, layoutOut, fullData);
expect(layoutOut.showlegend).toBe(false);
});
@@ -101,7 +101,7 @@ describe('legend defaults', function() {
{type: 'contour', _dfltShowLegend: false, _input: {showlegend: true}}
]);
- supplyLayoutDefaults({}, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, {}, layoutOut, fullData);
expect(layoutOut.showlegend).toBe(true);
});
@@ -112,12 +112,12 @@ describe('legend defaults', function() {
{type: 'scatter'}
]);
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.legend.traceorder).toEqual('normal');
layoutOut.barmode = 'stack';
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.legend.traceorder).toEqual('reversed');
});
@@ -127,7 +127,7 @@ describe('legend defaults', function() {
{type: 'scatter', fill: 'tonexty'}
]);
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.legend.traceorder).toEqual('reversed');
});
@@ -137,12 +137,12 @@ describe('legend defaults', function() {
{type: 'scatter'}
]);
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.legend.traceorder).toEqual('grouped');
fullData[1].fill = 'tonextx';
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.legend.traceorder).toEqual('grouped+reversed');
});
@@ -155,7 +155,7 @@ describe('legend defaults', function() {
layoutOut.barmode = 'stack';
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.legend.traceorder).toEqual('normal');
fullData = allShown([
@@ -163,12 +163,12 @@ describe('legend defaults', function() {
{type: 'scatter'}
]);
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.legend.traceorder).toEqual('normal');
});
it('should default orientation to vertical', function() {
- supplyLayoutDefaults(layoutIn, layoutOut, []);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, []);
expect(layoutOut.legend.orientation).toEqual('v');
});
@@ -180,7 +180,7 @@ describe('legend defaults', function() {
}
}
}, layoutIn);
- supplyLayoutDefaults(layoutWithTitle, layoutOut, []);
+ supplyLayoutDefaults(void 0, layoutWithTitle, layoutOut, []);
expect(layoutOut.legend.title.font).toEqual(undefined);
expect(layoutOut.legend.title.side).toEqual(undefined);
});
@@ -193,7 +193,7 @@ describe('legend defaults', function() {
}
}
}, layoutIn);
- supplyLayoutDefaults(layoutWithTitle, layoutOut, []);
+ supplyLayoutDefaults(void 0, layoutWithTitle, layoutOut, []);
expect(layoutOut.legend.title.side).toEqual('top');
});
@@ -206,7 +206,7 @@ describe('legend defaults', function() {
}
}
}, layoutIn);
- supplyLayoutDefaults(layoutWithTitle, layoutOut, []);
+ supplyLayoutDefaults(void 0, layoutWithTitle, layoutOut, []);
expect(layoutOut.legend.title.side).toEqual('left');
});
@@ -227,7 +227,7 @@ describe('legend defaults', function() {
});
it('should default position to bottom left', function() {
- supplyLayoutDefaults(layoutInForHorizontalLegends, layoutOut, []);
+ supplyLayoutDefaults(void 0, layoutInForHorizontalLegends, layoutOut, []);
expect(layoutOut.legend.x).toEqual(0);
expect(layoutOut.legend.xanchor).toEqual('left');
expect(layoutOut.legend.y).toEqual(-0.1);
@@ -238,7 +238,7 @@ describe('legend defaults', function() {
var mockLayoutIn = Lib.extendDeep({}, layoutInForHorizontalLegends);
mockLayoutIn.xaxis.rangeslider.visible = true;
- supplyLayoutDefaults(mockLayoutIn, layoutOut, []);
+ supplyLayoutDefaults(void 0, mockLayoutIn, layoutOut, []);
expect(layoutOut.legend.x).toEqual(0);
expect(layoutOut.legend.xanchor).toEqual('left');
expect(layoutOut.legend.y).toEqual(1.1);
diff --git a/test/jasmine/tests/lib_test.js b/test/jasmine/tests/lib_test.js
index 4105e5455ea..ffa607535b8 100644
--- a/test/jasmine/tests/lib_test.js
+++ b/test/jasmine/tests/lib_test.js
@@ -1717,9 +1717,9 @@ describe('Test lib.js:', function() {
var c = window.console = mockConsole(true, true, true);
config.logging = 2;
- Lib.log('tick', 'tock', 'tick', 'tock', 1);
- Lib.warn('I\'m', 'a', 'little', 'cuckoo', 'clock', [1, 2]);
- Lib.error('cuckoo!', 'cuckoo!!!', {a: 1, b: 2});
+ Lib.log(void 0, 'tick', 'tock', 'tick', 'tock', 1);
+ Lib.warn(void 0, 'I\'m', 'a', 'little', 'cuckoo', 'clock', [1, 2]);
+ Lib.error(void 0, 'cuckoo!', 'cuckoo!!!', {a: 1, b: 2});
expect(c.MESSAGES).toEqual([
['trace', ['LOG:', 'tick', 'tock', 'tick', 'tock', 1]],
@@ -1732,8 +1732,8 @@ describe('Test lib.js:', function() {
var c = window.console = mockConsole(true, false, true);
config.logging = 2;
- Lib.log('Hi');
- Lib.warn(42);
+ Lib.log(void 0, 'Hi');
+ Lib.warn(void 0, 42);
expect(c.MESSAGES).toEqual([
['log', ['LOG:', 'Hi']],
@@ -1745,9 +1745,9 @@ describe('Test lib.js:', function() {
var c = window.console = mockConsole(false, false, true);
config.logging = 2;
- Lib.log('tick', 'tock', 'tick', 'tock', 1);
- Lib.warn('I\'m', 'a', 'little', 'cuckoo', 'clock', [1, 2]);
- Lib.error('cuckoo!', 'cuckoo!!!', {a: 1, b: 2});
+ Lib.log(void 0, 'tick', 'tock', 'tick', 'tock', 1);
+ Lib.warn(void 0, 'I\'m', 'a', 'little', 'cuckoo', 'clock', [1, 2]);
+ Lib.error(void 0, 'cuckoo!', 'cuckoo!!!', {a: 1, b: 2});
expect(c.MESSAGES).toEqual([
['log', ['LOG:']],
@@ -1774,9 +1774,9 @@ describe('Test lib.js:', function() {
var c = window.console = mockConsole(true, true, true);
config.logging = 1;
- Lib.log(1);
- Lib.warn(2);
- Lib.error(3);
+ Lib.log(void 0, 1);
+ Lib.warn(void 0, 2);
+ Lib.error(void 0, 3);
expect(c.MESSAGES).toEqual([
['trace', ['WARN:', 2]],
@@ -1788,9 +1788,9 @@ describe('Test lib.js:', function() {
var c = window.console = mockConsole(true, true, true);
config.logging = 0;
- Lib.log(1);
- Lib.warn(2);
- Lib.error(3);
+ Lib.log(void 0, 1);
+ Lib.warn(void 0, 2);
+ Lib.error(void 0, 3);
expect(c.MESSAGES).toEqual([]);
});
@@ -1801,7 +1801,7 @@ describe('Test lib.js:', function() {
var c = window.console = mockConsole(true, true, false);
config.logging = 2;
- Lib.error('who are you', 'who who... are you', {a: 1, b: 2});
+ Lib.error(void 0, 'who are you', 'who who... are you', {a: 1, b: 2});
expect(c.MESSAGES).toEqual([
['log', ['ERROR:']],
@@ -1824,9 +1824,9 @@ describe('Test lib.js:', function() {
function _run(exp) {
config.logging = 0;
- Lib.log('log');
- Lib.warn('warn');
- Lib.error('error!');
+ Lib.log(void 0, 'log');
+ Lib.warn(void 0, 'warn');
+ Lib.error(void 0, 'error!');
var notes = d3.selectAll(query);
@@ -1854,6 +1854,58 @@ describe('Test lib.js:', function() {
_run([]);
});
});
+
+ describe('should log message in notifier div in accordance notifyOnLogging config option set via newPlot', function() {
+ var query = '.notifier-note';
+
+ var gd;
+
+ beforeEach(function(done) {
+ gd = createGraphDiv();
+
+ d3.selectAll(query).each(function() {
+ d3.select(this).select('button').node().click();
+ });
+ setTimeout(done, 1000);
+ });
+
+ afterEach(function() {
+ destroyGraphDiv();
+ });
+
+ function _run(notifyOnLogging, exp) {
+ Plotly.newPlot(gd, [], {}, {
+ notifyOnLogging: notifyOnLogging,
+ logging: 0
+ }).then(function() {
+ Lib.log(gd, 'log');
+ Lib.warn(gd, 'warn');
+ Lib.error(gd, 'error!');
+
+ var notes = d3.selectAll(query);
+
+ expect(notes.size()).toBe(exp.length, '# of notifier notes');
+
+ var actual = [];
+ notes.each(function() {
+ actual.push(d3.select(this).select('p').text());
+ });
+ expect(actual).toEqual(exp);
+ });
+ }
+
+ it('with level 2', function() {
+ _run(2, ['log', 'warn', 'error!']);
+ });
+
+ it('with level 1', function() {
+ _run(1, ['warn', 'error!']);
+ });
+
+ it('with level 0', function() {
+ _run(0, []);
+ });
+ });
});
describe('keyedContainer', function() {
@@ -2242,35 +2294,35 @@ describe('Test lib.js:', function() {
describe('hovertemplateString', function() {
var locale = false;
it('evaluates attributes', function() {
- expect(Lib.hovertemplateString('foo %{bar}', {}, locale, {bar: 'baz'})).toEqual('foo baz');
+ expect(Lib.hovertemplateString(void 0, 'foo %{bar}', {}, locale, {bar: 'baz'})).toEqual('foo baz');
});
it('evaluates attributes with a dot in their name', function() {
- expect(Lib.hovertemplateString('%{marker.size}', {}, locale, {'marker.size': 12}, {marker: {size: 14}})).toEqual('12');
+ expect(Lib.hovertemplateString(void 0, '%{marker.size}', {}, locale, {'marker.size': 12}, {marker: {size: 14}})).toEqual('12');
});
it('evaluates nested properties', function() {
- expect(Lib.hovertemplateString('foo %{bar.baz}', {}, locale, {bar: {baz: 'asdf'}})).toEqual('foo asdf');
+ expect(Lib.hovertemplateString(void 0, 'foo %{bar.baz}', {}, locale, {bar: {baz: 'asdf'}})).toEqual('foo asdf');
});
it('evaluates array nested properties', function() {
- expect(Lib.hovertemplateString('foo %{bar[0].baz}', {}, locale, {bar: [{baz: 'asdf'}]})).toEqual('foo asdf');
+ expect(Lib.hovertemplateString(void 0, 'foo %{bar[0].baz}', {}, locale, {bar: [{baz: 'asdf'}]})).toEqual('foo asdf');
});
it('should work with the number *0*', function() {
- expect(Lib.hovertemplateString('%{group}', {}, locale, {group: 0})).toEqual('0');
+ expect(Lib.hovertemplateString(void 0, '%{group}', {}, locale, {group: 0})).toEqual('0');
});
it('should work with the number *0* (nested case)', function() {
- expect(Lib.hovertemplateString('%{x.y}', {}, locale, {'x': {y: 0}})).toEqual('0');
+ expect(Lib.hovertemplateString(void 0, '%{x.y}', {}, locale, {'x': {y: 0}})).toEqual('0');
});
it('subtitutes multiple matches', function() {
- expect(Lib.hovertemplateString('foo %{group} %{trace}', {}, locale, {group: 'asdf', trace: 'jkl;'})).toEqual('foo asdf jkl;');
+ expect(Lib.hovertemplateString(void 0, 'foo %{group} %{trace}', {}, locale, {group: 'asdf', trace: 'jkl;'})).toEqual('foo asdf jkl;');
});
it('replaces missing matches with template string', function() {
- expect(Lib.hovertemplateString('foo %{group} %{trace}', {}, locale, {group: 1})).toEqual('foo 1 %{trace}');
+ expect(Lib.hovertemplateString(void 0, 'foo %{group} %{trace}', {}, locale, {group: 1})).toEqual('foo 1 %{trace}');
});
it('uses the value from the first object with the specified key', function() {
@@ -2278,45 +2330,45 @@ describe('Test lib.js:', function() {
var obj2 = {a: 'second', foo: {bar: 'bar'}};
// Simple key
- expect(Lib.hovertemplateString('foo %{a}', {}, locale, obj1, obj2)).toEqual('foo first');
- expect(Lib.hovertemplateString('foo %{a}', {}, locale, obj2, obj1)).toEqual('foo second');
+ expect(Lib.hovertemplateString(void 0, 'foo %{a}', {}, locale, obj1, obj2)).toEqual('foo first');
+ expect(Lib.hovertemplateString(void 0, 'foo %{a}', {}, locale, obj2, obj1)).toEqual('foo second');
// Nested Keys
- expect(Lib.hovertemplateString('foo %{foo.bar}', {}, locale, obj1, obj2)).toEqual('foo bar');
+ expect(Lib.hovertemplateString(void 0, 'foo %{foo.bar}', {}, locale, obj1, obj2)).toEqual('foo bar');
// Nested keys with 0
- expect(Lib.hovertemplateString('y: %{y}', {}, locale, {y: 0}, {y: 1})).toEqual('y: 0');
+ expect(Lib.hovertemplateString(void 0, 'y: %{y}', {}, locale, {y: 0}, {y: 1})).toEqual('y: 0');
});
it('formats numbers using d3-format mini-language when `:`', function() {
- expect(Lib.hovertemplateString('a: %{a:.0%}', {}, locale, {a: 0.123})).toEqual('a: 12%');
- expect(Lib.hovertemplateString('a: %{a:0.2%}', {}, locale, {a: 0.123})).toEqual('a: 12.30%');
- expect(Lib.hovertemplateString('b: %{b:2.2f}', {}, locale, {b: 43})).toEqual('b: 43.00');
+ expect(Lib.hovertemplateString(void 0, 'a: %{a:.0%}', {}, locale, {a: 0.123})).toEqual('a: 12%');
+ expect(Lib.hovertemplateString(void 0, 'a: %{a:0.2%}', {}, locale, {a: 0.123})).toEqual('a: 12.30%');
+ expect(Lib.hovertemplateString(void 0, 'b: %{b:2.2f}', {}, locale, {b: 43})).toEqual('b: 43.00');
});
it('formats date using d3-time-format mini-language `|`', function() {
- expect(Lib.hovertemplateString('a: %{a|%A}', {}, locale, {a: '2019-05-22'})).toEqual('a: Wednesday');
- expect(Lib.hovertemplateString('%{x|%b %-d, %Y}', {}, locale, {x: '2019-01-01'})).toEqual('Jan 1, 2019');
+ expect(Lib.hovertemplateString(void 0, 'a: %{a|%A}', {}, locale, {a: '2019-05-22'})).toEqual('a: Wednesday');
+ expect(Lib.hovertemplateString(void 0, '%{x|%b %-d, %Y}', {}, locale, {x: '2019-01-01'})).toEqual('Jan 1, 2019');
});
it('looks for default label if no format is provided', function() {
- expect(Lib.hovertemplateString('y: %{y}', {yLabel: '0.1'}, locale, {y: 0.123})).toEqual('y: 0.1');
+ expect(Lib.hovertemplateString(void 0, 'y: %{y}', {yLabel: '0.1'}, locale, {y: 0.123})).toEqual('y: 0.1');
});
it('warns user up to 10 times if a variable cannot be found', function() {
spyOn(Lib, 'warn').and.callThrough();
- Lib.hovertemplateString('%{idontexist}', {});
+ Lib.hovertemplateString(void 0, '%{idontexist}', {});
expect(Lib.warn.calls.count()).toBe(1);
for(var i = 0; i < 15; i++) {
- Lib.hovertemplateString('%{idontexist}', {});
+ Lib.hovertemplateString(void 0, '%{idontexist}', {});
}
expect(Lib.warn.calls.count()).toBe(10);
});
it('does not error out when arguments are undefined', function() {
expect(function() {
- Lib.hovertemplateString('y: %{y}', undefined, locale, undefined);
+ Lib.hovertemplateString(void 0, 'y: %{y}', undefined, locale, undefined);
}).not.toThrow();
});
});
@@ -2324,20 +2376,20 @@ describe('Test lib.js:', function() {
describe('texttemplateString', function() {
var locale = false;
it('evaluates attributes', function() {
- expect(Lib.texttemplateString('foo %{bar}', {}, locale, {bar: 'baz'})).toEqual('foo baz');
+ expect(Lib.texttemplateString(void 0, 'foo %{bar}', {}, locale, {bar: 'baz'})).toEqual('foo baz');
});
it('looks for default label if no format is provided', function() {
- expect(Lib.texttemplateString('y: %{y}', {yLabel: '0.1'}, locale, {y: 0.123})).toEqual('y: 0.1');
+ expect(Lib.texttemplateString(void 0, 'y: %{y}', {yLabel: '0.1'}, locale, {y: 0.123})).toEqual('y: 0.1');
});
it('warns user up to 10 times if a variable cannot be found', function() {
spyOn(Lib, 'warn').and.callThrough();
- Lib.texttemplateString('%{idontexist}', {});
+ Lib.texttemplateString(void 0, '%{idontexist}', {});
expect(Lib.warn.calls.count()).toBe(1);
for(var i = 0; i < 15; i++) {
- Lib.texttemplateString('%{idontexist}', {});
+ Lib.texttemplateString(void 0, '%{idontexist}', {});
}
expect(Lib.warn.calls.count()).toBe(11);
});
diff --git a/test/jasmine/tests/mapbox_test.js b/test/jasmine/tests/mapbox_test.js
index 538dd39f701..711533eeba9 100644
--- a/test/jasmine/tests/mapbox_test.js
+++ b/test/jasmine/tests/mapbox_test.js
@@ -42,7 +42,7 @@ describe('mapbox defaults', function() {
it('should fill empty containers', function() {
layoutIn = {};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutIn).toEqual({ mapbox: {} });
});
@@ -51,7 +51,7 @@ describe('mapbox defaults', function() {
layoutIn = { mapbox: mapbox };
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.mapbox._input).toBe(mapbox);
});
@@ -69,7 +69,7 @@ describe('mapbox defaults', function() {
fullData.push({ type: 'scattermapbox', subplot: 'mapbox2' });
layoutOut._subplots.mapbox.push('mapbox2');
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.mapbox.style).toEqual('light');
expect(layoutOut.mapbox2.style).toBe(mapboxStyleJSON);
});
@@ -81,7 +81,7 @@ describe('mapbox defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.mapbox.layers[0].sourcetype).toEqual('geojson');
expect(layoutOut.mapbox.layers[1].sourcetype).toEqual('geojson');
});
@@ -93,7 +93,7 @@ describe('mapbox defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.mapbox.layers).toEqual([jasmine.objectContaining({
sourcetype: 'geojson',
_index: 0
@@ -120,7 +120,7 @@ describe('mapbox defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.mapbox.layers[0].sourcelayer).toEqual('layer0');
expect(layoutOut.mapbox.layers[1].sourcelayer).toBeUndefined();
});
@@ -156,7 +156,7 @@ describe('mapbox defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.mapbox.layers[0].color).toEqual('red');
expect(layoutOut.mapbox.layers[0].line.width).toEqual(3);
@@ -199,10 +199,10 @@ describe('mapbox defaults', function() {
}]
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(Lib.log).toHaveBeenCalledTimes(2);
- expect(Lib.log).toHaveBeenCalledWith('Source types *raster* and *image* must drawn *raster* layer type.');
+ expect(Lib.log).toHaveBeenCalledWith(void 0, 'Source types *raster* and *image* must drawn *raster* layer type.');
expect(layoutOut.mapbox.layers[0].type).toBe('raster');
expect(layoutOut.mapbox.layers[1].type).toBe('raster');
@@ -222,7 +222,7 @@ describe('mapbox defaults', function() {
}]
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(Lib.log).toHaveBeenCalledTimes(0);
expect(layoutOut.mapbox.layers[0].type).toBe('raster');
@@ -295,7 +295,7 @@ describe('mapbox credentials', function() {
}]);
}).toThrow(new Error(constants.missingStyleErrorMsg));
- expect(Lib.error).toHaveBeenCalledWith(constants.missingStyleErrorMsg);
+ expect(Lib.error).toHaveBeenCalledWith(jasmine.anything(), constants.missingStyleErrorMsg);
}, LONG_TIMEOUT_INTERVAL);
it('@gl should throw error when setting a Mapbox style w/o a registered token', function() {
@@ -311,7 +311,7 @@ describe('mapbox credentials', function() {
});
}).toThrow(new Error(constants.noAccessTokenErrorMsg));
- expect(Lib.error).toHaveBeenCalledWith('Uses Mapbox map style, but did not set an access token.');
+ expect(Lib.error).toHaveBeenCalledWith(jasmine.anything(), 'Uses Mapbox map style, but did not set an access token.');
}, LONG_TIMEOUT_INTERVAL);
it('@gl should throw error if token is invalid', function(done) {
@@ -377,7 +377,7 @@ describe('mapbox credentials', function() {
}).then(function() {
expect(cnt).toEqual(0);
expect(gd._fullLayout.mapbox.accesstoken).toEqual(MAPBOX_ACCESS_TOKEN);
- expect(Lib.warn).toHaveBeenCalledWith(constants.multipleTokensErrorMsg);
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), constants.multipleTokensErrorMsg);
done();
});
}, LONG_TIMEOUT_INTERVAL);
@@ -438,7 +438,7 @@ describe('mapbox credentials', function() {
cnt++;
}).then(function() {
expect(cnt).toEqual(0);
- expect(Lib.log).toHaveBeenCalledWith([
+ expect(Lib.log).toHaveBeenCalledWith(jasmine.anything(), [
'Listed mapbox access token(s)',
MAPBOX_ACCESS_TOKEN,
'but did not use a Mapbox map style, ignoring token(s).'
@@ -1929,7 +1929,7 @@ describe('@noCI test mapbox trace/layout *below* interactions', function() {
if(allArgs.length === exp.warnCnt) {
for(var i = 0; i < exp.warnCnt; i++) {
- expect(allArgs[i][0]).toBe(arg, 'Lib.warn call #' + i);
+ expect(allArgs[i][1]).toBe(arg, 'Lib.warn call #' + i);
}
} else {
fail('Incorrect number of Lib.warn calls');
diff --git a/test/jasmine/tests/mesh3d_test.js b/test/jasmine/tests/mesh3d_test.js
index 49ed39443b0..995ffacc601 100644
--- a/test/jasmine/tests/mesh3d_test.js
+++ b/test/jasmine/tests/mesh3d_test.js
@@ -27,7 +27,7 @@ describe('Test mesh3d', function() {
k: [3, 0, 7, 4, 6, 0, 7, 1, 5, 0, 7, 2]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -40,7 +40,7 @@ describe('Test mesh3d', function() {
k: [3, 0, 7, 4, 6, 0, 7, 1, 5, 0, 7, 2]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -53,7 +53,7 @@ describe('Test mesh3d', function() {
k: [3, 0, 7, 4, 6, 0, 7, 1, 5, 0, 7, 2]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -66,7 +66,7 @@ describe('Test mesh3d', function() {
k: [3, 0, 7, 4, 6, 0, 7, 1, 5, 0, 7, 2]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -79,7 +79,7 @@ describe('Test mesh3d', function() {
k: [3, 0, 7, 4, 6, 0, 7, 1, 5, 0, 7, 2]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -92,7 +92,7 @@ describe('Test mesh3d', function() {
j: [1, 2, 5, 6, 2, 4, 3, 5, 4, 1, 6, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -109,7 +109,7 @@ describe('Test mesh3d', function() {
}
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.contour.color).toEqual('#444');
expect(traceOut.contour.width).toEqual(2);
});
@@ -127,7 +127,7 @@ describe('Test mesh3d', function() {
}
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.contour.color).toBeUndefined();
expect(traceOut.contour.width).toBeUndefined();
});
@@ -143,7 +143,7 @@ describe('Test mesh3d', function() {
intensity: [1, 2, 3, 4, 5, 6, 7, 8]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.cauto).toBe(true);
expect(traceOut.cmin).toBeUndefined();
expect(traceOut.cmax).toBeUndefined();
@@ -171,7 +171,7 @@ describe('Test mesh3d', function() {
k: [3, 0, 7, 4, 6, 0, 7, 1, 5, 0, 7, 2]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.cauto).toBeUndefined();
expect(traceOut.cmin).toBeUndefined();
expect(traceOut.cmax).toBeUndefined();
@@ -191,7 +191,7 @@ describe('Test mesh3d', function() {
j: [1, 2, 5, 6, 2, 4, 3, 5, 4, 1, 6, 3],
k: [3, 0, 7, 4, 6, 0, 7, 1, 5, 0, 7, 2]
};
- supplyDefaults(traceIn, traceOut, defaultColor, Lib.extendFlat({calendar: 'islamic'}, layout));
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, Lib.extendFlat({calendar: 'islamic'}, layout));
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -213,7 +213,7 @@ describe('Test mesh3d', function() {
zcalendar: 'mayan'
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.xcalendar).toBe('coptic');
expect(traceOut.ycalendar).toBe('ethiopian');
expect(traceOut.zcalendar).toBe('mayan');
diff --git a/test/jasmine/tests/parcoords_test.js b/test/jasmine/tests/parcoords_test.js
index 12e2a8ac337..f27525d3af2 100644
--- a/test/jasmine/tests/parcoords_test.js
+++ b/test/jasmine/tests/parcoords_test.js
@@ -125,7 +125,7 @@ describe('parcoords initialization tests', function() {
var defaultColor = '#444';
var layout = { font: Plots.layoutAttributes.font };
- Parcoords.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Parcoords.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
return traceOut;
}
diff --git a/test/jasmine/tests/plots_test.js b/test/jasmine/tests/plots_test.js
index 6669a31a2c0..0958e733d53 100644
--- a/test/jasmine/tests/plots_test.js
+++ b/test/jasmine/tests/plots_test.js
@@ -210,11 +210,11 @@ describe('Test Plots', function() {
var formatObj = require('@src/locale-en').format;
- function supplyLayoutDefaults(layoutIn, layoutOut) {
+ function supplyLayoutDefaults(gd, layoutIn, layoutOut) {
layoutOut._dfltTitle = {
plot: 'ppplot'
};
- return Plots.supplyLayoutGlobalDefaults(layoutIn, layoutOut, formatObj);
+ return Plots.supplyLayoutGlobalDefaults(gd, layoutIn, layoutOut, formatObj);
}
beforeEach(function() {
@@ -239,7 +239,7 @@ describe('Test Plots', function() {
autoexpand: true
};
- supplyLayoutDefaults(layoutIn, layoutOut);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut);
expect(layoutOut.margin).toEqual(expected);
});
@@ -263,7 +263,7 @@ describe('Test Plots', function() {
autoexpand: true
};
- supplyLayoutDefaults(layoutIn, layoutOut);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut);
expect(layoutOut.margin).toEqual(expected);
});
});
@@ -279,11 +279,11 @@ describe('Test Plots', function() {
layout._dataLength = 1;
traceIn = {};
- traceOut = supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, layout);
+ traceOut = supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, layout);
expect(traceOut.hoverinfo).toEqual('x+y+z+text');
traceIn = { hoverinfo: 'name' };
- traceOut = supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, layout);
+ traceOut = supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, layout);
expect(traceOut.hoverinfo).toEqual('name');
});
@@ -291,11 +291,11 @@ describe('Test Plots', function() {
layout._dataLength = 2;
traceIn = {};
- traceOut = supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, layout);
+ traceOut = supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, layout);
expect(traceOut.hoverinfo).toEqual('all');
traceIn = { hoverinfo: 'name' };
- traceOut = supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, layout);
+ traceOut = supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, layout);
expect(traceOut.hoverinfo).toEqual('name');
});
@@ -303,7 +303,7 @@ describe('Test Plots', function() {
layout._dataLength = 1;
traceIn = {};
- traceOut = supplyTraceDefaults(traceIn, {type: 'scatter', hovertemplate: '%{y}'}, 0, layout);
+ traceOut = supplyTraceDefaults(void 0, traceIn, {type: 'scatter', hovertemplate: '%{y}'}, 0, layout);
expect(traceOut.hoverinfo).toBeUndefined();
});
});
@@ -312,7 +312,7 @@ describe('Test Plots', function() {
describe('Plots.supplyTransformDefaults', function() {
it('should accept an empty layout when transforms present', function() {
var traceOut = {y: [1], _length: 1};
- Plots.supplyTransformDefaults({}, traceOut, {
+ Plots.supplyTransformDefaults(void 0, {}, traceOut, {
_globalTransforms: [{ type: 'filter'}]
});
diff --git a/test/jasmine/tests/polar_test.js b/test/jasmine/tests/polar_test.js
index e087f2495e4..7d6abff5f40 100644
--- a/test/jasmine/tests/polar_test.js
+++ b/test/jasmine/tests/polar_test.js
@@ -54,7 +54,7 @@ describe('Test legacy polar plots logs:', function() {
Plotly.plot(gd, s.data)
.then(function() {
expect(Lib.log).toHaveBeenCalledTimes(1);
- expect(Lib.log).toHaveBeenCalledWith('Legacy polar charts are deprecated!');
+ expect(Lib.log).toHaveBeenCalledWith(jasmine.anything(), 'Legacy polar charts are deprecated!');
})
.catch(failTest)
.then(done);
@@ -78,7 +78,7 @@ describe('Test polar plots defaults:', function() {
_subplots: {polar: ['polar']}
};
- Polar.supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ Polar.supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
}
it('should default *radialaxis.angle* to first sector angle', function() {
@@ -169,7 +169,7 @@ describe('Test polar plots defaults:', function() {
subplot: 'polar'
}]);
- expect(Lib.log).toHaveBeenCalledWith('Polar plots do not support date angular axes yet.');
+ expect(Lib.log).toHaveBeenCalledWith(void 0, 'Polar plots do not support date angular axes yet.');
expect(layoutOut.polar.angularaxis.type).toBe('linear');
});
diff --git a/test/jasmine/tests/range_selector_test.js b/test/jasmine/tests/range_selector_test.js
index 3e065776128..c2dcfb16d5f 100644
--- a/test/jasmine/tests/range_selector_test.js
+++ b/test/jasmine/tests/range_selector_test.js
@@ -28,7 +28,7 @@ describe('range selector defaults:', function() {
var counterAxes = ['yaxis'];
- handleDefaults(containerIn, containerOut, layout, counterAxes, calendar);
+ handleDefaults(void 0, containerIn, containerOut, layout, counterAxes, calendar);
}
it('should set \'visible\' to false when no buttons are present', function() {
@@ -146,7 +146,7 @@ describe('range selector defaults:', function() {
};
var counterAxes = ['yaxis'];
- handleDefaults(containerIn, containerOut, layout, counterAxes);
+ handleDefaults(void 0, containerIn, containerOut, layout, counterAxes);
expect(containerOut.rangeselector.x).toEqual(0);
expect(containerOut.rangeselector.y).toBeCloseTo(0.47);
@@ -177,7 +177,7 @@ describe('range selector defaults:', function() {
};
var counterAxes = ['yaxis', 'yaxis2', 'yaxis3'];
- handleDefaults(containerIn, containerOut, layout, counterAxes);
+ handleDefaults(void 0, containerIn, containerOut, layout, counterAxes);
expect(containerOut.rangeselector.x).toEqual(0.5);
expect(containerOut.rangeselector.y).toBeCloseTo(0.87);
diff --git a/test/jasmine/tests/range_slider_test.js b/test/jasmine/tests/range_slider_test.js
index a7232261480..42d6bdf444e 100644
--- a/test/jasmine/tests/range_slider_test.js
+++ b/test/jasmine/tests/range_slider_test.js
@@ -620,7 +620,7 @@ describe('Rangeslider handleDefaults function', function() {
setConvert(layoutOut[axName]);
layoutOut[axName]._id = name2id(axName);
if(!layoutOut._requestRangeslider) layoutOut._requestRangeslider = {};
- RangeSlider.handleDefaults(layoutIn, layoutOut, axName);
+ RangeSlider.handleDefaults(void 0, layoutIn, layoutOut, axName);
// we don't care about this after it's done its job
delete layoutOut._requestRangeslider;
}
diff --git a/test/jasmine/tests/sankey_test.js b/test/jasmine/tests/sankey_test.js
index 01ead26d544..c5effa3626f 100644
--- a/test/jasmine/tests/sankey_test.js
+++ b/test/jasmine/tests/sankey_test.js
@@ -35,7 +35,7 @@ describe('sankey tests', function() {
var defaultColor = '#444';
var layout = { colorway: defaultColors };
- Sankey.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Sankey.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
return traceOut;
}
@@ -44,7 +44,7 @@ describe('sankey tests', function() {
var traceOut = { visible: true };
var defaultColor = '#444';
- Sankey.supplyDefaults(traceIn, traceOut, defaultColor, Lib.extendFlat({colorway: defaultColors}, layout));
+ Sankey.supplyDefaults(void 0, traceIn, traceOut, defaultColor, Lib.extendFlat({colorway: defaultColors}, layout));
return traceOut;
}
@@ -75,7 +75,7 @@ describe('sankey tests', function() {
// the rest of our data processing.
it('some nodes are not linked', function() {
var warnings = [];
- spyOn(Lib, 'warn').and.callFake(function(msg) {
+ spyOn(Lib, 'warn').and.callFake(function(gd, msg) {
warnings.push(msg);
});
@@ -325,7 +325,7 @@ describe('sankey tests', function() {
it('emits a warning if a node is part of more than one group', function() {
var warnings = [];
- spyOn(Lib, 'warn').and.callFake(function(msg) {
+ spyOn(Lib, 'warn').and.callFake(function(gd, msg) {
warnings.push(msg);
});
@@ -1473,7 +1473,7 @@ describe('sankey tests', function() {
var mockCopy = Lib.extendDeep({}, mock);
var warnings = [];
- spyOn(Lib, 'warn').and.callFake(function(msg) {
+ spyOn(Lib, 'warn').and.callFake(function(gd, msg) {
warnings.push(msg);
});
Plotly.plot(gd, mockCopy).then(function() {
diff --git a/test/jasmine/tests/scatter3d_test.js b/test/jasmine/tests/scatter3d_test.js
index abe1a04bde4..03dc571810c 100644
--- a/test/jasmine/tests/scatter3d_test.js
+++ b/test/jasmine/tests/scatter3d_test.js
@@ -23,7 +23,7 @@ describe('Scatter3D defaults', function() {
var traceOut = { visible: true };
var layout = Lib.extendFlat({ _dataLength: 1 }, layoutEdits);
- Scatter3D.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Scatter3D.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
return traceOut;
}
diff --git a/test/jasmine/tests/scatter_test.js b/test/jasmine/tests/scatter_test.js
index 0448f586f19..3ce94e216ae 100644
--- a/test/jasmine/tests/scatter_test.js
+++ b/test/jasmine/tests/scatter_test.js
@@ -49,14 +49,14 @@ describe('Test scatter', function() {
it('should set visible to false when x and y are empty', function() {
traceIn = {};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
traceIn = {
x: [],
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -64,27 +64,27 @@ describe('Test scatter', function() {
traceIn = {
x: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
traceIn = {
x: [],
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
traceIn = {
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
traceIn = {
x: [1, 2, 3],
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -96,7 +96,7 @@ describe('Test scatter', function() {
it('should be visible using ' + c0 + '/' + dc + ' if ' + c + ' is missing completely but ' + l + ' is present', function() {
traceIn = {};
traceIn[spec.letter] = [1, 2];
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(undefined, l); // visible: true gets set above the module level
expect(traceOut._length).toBe(2, l);
expect(traceOut[c0]).toBe(0, c0);
@@ -116,14 +116,14 @@ describe('Test scatter', function() {
// you need visible: true here, as that normally gets set
// outside of the module supplyDefaults
traceOut = {visible: true};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.hoveron).toBe('points+fills');
// but with only lines (or just fill) and fill tonext or toself
// you get fills
traceIn.mode = 'lines';
traceOut = {visible: true};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.hoveron).toBe('fills');
// with the wrong fill you always get points
@@ -133,7 +133,7 @@ describe('Test scatter', function() {
// default to hoveron points.
traceIn.fill = 'tonexty';
traceOut = {visible: true};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.hoveron).toBe('points');
});
@@ -142,7 +142,7 @@ describe('Test scatter', function() {
x: [1, 2, 3],
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {calendar: 'islamic'});
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -157,7 +157,7 @@ describe('Test scatter', function() {
xcalendar: 'coptic',
ycalendar: 'ethiopian'
};
- supplyDefaults(traceIn, traceOut, defaultColor, {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {calendar: 'islamic'});
expect(traceOut.xcalendar).toBe('coptic');
expect(traceOut.ycalendar).toBe('ethiopian');
@@ -171,7 +171,7 @@ describe('Test scatter', function() {
y: [2, 1, 2]
}, patch);
traceOut = {visible: true};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
}
it('should fill in [un]selected.marker.opacity default when no other [un]selected is set', function() {
@@ -211,7 +211,7 @@ describe('Test scatter', function() {
describe('should find correct coordinate length', function() {
function _supply() {
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
}
it('- x 2d', function() {
@@ -1436,7 +1436,7 @@ describe('scatter hoverPoints', function() {
var cd = gd.calcdata[i];
var subplot = gd._fullLayout._plots.xy;
- var out = Scatter.hoverPoints({
+ var out = Scatter.hoverPoints(gd, {
index: false,
distance: 20,
cd: cd,
diff --git a/test/jasmine/tests/scattergeo_test.js b/test/jasmine/tests/scattergeo_test.js
index e13ef7bc097..67dc356f026 100644
--- a/test/jasmine/tests/scattergeo_test.js
+++ b/test/jasmine/tests/scattergeo_test.js
@@ -35,7 +35,7 @@ describe('Test scattergeo defaults', function() {
lat: [45, 45, 45]
};
- ScatterGeo.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ ScatterGeo.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.lat).toEqual([45, 45, 45]);
expect(traceOut.lon).toEqual([-75]);
expect(traceOut._length).toBe(1);
@@ -48,7 +48,7 @@ describe('Test scattergeo defaults', function() {
lat: [45]
};
- ScatterGeo.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ ScatterGeo.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.lat).toEqual([45]);
expect(traceOut.lon).toEqual([-75, -75, -75]);
expect(traceOut._length).toBe(1);
@@ -61,14 +61,14 @@ describe('Test scattergeo defaults', function() {
lat: [20, 40]
};
- ScatterGeo.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ ScatterGeo.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.lon).toBeUndefined();
expect(traceOut.lat).toBeUndefined();
});
it('should make trace invisible if lon or lat is omitted and locations not given', function() {
function testOne() {
- ScatterGeo.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ ScatterGeo.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
}
@@ -94,7 +94,7 @@ describe('Test scattergeo defaults', function() {
geojson: 'url'
};
traceOut = {};
- ScatterGeo.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ ScatterGeo.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.locationmode).toBe('geojson-id', 'valid url string');
traceIn = {
@@ -102,7 +102,7 @@ describe('Test scattergeo defaults', function() {
geojson: {}
};
traceOut = {};
- ScatterGeo.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ ScatterGeo.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.locationmode).toBe('geojson-id', 'valid object');
traceIn = {
@@ -110,7 +110,7 @@ describe('Test scattergeo defaults', function() {
geojson: ''
};
traceOut = {};
- ScatterGeo.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ ScatterGeo.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.locationmode).toBe('ISO-3', 'invalid sting');
traceIn = {
@@ -118,7 +118,7 @@ describe('Test scattergeo defaults', function() {
geojson: []
};
traceOut = {};
- ScatterGeo.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ ScatterGeo.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.locationmode).toBe('ISO-3', 'invalid object');
traceIn = {
@@ -126,7 +126,7 @@ describe('Test scattergeo defaults', function() {
lat: [20, 40]
};
traceOut = {};
- ScatterGeo.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ ScatterGeo.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.locationmode).toBe(undefined, 'lon/lat coordinates');
});
@@ -137,7 +137,7 @@ describe('Test scattergeo defaults', function() {
featureidkey: 'properties.name'
};
traceOut = {};
- ScatterGeo.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ ScatterGeo.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.featureidkey).toBe('properties.name', 'coerced');
traceIn = {
@@ -145,7 +145,7 @@ describe('Test scattergeo defaults', function() {
featureidkey: 'properties.name'
};
traceOut = {};
- ScatterGeo.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ ScatterGeo.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.featureidkey).toBe(undefined, 'NOT coerced');
});
});
diff --git a/test/jasmine/tests/scattermapbox_test.js b/test/jasmine/tests/scattermapbox_test.js
index 298d64f7b98..033193193fd 100644
--- a/test/jasmine/tests/scattermapbox_test.js
+++ b/test/jasmine/tests/scattermapbox_test.js
@@ -35,7 +35,7 @@ describe('scattermapbox defaults', function() {
var defaultColor = '#444';
var layout = { _dataLength: 1 };
- ScatterMapbox.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ ScatterMapbox.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
return traceOut;
}
@@ -712,7 +712,7 @@ describe('@noCI scattermapbox hover', function() {
var xval = 11;
var yval = 11;
- var out = hoverPoints(getPointData(gd), xval, yval)[0];
+ var out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.index).toEqual(0);
expect([out.x0, out.x1, out.y0, out.y1]).toBeCloseToArray([
@@ -725,7 +725,7 @@ describe('@noCI scattermapbox hover', function() {
it('@gl should generate hover label info (lon > 180 case)', function() {
var xval = 301;
var yval = 11;
- var out = hoverPoints(getPointData(gd), xval, yval)[0];
+ var out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.index).toEqual(3);
expect([out.x0, out.x1, out.y0, out.y1]).toBeCloseToArray([
@@ -741,25 +741,25 @@ describe('@noCI scattermapbox hover', function() {
var out;
Plotly.restyle(gd, 'text', [['', 'B', 'C']]).then(function() {
- out = hoverPoints(getPointData(gd), xval, yval)[0];
+ out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.extraText).toEqual('(10°, 10°)');
return Plotly.restyle(gd, 'text', [[null, 'B', 'C']]);
})
.then(function() {
- out = hoverPoints(getPointData(gd), xval, yval)[0];
+ out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.extraText).toEqual('(10°, 10°)');
return Plotly.restyle(gd, 'text', [[false, 'B', 'C']]);
})
.then(function() {
- out = hoverPoints(getPointData(gd), xval, yval)[0];
+ out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.extraText).toEqual('(10°, 10°)');
return Plotly.restyle(gd, 'text', [['A', 'B', 'C']]);
})
.then(function() {
- out = hoverPoints(getPointData(gd), xval, yval)[0];
+ out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.extraText).toEqual('(10°, 10°)
A');
})
.then(done);
@@ -769,7 +769,7 @@ describe('@noCI scattermapbox hover', function() {
var xval = 11 + 720;
var yval = 11;
- var out = hoverPoints(getPointData(gd), xval, yval)[0];
+ var out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.index).toEqual(0);
expect([out.x0, out.x1, out.y0, out.y1]).toBeCloseToArray([
@@ -783,7 +783,7 @@ describe('@noCI scattermapbox hover', function() {
var xval = 11 - 1080;
var yval = 11;
- var out = hoverPoints(getPointData(gd), xval, yval)[0];
+ var out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.index).toEqual(0);
expect([out.x0, out.x1, out.y0, out.y1]).toBeCloseToArray([
@@ -798,7 +798,7 @@ describe('@noCI scattermapbox hover', function() {
var xval = 11;
var yval = 11;
- var out = hoverPoints(getPointData(gd), xval, yval)[0];
+ var out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.extraText).toEqual('lon: 10°');
done();
@@ -810,7 +810,7 @@ describe('@noCI scattermapbox hover', function() {
var xval = 11;
var yval = 11;
- var out = hoverPoints(getPointData(gd), xval, yval)[0];
+ var out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.extraText).toEqual('lat: 10°');
done();
@@ -822,7 +822,7 @@ describe('@noCI scattermapbox hover', function() {
var xval = 11;
var yval = 11;
- var out = hoverPoints(getPointData(gd), xval, yval)[0];
+ var out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.extraText).toEqual('A');
done();
@@ -834,7 +834,7 @@ describe('@noCI scattermapbox hover', function() {
var xval = 11;
var yval = 11;
- var out = hoverPoints(getPointData(gd), xval, yval)[0];
+ var out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.extraText).toEqual('Apple');
done();
@@ -843,7 +843,7 @@ describe('@noCI scattermapbox hover', function() {
it('@gl should generate hover label (\'marker.color\' array case)', function(done) {
Plotly.restyle(gd, 'marker.color', [['red', 'blue', 'green']]).then(function() {
- var out = hoverPoints(getPointData(gd), 11, 11)[0];
+ var out = hoverPoints(gd, getPointData(gd), 11, 11)[0];
expect(out.color).toEqual('red');
})
@@ -852,7 +852,7 @@ describe('@noCI scattermapbox hover', function() {
it('@gl should generate hover label (\'marker.color\' w/ colorscale case)', function(done) {
Plotly.restyle(gd, 'marker.color', [[10, 5, 30]]).then(function() {
- var out = hoverPoints(getPointData(gd), 11, 11)[0];
+ var out = hoverPoints(gd, getPointData(gd), 11, 11)[0];
expect(out.color).toEqual('rgb(245, 195, 157)');
})
@@ -861,7 +861,7 @@ describe('@noCI scattermapbox hover', function() {
it('@gl should generate hover label (\'hoverinfo\' array case)', function(done) {
function check(expected) {
- var out = hoverPoints(getPointData(gd), 11, 11)[0];
+ var out = hoverPoints(gd, getPointData(gd), 11, 11)[0];
expect(out.extraText).toEqual(expected);
}
@@ -889,7 +889,7 @@ describe('@noCI scattermapbox hover', function() {
var xval = 11;
var yval = 11;
- var out = hoverPoints(getPointData(gd), xval, yval)[0];
+ var out = hoverPoints(gd, getPointData(gd), xval, yval)[0];
expect(out.hovertemplate).toEqual('tpl');
done();
diff --git a/test/jasmine/tests/scatterpolar_test.js b/test/jasmine/tests/scatterpolar_test.js
index c0802a50e29..f86cfa8ae55 100644
--- a/test/jasmine/tests/scatterpolar_test.js
+++ b/test/jasmine/tests/scatterpolar_test.js
@@ -16,7 +16,7 @@ describe('Test scatterpolar trace defaults:', function() {
function _supply(traceIn, layout) {
traceOut = {};
- ScatterPolar.supplyDefaults(traceIn, traceOut, '#444', layout || {});
+ ScatterPolar.supplyDefaults(void 0, traceIn, traceOut, '#444', layout || {});
}
it('should not truncate *r* when longer than *theta*', function() {
diff --git a/test/jasmine/tests/scatterternary_test.js b/test/jasmine/tests/scatterternary_test.js
index cc29c0237ec..ae00ed8c354 100644
--- a/test/jasmine/tests/scatterternary_test.js
+++ b/test/jasmine/tests/scatterternary_test.js
@@ -37,7 +37,7 @@ describe('scatterternary defaults', function() {
c: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).not.toBe(true);
});
@@ -47,7 +47,7 @@ describe('scatterternary defaults', function() {
b: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).not.toBe(true);
});
@@ -57,7 +57,7 @@ describe('scatterternary defaults', function() {
c: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).not.toBe(true);
});
@@ -67,7 +67,7 @@ describe('scatterternary defaults', function() {
c: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).not.toBe(true);
});
@@ -76,7 +76,7 @@ describe('scatterternary defaults', function() {
a: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -85,7 +85,7 @@ describe('scatterternary defaults', function() {
b: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -94,14 +94,14 @@ describe('scatterternary defaults', function() {
c: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
it('should allow one of \'a\', \'b\' or \'c\' to be missing (all are missing case)', function() {
traceIn = {};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -113,7 +113,7 @@ describe('scatterternary defaults', function() {
c: [1]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.a).toEqual([1, 2, 3]);
expect(traceOut.b).toEqual([1, 2]);
expect(traceOut.c).toEqual([1]);
@@ -128,7 +128,7 @@ describe('scatterternary defaults', function() {
c: [1, 2]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.a).toEqual([1]);
expect(traceOut.b).toEqual([1, 2, 3]);
expect(traceOut.c).toEqual([1, 2]);
@@ -143,7 +143,7 @@ describe('scatterternary defaults', function() {
c: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.a).toEqual([1, 2]);
expect(traceOut.b).toEqual([1]);
expect(traceOut.c).toEqual([1, 2, 3]);
@@ -160,7 +160,7 @@ describe('scatterternary defaults', function() {
['a', 'b', 'c'].forEach(function(letter) {
traceIn = Lib.extendDeep({}, trace0);
traceIn[letter] = [];
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false, letter);
});
});
@@ -206,14 +206,14 @@ describe('scatterternary defaults', function() {
// you need visible: true here, as that normally gets set
// outside of the module supplyDefaults
traceOut = {visible: true};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.hoveron).toBe('points+fills');
// but with only lines (or just fill) and fill tonext or toself
// you get fills
traceIn.mode = 'lines';
traceOut = {visible: true};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.hoveron).toBe('fills');
// without a fill you always get points. For scatterternary, unlike
@@ -222,7 +222,7 @@ describe('scatterternary defaults', function() {
// hoveron points.
traceIn.fill = 'none';
traceOut = {visible: true};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.hoveron).toBe('points');
});
});
@@ -374,7 +374,7 @@ describe('scatterternary hover', function() {
subplot: ternary
};
- return ScatterTernary.hoverPoints(pointData, xval, yval, hovermode);
+ return ScatterTernary.hoverPoints(gd, pointData, xval, yval, hovermode);
}
it('should generate extra text field on hover', function(done) {
diff --git a/test/jasmine/tests/shapes_test.js b/test/jasmine/tests/shapes_test.js
index 1a0950088c7..b664fa0543e 100644
--- a/test/jasmine/tests/shapes_test.js
+++ b/test/jasmine/tests/shapes_test.js
@@ -53,7 +53,7 @@ describe('Test shapes defaults:', function() {
layoutOut = layoutOut || {};
layoutOut._has = Plots._hasPlotType.bind(layoutOut);
- Shapes.supplyLayoutDefaults(layoutIn, layoutOut);
+ Shapes.supplyLayoutDefaults(void 0, layoutIn, layoutOut);
return layoutOut.shapes;
}
diff --git a/test/jasmine/tests/sliders_test.js b/test/jasmine/tests/sliders_test.js
index 5438273dbd4..dd6e665cb32 100644
--- a/test/jasmine/tests/sliders_test.js
+++ b/test/jasmine/tests/sliders_test.js
@@ -13,7 +13,9 @@ var assertPlotSize = require('../assets/custom_assertions').assertPlotSize;
describe('sliders defaults', function() {
'use strict';
- var supply = Sliders.supplyLayoutDefaults;
+ function supply(layoutIn, layoutOut) {
+ return Sliders.supplyLayoutDefaults(void 0, layoutIn, layoutOut);
+ }
var layoutIn, layoutOut;
diff --git a/test/jasmine/tests/splom_test.js b/test/jasmine/tests/splom_test.js
index 7052124d76e..2a4c86c13a9 100644
--- a/test/jasmine/tests/splom_test.js
+++ b/test/jasmine/tests/splom_test.js
@@ -650,7 +650,7 @@ describe('Test splom trace calc step:', function() {
expect(scene.matrixOptions.data).toBeCloseTo2DArray([[2, 1, 2]]);
expect(trace._visibleDims).toEqual([1]);
expect(Lib.log).toHaveBeenCalledTimes(1);
- expect(Lib.log).toHaveBeenCalledWith('Skipping splom dimension 0 with conflicting axis types');
+ expect(Lib.log).toHaveBeenCalledWith(jasmine.anything(), 'Skipping splom dimension 0 with conflicting axis types');
});
});
diff --git a/test/jasmine/tests/streamtube_test.js b/test/jasmine/tests/streamtube_test.js
index 380a37acd05..48037df7a7d 100644
--- a/test/jasmine/tests/streamtube_test.js
+++ b/test/jasmine/tests/streamtube_test.js
@@ -386,7 +386,7 @@ describe('Test streamtube interactions', function() {
cellsLength: 0
});
}).then(function() {
- expect(Lib.warn).toHaveBeenCalledWith('Encountered arbitrary coordinates! Unable to input data grid.');
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), 'Encountered arbitrary coordinates! Unable to input data grid.');
})
.catch(failTest)
.then(done);
diff --git a/test/jasmine/tests/sunburst_test.js b/test/jasmine/tests/sunburst_test.js
index d78ee444c64..c0f6230faab 100644
--- a/test/jasmine/tests/sunburst_test.js
+++ b/test/jasmine/tests/sunburst_test.js
@@ -248,7 +248,7 @@ describe('Test sunburst calc:', function() {
});
expect(Lib.warn).toHaveBeenCalledTimes(1);
- expect(Lib.warn).toHaveBeenCalledWith('Multiple implied roots, cannot build sunburst hierarchy.');
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), 'Multiple implied roots, cannot build sunburst hierarchy.');
});
it('should generate "root of roots" when it can', function() {
@@ -299,8 +299,8 @@ describe('Test sunburst calc:', function() {
expect(gd.calcdata[0][0].hierarchy).toBe(undefined, 'no computed hierarchy');
expect(Lib.warn).toHaveBeenCalledTimes(2);
- expect(Lib.warn.calls.allArgs()[0][0]).toBe('Total value for node Root is smaller than the sum of its children. \nparent value = 0 \nchildren sum = 3');
- expect(Lib.warn.calls.allArgs()[1][0]).toBe('Total value for node B is smaller than the sum of its children. \nparent value = 2 \nchildren sum = 3');
+ expect(Lib.warn.calls.allArgs()[0][1]).toBe('Total value for node Root is smaller than the sum of its children. \nparent value = 0 \nchildren sum = 3');
+ expect(Lib.warn.calls.allArgs()[1][1]).toBe('Total value for node B is smaller than the sum of its children. \nparent value = 2 \nchildren sum = 3');
});
it('should warn labels/parents lead to ambiguous hierarchy', function() {
@@ -310,7 +310,7 @@ describe('Test sunburst calc:', function() {
});
expect(Lib.warn).toHaveBeenCalledTimes(1);
- expect(Lib.warn).toHaveBeenCalledWith('Failed to build sunburst hierarchy. Error: ambiguous: A');
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), 'Failed to build sunburst hierarchy. Error: ambiguous: A');
});
it('should warn ids/parents lead to ambiguous hierarchy', function() {
@@ -321,7 +321,7 @@ describe('Test sunburst calc:', function() {
});
expect(Lib.warn).toHaveBeenCalledTimes(1);
- expect(Lib.warn).toHaveBeenCalledWith('Failed to build sunburst hierarchy. Error: ambiguous: b');
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), 'Failed to build sunburst hierarchy. Error: ambiguous: b');
});
it('should accept numbers (even `0`) are ids/parents items', function() {
diff --git a/test/jasmine/tests/surface_test.js b/test/jasmine/tests/surface_test.js
index 97a205e402e..2b118a5d4e1 100644
--- a/test/jasmine/tests/surface_test.js
+++ b/test/jasmine/tests/surface_test.js
@@ -21,7 +21,7 @@ describe('Test surface', function() {
it('should set \'visible\' to false if \'z\' isn\'t provided', function() {
traceIn = {};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.visible).toBe(false);
});
@@ -31,7 +31,7 @@ describe('Test surface', function() {
z: [[1, 2, 3], [2, 1, 2]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.x).toBeUndefined();
expect(traceOut.y).toBeUndefined();
});
@@ -54,7 +54,7 @@ describe('Test surface', function() {
highlightwidth: 2
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.contours.x).toEqual(fullOpts);
expect(traceOut.contours.y).toEqual(Lib.extendDeep({}, fullOpts, {
show: true,
@@ -73,7 +73,7 @@ describe('Test surface', function() {
}
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.contours.x.color).toEqual('#444');
expect(traceOut.contours.x.width).toEqual(2);
expect(traceOut.contours.x.usecolormap).toEqual(false);
@@ -90,7 +90,7 @@ describe('Test surface', function() {
z: [[1, 2, 3], [2, 1, 2]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.cauto).toBe(true);
expect(traceOut.cmin).toBeUndefined();
expect(traceOut.cmax).toBeUndefined();
@@ -115,7 +115,7 @@ describe('Test surface', function() {
zmax: 10
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.cauto).toEqual(false);
expect(traceOut.cmin).toEqual(0);
expect(traceOut.cmax).toEqual(10);
@@ -130,7 +130,7 @@ describe('Test surface', function() {
cmax: 20
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.cauto).toEqual(false);
expect(traceOut.cmin).toEqual(-10);
expect(traceOut.cmax).toEqual(20);
@@ -145,7 +145,7 @@ describe('Test surface', function() {
zmax: 10
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.cauto).toEqual(true);
expect(traceOut.cmin).toBeUndefined();
expect(traceOut.cmax).toBeUndefined();
@@ -155,7 +155,7 @@ describe('Test surface', function() {
traceIn = {
z: [[1, 2, 3], [2, 1, 2]]
};
- supplyDefaults(traceIn, traceOut, defaultColor, Lib.extendFlat({calendar: 'islamic'}, layout));
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, Lib.extendFlat({calendar: 'islamic'}, layout));
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -172,7 +172,7 @@ describe('Test surface', function() {
zcalendar: 'mayan'
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.xcalendar).toBe('coptic');
expect(traceOut.ycalendar).toBe('ethiopian');
expect(traceOut.zcalendar).toBe('mayan');
diff --git a/test/jasmine/tests/table_test.js b/test/jasmine/tests/table_test.js
index 408846a0f76..94afd6e391f 100644
--- a/test/jasmine/tests/table_test.js
+++ b/test/jasmine/tests/table_test.js
@@ -70,7 +70,7 @@ describe('table initialization tests', function() {
var defaultColor = '#777';
var layout = { font: {family: '"Open Sans", verdana, arial, sans-serif', size: 12, color: '#444'} };
- Table.supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ Table.supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
return traceOut;
}
diff --git a/test/jasmine/tests/ternary_test.js b/test/jasmine/tests/ternary_test.js
index df7d3a1ccaf..58e30efd22e 100644
--- a/test/jasmine/tests/ternary_test.js
+++ b/test/jasmine/tests/ternary_test.js
@@ -577,7 +577,7 @@ describe('ternary defaults', function() {
it('should fill empty containers', function() {
layoutIn = {};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutIn).toEqual({ ternary: {} });
expect(layoutOut.ternary.aaxis.type).toEqual('linear');
expect(layoutOut.ternary.baxis.type).toEqual('linear');
@@ -594,7 +594,7 @@ describe('ternary defaults', function() {
}
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.ternary.aaxis.min).toEqual(0);
expect(layoutOut.ternary.baxis.min).toEqual(0);
expect(layoutOut.ternary.caxis.min).toEqual(0);
@@ -607,7 +607,7 @@ describe('ternary defaults', function() {
it('should default \'title\' to Component + _name', function() {
layoutIn = {};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.ternary.aaxis.title.text).toEqual('Component A');
expect(layoutOut.ternary.baxis.title.text).toEqual('Component B');
expect(layoutOut.ternary.caxis.title.text).toEqual('Component C');
@@ -624,7 +624,7 @@ describe('ternary defaults', function() {
paper_bgcolor: 'green'
};
- supplyLayoutDefaults(layoutIn, layoutOut, fullData);
+ supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData);
expect(layoutOut.ternary.aaxis.gridcolor).toEqual('rgb(102, 0, 153)');
expect(layoutOut.ternary.baxis.gridcolor).toEqual('rgb(27, 27, 180)');
expect(layoutOut.ternary.caxis.gridcolor).toEqual('black');
diff --git a/test/jasmine/tests/transform_filter_test.js b/test/jasmine/tests/transform_filter_test.js
index 159175d6ea0..65b7686f94e 100644
--- a/test/jasmine/tests/transform_filter_test.js
+++ b/test/jasmine/tests/transform_filter_test.js
@@ -30,7 +30,7 @@ describe('filter transforms defaults:', function() {
}]
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, fullLayout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, fullLayout);
expect(traceOut.transforms).toEqual([{
type: 'filter',
@@ -53,7 +53,7 @@ describe('filter transforms defaults:', function() {
}]
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, fullLayout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, fullLayout);
expect(traceOut.transforms).toEqual([{
type: 'filter',
@@ -79,7 +79,7 @@ describe('filter transforms defaults:', function() {
}]
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, fullLayout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, fullLayout);
expect(traceOut.transforms[0].target).toEqual('x');
expect(traceOut.transforms[1].target).toEqual('x');
@@ -98,7 +98,7 @@ describe('filter transforms defaults:', function() {
target: []
}]
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, fullLayout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, fullLayout);
expect(traceOut.transforms[0].target).toEqual([]);
expect(traceOut.transforms[0].enabled).toBe(false, 'set to false!');
@@ -109,7 +109,7 @@ describe('filter transforms defaults:', function() {
target: new Float32Array()
}]
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, fullLayout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, fullLayout);
expect(traceOut.transforms[0].target).toEqual(new Float32Array());
expect(traceOut.transforms[0].enabled).toBe(false, 'set to false!');
});
diff --git a/test/jasmine/tests/transform_groupby_test.js b/test/jasmine/tests/transform_groupby_test.js
index e6487960606..0f0fa540995 100644
--- a/test/jasmine/tests/transform_groupby_test.js
+++ b/test/jasmine/tests/transform_groupby_test.js
@@ -11,8 +11,8 @@ var assertDims = customAssertions.assertDims;
var assertStyle = customAssertions.assertStyle;
-function supplyDataDefaults(dataIn, dataOut) {
- return Plots.supplyDataDefaults(dataIn, dataOut, {}, {
+function supplyDataDefaults(gd, dataIn, dataOut) {
+ return Plots.supplyDataDefaults(gd, dataIn, dataOut, {}, {
_subplots: {cartesian: ['xy'], xaxis: ['x'], yaxis: ['y']},
_modules: [],
_visibleModules: [],
@@ -368,7 +368,7 @@ describe('groupby', function() {
]
}];
- supplyDataDefaults(dataIn, dataOut);
+ supplyDataDefaults(void 0, dataIn, dataOut);
for(var i = 0; i < dataOut.length; i++) {
uniqueColors[dataOut[i].marker.color] = true;
@@ -820,7 +820,7 @@ describe('groupby', function() {
]
}];
- supplyDataDefaults(dataIn, dataOut);
+ supplyDataDefaults(void 0, dataIn, dataOut);
for(var i = 0; i < dataOut.length; i++) {
colors.push(dataOut[i].marker.color);
diff --git a/test/jasmine/tests/transform_multi_test.js b/test/jasmine/tests/transform_multi_test.js
index 817867f900c..03204287fc1 100644
--- a/test/jasmine/tests/transform_multi_test.js
+++ b/test/jasmine/tests/transform_multi_test.js
@@ -43,7 +43,7 @@ describe('general transforms:', function() {
transforms: [{}]
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, fullLayout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, fullLayout);
expect(traceOut.transforms).toEqual([{}]);
});
@@ -54,7 +54,7 @@ describe('general transforms:', function() {
transforms: [{}]
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, fullLayout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, fullLayout);
expect(traceOut.transforms).toBeUndefined();
});
@@ -65,7 +65,7 @@ describe('general transforms:', function() {
transforms: [{ type: 'filter' }]
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, fullLayout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, fullLayout);
expect(traceOut.transforms).toEqual([{
type: 'filter',
@@ -84,7 +84,7 @@ describe('general transforms:', function() {
transforms: [{ type: 'invalid' }]
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, fullLayout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, fullLayout);
expect(traceOut.y).toBe(traceIn.y);
});
@@ -110,7 +110,7 @@ describe('general transforms:', function() {
_basePlotModules: []
};
- traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'scatter'}, 0, layout);
+ traceOut = Plots.supplyTraceDefaults(void 0, traceIn, {type: 'scatter'}, 0, layout);
expect(traceOut.transforms[0]).toEqual(jasmine.objectContaining({
type: 'filter',
@@ -149,7 +149,7 @@ describe('general transforms:', function() {
}];
var dataOut = [];
- Plots.supplyDataDefaults(dataIn, dataOut, {}, mockFullLayout);
+ Plots.supplyDataDefaults(void 0, dataIn, dataOut, {}, mockFullLayout);
var msg;
@@ -226,7 +226,7 @@ describe('user-defined transforms:', function() {
var fullLayout = Lib.extendDeep({}, mockFullLayout);
var transitionData = {};
- function assertSupplyDefaultsArgs(_transformIn, traceOut, _layout) {
+ function assertSupplyDefaultsArgs(gd, _transformIn, traceOut, _layout) {
if(!calledSupplyDefaults) {
expect(_transformIn).toBe(transformIn);
} else {
@@ -255,7 +255,7 @@ describe('user-defined transforms:', function() {
return dataOut;
}
- function assertSupplyLayoutDefaultsArgs(_layout, _fullLayout, _fullData, _transitionData) {
+ function assertSupplyLayoutDefaultsArgs(gd, _layout, _fullLayout, _fullData, _transitionData) {
expect(_layout).toBe(layout);
expect(_fullLayout).toBe(fullLayout);
expect(_fullData).toBe(fullData);
@@ -274,8 +274,8 @@ describe('user-defined transforms:', function() {
};
Plotly.register(fakeTransformModule);
- Plots.supplyDataDefaults(dataIn, fullData, layout, fullLayout);
- Plots.supplyLayoutModuleDefaults(layout, fullLayout, fullData, transitionData);
+ Plots.supplyDataDefaults(void 0, dataIn, fullData, layout, fullLayout);
+ Plots.supplyLayoutModuleDefaults(void 0, layout, fullLayout, fullData, transitionData);
delete Plots.transformsRegistry.fake;
expect(calledSupplyDefaults).toBe(2);
expect(calledTransform).toBe(1);
@@ -294,7 +294,7 @@ describe('user-defined transforms:', function() {
name: 'linemaker',
makesData: true,
attributes: {},
- supplyDefaults: function(transformIn) {
+ supplyDefaults: function(gd, transformIn) {
return Lib.extendFlat({}, transformIn);
},
transform: function(data, state) {
@@ -323,7 +323,7 @@ describe('user-defined transforms:', function() {
};
Plotly.register(lineMakerModule);
- Plots.supplyDataDefaults(dataIn, fullData, layout, fullLayout);
+ Plots.supplyDataDefaults(void 0, dataIn, fullData, layout, fullLayout);
expect(fullData.length).toBe(1);
var traceOut = fullData[0];
diff --git a/test/jasmine/tests/transform_sort_test.js b/test/jasmine/tests/transform_sort_test.js
index 2776a086b28..fb1c35d283b 100644
--- a/test/jasmine/tests/transform_sort_test.js
+++ b/test/jasmine/tests/transform_sort_test.js
@@ -17,7 +17,7 @@ describe('Test sort transform defaults:', function() {
_modules: [],
_basePlotModules: []
});
- return Plots.supplyTraceDefaults(trace, {type: trace.type || 'scatter'}, 0, layout);
+ return Plots.supplyTraceDefaults(void 0, trace, {type: trace.type || 'scatter'}, 0, layout);
}
it('should coerce all attributes', function() {
diff --git a/test/jasmine/tests/treemap_test.js b/test/jasmine/tests/treemap_test.js
index f5788260b2d..48b17fb516e 100644
--- a/test/jasmine/tests/treemap_test.js
+++ b/test/jasmine/tests/treemap_test.js
@@ -363,7 +363,7 @@ describe('Test treemap calc:', function() {
});
expect(Lib.warn).toHaveBeenCalledTimes(1);
- expect(Lib.warn).toHaveBeenCalledWith('Multiple implied roots, cannot build treemap hierarchy.');
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), 'Multiple implied roots, cannot build treemap hierarchy.');
});
it('should generate "root of roots" when it can', function() {
@@ -414,8 +414,8 @@ describe('Test treemap calc:', function() {
expect(gd.calcdata[0][0].hierarchy).toBe(undefined, 'no computed hierarchy');
expect(Lib.warn).toHaveBeenCalledTimes(2);
- expect(Lib.warn.calls.allArgs()[0][0]).toBe('Total value for node Root is smaller than the sum of its children. \nparent value = 0 \nchildren sum = 3');
- expect(Lib.warn.calls.allArgs()[1][0]).toBe('Total value for node B is smaller than the sum of its children. \nparent value = 2 \nchildren sum = 3');
+ expect(Lib.warn.calls.allArgs()[0][1]).toBe('Total value for node Root is smaller than the sum of its children. \nparent value = 0 \nchildren sum = 3');
+ expect(Lib.warn.calls.allArgs()[1][1]).toBe('Total value for node B is smaller than the sum of its children. \nparent value = 2 \nchildren sum = 3');
});
it('should warn labels/parents lead to ambiguous hierarchy', function() {
@@ -425,7 +425,7 @@ describe('Test treemap calc:', function() {
});
expect(Lib.warn).toHaveBeenCalledTimes(1);
- expect(Lib.warn).toHaveBeenCalledWith('Failed to build treemap hierarchy. Error: ambiguous: A');
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), 'Failed to build treemap hierarchy. Error: ambiguous: A');
});
it('should warn ids/parents lead to ambiguous hierarchy', function() {
@@ -436,7 +436,7 @@ describe('Test treemap calc:', function() {
});
expect(Lib.warn).toHaveBeenCalledTimes(1);
- expect(Lib.warn).toHaveBeenCalledWith('Failed to build treemap hierarchy. Error: ambiguous: b');
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), 'Failed to build treemap hierarchy. Error: ambiguous: b');
});
it('should accept numbers (even `0`) are ids/parents items', function() {
diff --git a/test/jasmine/tests/updatemenus_test.js b/test/jasmine/tests/updatemenus_test.js
index 4727bd2c50c..d34c6b7cc3e 100644
--- a/test/jasmine/tests/updatemenus_test.js
+++ b/test/jasmine/tests/updatemenus_test.js
@@ -16,7 +16,9 @@ var delay = require('../assets/delay');
describe('update menus defaults', function() {
'use strict';
- var supply = UpdateMenus.supplyLayoutDefaults;
+ function supply(layoutIn, layoutOut) {
+ return UpdateMenus.supplyLayoutDefaults(void 0, layoutIn, layoutOut);
+ }
var layoutIn, layoutOut;
diff --git a/test/jasmine/tests/violin_test.js b/test/jasmine/tests/violin_test.js
index ac794a36b02..97e17964db0 100644
--- a/test/jasmine/tests/violin_test.js
+++ b/test/jasmine/tests/violin_test.js
@@ -19,7 +19,7 @@ describe('Test violin defaults', function() {
function _supply(traceIn, layout) {
traceOut = {};
- Violin.supplyDefaults(traceIn, traceOut, '#444', layout || {});
+ Violin.supplyDefaults(void 0, traceIn, traceOut, '#444', layout || {});
}
it('should set visible to false when x and y are empty', function() {
diff --git a/test/jasmine/tests/volume_test.js b/test/jasmine/tests/volume_test.js
index 8a3ecf6be89..7fb2102134a 100644
--- a/test/jasmine/tests/volume_test.js
+++ b/test/jasmine/tests/volume_test.js
@@ -557,7 +557,7 @@ describe('Test volume grid', function() {
cellsLength: 0
});
}).then(function() {
- expect(Lib.warn).toHaveBeenCalledWith('Encountered arbitrary coordinates! Unable to input data grid.');
+ expect(Lib.warn).toHaveBeenCalledWith(jasmine.anything(), 'Encountered arbitrary coordinates! Unable to input data grid.');
})
.catch(failTest)
.then(done);
diff --git a/test/jasmine/tests/waterfall_test.js b/test/jasmine/tests/waterfall_test.js
index 6358a534e5d..7d7d2cf0fd2 100644
--- a/test/jasmine/tests/waterfall_test.js
+++ b/test/jasmine/tests/waterfall_test.js
@@ -40,14 +40,14 @@ describe('Waterfall.supplyDefaults', function() {
it('should set visible to false when x and y are empty', function() {
traceIn = {};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
x: [],
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
});
@@ -55,27 +55,27 @@ describe('Waterfall.supplyDefaults', function() {
traceIn = {
x: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
x: [],
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
traceIn = {
x: [1, 2, 3],
y: []
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(false);
});
@@ -87,7 +87,7 @@ describe('Waterfall.supplyDefaults', function() {
it('should be visible using ' + c0 + '/' + dc + ' if ' + c + ' is missing completely but ' + l + ' is present', function() {
traceIn = {};
traceIn[l] = [1, 2];
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.visible).toBe(undefined, l); // visible: true gets set above the module level
expect(traceOut._length).toBe(2, l);
expect(traceOut[c0]).toBe(0, c0);
@@ -100,7 +100,7 @@ describe('Waterfall.supplyDefaults', function() {
traceIn = {
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.base).toBeUndefined();
expect(traceOut.offset).toBeUndefined();
expect(traceOut.width).toBeUndefined();
@@ -111,7 +111,7 @@ describe('Waterfall.supplyDefaults', function() {
width: -1,
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.width).toBeUndefined();
});
@@ -119,7 +119,7 @@ describe('Waterfall.supplyDefaults', function() {
traceIn = {
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.textposition).toBe('none');
expect(traceOut.texfont).toBeUndefined();
expect(traceOut.insidetexfont).toBeUndefined();
@@ -132,7 +132,7 @@ describe('Waterfall.supplyDefaults', function() {
y: [1, 2, 3],
textinfo: 'text'
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.textinfo).toBeUndefined();
});
@@ -142,7 +142,7 @@ describe('Waterfall.supplyDefaults', function() {
textposition: 'auto',
textinfo: 'text'
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.textinfo).not.toBeUndefined();
});
@@ -156,7 +156,7 @@ describe('Waterfall.supplyDefaults', function() {
};
var layoutFontMinusColor = {family: 'arial', size: 13};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.textposition).toBe('inside');
expect(traceOut.textfont).toEqual(layout.font);
@@ -177,7 +177,7 @@ describe('Waterfall.supplyDefaults', function() {
font: {family: 'arial', color: '#AAA', size: 13}
};
- supplyDefaults(traceIn, traceOut, defaultColor, layout);
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, layout);
expect(traceOut.insidetextfont.family).toBe('arial');
expect(traceOut.insidetextfont.color).toBeUndefined();
@@ -191,7 +191,7 @@ describe('Waterfall.supplyDefaults', function() {
textfont: {family: 'arial', color: '#09F', size: 20}
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.insidetextfont.family).toBe('arial');
expect(traceOut.insidetextfont.color).toBe('#09F');
@@ -203,7 +203,7 @@ describe('Waterfall.supplyDefaults', function() {
x: [1, 2, 3],
y: [1, 2, 3]
};
- supplyDefaults(traceIn, traceOut, defaultColor, {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {calendar: 'islamic'});
// we always fill calendar attributes, because it's hard to tell if
// we're on a date axis at this point.
@@ -218,7 +218,7 @@ describe('Waterfall.supplyDefaults', function() {
xcalendar: 'coptic',
ycalendar: 'ethiopian'
};
- supplyDefaults(traceIn, traceOut, defaultColor, {calendar: 'islamic'});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {calendar: 'islamic'});
expect(traceOut.xcalendar).toBe('coptic');
expect(traceOut.ycalendar).toBe('ethiopian');
@@ -229,7 +229,7 @@ describe('Waterfall.supplyDefaults', function() {
x: [1, 2, 3],
y: [1, 2, 3],
};
- supplyDefaults(traceIn, traceOut, defaultColor, {});
+ supplyDefaults(void 0, traceIn, traceOut, defaultColor, {});
expect(traceOut.connector.line.color).toBe(color.defaultLine);
});
});
@@ -1352,7 +1352,7 @@ describe('waterfall hover', function() {
function _hover(gd, xval, yval, hovermode) {
var pointData = getPointData(gd);
- var pts = Waterfall.hoverPoints(pointData, xval, yval, hovermode);
+ var pts = Waterfall.hoverPoints(gd, pointData, xval, yval, hovermode);
if(!pts) return false;
var pt = pts[0];