From 863bc34f1b93740af52926d17d1dd0cfe99369d7 Mon Sep 17 00:00:00 2001 From: archmoj Date: Thu, 2 Jul 2020 17:44:30 -0400 Subject: [PATCH 1/7] pass gd between various functions towards Lib.log, Lib.warn and Lib.error --- src/components/annotations/common_defaults.js | 2 +- src/components/annotations/defaults.js | 8 +- src/components/annotations3d/defaults.js | 8 +- src/components/calendars/index.js | 6 +- src/components/colorbar/defaults.js | 8 +- src/components/colorbar/draw.js | 4 +- .../colorscale/cross_trace_defaults.js | 2 +- src/components/colorscale/defaults.js | 8 +- src/components/colorscale/layout_defaults.js | 4 +- src/components/drawing/index.js | 2 +- src/components/errorbars/defaults.js | 2 +- src/components/fx/defaults.js | 4 +- src/components/fx/hover.js | 19 ++-- src/components/fx/hoverlabel_defaults.js | 2 +- src/components/fx/hovermode_defaults.js | 2 +- src/components/fx/layout_defaults.js | 6 +- src/components/fx/layout_global_defaults.js | 4 +- src/components/grid/index.js | 4 +- src/components/images/defaults.js | 6 +- src/components/legend/defaults.js | 2 +- src/components/legend/draw.js | 4 +- src/components/rangeselector/defaults.js | 6 +- src/components/rangeslider/defaults.js | 2 +- src/components/shapes/defaults.js | 6 +- src/components/shapes/draw.js | 6 +- .../shapes/draw_newshape/defaults.js | 2 +- src/components/sliders/defaults.js | 10 +-- src/components/updatemenus/defaults.js | 10 +-- src/lib/index.js | 26 +++--- src/lib/loggers.js | 12 +-- src/lib/svg_text_utils.js | 16 ++-- src/plot_api/helpers.js | 4 +- src/plot_api/manage_arrays.js | 4 +- src/plot_api/plot_api.js | 40 +++++---- src/plot_api/plot_template.js | 8 +- src/plot_api/template_api.js | 28 +++--- src/plot_api/to_image.js | 2 +- src/plot_api/validate.js | 60 ++++++------- src/plots/array_container_defaults.js | 8 +- src/plots/cartesian/axes.js | 2 +- src/plots/cartesian/axis_defaults.js | 22 ++--- .../cartesian/category_order_defaults.js | 2 +- src/plots/cartesian/constraints.js | 6 +- src/plots/cartesian/dragbox.js | 2 +- src/plots/cartesian/layout_defaults.js | 21 ++--- src/plots/cartesian/line_grid_defaults.js | 2 +- src/plots/cartesian/position_defaults.js | 2 +- src/plots/cartesian/tick_label_defaults.js | 10 +-- src/plots/cartesian/tick_mark_defaults.js | 2 +- src/plots/cartesian/tick_value_defaults.js | 2 +- src/plots/cartesian/type_defaults.js | 2 +- src/plots/command.js | 4 +- src/plots/domain.js | 2 +- src/plots/geo/geo.js | 4 +- src/plots/geo/layout_defaults.js | 6 +- src/plots/gl2d/index.js | 4 +- src/plots/gl2d/scene2d.js | 3 +- src/plots/gl3d/index.js | 2 +- src/plots/gl3d/layout/axis_defaults.js | 5 +- src/plots/gl3d/layout/defaults.js | 10 +-- src/plots/gl3d/scene.js | 18 ++-- src/plots/mapbox/index.js | 8 +- src/plots/mapbox/layout_defaults.js | 12 +-- src/plots/mapbox/mapbox.js | 2 +- src/plots/plots.js | 88 +++++++++---------- src/plots/polar/layout_defaults.js | 22 ++--- src/plots/subplot_defaults.js | 6 +- src/plots/ternary/layout_defaults.js | 18 ++-- src/snapshot/toimage.js | 2 +- src/traces/bar/defaults.js | 16 ++-- src/traces/bar/hover.js | 2 +- src/traces/bar/layout_defaults.js | 2 +- src/traces/bar/plot.js | 10 +-- src/traces/bar/style_defaults.js | 6 +- src/traces/barpolar/defaults.js | 6 +- src/traces/barpolar/hover.js | 2 +- src/traces/barpolar/layout_defaults.js | 2 +- src/traces/box/calc.js | 2 +- src/traces/box/defaults.js | 16 ++-- src/traces/box/hover.js | 10 +-- src/traces/box/layout_defaults.js | 6 +- src/traces/candlestick/defaults.js | 4 +- src/traces/carpet/ab_defaults.js | 8 +- src/traces/carpet/axis_defaults.js | 10 +-- src/traces/carpet/calc.js | 4 +- src/traces/carpet/defaults.js | 6 +- src/traces/carpet/smooth_fill_2d_array.js | 4 +- src/traces/carpet/xy_defaults.js | 2 +- src/traces/choropleth/defaults.js | 4 +- src/traces/choropleth/hover.js | 2 +- src/traces/choroplethmapbox/defaults.js | 4 +- src/traces/cone/convert.js | 4 +- src/traces/cone/defaults.js | 4 +- src/traces/contour/constraint_defaults.js | 8 +- src/traces/contour/contours_defaults.js | 2 +- src/traces/contour/convert_to_constraints.js | 6 +- src/traces/contour/defaults.js | 10 +-- src/traces/contour/empty_pathinfo.js | 4 +- src/traces/contour/find_all_paths.js | 16 ++-- src/traces/contour/hover.js | 4 +- src/traces/contour/label_defaults.js | 2 +- src/traces/contour/plot.js | 24 ++--- src/traces/contour/style_defaults.js | 6 +- src/traces/contourcarpet/calc.js | 4 +- src/traces/contourcarpet/defaults.js | 10 +-- src/traces/contourcarpet/plot.js | 20 ++--- src/traces/densitymapbox/defaults.js | 4 +- src/traces/densitymapbox/hover.js | 4 +- src/traces/funnel/defaults.js | 8 +- src/traces/funnel/hover.js | 2 +- src/traces/funnel/layout_defaults.js | 2 +- src/traces/funnelarea/defaults.js | 4 +- src/traces/funnelarea/layout_defaults.js | 2 +- src/traces/heatmap/calc.js | 4 +- src/traces/heatmap/defaults.js | 8 +- src/traces/heatmap/hover.js | 4 +- src/traces/heatmap/interp2d.js | 4 +- src/traces/heatmap/style_defaults.js | 2 +- src/traces/heatmap/xyz_defaults.js | 10 +-- src/traces/heatmapgl/defaults.js | 6 +- src/traces/histogram/cross_trace_defaults.js | 10 +-- src/traces/histogram/defaults.js | 10 +-- src/traces/histogram/hover.js | 4 +- src/traces/histogram2d/defaults.js | 8 +- src/traces/histogram2d/hover.js | 4 +- src/traces/histogram2d/sample_defaults.js | 4 +- src/traces/histogram2dcontour/defaults.js | 8 +- src/traces/image/defaults.js | 2 +- src/traces/image/hover.js | 2 +- src/traces/indicator/defaults.js | 14 +-- src/traces/indicator/plot.js | 4 +- src/traces/isosurface/calc.js | 2 +- src/traces/isosurface/convert.js | 6 +- src/traces/isosurface/defaults.js | 10 +-- src/traces/mesh3d/convert.js | 6 +- src/traces/mesh3d/defaults.js | 6 +- src/traces/ohlc/defaults.js | 4 +- src/traces/ohlc/hover.js | 6 +- src/traces/ohlc/ohlc_defaults.js | 4 +- src/traces/parcats/defaults.js | 14 +-- src/traces/parcoords/defaults.js | 16 ++-- src/traces/pie/defaults.js | 4 +- src/traces/pie/layout_defaults.js | 2 +- src/traces/pie/plot.js | 2 +- src/traces/pointcloud/defaults.js | 2 +- src/traces/sankey/calc.js | 6 +- src/traces/sankey/defaults.js | 12 +-- src/traces/sankey/render.js | 14 +-- src/traces/scatter/cross_trace_defaults.js | 2 +- src/traces/scatter/defaults.js | 22 ++--- src/traces/scatter/fillcolor_defaults.js | 2 +- src/traces/scatter/hover.js | 2 +- src/traces/scatter/line_defaults.js | 4 +- src/traces/scatter/line_shape_defaults.js | 2 +- src/traces/scatter/marker_defaults.js | 6 +- src/traces/scatter/stack_defaults.js | 2 +- src/traces/scatter/text_defaults.js | 2 +- src/traces/scatter/xy_defaults.js | 4 +- src/traces/scatter3d/calc_errors.js | 10 +-- src/traces/scatter3d/convert.js | 14 +-- src/traces/scatter3d/defaults.js | 20 ++--- src/traces/scattercarpet/defaults.js | 14 +-- src/traces/scattercarpet/hover.js | 4 +- src/traces/scattergeo/defaults.js | 10 +-- src/traces/scattergeo/hover.js | 2 +- src/traces/scattergl/convert.js | 2 +- src/traces/scattergl/defaults.js | 16 ++-- src/traces/scattergl/hover.js | 6 +- src/traces/scattermapbox/convert.js | 2 +- src/traces/scattermapbox/defaults.js | 14 +-- src/traces/scattermapbox/hover.js | 2 +- src/traces/scatterpolar/defaults.js | 18 ++-- src/traces/scatterpolar/hover.js | 4 +- src/traces/scatterpolargl/defaults.js | 12 +-- src/traces/scatterpolargl/hover.js | 4 +- src/traces/scatterternary/defaults.js | 14 +-- src/traces/scatterternary/hover.js | 4 +- src/traces/splom/calc.js | 2 +- src/traces/splom/defaults.js | 12 +-- src/traces/splom/hover.js | 4 +- src/traces/streamtube/calc.js | 6 +- src/traces/streamtube/convert.js | 4 +- src/traces/streamtube/defaults.js | 4 +- src/traces/sunburst/calc.js | 8 +- src/traces/sunburst/defaults.js | 6 +- src/traces/sunburst/layout_defaults.js | 2 +- src/traces/sunburst/plot.js | 6 +- src/traces/surface/convert.js | 8 +- src/traces/surface/defaults.js | 10 +-- src/traces/table/defaults.js | 4 +- src/traces/treemap/defaults.js | 8 +- src/traces/treemap/draw_descendants.js | 2 +- src/traces/treemap/layout_defaults.js | 2 +- src/traces/violin/calc.js | 2 +- src/traces/violin/defaults.js | 6 +- src/traces/violin/hover.js | 6 +- src/traces/violin/layout_defaults.js | 4 +- src/traces/volume/convert.js | 6 +- src/traces/volume/defaults.js | 6 +- src/traces/waterfall/defaults.js | 8 +- src/traces/waterfall/hover.js | 2 +- src/traces/waterfall/layout_defaults.js | 2 +- src/transforms/aggregate.js | 2 +- src/transforms/filter.js | 6 +- src/transforms/groupby.js | 2 +- src/transforms/sort.js | 2 +- 206 files changed, 761 insertions(+), 751 deletions(-) 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 a3d1acf6958..7de0d9a7fcf 100644 --- a/src/components/colorbar/draw.js +++ b/src/components/colorbar/draw.js @@ -713,8 +713,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 331c5dbefb4..7f32eaba7be 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -274,7 +274,7 @@ lib.simpleMap = function(array, func, x1, x2, opts) { * @param {int} base * base of string representation, default 16. Should be a power of 2. */ -lib.randstr = function randstr(existing, bits, base, _recursion) { +lib.randstr = function randstr(gd, existing, bits, base, _recursion) { if(!base) base = 16; if(bits === undefined) bits = 24; if(bits <= 0) return '0'; @@ -304,10 +304,10 @@ 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'); + lib.warn(gd, 'randstr failed uniqueness'); return res; } - return randstr(existing, bits, base, (_recursion || 0) + 1); + return randstr(gd, existing, bits, base, (_recursion || 0) + 1); } else return res; }; @@ -759,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 @@ -975,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 @@ -1024,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'} @@ -1035,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 = {}; @@ -1045,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)) { @@ -1062,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..e9909d6b74c 100644 --- a/src/lib/loggers.js +++ b/src/lib/loggers.js @@ -27,7 +27,7 @@ loggers.log = function() { if(dfltConfig.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); @@ -35,7 +35,7 @@ loggers.log = function() { if(dfltConfig.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'); @@ -47,7 +47,7 @@ loggers.warn = function() { if(dfltConfig.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); @@ -55,7 +55,7 @@ loggers.warn = function() { if(dfltConfig.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'); @@ -67,7 +67,7 @@ loggers.error = function() { if(dfltConfig.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); @@ -75,7 +75,7 @@ loggers.error = function() { if(dfltConfig.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..955f01a68b5 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, @@ -191,7 +191,7 @@ function texToSVG(_texString, _config, _callback) { } }, function() { - var randomID = 'math-output-' + Lib.randstr({}, 64); + var randomID = 'math-output-' + Lib.randstr(gd, {}, 64); tmpDiv = d3.select('body').append('div') .attr({id: randomID}) .style({visibility: 'hidden', position: 'absolute'}) @@ -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 .', str); + Lib.log(gd, 'Ignoring unexpected end tag .', 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..60d5048d65d 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'); } @@ -3755,7 +3757,7 @@ function makePlotFramework(gd) { d3.selectAll('defs').each(function() { if(this.id) otherUids[this.id.split('-')[1]] = 1; }); - fullLayout._uid = Lib.randstr(otherUids); + fullLayout._uid = Lib.randstr(gd, otherUids); } fullLayout._paperdiv.selectAll('.main-svg') 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/to_image.js b/src/plot_api/to_image.js index 11491416f01..1ae1cc6d381 100644 --- a/src/plot_api/to_image.js +++ b/src/plot_api/to_image.js @@ -200,7 +200,7 @@ function toImage(gd, opts) { } var canvas = document.createElement('canvas'); - canvas.id = Lib.randstr(); + canvas.id = Lib.randstr(gd); svgToImg({ format: format, 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 8e1aa45eb51..6ed87b0430b 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -1006,7 +1006,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 c1fbf92f9ea..4574707be48 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, @@ -126,7 +126,7 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce, } if(axType === 'date') { - handleArrayContainerDefaults(containerIn, containerOut, { + handleArrayContainerDefaults(gd, containerIn, containerOut, { name: 'rangebreaks', inclusionAttr: 'enabled', handleItemDefaults: rangebreaksDefaults @@ -149,7 +149,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`.'); } @@ -161,7 +161,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 33beeff8e8b..c70b5928799 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..380d0828c3e 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(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 9fad0247f05..d63d0748c94 100644 --- a/src/plots/plots.js +++ b/src/plots/plots.js @@ -348,14 +348,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; @@ -406,18 +406,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]); @@ -440,7 +440,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 @@ -453,7 +453,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 @@ -477,7 +477,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); @@ -515,7 +515,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 @@ -574,7 +574,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; @@ -605,7 +605,7 @@ function getTraceUids(oldFullData, newData) { if(tryUid(newUid, i)) continue; if(i < oldLen && tryUid(oldFullInput[i].uid, i)) continue; - setUid(Lib.randstr(seenUids), i); + setUid(Lib.randstr(gd, seenUids), i); } return out; @@ -850,7 +850,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 || {}; @@ -1054,7 +1054,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; @@ -1098,7 +1098,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; @@ -1131,7 +1131,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. @@ -1183,7 +1183,7 @@ plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) { } }; -plots.supplyAnimationDefaults = function(opts) { +plots.supplyAnimationDefaults = function(gd, opts) { opts = opts || {}; var i; var optsOut = {}; @@ -1199,25 +1199,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) { @@ -1230,7 +1230,7 @@ plots.supplyAnimationFrameDefaults = function(opts) { return optsOut; }; -plots.supplyAnimationTransitionDefaults = function(opts) { +plots.supplyAnimationTransitionDefaults = function(gd, opts) { var optsOut = {}; function coerce(attr, dflt) { @@ -1243,7 +1243,7 @@ plots.supplyAnimationTransitionDefaults = function(opts) { return optsOut; }; -plots.supplyFrameDefaults = function(frameIn) { +plots.supplyFrameDefaults = function(gd, frameIn) { var frameOut = {}; function coerce(attr, dflt) { @@ -1260,7 +1260,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]; @@ -1335,7 +1335,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')) { @@ -1353,7 +1353,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); } } @@ -1361,7 +1361,7 @@ plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, trac coerce('selectedpoints'); } - plots.supplyTransformDefaults(traceIn, traceOut, layout); + plots.supplyTransformDefaults(gd, traceIn, traceOut, layout); } return traceOut; @@ -1387,7 +1387,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. @@ -1421,10 +1421,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; @@ -1460,7 +1460,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); } @@ -1520,7 +1520,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'); @@ -1544,7 +1544,7 @@ plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) { Registry.getComponentMethod( 'shapes', 'supplyDrawNewShapeDefaults' - )(layoutIn, layoutOut, coerce); + )(gd, layoutIn, layoutOut, coerce); coerce('meta'); @@ -1558,12 +1558,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) { @@ -1635,7 +1635,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; @@ -1659,7 +1659,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); } @@ -1674,7 +1674,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); } } @@ -1687,7 +1687,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); } } @@ -1697,7 +1697,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); } } @@ -1705,7 +1705,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); } } }; @@ -1897,11 +1897,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; } @@ -2028,7 +2028,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/snapshot/toimage.js b/src/snapshot/toimage.js index a0097c5658e..fae84d787f4 100644 --- a/src/snapshot/toimage.js +++ b/src/snapshot/toimage.js @@ -42,7 +42,7 @@ function toImage(gd, opts) { var svg = toSVG(clonedGd); var canvas = document.createElement('canvas'); - canvas.id = Lib.randstr(); + canvas.id = Lib.randstr(gd); ev = svgToImg({ format: opts.format, 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 b9ead7b8107..b210c394282 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; @@ -29,5 +29,5 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout coerce('text'); - 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..b90382064c2 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 @@ -261,7 +261,7 @@ function sankeyModel(layout, d, traceIndex) { circular: circular, key: traceIndex, trace: trace, - guid: Lib.randstr(), + guid: Lib.randstr(gd), horizontal: horizontal, width: width, height: height, @@ -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; @@ -477,7 +477,7 @@ function nodeModel(d, n) { var key = 'node_' + n.pointNumber; // If it's a group, it's mutable and should be unique if(n.group) { - key = Lib.randstr(); + key = Lib.randstr(gd); } // for event data @@ -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..2f738b7dea8 100644 --- a/src/traces/sunburst/calc.js +++ b/src/traces/sunburst/calc.js @@ -111,10 +111,10 @@ 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(); + var dummyId = Lib.randstr(gd); // if multiple rows linked to the root node, // add dummy "root of roots" node to make d3 build the hierarchy successfully @@ -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) { From 7a1f06ae40a12d5fa49634dd3d127337ce2a2aa0 Mon Sep 17 00:00:00 2001 From: archmoj Date: Fri, 3 Jul 2020 12:36:15 -0400 Subject: [PATCH 2/7] pass undefined instead of gd in mapbox addLayer warning for now - until we could pass gd --- src/plots/mapbox/mapbox.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/mapbox/mapbox.js b/src/plots/mapbox/mapbox.js index 380d0828c3e..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(gd, [ + Lib.warn(void 0 /* until we could pass gd */, [ 'Trying to add layer with *below* value', below, 'referencing a layer that does not exist', From 92f5a19a6a6e24db696acb5122be2d98a5c085d5 Mon Sep 17 00:00:00 2001 From: archmoj Date: Fri, 3 Jul 2020 12:41:05 -0400 Subject: [PATCH 3/7] comment tickFirst error until we could pass gd --- src/plots/cartesian/axes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 6ed87b0430b..2597fb5524b 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -1006,7 +1006,7 @@ axes.tickFirst = function(ax, opts) { t0 = axes.tickIncrement(t0, newDTick, mult < 0 ? !axrev : axrev, ax.calendar); cnt++; } - Lib.error(gd, 'tickFirst did not converge', ax); + // Lib.error(gd, 'tickFirst did not converge', ax); return t0; } else if(tType === 'L') { // Log scales: Linear, Digits From 9cdc9fed4eddf67509b60b3589be8b608b38a63c Mon Sep 17 00:00:00 2001 From: archmoj Date: Fri, 3 Jul 2020 19:23:23 -0400 Subject: [PATCH 4/7] pass gd in jasmine tests in various functions --- test/jasmine/tests/animate_test.js | 4 +- test/jasmine/tests/annotations_test.js | 2 +- test/jasmine/tests/axes_test.js | 152 +++++++++---------- test/jasmine/tests/bar_test.js | 36 ++--- test/jasmine/tests/barpolar_test.js | 2 +- test/jasmine/tests/box_test.js | 34 ++--- test/jasmine/tests/carpet_test.js | 19 +-- test/jasmine/tests/choropleth_test.js | 22 +-- test/jasmine/tests/colorscale_test.js | 26 ++-- test/jasmine/tests/contour_test.js | 14 +- test/jasmine/tests/contourgl_test.js | 2 +- test/jasmine/tests/finance_test.js | 2 +- test/jasmine/tests/frame_api_test.js | 2 +- test/jasmine/tests/funnel_test.js | 36 ++--- test/jasmine/tests/geo_test.js | 62 ++++---- test/jasmine/tests/gl3dlayout_test.js | 46 +++--- test/jasmine/tests/heatmap_test.js | 34 ++--- test/jasmine/tests/heatmapgl_test.js | 18 +-- test/jasmine/tests/histogram2d_test.js | 20 +-- test/jasmine/tests/histogram_test.js | 36 ++--- test/jasmine/tests/hover_label_test.js | 2 +- test/jasmine/tests/image_test.js | 18 +-- test/jasmine/tests/isosurface_test.js | 2 +- test/jasmine/tests/layout_images_test.js | 6 +- test/jasmine/tests/legend_test.js | 38 ++--- test/jasmine/tests/lib_test.js | 86 +++++------ test/jasmine/tests/mapbox_test.js | 30 ++-- test/jasmine/tests/mesh3d_test.js | 24 +-- test/jasmine/tests/parcoords_test.js | 2 +- test/jasmine/tests/plots_test.js | 20 +-- test/jasmine/tests/polar_test.js | 6 +- test/jasmine/tests/range_selector_test.js | 6 +- test/jasmine/tests/range_slider_test.js | 2 +- test/jasmine/tests/sankey_test.js | 10 +- test/jasmine/tests/scatter3d_test.js | 2 +- test/jasmine/tests/scatter_test.js | 30 ++-- test/jasmine/tests/scattergeo_test.js | 22 +-- test/jasmine/tests/scattermapbox_test.js | 34 ++--- test/jasmine/tests/scatterpolar_test.js | 2 +- test/jasmine/tests/scatterternary_test.js | 32 ++-- test/jasmine/tests/shapes_test.js | 2 +- test/jasmine/tests/sliders_test.js | 4 +- test/jasmine/tests/splom_test.js | 2 +- test/jasmine/tests/streamtube_test.js | 2 +- test/jasmine/tests/sunburst_test.js | 10 +- test/jasmine/tests/surface_test.js | 20 +-- test/jasmine/tests/table_test.js | 2 +- test/jasmine/tests/ternary_test.js | 8 +- test/jasmine/tests/transform_filter_test.js | 10 +- test/jasmine/tests/transform_groupby_test.js | 10 +- test/jasmine/tests/transform_multi_test.js | 24 +-- test/jasmine/tests/transform_sort_test.js | 2 +- test/jasmine/tests/treemap_test.js | 10 +- test/jasmine/tests/updatemenus_test.js | 4 +- test/jasmine/tests/violin_test.js | 2 +- test/jasmine/tests/volume_test.js | 2 +- test/jasmine/tests/waterfall_test.js | 38 ++--- 57 files changed, 550 insertions(+), 545 deletions(-) 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 eb4d6ab44dc..d29f038bd4f 100644 --- a/test/jasmine/tests/axes_test.js +++ b/test/jasmine/tests/axes_test.js @@ -203,7 +203,7 @@ describe('Test axes', function() { trace ); layoutIn = {xaxis: {}, yaxis: {}}; - supplyLayoutDefaults(layoutIn, layoutOut, [fullTrace]); + supplyLayoutDefaults(void 0, layoutIn, layoutOut, [fullTrace]); } function checkTypes(xType, yType, msg) { @@ -337,7 +337,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); @@ -348,7 +348,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); }); @@ -357,7 +357,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); }); @@ -366,7 +366,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); }); @@ -376,7 +376,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); @@ -388,7 +388,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); }); @@ -398,7 +398,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); @@ -409,7 +409,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); }); @@ -425,7 +425,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'); @@ -440,7 +440,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'); @@ -455,7 +455,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'); @@ -475,7 +475,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'); @@ -491,7 +491,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'); @@ -505,7 +505,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'); @@ -522,7 +522,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); @@ -539,7 +539,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); @@ -556,7 +556,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(); @@ -580,7 +580,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}, @@ -594,7 +594,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); }); @@ -613,7 +613,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}, @@ -628,7 +628,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); }); @@ -640,7 +640,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]); @@ -661,7 +661,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([]); @@ -681,7 +681,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([]); @@ -698,7 +698,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); @@ -724,7 +724,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}); @@ -742,7 +742,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}); @@ -764,7 +764,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}]); @@ -787,7 +787,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'); @@ -805,7 +805,7 @@ describe('Test axes', function() { } }; - supplyLayoutDefaults(layoutIn, layoutOut, fullData); + supplyLayoutDefaults(void 0, layoutIn, layoutOut, fullData); expect(layoutOut.xaxis.hoverformat).toEqual('g'); }); @@ -824,7 +824,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}); @@ -846,7 +846,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}); @@ -876,7 +876,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}); @@ -912,7 +912,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}); @@ -945,7 +945,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}); @@ -968,7 +968,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}); @@ -988,7 +988,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}); @@ -1011,7 +1011,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]); @@ -1030,7 +1030,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'); @@ -1049,7 +1049,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'); @@ -1066,7 +1066,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*'); @@ -1083,7 +1083,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'); @@ -1099,7 +1099,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']); @@ -1129,7 +1129,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'); @@ -1149,7 +1149,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'); @@ -1178,7 +1178,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'); @@ -1211,7 +1211,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'); @@ -1854,7 +1854,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 = {}; @@ -1864,7 +1864,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); } [ @@ -1876,32 +1876,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(); @@ -1910,13 +1910,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(); }); @@ -1924,42 +1924,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); }); @@ -1970,21 +1970,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'); @@ -2003,7 +2003,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); @@ -2013,14 +2013,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); @@ -2034,7 +2034,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]); }); @@ -2049,7 +2049,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); }); @@ -2058,13 +2058,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']); }); @@ -2072,7 +2072,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); }); @@ -5186,7 +5186,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 b9fa49649e0..062938a4c72 100644 --- a/test/jasmine/tests/lib_test.js +++ b/test/jasmine/tests/lib_test.js @@ -1785,9 +1785,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]], @@ -1800,8 +1800,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']], @@ -1813,9 +1813,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:']], @@ -1842,9 +1842,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]], @@ -1856,9 +1856,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([]); }); @@ -1869,7 +1869,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:']], @@ -1892,9 +1892,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); @@ -2310,35 +2310,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() { @@ -2346,45 +2346,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(); }); }); @@ -2392,20 +2392,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..0363cc3a438 100644 --- a/test/jasmine/tests/transform_groupby_test.js +++ b/test/jasmine/tests/transform_groupby_test.js @@ -11,13 +11,13 @@ 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: [], _basePlotModules: [], - _traceUids: dataIn.map(function() { return Lib.randstr(); }) + _traceUids: dataIn.map(function() { return Lib.randstr(gd); }) }); } @@ -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]; From b930a372c493267a427571419fc12205f85b9011 Mon Sep 17 00:00:00 2001 From: archmoj Date: Mon, 6 Jul 2020 14:02:54 -0400 Subject: [PATCH 5/7] apply gd._context in notifiers --- src/lib/loggers.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/lib/loggers.js b/src/lib/loggers.js index e9909d6b74c..2f1a28ab903 100644 --- a/src/lib/loggers.js +++ b/src/lib/loggers.js @@ -23,9 +23,11 @@ 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 = 1; i < arguments.length; i++) { messages.push(arguments[i]); @@ -33,7 +35,7 @@ loggers.log = function() { apply(console.trace || console.log, messages); } - if(dfltConfig.notifyOnLogging > 1) { + if(context.notifyOnLogging > 1) { var lines = []; for(i = 1; i < arguments.length; i++) { lines.push(arguments[i]); @@ -43,9 +45,11 @@ 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 = 1; i < arguments.length; i++) { messages.push(arguments[i]); @@ -53,7 +57,7 @@ loggers.warn = function() { apply(console.trace || console.log, messages); } - if(dfltConfig.notifyOnLogging > 0) { + if(context.notifyOnLogging > 0) { var lines = []; for(i = 1; i < arguments.length; i++) { lines.push(arguments[i]); @@ -63,9 +67,11 @@ 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 = 1; i < arguments.length; i++) { messages.push(arguments[i]); @@ -73,7 +79,7 @@ loggers.error = function() { apply(console.error, messages); } - if(dfltConfig.notifyOnLogging > 0) { + if(context.notifyOnLogging > 0) { var lines = []; for(i = 1; i < arguments.length; i++) { lines.push(arguments[i]); From f4555cf011cb81fbf0b7d47dc1a828ab3a20c833 Mon Sep 17 00:00:00 2001 From: archmoj Date: Mon, 20 Jul 2020 10:14:45 -0400 Subject: [PATCH 6/7] add jasmine test --- test/jasmine/tests/lib_test.js | 52 ++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/test/jasmine/tests/lib_test.js b/test/jasmine/tests/lib_test.js index 062938a4c72..7199f66fb19 100644 --- a/test/jasmine/tests/lib_test.js +++ b/test/jasmine/tests/lib_test.js @@ -1922,6 +1922,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() { From bddd21840393aec40ba097becee7f3423cf48486 Mon Sep 17 00:00:00 2001 From: archmoj Date: Wed, 22 Jul 2020 09:34:10 -0400 Subject: [PATCH 7/7] change Lib.randstr warning to a throw error --- src/lib/index.js | 7 +++---- src/lib/svg_text_utils.js | 2 +- src/plot_api/plot_api.js | 2 +- src/plot_api/to_image.js | 2 +- src/plots/plots.js | 2 +- src/snapshot/toimage.js | 2 +- src/traces/sankey/render.js | 4 ++-- src/traces/sunburst/calc.js | 2 +- test/jasmine/tests/transform_groupby_test.js | 2 +- 9 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/lib/index.js b/src/lib/index.js index 7f32eaba7be..46abbaa12b0 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -274,7 +274,7 @@ lib.simpleMap = function(array, func, x1, x2, opts) { * @param {int} base * base of string representation, default 16. Should be a power of 2. */ -lib.randstr = function randstr(gd, existing, bits, base, _recursion) { +lib.randstr = function randstr(existing, bits, base, _recursion) { if(!base) base = 16; if(bits === undefined) bits = 24; if(bits <= 0) return '0'; @@ -304,10 +304,9 @@ lib.randstr = function randstr(gd, existing, bits, base, _recursion) { if((existing && existing[res]) || (parsed !== Infinity && parsed >= Math.pow(2, bits))) { if(_recursion > 10) { - lib.warn(gd, 'randstr failed uniqueness'); - return res; + throw new Error('randstr failed uniqueness'); } - return randstr(gd, existing, bits, base, (_recursion || 0) + 1); + return randstr(existing, bits, base, (_recursion || 0) + 1); } else return res; }; diff --git a/src/lib/svg_text_utils.js b/src/lib/svg_text_utils.js index 955f01a68b5..8142d71594a 100644 --- a/src/lib/svg_text_utils.js +++ b/src/lib/svg_text_utils.js @@ -191,7 +191,7 @@ function texToSVG(gd, _texString, _config, _callback) { } }, function() { - var randomID = 'math-output-' + Lib.randstr(gd, {}, 64); + var randomID = 'math-output-' + Lib.randstr({}, 64); tmpDiv = d3.select('body').append('div') .attr({id: randomID}) .style({visibility: 'hidden', position: 'absolute'}) diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 60d5048d65d..c2b75ba83e4 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -3757,7 +3757,7 @@ function makePlotFramework(gd) { d3.selectAll('defs').each(function() { if(this.id) otherUids[this.id.split('-')[1]] = 1; }); - fullLayout._uid = Lib.randstr(gd, otherUids); + fullLayout._uid = Lib.randstr(otherUids); } fullLayout._paperdiv.selectAll('.main-svg') diff --git a/src/plot_api/to_image.js b/src/plot_api/to_image.js index 1ae1cc6d381..11491416f01 100644 --- a/src/plot_api/to_image.js +++ b/src/plot_api/to_image.js @@ -200,7 +200,7 @@ function toImage(gd, opts) { } var canvas = document.createElement('canvas'); - canvas.id = Lib.randstr(gd); + canvas.id = Lib.randstr(); svgToImg({ format: format, diff --git a/src/plots/plots.js b/src/plots/plots.js index d63d0748c94..2bb58efc5b0 100644 --- a/src/plots/plots.js +++ b/src/plots/plots.js @@ -605,7 +605,7 @@ function getTraceUids(gd, oldFullData, newData) { if(tryUid(newUid, i)) continue; if(i < oldLen && tryUid(oldFullInput[i].uid, i)) continue; - setUid(Lib.randstr(gd, seenUids), i); + setUid(Lib.randstr(seenUids), i); } return out; diff --git a/src/snapshot/toimage.js b/src/snapshot/toimage.js index fae84d787f4..a0097c5658e 100644 --- a/src/snapshot/toimage.js +++ b/src/snapshot/toimage.js @@ -42,7 +42,7 @@ function toImage(gd, opts) { var svg = toSVG(clonedGd); var canvas = document.createElement('canvas'); - canvas.id = Lib.randstr(gd); + canvas.id = Lib.randstr(); ev = svgToImg({ format: opts.format, diff --git a/src/traces/sankey/render.js b/src/traces/sankey/render.js index b90382064c2..13b120c7c60 100644 --- a/src/traces/sankey/render.js +++ b/src/traces/sankey/render.js @@ -261,7 +261,7 @@ function sankeyModel(gd, layout, d, traceIndex) { circular: circular, key: traceIndex, trace: trace, - guid: Lib.randstr(gd), + guid: Lib.randstr(), horizontal: horizontal, width: width, height: height, @@ -477,7 +477,7 @@ function nodeModel(gd, d, n) { var key = 'node_' + n.pointNumber; // If it's a group, it's mutable and should be unique if(n.group) { - key = Lib.randstr(gd); + key = Lib.randstr(); } // for event data diff --git a/src/traces/sunburst/calc.js b/src/traces/sunburst/calc.js index 2f738b7dea8..e76f75f2edb 100644 --- a/src/traces/sunburst/calc.js +++ b/src/traces/sunburst/calc.js @@ -114,7 +114,7 @@ exports.calc = function(gd, trace) { return Lib.warn(gd, 'Multiple implied roots, cannot build ' + trace.type + ' hierarchy.'); } } else if(parent2children[''].length > 1) { - var dummyId = Lib.randstr(gd); + var dummyId = Lib.randstr(); // if multiple rows linked to the root node, // add dummy "root of roots" node to make d3 build the hierarchy successfully diff --git a/test/jasmine/tests/transform_groupby_test.js b/test/jasmine/tests/transform_groupby_test.js index 0363cc3a438..0f0fa540995 100644 --- a/test/jasmine/tests/transform_groupby_test.js +++ b/test/jasmine/tests/transform_groupby_test.js @@ -17,7 +17,7 @@ function supplyDataDefaults(gd, dataIn, dataOut) { _modules: [], _visibleModules: [], _basePlotModules: [], - _traceUids: dataIn.map(function() { return Lib.randstr(gd); }) + _traceUids: dataIn.map(function() { return Lib.randstr(); }) }); }